Commit 4a8819a3 by wangshuo

Merge branch 'master' of gitlab.julyedu.com:baiguangyao/mr-julyedu

parents 00a52f54 5a9609a8
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
"Orderinfo.js": "/static/js/Orderinfo.229e2d92.chunk.js", "Orderinfo.js": "/static/js/Orderinfo.229e2d92.chunk.js",
"Orderinfo.js.map": "/static/js/Orderinfo.229e2d92.chunk.js.map", "Orderinfo.js.map": "/static/js/Orderinfo.229e2d92.chunk.js.map",
"PayOrder.css": "/static/css/PayOrder.71617dc9.chunk.css", "PayOrder.css": "/static/css/PayOrder.71617dc9.chunk.css",
"PayOrder.js": "/static/js/PayOrder.282dadb8.chunk.js", "PayOrder.js": "/static/js/PayOrder.220217be.chunk.js",
"PayOrder.js.map": "/static/js/PayOrder.282dadb8.chunk.js.map", "PayOrder.js.map": "/static/js/PayOrder.220217be.chunk.js.map",
"Preferential.css": "/static/css/Preferential.a285bc5d.chunk.css", "Preferential.css": "/static/css/Preferential.a285bc5d.chunk.css",
"Preferential.js": "/static/js/Preferential.1ac4da1c.chunk.js", "Preferential.js": "/static/js/Preferential.1ac4da1c.chunk.js",
"Preferential.js.map": "/static/js/Preferential.1ac4da1c.chunk.js.map", "Preferential.js.map": "/static/js/Preferential.1ac4da1c.chunk.js.map",
...@@ -51,23 +51,23 @@ ...@@ -51,23 +51,23 @@
"purchased.css": "/static/css/purchased.bd80fb0a.chunk.css", "purchased.css": "/static/css/purchased.bd80fb0a.chunk.css",
"purchased.js": "/static/js/purchased.1a0cc90e.chunk.js", "purchased.js": "/static/js/purchased.1a0cc90e.chunk.js",
"purchased.js.map": "/static/js/purchased.1a0cc90e.chunk.js.map", "purchased.js.map": "/static/js/purchased.1a0cc90e.chunk.js.map",
"runtime~main.js": "/static/js/runtime~main.68d0a616.js", "runtime~main.js": "/static/js/runtime~main.bcece0b8.js",
"runtime~main.js.map": "/static/js/runtime~main.68d0a616.js.map", "runtime~main.js.map": "/static/js/runtime~main.bcece0b8.js.map",
"search.css": "/static/css/search.68fd6acc.chunk.css", "search.css": "/static/css/search.68fd6acc.chunk.css",
"search.js": "/static/js/search.449ffe8e.chunk.js", "search.js": "/static/js/search.449ffe8e.chunk.js",
"search.js.map": "/static/js/search.449ffe8e.chunk.js.map", "search.js.map": "/static/js/search.449ffe8e.chunk.js.map",
"shareposter.css": "/static/css/shareposter.175bee2a.chunk.css", "shareposter.css": "/static/css/shareposter.9e774e45.chunk.css",
"shareposter.js": "/static/js/shareposter.2842f7fe.chunk.js", "shareposter.js": "/static/js/shareposter.2842f7fe.chunk.js",
"shareposter.js.map": "/static/js/shareposter.2842f7fe.chunk.js.map", "shareposter.js.map": "/static/js/shareposter.2842f7fe.chunk.js.map",
"study.css": "/static/css/study.95315632.chunk.css", "study.css": "/static/css/study.95315632.chunk.css",
"study.js": "/static/js/study.7d4b3c37.chunk.js", "study.js": "/static/js/study.f2aa4d8c.chunk.js",
"study.js.map": "/static/js/study.7d4b3c37.chunk.js.map", "study.js.map": "/static/js/study.f2aa4d8c.chunk.js.map",
"togroup.css": "/static/css/togroup.f08bc5f3.chunk.css", "togroup.css": "/static/css/togroup.f08bc5f3.chunk.css",
"togroup.js": "/static/js/togroup.d73bccb5.chunk.js", "togroup.js": "/static/js/togroup.d73bccb5.chunk.js",
"togroup.js.map": "/static/js/togroup.d73bccb5.chunk.js.map", "togroup.js.map": "/static/js/togroup.d73bccb5.chunk.js.map",
"video.css": "/static/css/video.a4013dc8.chunk.css", "video.css": "/static/css/video.a4013dc8.chunk.css",
"video.js": "/static/js/video.46b1913c.chunk.js", "video.js": "/static/js/video.7c320d7a.chunk.js",
"video.js.map": "/static/js/video.46b1913c.chunk.js.map", "video.js.map": "/static/js/video.7c320d7a.chunk.js.map",
"static/css/24.965d713a.chunk.css": "/static/css/24.965d713a.chunk.css", "static/css/24.965d713a.chunk.css": "/static/css/24.965d713a.chunk.css",
"static/js/24.ed68e76b.chunk.js": "/static/js/24.ed68e76b.chunk.js", "static/js/24.ed68e76b.chunk.js": "/static/js/24.ed68e76b.chunk.js",
"static/js/24.ed68e76b.chunk.js.map": "/static/js/24.ed68e76b.chunk.js.map", "static/js/24.ed68e76b.chunk.js.map": "/static/js/24.ed68e76b.chunk.js.map",
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
"static/js/31.1bf13040.chunk.js": "/static/js/31.1bf13040.chunk.js", "static/js/31.1bf13040.chunk.js": "/static/js/31.1bf13040.chunk.js",
"static/js/31.1bf13040.chunk.js.map": "/static/js/31.1bf13040.chunk.js.map", "static/js/31.1bf13040.chunk.js.map": "/static/js/31.1bf13040.chunk.js.map",
"index.html": "/index.html", "index.html": "/index.html",
"precache-manifest.f17b94b621a1409e23bf037c02e2d0c1.js": "/precache-manifest.f17b94b621a1409e23bf037c02e2d0c1.js", "precache-manifest.4a9aac0d885c9fbad51b3643fda8880e.js": "/precache-manifest.4a9aac0d885c9fbad51b3643fda8880e.js",
"service-worker.js": "/service-worker.js", "service-worker.js": "/service-worker.js",
"static/css/24.965d713a.chunk.css.map": "/static/css/24.965d713a.chunk.css.map", "static/css/24.965d713a.chunk.css.map": "/static/css/24.965d713a.chunk.css.map",
"static/css/26.73976871.chunk.css.map": "/static/css/26.73976871.chunk.css.map", "static/css/26.73976871.chunk.css.map": "/static/css/26.73976871.chunk.css.map",
...@@ -116,7 +116,7 @@ ...@@ -116,7 +116,7 @@
"static/css/myorders.789a128d.chunk.css.map": "/static/css/myorders.789a128d.chunk.css.map", "static/css/myorders.789a128d.chunk.css.map": "/static/css/myorders.789a128d.chunk.css.map",
"static/css/purchased.bd80fb0a.chunk.css.map": "/static/css/purchased.bd80fb0a.chunk.css.map", "static/css/purchased.bd80fb0a.chunk.css.map": "/static/css/purchased.bd80fb0a.chunk.css.map",
"static/css/search.68fd6acc.chunk.css.map": "/static/css/search.68fd6acc.chunk.css.map", "static/css/search.68fd6acc.chunk.css.map": "/static/css/search.68fd6acc.chunk.css.map",
"static/css/shareposter.175bee2a.chunk.css.map": "/static/css/shareposter.175bee2a.chunk.css.map", "static/css/shareposter.9e774e45.chunk.css.map": "/static/css/shareposter.9e774e45.chunk.css.map",
"static/css/study.95315632.chunk.css.map": "/static/css/study.95315632.chunk.css.map", "static/css/study.95315632.chunk.css.map": "/static/css/study.95315632.chunk.css.map",
"static/css/togroup.f08bc5f3.chunk.css.map": "/static/css/togroup.f08bc5f3.chunk.css.map", "static/css/togroup.f08bc5f3.chunk.css.map": "/static/css/togroup.f08bc5f3.chunk.css.map",
"static/css/video.a4013dc8.chunk.css.map": "/static/css/video.a4013dc8.chunk.css.map", "static/css/video.a4013dc8.chunk.css.map": "/static/css/video.a4013dc8.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.965d713a.chunk.css" rel="stylesheet"><link href="/static/css/main.c5f4d2a1.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(b&&b(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:"6d24aba4",1:"2ef92576",2:"49ca5e9b",3:"aeb3f822",4:"7bb0622b",5:"31d6cfe0",6:"c25de43a",7:"31d6cfe0",8:"71617dc9",9:"a285bc5d",10:"706b43f2",11:"fa7d91fc",12:"a97e13d0",13:"f2c7a13b",14:"2f69295d",16:"789a128d",17:"bd80fb0a",19:"68fd6acc",20:"175bee2a",21:"95315632",22:"f08bc5f3",23:"a4013dc8",25:"31d6cfe0",26:"73976871",27:"31d6cfe0",28:"42a89c77",29:"bf839917",30:"35e22f8c",31:"57d8b033"}[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:"c17d2450",1:"17ebd626",2:"df1427b5",3:"7fd9d55d",4:"681b3739",5:"539ac99a",6:"36a03aa7",7:"229e2d92",8:"282dadb8",9:"1ac4da1c",10:"21f335ee",11:"a3aa3523",12:"645eee55",13:"72b220db",14:"70bdafef",16:"fa5a3185",17:"1a0cc90e",19:"449ffe8e",20:"2842f7fe",21:"7d4b3c37",22:"d73bccb5",23:"46b1913c",25:"403aae65",26:"f842ed87",27:"33496196",28:"ab85697f",29:"52529984",30:"3e2101f4",31:"1bf13040"}[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 b=a;f()}([])</script><script src="/static/js/24.ed68e76b.chunk.js"></script><script src="/static/js/main.d7582dd7.chunk.js"></script></body></html> <!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.965d713a.chunk.css" rel="stylesheet"><link href="/static/css/main.c5f4d2a1.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/api.js"></script><script>!function(d){function e(e){for(var r,t,a=e[0],n=e[1],o=e[2],c=0,i=[];c<a.length;c++)t=a[c],l[t]&&i.push(l[t][0]),l[t]=0;for(r in n)Object.prototype.hasOwnProperty.call(n,r)&&(d[r]=n[r]);for(h&&h(e);i.length;)i.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 d[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:"6d24aba4",1:"2ef92576",2:"49ca5e9b",3:"aeb3f822",4:"7bb0622b",5:"31d6cfe0",6:"c25de43a",7:"31d6cfe0",8:"71617dc9",9:"a285bc5d",10:"706b43f2",11:"fa7d91fc",12:"a97e13d0",13:"f2c7a13b",14:"2f69295d",16:"789a128d",17:"bd80fb0a",19:"68fd6acc",20:"9e774e45",21:"95315632",22:"f08bc5f3",23:"a4013dc8",25:"31d6cfe0",26:"73976871",27:"31d6cfe0",28:"42a89c77",29:"bf839917",30:"35e22f8c",31:"57d8b033"}[u]+".chunk.css",n=p.p+r,t=document.getElementsByTagName("link"),o=0;o<t.length;o++){var c=(d=t[o]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&&(c===r||c===n))return e()}var i=document.getElementsByTagName("style");for(o=0;o<i.length;o++){var d;if((c=(d=i[o]).getAttribute("data-href"))===r||c===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:"c17d2450",1:"17ebd626",2:"df1427b5",3:"7fd9d55d",4:"681b3739",5:"539ac99a",6:"36a03aa7",7:"229e2d92",8:"220217be",9:"1ac4da1c",10:"21f335ee",11:"a3aa3523",12:"645eee55",13:"72b220db",14:"70bdafef",16:"fa5a3185",17:"1a0cc90e",19:"449ffe8e",20:"2842f7fe",21:"f2aa4d8c",22:"d73bccb5",23:"7c320d7a",25:"403aae65",26:"f842ed87",27:"33496196",28:"ab85697f",29:"52529984",30:"3e2101f4",31:"1bf13040"}[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=d,p.c=t,p.d=function(e,r,t){p.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(r,e){if(1&e&&(r=p(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(p.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var 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.ed68e76b.chunk.js"></script><script src="/static/js/main.d7582dd7.chunk.js"></script></body></html>
\ No newline at end of file \ No newline at end of file
...@@ -56,12 +56,12 @@ self.__precacheManifest = [ ...@@ -56,12 +56,12 @@ self.__precacheManifest = [
"url": "/static/js/Orderinfo.229e2d92.chunk.js" "url": "/static/js/Orderinfo.229e2d92.chunk.js"
}, },
{ {
"revision": "7ea4bbc4c4b6a571f03d", "revision": "94308b1e8a725bbff371",
"url": "/static/css/PayOrder.71617dc9.chunk.css" "url": "/static/css/PayOrder.71617dc9.chunk.css"
}, },
{ {
"revision": "7ea4bbc4c4b6a571f03d", "revision": "94308b1e8a725bbff371",
"url": "/static/js/PayOrder.282dadb8.chunk.js" "url": "/static/js/PayOrder.220217be.chunk.js"
}, },
{ {
"revision": "1240dac1ab2ba52e20d9", "revision": "1240dac1ab2ba52e20d9",
...@@ -136,8 +136,8 @@ self.__precacheManifest = [ ...@@ -136,8 +136,8 @@ self.__precacheManifest = [
"url": "/static/js/BargainMiddlePage.c17d2450.chunk.js" "url": "/static/js/BargainMiddlePage.c17d2450.chunk.js"
}, },
{ {
"revision": "67781da2a3c45704a188", "revision": "502006b3822a5db6adbe",
"url": "/static/js/runtime~main.68d0a616.js" "url": "/static/js/runtime~main.bcece0b8.js"
}, },
{ {
"revision": "43dbc7a6a2095dc3c29a", "revision": "43dbc7a6a2095dc3c29a",
...@@ -148,20 +148,20 @@ self.__precacheManifest = [ ...@@ -148,20 +148,20 @@ self.__precacheManifest = [
"url": "/static/js/search.449ffe8e.chunk.js" "url": "/static/js/search.449ffe8e.chunk.js"
}, },
{ {
"revision": "5e52e909ff01c854cbeb", "revision": "62a56af7f3b8d6693f46",
"url": "/static/css/shareposter.175bee2a.chunk.css" "url": "/static/css/shareposter.9e774e45.chunk.css"
}, },
{ {
"revision": "5e52e909ff01c854cbeb", "revision": "62a56af7f3b8d6693f46",
"url": "/static/js/shareposter.2842f7fe.chunk.js" "url": "/static/js/shareposter.2842f7fe.chunk.js"
}, },
{ {
"revision": "20fc5f69e5bd216235d1", "revision": "e27a5961a1dcfb9720c3",
"url": "/static/css/study.95315632.chunk.css" "url": "/static/css/study.95315632.chunk.css"
}, },
{ {
"revision": "20fc5f69e5bd216235d1", "revision": "e27a5961a1dcfb9720c3",
"url": "/static/js/study.7d4b3c37.chunk.js" "url": "/static/js/study.f2aa4d8c.chunk.js"
}, },
{ {
"revision": "b4b777b7bf19a9312150", "revision": "b4b777b7bf19a9312150",
...@@ -172,12 +172,12 @@ self.__precacheManifest = [ ...@@ -172,12 +172,12 @@ self.__precacheManifest = [
"url": "/static/js/togroup.d73bccb5.chunk.js" "url": "/static/js/togroup.d73bccb5.chunk.js"
}, },
{ {
"revision": "51b9a4d7b4a75ae86455", "revision": "01eca3a39cbde774a343",
"url": "/static/css/video.a4013dc8.chunk.css" "url": "/static/css/video.a4013dc8.chunk.css"
}, },
{ {
"revision": "51b9a4d7b4a75ae86455", "revision": "01eca3a39cbde774a343",
"url": "/static/js/video.46b1913c.chunk.js" "url": "/static/js/video.7c320d7a.chunk.js"
}, },
{ {
"revision": "80011994e30adf599e5f47fcc81bc06d", "revision": "80011994e30adf599e5f47fcc81bc06d",
...@@ -212,16 +212,16 @@ self.__precacheManifest = [ ...@@ -212,16 +212,16 @@ self.__precacheManifest = [
"url": "/static/js/28.ab85697f.chunk.js" "url": "/static/js/28.ab85697f.chunk.js"
}, },
{ {
"revision": "55ad4bbcfbe7879698a2538de5145a09", "revision": "10b7bd5b99a2a0a2f1a30d7ed72ec1a0",
"url": "/static/media/iconfont.55ad4bbc.ttf" "url": "/static/media/iconfont.10b7bd5b.eot"
}, },
{ {
"revision": "0ddb8222b83ddc441ccb", "revision": "0ddb8222b83ddc441ccb",
"url": "/static/js/29.52529984.chunk.js" "url": "/static/js/29.52529984.chunk.js"
}, },
{ {
"revision": "10b7bd5b99a2a0a2f1a30d7ed72ec1a0", "revision": "55ad4bbcfbe7879698a2538de5145a09",
"url": "/static/media/iconfont.10b7bd5b.eot" "url": "/static/media/iconfont.55ad4bbc.ttf"
}, },
{ {
"revision": "e0787ad15d0a12c4d4fc", "revision": "e0787ad15d0a12c4d4fc",
...@@ -260,7 +260,7 @@ self.__precacheManifest = [ ...@@ -260,7 +260,7 @@ self.__precacheManifest = [
"url": "/static/css/24.965d713a.chunk.css" "url": "/static/css/24.965d713a.chunk.css"
}, },
{ {
"revision": "f97f50f036d59a6bd0eacc0d2c592259", "revision": "f4ecda604525cd1d910a6b7b9fbd72cf",
"url": "/index.html" "url": "/index.html"
} }
]; ];
\ No newline at end of file
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js"); importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js");
importScripts( importScripts(
"/precache-manifest.f17b94b621a1409e23bf037c02e2d0c1.js" "/precache-manifest.4a9aac0d885c9fbad51b3643fda8880e.js"
); );
workbox.clientsClaim(); workbox.clientsClaim();
......
.share-poster .total-container{width:100%;background-color:#000;height:112vw;overflow:hidden;position:relative}.share-poster .total-container .placard-img-container{width:100%;height:224vw;background:#000;padding-top:5.333333vw;overflow:hidden;position:relative;zoom:.5}.share-poster .total-container .placard-img-container img{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center}.share-poster .total-container .placard-code{opacity:0}.share-poster .placard-desc{width:100%;height:12vw;background:#000;padding:0 2.666667vw}.share-poster .placard-desc .placard-sharetxt{width:100%;height:100%;line-height:5.333333vw;display:inline-block;font-size:3.733333vw;color:#fff}.share-poster .placard-desc .placard-sharetxt .placard-price{font-size:3.733333vw;color:#09f}.share-poster .placard-swiper{width:100%;background-color:#fff}.share-poster .placard-swiper .placard-list{display:flex;justify-content:center;align-items:center}.share-poster .placard-swiper .placard-list li{width:17.066667vw;height:17.066667vw;border-radius:1.333333vw;line-height:24vw;margin:5.333333vw 4vw}.share-poster .placard-swiper .placard-list li img{display:inline-block;width:17.066667vw;height:17.066667vw;border-radius:1.333333vw}.share-poster .placard-swiper .placard-list li.active{width:17.066667vw;height:17.066667vw;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJERkI3RjkzNjU4MjExRThBM0M2RjVEMUVEQUJDREUxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJERkI3Rjk0NjU4MjExRThBM0M2RjVEMUVEQUJDREUxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRGQjdGOTE2NTgyMTFFOEEzQzZGNUQxRURBQkNERTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkRGQjdGOTI2NTgyMTFFOEEzQzZGNUQxRURBQkNERTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zmJvcAAANOklEQVR42uyd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) no-repeat 50%;z-index:1002;background-size:17.066667vw}.share-poster .placard-swiper .placard-list li.active img{opacity:.1}.share-poster .hide{display:none}
/*# sourceMappingURL=shareposter.175bee2a.chunk.css.map */
\ No newline at end of file
{"version":3,"sources":["/Users/xzh/dnmp/www/mr-julyedu/src/components/sharePoster/index.scss"],"names":[],"mappings":"AAmGA,+BAEI,UAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CACA,iBAAkB,CANtB,sDASM,UAAA,CACA,YAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CACA,OAAS,CAff,0DAkBQ,iBAAA,CACA,OAAA,CACA,QAAA,CACA,sCAAA,CAAA,8BAAA,CACA,iBAAkB,CAtB1B,6CA2BM,SAAU,CA3BhB,4BAgCI,UAAA,CACA,WAAA,CACA,eAAA,CACA,oBAAe,CAnCnB,8CAqCM,UAAA,CACA,WAAA,CACA,sBAAA,CACA,oBAAA,CACA,oBAAA,CACA,UAzIM,CA+FZ,6DA6CQ,oBAAA,CACA,UA9IK,CAgGb,8BAoDI,UAAA,CACA,qBApJQ,CA+FZ,4CAwDM,YAAA,CACA,sBAAA,CACA,kBAAmB,CA1DzB,+CA6DQ,iBAAA,CACA,kBAAA,CACA,wBAAA,CACA,gBAAA,CACA,qBAAiB,CAjEzB,mDAoEU,oBAAA,CACA,iBAAA,CACA,kBAAA,CACA,wBAAkB,CAvE5B,sDA4EQ,iBAAA,CACA,kBAAA,CACA,wpLAA0D,CAC1D,YAAA,CACA,2BAAqB,CAhF7B,0DAmFU,UAAY,CAnFtB,oBAyFI,YAAa","file":"shareposter.175bee2a.chunk.css","sourcesContent":["@charset \"UTF-8\";\n/*\n * @ 文字颜色\n */\n/*\n * @ 文字大小\n */\n/*\n * @ 背景颜色\n */\n/*\n * @ 分割线颜色\n */\n/*\n * @ 边框颜色\n */\n/*\n * @ 标签颜色\n */\n.share-poster .total-container {\n width: 100%;\n background-color: #000;\n height: 420px;\n overflow: hidden;\n position: relative; }\n .share-poster .total-container .placard-img-container {\n width: 100%;\n height: 840px;\n background: #000;\n padding-top: 20px;\n overflow: hidden;\n position: relative;\n zoom: 0.5; }\n .share-poster .total-container .placard-img-container img {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n text-align: center; }\n .share-poster .total-container .placard-code {\n opacity: 0; }\n\n.share-poster .placard-desc {\n width: 100%;\n height: 45px;\n background: #000;\n padding: 0 10px; }\n .share-poster .placard-desc .placard-sharetxt {\n width: 100%;\n height: 100%;\n line-height: 20px;\n display: inline-block;\n font-size: 14px;\n color: #fff; }\n .share-poster .placard-desc .placard-sharetxt .placard-price {\n font-size: 14px;\n color: #09f; }\n\n.share-poster .placard-swiper {\n width: 100%;\n background-color: #fff; }\n .share-poster .placard-swiper .placard-list {\n display: flex;\n justify-content: center;\n align-items: center; }\n .share-poster .placard-swiper .placard-list li {\n width: 64px;\n height: 64px;\n border-radius: 5px;\n line-height: 90px;\n margin: 20px 15px; }\n .share-poster .placard-swiper .placard-list li img {\n display: inline-block;\n width: 64px;\n height: 64px;\n border-radius: 5px; }\n .share-poster .placard-swiper .placard-list li.active {\n width: 64px;\n height: 64px;\n background: url(\"./image/choose_pic.png\") no-repeat center;\n z-index: 1002;\n background-size: 64px; }\n .share-poster .placard-swiper .placard-list li.active img {\n opacity: 0.1; }\n\n.share-poster .hide {\n display: none; }\n"]}
\ No newline at end of file
.share-poster .total-container{width:100%;background-color:#000;height:112vw;overflow:hidden;position:relative}.share-poster .total-container .placard-img-container{width:100%;height:224vw;background:#000;padding-top:5.333333vw;overflow:hidden;position:relative;zoom:.5}.share-poster .total-container .placard-img-container img{position:absolute;top:50%;left:50%;margin-left:-60vw;margin-top:-106.666667vw;text-align:center}.share-poster .total-container .placard-code{opacity:0}.share-poster .placard-desc{width:100%;height:12vw;background:#000;padding:0 2.666667vw}.share-poster .placard-desc .placard-sharetxt{width:100%;height:100%;line-height:5.333333vw;display:inline-block;font-size:3.733333vw;color:#fff}.share-poster .placard-desc .placard-sharetxt .placard-price{font-size:3.733333vw;color:#09f}.share-poster .placard-swiper{width:100%;background-color:#fff}.share-poster .placard-swiper .placard-list{display:flex;justify-content:center;align-items:center}.share-poster .placard-swiper .placard-list li{width:17.066667vw;height:17.066667vw;border-radius:1.333333vw;line-height:24vw;margin:5.333333vw 4vw}.share-poster .placard-swiper .placard-list li img{display:inline-block;width:17.066667vw;height:17.066667vw;border-radius:1.333333vw}.share-poster .placard-swiper .placard-list li.active{width:17.066667vw;height:17.066667vw;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkJERkI3RjkzNjU4MjExRThBM0M2RjVEMUVEQUJDREUxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkJERkI3Rjk0NjU4MjExRThBM0M2RjVEMUVEQUJDREUxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QkRGQjdGOTE2NTgyMTFFOEEzQzZGNUQxRURBQkNERTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QkRGQjdGOTI2NTgyMTFFOEEzQzZGNUQxRURBQkNERTEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zmJvcAAANOklEQVR42uyd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) no-repeat 50%;z-index:1002;background-size:17.066667vw}.share-poster .placard-swiper .placard-list li.active img{opacity:.1}.share-poster .hide{display:none}
/*# sourceMappingURL=shareposter.9e774e45.chunk.css.map */
\ No newline at end of file
{"version":3,"sources":["/Users/xzh/dnmp/www/mr-julyedu/src/components/sharePoster/index.scss"],"names":[],"mappings":"AAmGA,+BAEI,UAAA,CACA,qBAAA,CACA,YAAA,CACA,eAAA,CACA,iBAAkB,CANtB,sDASM,UAAA,CACA,YAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CACA,iBAAA,CACA,OAAS,CAff,0DAkBQ,iBAAA,CACA,OAAA,CACA,QAAA,CACA,iBAAA,CACA,wBAAA,CACA,iBAAkB,CAvB1B,6CA4BM,SAAU,CA5BhB,4BAiCI,UAAA,CACA,WAAA,CACA,eAAA,CACA,oBAAe,CApCnB,8CAsCM,UAAA,CACA,WAAA,CACA,sBAAA,CACA,oBAAA,CACA,oBAAA,CACA,UA1IM,CA+FZ,6DA8CQ,oBAAA,CACA,UA/IK,CAgGb,8BAqDI,UAAA,CACA,qBArJQ,CA+FZ,4CAyDM,YAAA,CACA,sBAAA,CACA,kBAAmB,CA3DzB,+CA8DQ,iBAAA,CACA,kBAAA,CACA,wBAAA,CACA,gBAAA,CACA,qBAAiB,CAlEzB,mDAqEU,oBAAA,CACA,iBAAA,CACA,kBAAA,CACA,wBAAkB,CAxE5B,sDA6EQ,iBAAA,CACA,kBAAA,CACA,wpLAA0D,CAC1D,YAAA,CACA,2BAAqB,CAjF7B,0DAoFU,UAAY,CApFtB,oBA0FI,YAAa","file":"shareposter.9e774e45.chunk.css","sourcesContent":["@charset \"UTF-8\";\n/*\n * @ 文字颜色\n */\n/*\n * @ 文字大小\n */\n/*\n * @ 背景颜色\n */\n/*\n * @ 分割线颜色\n */\n/*\n * @ 边框颜色\n */\n/*\n * @ 标签颜色\n */\n.share-poster .total-container {\n width: 100%;\n background-color: #000;\n height: 420px;\n overflow: hidden;\n position: relative; }\n .share-poster .total-container .placard-img-container {\n width: 100%;\n height: 840px;\n background: #000;\n padding-top: 20px;\n overflow: hidden;\n position: relative;\n zoom: 0.5; }\n .share-poster .total-container .placard-img-container img {\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -225px;\n margin-top: -400px;\n text-align: center; }\n .share-poster .total-container .placard-code {\n opacity: 0; }\n\n.share-poster .placard-desc {\n width: 100%;\n height: 45px;\n background: #000;\n padding: 0 10px; }\n .share-poster .placard-desc .placard-sharetxt {\n width: 100%;\n height: 100%;\n line-height: 20px;\n display: inline-block;\n font-size: 14px;\n color: #fff; }\n .share-poster .placard-desc .placard-sharetxt .placard-price {\n font-size: 14px;\n color: #09f; }\n\n.share-poster .placard-swiper {\n width: 100%;\n background-color: #fff; }\n .share-poster .placard-swiper .placard-list {\n display: flex;\n justify-content: center;\n align-items: center; }\n .share-poster .placard-swiper .placard-list li {\n width: 64px;\n height: 64px;\n border-radius: 5px;\n line-height: 90px;\n margin: 20px 15px; }\n .share-poster .placard-swiper .placard-list li img {\n display: inline-block;\n width: 64px;\n height: 64px;\n border-radius: 5px; }\n .share-poster .placard-swiper .placard-list li.active {\n width: 64px;\n height: 64px;\n background: url(\"./image/choose_pic.png\") no-repeat center;\n z-index: 1002;\n background-size: 64px; }\n .share-poster .placard-swiper .placard-list li.active img {\n opacity: 0.1; }\n\n.share-poster .hide {\n display: none; }\n"]}
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{1162:function(e,a,t){"use strict";t.r(a),t.d(a,"default",function(){return j});t(155);var n=t(75),i=t.n(n),o=(t(89),t(26)),c=t.n(o),r=(t(154),t(35)),l=t.n(r),s=(t(44),t(14)),d=t.n(s),p=t(7),u=t(8),m=t(11),y=t(9),g=t(157),h=t(10),b=(t(890),t(892)),f=t.n(b),v=(t(115),t(47)),w=t.n(v),E=t(0),x=t.n(E),k=t(4),P=t(30),_=t(20),S=(t(894),w.a.Item.Brief,f.a.RadioItem),N=[];N=k.a.isWeixin?[{value:1,label:"\u5fae\u4fe1\u652f\u4ed8",icon:"iconweixinzhifu"}]:[{value:0,label:"\u652f\u4ed8\u5b9d",icon:"iconzhifubaox-"},{value:1,label:"\u5fae\u4fe1\u652f\u4ed8",icon:"iconweixinzhifu"}];var j=function(e){function a(e){var t;return Object(p.a)(this,a),(t=Object(m.a)(this,Object(y.a)(a).call(this,e))).redirectAfterPay=function(){var e=Object(k.b)("status"),a=Object(k.b)("type"),n=Object(k.b)("oid"),i=t.props.history;(e||a)&&(0===parseInt(e,10)?2===parseInt(a,10)?i.push("/togroup?id=".concat(n)):i.push("/purchased"):d.a.info("\u652f\u4ed8\u5f02\u5e38",2))},t.onChange=function(e){t.setState({payType:e,checkPeriod:!1}),2===e&&t.setState({huabei:!0})},t.checkStaging=function(e){console.log(e),t.setState({huabei:!1,stageNumber:e.value,singleMoney:e.everyTotal,periodNumber:e.stage,checkPeriod:!0})},t.print=function(){for(var e=arguments.length,a=new Array(e),t=0;t<e;t++)a[t]=arguments[t];console.log(a)},t.pay=function(){var e=t.state,a=e.payType,n=e.orderId;0===a?t.alipayPay(n):1===a&&t.weixinPay(n)},t.weixinPay=function(e){Object(k.e)()?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":k.c.get("".concat(API["base-api"],"/pay/wxpay/wap_charge/oid/").concat(e)).then(function(a){console.log(a),0===a.data.errno?window.location.href=a.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1&oid="+e).toLowerCase():d.a.info(a.data.msg+"weixinPay",2)})},t.isweixinPay=function(){var e=Object(k.b)("code");if(e){if(void 0===Object(k.b)("oid"))return;k.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(k.b)("oid"),"/code/").concat(e)).then(function(e){0===e.data.errno?(t.bridgeData=e.data.data,t.onBridgeReady(),"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",t.onBridgeReady,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",t.onBridgeReady),document.attachEvent("onWeixinJSBridgeReady",t.onBridgeReady)):t.onBridgeReady()):d.a.info(e.data.msg+"isweixinPay",2)})}},t.payCallback=function(){var e=Object(g.a)(t);e.intervalPayStatus=setInterval(function(){var a=this;k.c.get("".concat(API.home,"/m/orderState/oid/").concat(Object(k.b)("oid"))).then(function(t){401===t.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,k.c.get("".concat(API.home,"/m/app_order/detail/").concat(Object(k.b)("oid"))).then(function(e){"2"===e.data.data.course_type?a.props.history.replace("/togroup?id=".concat(Object(k.b)("oid"))):a.props.history.replace("/purchased")}))})},1e3)},t.onBridgeReady=function(){var e=t.bridgeData;console.log(t.bridgeData),WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},function(e){"get_brand_wcpay_request:ok"==e.err_msg?this.payCallback():alert("\u652f\u4ed8\u5931\u8d25")})},t.alipayPay=function(e){k.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.payCallback()):d.a.info(e.data.msg+"alipayPay",2)})},t.huabeiPay=function(e){var a=t.state,n=(a.singleMoney,a.periodNumber);console.log("\u82b1\u5457\u5206\u671f\u652f\u4ed8"),k.c.get("/pay/alipay/wap_charge/oid/".concat(e,"/plat/{plat} /hb_num/").concat(n)).then(function(e){console.log(e),0===e.data.errno?window.location=e.data.data.url:d.a.info(e.data.msg+"huabeiPay",2)})},t.state={pay_amount:0,payType:0,stageNumber:0,checkPeriod:!1,singleMoney:0,periodNumber:0,orderId:Object(k.b)("oid"),huabei:!1,fenqiList:[{value:"zhifubao",qishu:"3",lilv:"2.30%",everyMoney:300,feiyong:2.3},{value:"weixin",qishu:"6",lilv:"4.50%",everyMoney:150,feiyong:4.5},{value:"huabei",qishu:"9",lilv:"7.50%",everyMoney:100,feiyong:7.5}],categoryList:[]},t}return Object(h.a)(a,e),Object(u.a)(a,[{key:"componentDidMount",value:function(){var e=this;this.redirectAfterPay(),k.c.post("".concat(API["base-api"],"/m/order/detail"),{order_id:this.state.orderId}).then(function(a){if(console.log(a),200===a.data.errno){var t=a.data.data,n=t.course,i=t.pay_amount,o=[];[1,2,3].map(function(e){var a={};a.value=e,1===e?(a.stage=3,a.moneyRate="2.30%",a.rate=.023,a.periodic=(i/3).toFixed(2)):2===e?(a.stage=6,a.moneyRate="4.50%",a.rate=.045,a.periodic=(i/6).toFixed(2)):(a.stage=12,a.moneyRate="7.50%",a.rate=.075,a.periodic=(i/9).toFixed(2)),a.serviceFee=(i*a.rate/a.stage).toFixed(2),a.everyTotal=(parseFloat(a.periodic)+parseFloat(a.serviceFee)).toFixed(2),o.push(a)}),console.log(o),e.setState({pay_amount:i,categoryList:n,fenqiList:o})}else d.a.info(a.data.msg+"componentDidMount",2)}),(1===Object(k.b)("is_class")||Object(k.b)("weixinpay"))&&this.payCallback(),Object(k.e)()&&(this.setState({payType:1}),this.isweixinPay())}},{key:"render",value:function(){var e=this,a=this.state,t=a.orderId,n=a.pay_amount,o=a.payType,r=a.checkPeriod,s=a.singleMoney,d=a.periodNumber,p=a.huabei,u=a.fenqiList,m=a.categoryList,y=a.stageNumber;return x.a.createElement("div",{className:"pay-order"},x.a.createElement(P.e,{title:"\u786e\u8ba4\u652f\u4ed8",arrow:!0}),x.a.createElement(l.a,{size:"sm"}),x.a.createElement("div",{className:"order-number"},x.a.createElement(i.a,null,x.a.createElement(c.a,{justify:"between",align:"center",style:{height:"44px"}},x.a.createElement("span",null,"\u8ba2\u5355\u53f7"),x.a.createElement("span",{className:"number"},t)))),x.a.createElement(l.a,{size:"md"}),m.map(function(a,t){var n=x.a.createElement("div",{className:"order-info"},x.a.createElement("p",{className:"order-title text-overflow-one"},x.a.createElement(_.b,{to:"/detail?id=".concat(a.course_id)},a.course_title)),x.a.createElement("p",{className:"order-content text-overflow-2"},a.simpledescription),x.a.createElement("p",{className:"order-des"},x.a.createElement("span",{className:"order-newprice"},"\xa5",a.price1),x.a.createElement("span",{className:"order-price"},"\xa5",a.price0)));return x.a.createElement(P.i,{handleClick:e.print,key:t,img:a.image_name,id:a.course_id,info:n})}),x.a.createElement(l.a,{size:"md"}),x.a.createElement("div",{className:"order-number"},x.a.createElement(i.a,null,x.a.createElement(c.a,{justify:"between",align:"center",style:{height:"44px"}},x.a.createElement("span",null,"\u652f\u4ed8\u91d1\u989d"),x.a.createElement("span",{className:"money"},"\uffe5".concat(n))))),x.a.createElement(l.a,{size:"md"}),x.a.createElement(w.a,{renderHeader:function(){return"\u652f\u4ed8\u65b9\u5f0f"},className:"pay-type-list"},N.map(function(a){return x.a.createElement(S,{thumb:x.a.createElement("i",{className:"iconfont ".concat(a.icon," ").concat(o===a.value?"checked":"")}),key:a.value,checked:o===a.value,onChange:function(){return e.onChange(a.value)}},2===a.value?x.a.createElement(c.a,{direction:"column",align:"start",style:{width:"100%",marginTop:"6px"}},x.a.createElement(c.a,{direction:"row",justify:"between",style:{width:"100%",paddingRight:"30px"}},x.a.createElement("span",{style:{color:"#555555",fontSize:"14px"}},a.label),r?x.a.createElement("span",{style:{color:"#333333",fontSize:"12px"}},"".concat(s,"\u5143 \xd7 ").concat(d,"\u671f")):null),x.a.createElement(c.a,{justify:"start"},x.a.createElement("span",{style:{color:"#999999",fontSize:"12px"}},"\u652f\u4ed8\u4e0a\u9650\u53d7\u9650\u4e8e\u60a8\u7684\u82b1\u5457\u989d\u5ea6"))):a.label)})),x.a.createElement("div",{className:"pay-tip"},"\u8bf7\u572815\u5206\u949f\u5185\u5b8c\u6210\u652f\u4ed8\uff0c\u5426\u5219\u5c4a\u65f6\u7cfb\u7edf\u5c06\u5173\u95ed\u8be5\u8ba2\u5355\u3002"),x.a.createElement("div",{className:"pay-button",onClick:this.pay},"\u786e\u8ba4\u652f\u4ed8"),p?x.a.createElement("div",{className:"check-staging"},x.a.createElement("div",{className:"container"},x.a.createElement("p",{className:"check-title"},"\u8bf7\u9009\u62e9\u5206\u671f"),u.map(function(a){return x.a.createElement(S,{key:a.value,checked:y===a.value,onChange:function(){return e.checkStaging(a)}},"".concat(a.everyTotal,"\u5143 \xd7 ").concat(a.stage,"\u671f"),x.a.createElement(w.a.Item.Brief,null,"\u624b\u7eed\u8d39".concat(a.serviceFee,"\u5143/\u671f\uff0c\u8d39\u7387").concat(a.moneyRate)))}))):null)}}]),a}(E.Component)},894:function(e,a,t){}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[8],{1162:function(e,a,t){"use strict";t.r(a),t.d(a,"default",function(){return j});t(155);var n=t(75),i=t.n(n),o=(t(89),t(26)),c=t.n(o),r=(t(154),t(35)),l=t.n(r),s=(t(44),t(14)),d=t.n(s),p=t(7),u=t(8),m=t(11),y=t(9),g=t(157),h=t(10),b=(t(890),t(892)),f=t.n(b),v=(t(115),t(47)),w=t.n(v),E=t(0),x=t.n(E),k=t(4),P=t(30),_=t(20),S=(t(894),w.a.Item.Brief,f.a.RadioItem),N=[];N=k.a.isWeixin?[{value:1,label:"\u5fae\u4fe1\u652f\u4ed8",icon:"iconweixinzhifu"}]:[{value:0,label:"\u652f\u4ed8\u5b9d",icon:"iconzhifubaox-"},{value:1,label:"\u5fae\u4fe1\u652f\u4ed8",icon:"iconweixinzhifu"}];var j=function(e){function a(e){var t;return Object(p.a)(this,a),(t=Object(m.a)(this,Object(y.a)(a).call(this,e))).redirectAfterPay=function(){var e=Object(k.b)("status"),a=Object(k.b)("type"),n=Object(k.b)("oid"),i=t.props.history;(e||a)&&(0===parseInt(e,10)?2===parseInt(a,10)?i.push("/togroup?id=".concat(n)):i.push("/purchased"):d.a.info("\u652f\u4ed8\u5f02\u5e38",2))},t.onChange=function(e){t.setState({payType:e,checkPeriod:!1}),2===e&&t.setState({huabei:!0})},t.checkStaging=function(e){console.log(e),t.setState({huabei:!1,stageNumber:e.value,singleMoney:e.everyTotal,periodNumber:e.stage,checkPeriod:!0})},t.print=function(){for(var e=arguments.length,a=new Array(e),t=0;t<e;t++)a[t]=arguments[t];console.log(a)},t.pay=function(){var e=t.state,a=e.payType,n=e.orderId;0===a?t.alipayPay(n):1===a&&t.weixinPay(n)},t.weixinPay=function(e){Object(k.e)()?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":k.c.get("".concat(API["base-api"],"/pay/wxpay/wap_charge/oid/").concat(e)).then(function(a){console.log(a),0===a.data.errno?window.location.href=a.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1&oid="+e).toLowerCase():d.a.info(a.data.msg+"weixinPay",2)})},t.isweixinPay=function(){var e=Object(k.b)("code");if(e){if(void 0===Object(k.b)("oid"))return;k.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(k.b)("oid"),"/code/").concat(e)).then(function(e){0===e.data.errno?(t.bridgeData=e.data.data,t.onBridgeReady(),"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",t.onBridgeReady,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",t.onBridgeReady),document.attachEvent("onWeixinJSBridgeReady",t.onBridgeReady)):t.onBridgeReady()):d.a.info(e.data.msg+"isweixinPay",2)})}},t.payCallback=function(){var e=Object(g.a)(t);e.intervalPayStatus=setInterval(function(){var a=this;k.c.get("".concat(API.home,"/m/orderState/oid/").concat(Object(k.b)("oid"))).then(function(t){401===t.data.errno&&(clearInterval(e.intervalPayStatus),e.intervalPayStatus=null,k.c.get("".concat(API.home,"/m/app_order/detail/").concat(Object(k.b)("oid"))).then(function(e){"2"===e.data.data.course_type?a.props.history.replace("/togroup?id=".concat(Object(k.b)("oid"))):a.props.history.replace("/purchased")}))})},1e3)},t.onBridgeReady=function(){var e=t.bridgeData;console.log(t.bridgeData),WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},function(e){"get_brand_wcpay_request:ok"==e.err_msg?this.payCallback():alert("\u652f\u4ed8\u5931\u8d25")})},t.alipayPay=function(e){k.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge_new/oid/").concat(e)).then(function(e){0===e.data.errno?(t.payCallback(),window.location=e.data.data.url):d.a.info(e.data.msg+"alipayPay",2)})},t.huabeiPay=function(e){var a=t.state,n=(a.singleMoney,a.periodNumber);console.log("\u82b1\u5457\u5206\u671f\u652f\u4ed8"),k.c.get("/pay/alipay/wap_charge/oid/".concat(e,"/plat/{plat} /hb_num/").concat(n)).then(function(e){console.log(e),0===e.data.errno?window.location=e.data.data.url:d.a.info(e.data.msg+"huabeiPay",2)})},t.state={pay_amount:0,payType:0,stageNumber:0,checkPeriod:!1,singleMoney:0,periodNumber:0,orderId:Object(k.b)("oid"),huabei:!1,fenqiList:[{value:"zhifubao",qishu:"3",lilv:"2.30%",everyMoney:300,feiyong:2.3},{value:"weixin",qishu:"6",lilv:"4.50%",everyMoney:150,feiyong:4.5},{value:"huabei",qishu:"9",lilv:"7.50%",everyMoney:100,feiyong:7.5}],categoryList:[]},t}return Object(h.a)(a,e),Object(u.a)(a,[{key:"componentDidMount",value:function(){var e=this;this.redirectAfterPay(),k.c.post("".concat(API["base-api"],"/m/order/detail"),{order_id:this.state.orderId}).then(function(a){if(console.log(a),200===a.data.errno){var t=a.data.data,n=t.course,i=t.pay_amount,o=[];[1,2,3].map(function(e){var a={};a.value=e,1===e?(a.stage=3,a.moneyRate="2.30%",a.rate=.023,a.periodic=(i/3).toFixed(2)):2===e?(a.stage=6,a.moneyRate="4.50%",a.rate=.045,a.periodic=(i/6).toFixed(2)):(a.stage=12,a.moneyRate="7.50%",a.rate=.075,a.periodic=(i/9).toFixed(2)),a.serviceFee=(i*a.rate/a.stage).toFixed(2),a.everyTotal=(parseFloat(a.periodic)+parseFloat(a.serviceFee)).toFixed(2),o.push(a)}),console.log(o),e.setState({pay_amount:i,categoryList:n,fenqiList:o})}else d.a.info(a.data.msg+"componentDidMount",2)}),(1===Object(k.b)("is_class")||Object(k.b)("weixinpay"))&&this.payCallback(),Object(k.e)()&&(this.setState({payType:1}),this.isweixinPay())}},{key:"render",value:function(){var e=this,a=this.state,t=a.orderId,n=a.pay_amount,o=a.payType,r=a.checkPeriod,s=a.singleMoney,d=a.periodNumber,p=a.huabei,u=a.fenqiList,m=a.categoryList,y=a.stageNumber;return x.a.createElement("div",{className:"pay-order"},x.a.createElement(P.e,{title:"\u786e\u8ba4\u652f\u4ed8",arrow:!0}),x.a.createElement(l.a,{size:"sm"}),x.a.createElement("div",{className:"order-number"},x.a.createElement(i.a,null,x.a.createElement(c.a,{justify:"between",align:"center",style:{height:"44px"}},x.a.createElement("span",null,"\u8ba2\u5355\u53f7"),x.a.createElement("span",{className:"number"},t)))),x.a.createElement(l.a,{size:"md"}),m.map(function(a,t){var n=x.a.createElement("div",{className:"order-info"},x.a.createElement("p",{className:"order-title text-overflow-one"},x.a.createElement(_.b,{to:"/detail?id=".concat(a.course_id)},a.course_title)),x.a.createElement("p",{className:"order-content text-overflow-2"},a.simpledescription),x.a.createElement("p",{className:"order-des"},x.a.createElement("span",{className:"order-newprice"},"\xa5",a.price1),x.a.createElement("span",{className:"order-price"},"\xa5",a.price0)));return x.a.createElement(P.i,{handleClick:e.print,key:t,img:a.image_name,id:a.course_id,info:n})}),x.a.createElement(l.a,{size:"md"}),x.a.createElement("div",{className:"order-number"},x.a.createElement(i.a,null,x.a.createElement(c.a,{justify:"between",align:"center",style:{height:"44px"}},x.a.createElement("span",null,"\u652f\u4ed8\u91d1\u989d"),x.a.createElement("span",{className:"money"},"\uffe5".concat(n))))),x.a.createElement(l.a,{size:"md"}),x.a.createElement(w.a,{renderHeader:function(){return"\u652f\u4ed8\u65b9\u5f0f"},className:"pay-type-list"},N.map(function(a){return x.a.createElement(S,{thumb:x.a.createElement("i",{className:"iconfont ".concat(a.icon," ").concat(o===a.value?"checked":"")}),key:a.value,checked:o===a.value,onChange:function(){return e.onChange(a.value)}},2===a.value?x.a.createElement(c.a,{direction:"column",align:"start",style:{width:"100%",marginTop:"6px"}},x.a.createElement(c.a,{direction:"row",justify:"between",style:{width:"100%",paddingRight:"30px"}},x.a.createElement("span",{style:{color:"#555555",fontSize:"14px"}},a.label),r?x.a.createElement("span",{style:{color:"#333333",fontSize:"12px"}},"".concat(s,"\u5143 \xd7 ").concat(d,"\u671f")):null),x.a.createElement(c.a,{justify:"start"},x.a.createElement("span",{style:{color:"#999999",fontSize:"12px"}},"\u652f\u4ed8\u4e0a\u9650\u53d7\u9650\u4e8e\u60a8\u7684\u82b1\u5457\u989d\u5ea6"))):a.label)})),x.a.createElement("div",{className:"pay-tip"},"\u8bf7\u572815\u5206\u949f\u5185\u5b8c\u6210\u652f\u4ed8\uff0c\u5426\u5219\u5c4a\u65f6\u7cfb\u7edf\u5c06\u5173\u95ed\u8be5\u8ba2\u5355\u3002"),x.a.createElement("div",{className:"pay-button",onClick:this.pay},"\u786e\u8ba4\u652f\u4ed8"),p?x.a.createElement("div",{className:"check-staging"},x.a.createElement("div",{className:"container"},x.a.createElement("p",{className:"check-title"},"\u8bf7\u9009\u62e9\u5206\u671f"),u.map(function(a){return x.a.createElement(S,{key:a.value,checked:y===a.value,onChange:function(){return e.checkStaging(a)}},"".concat(a.everyTotal,"\u5143 \xd7 ").concat(a.stage,"\u671f"),x.a.createElement(w.a.Item.Brief,null,"\u624b\u7eed\u8d39".concat(a.serviceFee,"\u5143/\u671f\uff0c\u8d39\u7387").concat(a.moneyRate)))}))):null)}}]),a}(E.Component)},894:function(e,a,t){}}]);
//# sourceMappingURL=PayOrder.282dadb8.chunk.js.map //# sourceMappingURL=PayOrder.220217be.chunk.js.map
\ No newline at end of file \ No newline at end of file
{"version":3,"sources":["components/order/payOrder/PayOrder.js"],"names":["RadioItem","antd_mobile_lib_list__WEBPACK_IMPORTED_MODULE_17___default","a","Item","Brief","antd_mobile_lib_radio__WEBPACK_IMPORTED_MODULE_15___default","mockData","browser","isWeixin","value","label","icon","PayOrder","props","_this2","Object","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_8__","this","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_10__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_11__","call","redirectAfterPay","status","getParam","type","oid","history","parseInt","push","concat","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_7___default","info","onChange","setState","payType","checkPeriod","huabei","checkStaging","item","console","log","stageNumber","singleMoney","everyTotal","periodNumber","stage","print","_len","arguments","length","e","Array","_key","pay","_this2$state","state","orderId","alipayPay","weixinPay","is_weixin","window","location","href","encodeURIComponent","toLowerCase","http","get","API","then","res","data","errno","url","msg","isweixinPay","weixin_code","undefined","bridgeData","onBridgeReady","WeixinJSBridge","document","addEventListener","attachEvent","payCallback","_this","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_12__","intervalPayStatus","setInterval","_this3","home","clearInterval","course_type","replace","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","alert","huabeiPay","_this2$state2","pay_amount","fenqiList","qishu","lilv","everyMoney","feiyong","categoryList","_this4","post","order_id","_res$data$data","course","map","obj","moneyRate","rate","periodic","toFixed","serviceFee","parseFloat","_this5","_this$state","react__WEBPACK_IMPORTED_MODULE_18___default","createElement","className","_common_index__WEBPACK_IMPORTED_MODULE_20__","title","arrow","antd_mobile_lib_white_space__WEBPACK_IMPORTED_MODULE_5___default","size","antd_mobile_lib_wing_blank__WEBPACK_IMPORTED_MODULE_1___default","antd_mobile_lib_flex__WEBPACK_IMPORTED_MODULE_3___default","justify","align","style","height","index","Info","react_router_dom__WEBPACK_IMPORTED_MODULE_21__","to","course_id","course_title","simpledescription","price1","price0","handleClick","key","img","image_name","id","renderHeader","i","thumb","checked","direction","width","marginTop","paddingRight","color","fontSize","onClick","Component"],"mappings":"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","file":"static/js/PayOrder.220217be.chunk.js","sourcesContent":["import React, { Component } from 'react';\nimport {Flex, WingBlank, WhiteSpace, List, Radio, Toast} from 'antd-mobile';\nimport {http, getParam, is_weixin, browser } from '@/utils';\nimport { OrderItem, HeaderBar } from '@/common/index';\nimport { Link } from 'react-router-dom';\nimport './PayOrder.scss';\nimport { VList } from '@/common';\n\n\nconst Item = List.Item;\nconst Brief = Item.Brief;\nconst RadioItem = Radio.RadioItem;\n\nlet mockData = []\nif(browser.isWeixin) {\n mockData = [\n { value: 1, label: '微信支付', icon: 'iconweixinzhifu' }\n ];\n} else {\n mockData = [\n { value: 0, label: '支付宝', icon: 'iconzhifubaox-' },\n { value: 1, label: '微信支付', icon: 'iconweixinzhifu' },\n // { value: 2, label: '花呗分期', icon: 'iconhuabei' },\n ];\n}\n\n\n\n\nexport default class PayOrder extends Component {\n constructor(props) {\n super(props);\n this.state = {\n pay_amount: 0,\n payType: 0,\n stageNumber: 0,\n checkPeriod: false,\n singleMoney: 0,\n periodNumber: 0,\n orderId: getParam('oid'),\n huabei: false,\n fenqiList: [\n { value: 'zhifubao', qishu: '3', lilv: '2.30%', everyMoney: 300, feiyong: 2.3 },\n { value: 'weixin', qishu: '6', lilv: '4.50%', everyMoney: 150, feiyong: 4.5 },\n { value: 'huabei', qishu: '9', lilv: '7.50%', everyMoney: 100, feiyong: 7.5 },\n ],\n categoryList: [],\n }\n }\n\n // 支付成功后,判断并重定向\n redirectAfterPay = () => {\n // status:0成功,1失败\n const status = getParam('status');\n const type = getParam('type');\n const oid = getParam('oid');\n const { history } = this.props;\n if(status || type) {\n if(parseInt(status, 10) === 0) {\n // type订单类型 0普通订单 1团购 2小团 3砍价 4单集购买 5定金课定金 6定金课尾款\n if(parseInt(type, 10) === 2) {\n history.push(`/togroup?id=${oid}`);\n }else {\n history.push('/purchased');\n }\n }else {\n Toast.info('支付异常', 2);\n }\n }\n }\n\n onChange = (value) => {\n this.setState({\n payType: value,\n checkPeriod: false,\n });\n if (value === 2) {\n this.setState({\n huabei: true,\n });\n }\n };\n checkStaging = (item) => {\n console.log(item);\n this.setState({\n huabei: false,\n stageNumber: item.value,\n singleMoney: item.everyTotal,\n periodNumber: item.stage,\n checkPeriod: true,\n });\n }\n print = (...e) => {\n console.log(e);\n };\n // 确定购买\n pay = () => {\n const {payType, orderId} = this.state;\n if(payType === 0) {\n this.alipayPay(orderId)\n } else if (payType === 1) {\n this.weixinPay(orderId)\n }\n // else { // 花呗分期暂时不做\n // this.huabeiPay(orderId)\n // }\n }\n // 微信支付\n weixinPay = (orderId) => {\n // 微信内部-支付\n if (is_weixin()) {\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 console.log(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 + 'weixinPay', 2)\n }\n })\n }\n }\n // 微信内部支付\n isweixinPay = () => {\n let weixin_code = getParam('code')\n if (weixin_code) {\n if (getParam('oid') === undefined) {\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 this.bridgeData = res.data.data;\n this.onBridgeReady();\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady)\n }\n } else {\n this.onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg + 'isweixinPay', 2)\n }\n })\n }\n }\n }\n // 支付完成之后获取状态\n payCallback = () => {\n const _this = this;\n // 支付回调\n // 定时器轮训获取订单状态\n _this.intervalPayStatus = setInterval(function(){\n http.get(`${API.home}/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.home}/m/app_order/detail/${getParam('oid')}`).then(res => {\n if(res.data.data.course_type === '2') {\n this.props.history.replace(`/togroup?id=${getParam('oid')}`);\n }else{\n // 跳转到已购课程 /purchased 不需要传递任何参数\n this.props.history.replace(`/purchased`);\n }\n\n });\n }\n })\n }, 1000)\n }\n\n onBridgeReady = () => {\n const data = this.bridgeData;\n console.log(this.bridgeData);\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 this.payCallback()\n } else {\n alert('支付失败')\n }\n }\n )\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n http.get(`${API['base-api']}/pay/alipay/wap_charge_new/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n this.payCallback();\n window.location = res.data.data.url;\n } else {\n Toast.info(res.data.msg + 'alipayPay', 2)\n }\n })\n }\n // 花呗分期 暂时不做\n huabeiPay = (orderId) => {\n const {singleMoney, periodNumber} = this.state;\n\n console.log('花呗分期支付');\n http.get(`/pay/alipay/wap_charge/oid/${orderId}/plat/{plat} /hb_num/${periodNumber}`).then(res=>{\n console.log(res);\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n } else {\n Toast.info(res.data.msg + \"huabeiPay\", 2)\n }\n });\n }\n\n componentDidMount() {\n this.redirectAfterPay()\n http.post(`${API['base-api']}/m/order/detail`, { order_id: this.state.orderId }).then((res) => {\n console.log(res);\n if (res.data.errno !== 200) {\n Toast.info(res.data.msg + 'componentDidMount', 2);\n return;\n }\n const { course, pay_amount } = res.data.data;\n const fenqiList = [];\n [1, 2, 3].map((item)=>{\n let obj = {};\n obj.value = item;\n if(item === 1) {\n obj.stage = 3; //期数\n obj.moneyRate = '2.30%'; // 分期费率展示\n obj.rate = 0.023; // 分期费率计算\n obj.periodic = (pay_amount/3).toFixed(2); // 每期本金\n } else if (item === 2) {\n obj.stage = 6; //期数\n obj.moneyRate = '4.50%'; // 分期费率展示\n obj.rate = 0.045; // 分期费率计算\n obj.periodic = (pay_amount/6).toFixed(2); // 每期本金\n } else {\n obj.stage = 12; //期数\n obj.moneyRate = '7.50%'; // 分期费率展示\n obj.rate = 0.075; // 分期费率计算\n obj.periodic = (pay_amount/9).toFixed(2); // 每期本金\n }\n obj.serviceFee = ((pay_amount * obj.rate) / obj.stage).toFixed(2); // 每期的手续费 = 总金额 * 费率 / 期数\n obj.everyTotal = (parseFloat(obj.periodic) + parseFloat(obj.serviceFee)).toFixed(2);// 每期总费用 = 每期本金 + 每期手续费\n fenqiList.push(obj);\n });\n console.log(fenqiList);\n // { value: 'zhifubao', qishu: '3', lilv: '2.30%', everyMoney: 300, feiyong: 2.3 },\n // { value: 'weixin', qishu: '6', lilv: '4.50%', everyMoney: 150, feiyong: 4.5 },\n // { value: 'huabei', qishu: '9', lilv: '7.50%', everyMoney: 100, feiyong: 7.5 },\n this.setState({\n pay_amount,\n categoryList: course,\n fenqiList,\n });\n });\n if (getParam('is_class') === 1 || getParam('weixinpay')) {\n this.payCallback()\n }\n if (is_weixin()) {\n this.setState({\n payType: 1\n })\n this.isweixinPay()\n }\n }\n render() {\n const { orderId, pay_amount, payType, checkPeriod, singleMoney, periodNumber, huabei, fenqiList, categoryList, stageNumber } = this.state;\n return (\n <div className='pay-order'>\n <HeaderBar title='确认支付' arrow={true}></HeaderBar>\n <WhiteSpace size='sm'></WhiteSpace>\n <div className='order-number'>\n <WingBlank>\n <Flex justify='between' align='center' style={{ height: '44px' }}>\n <span>订单号</span>\n <span className='number'>{orderId}</span>\n </Flex>\n </WingBlank>\n </div>\n <WhiteSpace size='md'></WhiteSpace>\n {\n categoryList.map((item, index) => {\n const Info = (\n <div className=\"order-info\">\n <p className='order-title text-overflow-one'>\n <Link to={`/detail?id=${item.course_id}`}>{item.course_title}</Link>\n </p>\n <p className='order-content text-overflow-2'>{item.simpledescription}</p>\n <p className='order-des'>\n <span className='order-newprice'>¥{item.price1}</span>\n <span className='order-price'>¥{item.price0}</span>\n </p>\n </div>\n )\n return (\n <VList handleClick={this.print} key={index} img={item.image_name}\n id={item.course_id}\n info={Info}></VList>\n )\n })\n }\n <WhiteSpace size='md'></WhiteSpace>\n <div className='order-number'>\n <WingBlank>\n <Flex justify='between' align='center' style={{ height: '44px' }}>\n <span>支付金额</span>\n <span className='money'>{`¥${pay_amount}`}</span>\n </Flex>\n </WingBlank>\n </div>\n\n <WhiteSpace size='md'></WhiteSpace>\n <List renderHeader={() => '支付方式'} className='pay-type-list'>\n {mockData.map(i => (\n <RadioItem\n thumb={<i className={`iconfont ${i.icon} ${payType === i.value ? 'checked' : ''}`}></i>}\n key={i.value}\n checked={payType === i.value}\n onChange={() => this.onChange(i.value)}>\n {/* {i.label} */}\n {\n i.value === 2 ? (\n <Flex direction='column' align='start' style={{ width: '100%', marginTop: '6px' }}>\n <Flex direction='row' justify='between' style={{ width: '100%', paddingRight: '30px' }}>\n <span style={{ color: '#555555', fontSize: '14px' }}>{i.label}</span>\n {\n checkPeriod ? (\n <span style={{ color: '#333333', fontSize: '12px' }}>{`${singleMoney}元 × ${periodNumber}期`}</span>\n ) : null\n }\n </Flex>\n <Flex justify='start'>\n <span style={{ color: '#999999', fontSize: '12px' }}>支付上限受限于您的花呗额度</span>\n </Flex>\n </Flex>\n ) : (i.label)\n }\n </RadioItem>\n ))}\n </List>\n <div className='pay-tip'>请在15分钟内完成支付,否则届时系统将关闭该订单。</div>\n\n <div className='pay-button' onClick={this.pay}>确认支付</div>\n\n {\n huabei ? (\n <div className='check-staging'>\n <div className='container'>\n <p className='check-title'>请选择分期</p>\n {fenqiList.map(i => (\n <RadioItem\n key={i.value}\n checked={stageNumber === i.value}\n onChange={() => this.checkStaging(i)}>\n {`${i.everyTotal}元 × ${i.stage}期`}\n <List.Item.Brief>{`手续费${i.serviceFee}元/期,费率${i.moneyRate}`}</List.Item.Brief>\n </RadioItem>\n ))}\n </div>\n </div>\n ) : null\n }\n </div>\n )\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["components/order/payOrder/PayOrder.js"],"names":["RadioItem","antd_mobile_lib_list__WEBPACK_IMPORTED_MODULE_17___default","a","Item","Brief","antd_mobile_lib_radio__WEBPACK_IMPORTED_MODULE_15___default","mockData","browser","isWeixin","value","label","icon","PayOrder","props","_this2","Object","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_8__","this","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_10__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_11__","call","redirectAfterPay","status","getParam","type","oid","history","parseInt","push","concat","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_7___default","info","onChange","setState","payType","checkPeriod","huabei","checkStaging","item","console","log","stageNumber","singleMoney","everyTotal","periodNumber","stage","print","_len","arguments","length","e","Array","_key","pay","_this2$state","state","orderId","alipayPay","weixinPay","is_weixin","window","location","href","encodeURIComponent","toLowerCase","http","get","API","then","res","data","errno","url","msg","isweixinPay","weixin_code","undefined","bridgeData","onBridgeReady","WeixinJSBridge","document","addEventListener","attachEvent","payCallback","_this","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_assertThisInitialized__WEBPACK_IMPORTED_MODULE_12__","intervalPayStatus","setInterval","_this3","home","clearInterval","course_type","replace","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","alert","huabeiPay","_this2$state2","pay_amount","fenqiList","qishu","lilv","everyMoney","feiyong","categoryList","_this4","post","order_id","_res$data$data","course","map","obj","moneyRate","rate","periodic","toFixed","serviceFee","parseFloat","_this5","_this$state","react__WEBPACK_IMPORTED_MODULE_18___default","createElement","className","_common_index__WEBPACK_IMPORTED_MODULE_20__","title","arrow","antd_mobile_lib_white_space__WEBPACK_IMPORTED_MODULE_5___default","size","antd_mobile_lib_wing_blank__WEBPACK_IMPORTED_MODULE_1___default","antd_mobile_lib_flex__WEBPACK_IMPORTED_MODULE_3___default","justify","align","style","height","index","Info","react_router_dom__WEBPACK_IMPORTED_MODULE_21__","to","course_id","course_title","simpledescription","price1","price0","handleClick","key","img","image_name","id","renderHeader","i","thumb","checked","direction","width","marginTop","paddingRight","color","fontSize","onClick","Component"],"mappings":"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","file":"static/js/PayOrder.282dadb8.chunk.js","sourcesContent":["import React, { Component } from 'react';\nimport {Flex, WingBlank, WhiteSpace, List, Radio, Toast} from 'antd-mobile';\nimport {http, getParam, is_weixin, browser } from '@/utils';\nimport { OrderItem, HeaderBar } from '@/common/index';\nimport { Link } from 'react-router-dom';\nimport './PayOrder.scss';\nimport { VList } from '@/common';\n\n\nconst Item = List.Item;\nconst Brief = Item.Brief;\nconst RadioItem = Radio.RadioItem;\n\nlet mockData = []\nif(browser.isWeixin) {\n mockData = [\n { value: 1, label: '微信支付', icon: 'iconweixinzhifu' }\n ];\n} else {\n mockData = [\n { value: 0, label: '支付宝', icon: 'iconzhifubaox-' },\n { value: 1, label: '微信支付', icon: 'iconweixinzhifu' },\n // { value: 2, label: '花呗分期', icon: 'iconhuabei' },\n ];\n}\n\n\n\n\nexport default class PayOrder extends Component {\n constructor(props) {\n super(props);\n this.state = {\n pay_amount: 0,\n payType: 0,\n stageNumber: 0,\n checkPeriod: false,\n singleMoney: 0,\n periodNumber: 0,\n orderId: getParam('oid'),\n huabei: false,\n fenqiList: [\n { value: 'zhifubao', qishu: '3', lilv: '2.30%', everyMoney: 300, feiyong: 2.3 },\n { value: 'weixin', qishu: '6', lilv: '4.50%', everyMoney: 150, feiyong: 4.5 },\n { value: 'huabei', qishu: '9', lilv: '7.50%', everyMoney: 100, feiyong: 7.5 },\n ],\n categoryList: [],\n }\n }\n\n // 支付成功后,判断并重定向\n redirectAfterPay = () => {\n // status:0成功,1失败\n const status = getParam('status');\n const type = getParam('type');\n const oid = getParam('oid');\n const { history } = this.props;\n if(status || type) {\n if(parseInt(status, 10) === 0) {\n // type订单类型 0普通订单 1团购 2小团 3砍价 4单集购买 5定金课定金 6定金课尾款\n if(parseInt(type, 10) === 2) {\n history.push(`/togroup?id=${oid}`);\n }else {\n history.push('/purchased');\n }\n }else {\n Toast.info('支付异常', 2);\n }\n }\n }\n\n onChange = (value) => {\n this.setState({\n payType: value,\n checkPeriod: false,\n });\n if (value === 2) {\n this.setState({\n huabei: true,\n });\n }\n };\n checkStaging = (item) => {\n console.log(item);\n this.setState({\n huabei: false,\n stageNumber: item.value,\n singleMoney: item.everyTotal,\n periodNumber: item.stage,\n checkPeriod: true,\n });\n }\n print = (...e) => {\n console.log(e);\n };\n // 确定购买\n pay = () => {\n const {payType, orderId} = this.state;\n if(payType === 0) {\n this.alipayPay(orderId)\n } else if (payType === 1) {\n this.weixinPay(orderId)\n }\n // else { // 花呗分期暂时不做\n // this.huabeiPay(orderId)\n // }\n }\n // 微信支付\n weixinPay = (orderId) => {\n // 微信内部-支付\n if (is_weixin()) {\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 console.log(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 + 'weixinPay', 2)\n }\n })\n }\n }\n // 微信内部支付\n isweixinPay = () => {\n let weixin_code = getParam('code')\n if (weixin_code) {\n if (getParam('oid') === undefined) {\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 this.bridgeData = res.data.data;\n this.onBridgeReady();\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady)\n }\n } else {\n this.onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg + 'isweixinPay', 2)\n }\n })\n }\n }\n }\n // 支付完成之后获取状态\n payCallback = () => {\n const _this = this;\n // 支付回调\n // 定时器轮训获取订单状态\n _this.intervalPayStatus = setInterval(function(){\n http.get(`${API.home}/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.home}/m/app_order/detail/${getParam('oid')}`).then(res => {\n if(res.data.data.course_type === '2') {\n this.props.history.replace(`/togroup?id=${getParam('oid')}`);\n }else{\n // 跳转到已购课程 /purchased 不需要传递任何参数\n this.props.history.replace(`/purchased`);\n }\n\n });\n }\n })\n }, 1000)\n }\n\n onBridgeReady = () => {\n const data = this.bridgeData;\n console.log(this.bridgeData);\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 this.payCallback()\n } else {\n alert('支付失败')\n }\n }\n )\n }\n // 支付宝支付\n alipayPay = (orderId) => {\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 this.payCallback();\n } else {\n Toast.info(res.data.msg + 'alipayPay', 2)\n }\n })\n }\n // 花呗分期 暂时不做\n huabeiPay = (orderId) => {\n const {singleMoney, periodNumber} = this.state;\n\n console.log('花呗分期支付');\n http.get(`/pay/alipay/wap_charge/oid/${orderId}/plat/{plat} /hb_num/${periodNumber}`).then(res=>{\n console.log(res);\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n } else {\n Toast.info(res.data.msg + \"huabeiPay\", 2)\n }\n });\n }\n\n componentDidMount() {\n this.redirectAfterPay()\n http.post(`${API['base-api']}/m/order/detail`, { order_id: this.state.orderId }).then((res) => {\n console.log(res);\n if (res.data.errno !== 200) {\n Toast.info(res.data.msg + 'componentDidMount', 2);\n return;\n }\n const { course, pay_amount } = res.data.data;\n const fenqiList = [];\n [1, 2, 3].map((item)=>{\n let obj = {};\n obj.value = item;\n if(item === 1) {\n obj.stage = 3; //期数\n obj.moneyRate = '2.30%'; // 分期费率展示\n obj.rate = 0.023; // 分期费率计算\n obj.periodic = (pay_amount/3).toFixed(2); // 每期本金\n } else if (item === 2) {\n obj.stage = 6; //期数\n obj.moneyRate = '4.50%'; // 分期费率展示\n obj.rate = 0.045; // 分期费率计算\n obj.periodic = (pay_amount/6).toFixed(2); // 每期本金\n } else {\n obj.stage = 12; //期数\n obj.moneyRate = '7.50%'; // 分期费率展示\n obj.rate = 0.075; // 分期费率计算\n obj.periodic = (pay_amount/9).toFixed(2); // 每期本金\n }\n obj.serviceFee = ((pay_amount * obj.rate) / obj.stage).toFixed(2); // 每期的手续费 = 总金额 * 费率 / 期数\n obj.everyTotal = (parseFloat(obj.periodic) + parseFloat(obj.serviceFee)).toFixed(2);// 每期总费用 = 每期本金 + 每期手续费\n fenqiList.push(obj);\n });\n console.log(fenqiList);\n // { value: 'zhifubao', qishu: '3', lilv: '2.30%', everyMoney: 300, feiyong: 2.3 },\n // { value: 'weixin', qishu: '6', lilv: '4.50%', everyMoney: 150, feiyong: 4.5 },\n // { value: 'huabei', qishu: '9', lilv: '7.50%', everyMoney: 100, feiyong: 7.5 },\n this.setState({\n pay_amount,\n categoryList: course,\n fenqiList,\n });\n });\n if (getParam('is_class') === 1 || getParam('weixinpay')) {\n this.payCallback()\n }\n if (is_weixin()) {\n this.setState({\n payType: 1\n })\n this.isweixinPay()\n }\n }\n render() {\n const { orderId, pay_amount, payType, checkPeriod, singleMoney, periodNumber, huabei, fenqiList, categoryList, stageNumber } = this.state;\n return (\n <div className='pay-order'>\n <HeaderBar title='确认支付' arrow={true}></HeaderBar>\n <WhiteSpace size='sm'></WhiteSpace>\n <div className='order-number'>\n <WingBlank>\n <Flex justify='between' align='center' style={{ height: '44px' }}>\n <span>订单号</span>\n <span className='number'>{orderId}</span>\n </Flex>\n </WingBlank>\n </div>\n <WhiteSpace size='md'></WhiteSpace>\n {\n categoryList.map((item, index) => {\n const Info = (\n <div className=\"order-info\">\n <p className='order-title text-overflow-one'>\n <Link to={`/detail?id=${item.course_id}`}>{item.course_title}</Link>\n </p>\n <p className='order-content text-overflow-2'>{item.simpledescription}</p>\n <p className='order-des'>\n <span className='order-newprice'>¥{item.price1}</span>\n <span className='order-price'>¥{item.price0}</span>\n </p>\n </div>\n )\n return (\n <VList handleClick={this.print} key={index} img={item.image_name}\n id={item.course_id}\n info={Info}></VList>\n )\n })\n }\n <WhiteSpace size='md'></WhiteSpace>\n <div className='order-number'>\n <WingBlank>\n <Flex justify='between' align='center' style={{ height: '44px' }}>\n <span>支付金额</span>\n <span className='money'>{`¥${pay_amount}`}</span>\n </Flex>\n </WingBlank>\n </div>\n\n <WhiteSpace size='md'></WhiteSpace>\n <List renderHeader={() => '支付方式'} className='pay-type-list'>\n {mockData.map(i => (\n <RadioItem\n thumb={<i className={`iconfont ${i.icon} ${payType === i.value ? 'checked' : ''}`}></i>}\n key={i.value}\n checked={payType === i.value}\n onChange={() => this.onChange(i.value)}>\n {/* {i.label} */}\n {\n i.value === 2 ? (\n <Flex direction='column' align='start' style={{ width: '100%', marginTop: '6px' }}>\n <Flex direction='row' justify='between' style={{ width: '100%', paddingRight: '30px' }}>\n <span style={{ color: '#555555', fontSize: '14px' }}>{i.label}</span>\n {\n checkPeriod ? (\n <span style={{ color: '#333333', fontSize: '12px' }}>{`${singleMoney}元 × ${periodNumber}期`}</span>\n ) : null\n }\n </Flex>\n <Flex justify='start'>\n <span style={{ color: '#999999', fontSize: '12px' }}>支付上限受限于您的花呗额度</span>\n </Flex>\n </Flex>\n ) : (i.label)\n }\n </RadioItem>\n ))}\n </List>\n <div className='pay-tip'>请在15分钟内完成支付,否则届时系统将关闭该订单。</div>\n\n <div className='pay-button' onClick={this.pay}>确认支付</div>\n\n {\n huabei ? (\n <div className='check-staging'>\n <div className='container'>\n <p className='check-title'>请选择分期</p>\n {fenqiList.map(i => (\n <RadioItem\n key={i.value}\n checked={stageNumber === i.value}\n onChange={() => this.checkStaging(i)}>\n {`${i.everyTotal}元 × ${i.stage}期`}\n <List.Item.Brief>{`手续费${i.serviceFee}元/期,费率${i.moneyRate}`}</List.Item.Brief>\n </RadioItem>\n ))}\n </div>\n </div>\n ) : null\n }\n </div>\n )\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e){function r(r){for(var a,n,i=r[0],d=r[1],f=r[2],u=0,l=[];u<i.length;u++)n=i[u],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,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 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:"6d24aba4",1:"2ef92576",2:"49ca5e9b",3:"aeb3f822",4:"7bb0622b",5:"31d6cfe0",6:"c25de43a",7:"31d6cfe0",8:"71617dc9",9:"a285bc5d",10:"706b43f2",11:"fa7d91fc",12:"a97e13d0",13:"f2c7a13b",14:"2f69295d",16:"789a128d",17:"bd80fb0a",19:"68fd6acc",20:"175bee2a",21:"95315632",22:"f08bc5f3",23:"a4013dc8",25:"31d6cfe0",26:"73976871",27:"31d6cfe0",28:"42a89c77",29:"bf839917",30:"35e22f8c",31:"57d8b033"}[e]+".chunk.css",o=i.p+a,c=document.getElementsByTagName("link"),d=0;d<c.length;d++){var f=(s=c[d]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(f===a||f===o))return r()}var u=document.getElementsByTagName("style");for(d=0;d<u.length;d++){var s;if((f=(s=u[d]).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,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:"c17d2450",1:"17ebd626",2:"df1427b5",3:"7fd9d55d",4:"681b3739",5:"539ac99a",6:"36a03aa7",7:"229e2d92",8:"282dadb8",9:"1ac4da1c",10:"21f335ee",11:"a3aa3523",12:"645eee55",13:"72b220db",14:"70bdafef",16:"fa5a3185",17:"1a0cc90e",19:"449ffe8e",20:"2842f7fe",21:"7d4b3c37",22:"d73bccb5",23:"46b1913c",25:"403aae65",26:"f842ed87",27:"33496196",28:"ab85697f",29:"52529984",30:"3e2101f4",31:"1bf13040"}[e]+".chunk.js"}(e),c=function(r){d.onerror=d.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: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||[],f=d.push.bind(d);d.push=r,d=d.slice();for(var u=0;u<d.length;u++)r(d[u]);var s=f;t()}([]); !function(e){function r(r){for(var a,n,i=r[0],d=r[1],f=r[2],u=0,l=[];u<i.length;u++)n=i[u],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,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 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:"6d24aba4",1:"2ef92576",2:"49ca5e9b",3:"aeb3f822",4:"7bb0622b",5:"31d6cfe0",6:"c25de43a",7:"31d6cfe0",8:"71617dc9",9:"a285bc5d",10:"706b43f2",11:"fa7d91fc",12:"a97e13d0",13:"f2c7a13b",14:"2f69295d",16:"789a128d",17:"bd80fb0a",19:"68fd6acc",20:"9e774e45",21:"95315632",22:"f08bc5f3",23:"a4013dc8",25:"31d6cfe0",26:"73976871",27:"31d6cfe0",28:"42a89c77",29:"bf839917",30:"35e22f8c",31:"57d8b033"}[e]+".chunk.css",o=i.p+a,c=document.getElementsByTagName("link"),d=0;d<c.length;d++){var f=(s=c[d]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(f===a||f===o))return r()}var u=document.getElementsByTagName("style");for(d=0;d<u.length;d++){var s;if((f=(s=u[d]).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,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:"c17d2450",1:"17ebd626",2:"df1427b5",3:"7fd9d55d",4:"681b3739",5:"539ac99a",6:"36a03aa7",7:"229e2d92",8:"220217be",9:"1ac4da1c",10:"21f335ee",11:"a3aa3523",12:"645eee55",13:"72b220db",14:"70bdafef",16:"fa5a3185",17:"1a0cc90e",19:"449ffe8e",20:"2842f7fe",21:"f2aa4d8c",22:"d73bccb5",23:"7c320d7a",25:"403aae65",26:"f842ed87",27:"33496196",28:"ab85697f",29:"52529984",30:"3e2101f4",31:"1bf13040"}[e]+".chunk.js"}(e),c=function(r){d.onerror=d.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: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||[],f=d.push.bind(d);d.push=r,d=d.slice();for(var u=0;u<d.length;u++)r(d[u]);var s=f;t()}([]);
//# sourceMappingURL=runtime~main.68d0a616.js.map //# sourceMappingURL=runtime~main.bcece0b8.js.map
\ No newline at end of file \ 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.68d0a616.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\":\"c17d2450\",\"1\":\"17ebd626\",\"2\":\"df1427b5\",\"3\":\"7fd9d55d\",\"4\":\"681b3739\",\"5\":\"539ac99a\",\"6\":\"36a03aa7\",\"7\":\"229e2d92\",\"8\":\"282dadb8\",\"9\":\"1ac4da1c\",\"10\":\"21f335ee\",\"11\":\"a3aa3523\",\"12\":\"645eee55\",\"13\":\"72b220db\",\"14\":\"70bdafef\",\"16\":\"fa5a3185\",\"17\":\"1a0cc90e\",\"19\":\"449ffe8e\",\"20\":\"2842f7fe\",\"21\":\"7d4b3c37\",\"22\":\"d73bccb5\",\"23\":\"46b1913c\",\"25\":\"403aae65\",\"26\":\"f842ed87\",\"27\":\"33496196\",\"28\":\"ab85697f\",\"29\":\"52529984\",\"30\":\"3e2101f4\",\"31\":\"1bf13040\"}[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\":\"6d24aba4\",\"1\":\"2ef92576\",\"2\":\"49ca5e9b\",\"3\":\"aeb3f822\",\"4\":\"7bb0622b\",\"5\":\"31d6cfe0\",\"6\":\"c25de43a\",\"7\":\"31d6cfe0\",\"8\":\"71617dc9\",\"9\":\"a285bc5d\",\"10\":\"706b43f2\",\"11\":\"fa7d91fc\",\"12\":\"a97e13d0\",\"13\":\"f2c7a13b\",\"14\":\"2f69295d\",\"16\":\"789a128d\",\"17\":\"bd80fb0a\",\"19\":\"68fd6acc\",\"20\":\"175bee2a\",\"21\":\"95315632\",\"22\":\"f08bc5f3\",\"23\":\"a4013dc8\",\"25\":\"31d6cfe0\",\"26\":\"73976871\",\"27\":\"31d6cfe0\",\"28\":\"42a89c77\",\"29\":\"bf839917\",\"30\":\"35e22f8c\",\"31\":\"57d8b033\"}[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":""} {"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.bcece0b8.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\":\"c17d2450\",\"1\":\"17ebd626\",\"2\":\"df1427b5\",\"3\":\"7fd9d55d\",\"4\":\"681b3739\",\"5\":\"539ac99a\",\"6\":\"36a03aa7\",\"7\":\"229e2d92\",\"8\":\"220217be\",\"9\":\"1ac4da1c\",\"10\":\"21f335ee\",\"11\":\"a3aa3523\",\"12\":\"645eee55\",\"13\":\"72b220db\",\"14\":\"70bdafef\",\"16\":\"fa5a3185\",\"17\":\"1a0cc90e\",\"19\":\"449ffe8e\",\"20\":\"2842f7fe\",\"21\":\"f2aa4d8c\",\"22\":\"d73bccb5\",\"23\":\"7c320d7a\",\"25\":\"403aae65\",\"26\":\"f842ed87\",\"27\":\"33496196\",\"28\":\"ab85697f\",\"29\":\"52529984\",\"30\":\"3e2101f4\",\"31\":\"1bf13040\"}[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\":\"6d24aba4\",\"1\":\"2ef92576\",\"2\":\"49ca5e9b\",\"3\":\"aeb3f822\",\"4\":\"7bb0622b\",\"5\":\"31d6cfe0\",\"6\":\"c25de43a\",\"7\":\"31d6cfe0\",\"8\":\"71617dc9\",\"9\":\"a285bc5d\",\"10\":\"706b43f2\",\"11\":\"fa7d91fc\",\"12\":\"a97e13d0\",\"13\":\"f2c7a13b\",\"14\":\"2f69295d\",\"16\":\"789a128d\",\"17\":\"bd80fb0a\",\"19\":\"68fd6acc\",\"20\":\"9e774e45\",\"21\":\"95315632\",\"22\":\"f08bc5f3\",\"23\":\"a4013dc8\",\"25\":\"31d6cfe0\",\"26\":\"73976871\",\"27\":\"31d6cfe0\",\"28\":\"42a89c77\",\"29\":\"bf839917\",\"30\":\"35e22f8c\",\"31\":\"57d8b033\"}[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 \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{1177:function(e,t,a){"use strict";a.r(t);var n=a(7),s=a(8),r=a(11),o=a(9),i=a(10),l=a(0),c=a.n(l),u=(a(782),a(20)),p=a(53),d=a(647),m=(a(783),a(156)),h=a(21),f=a(84),v=a(649),b=a.n(v),y=a(40),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.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(44),a(14)),O=a.n(k),_=(a(784),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(785),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=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(17),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)},647:function(e,t,a){"use strict";var n=a(0),s=a.n(n);a(648);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)}},648:function(e,t,a){},649:function(e,t,a){e.exports=a(650)},650: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},782:function(e,t,a){},783:function(e,t,a){},784:function(e,t,a){},785:function(e,t,a){}}]);
//# sourceMappingURL=study.7d4b3c37.chunk.js.map
\ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{1177:function(e,t,a){"use strict";a.r(t);var n=a(7),s=a(8),r=a(11),o=a(9),i=a(10),l=a(0),c=a.n(l),u=(a(782),a(20)),p=a(53),d=a(647),m=(a(783),a(156)),h=a(21),f=a(84),v=a(649),b=a.n(v),y=a(40),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(44),a(14)),O=a.n(k),_=(a(784),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(785),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=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(17),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)},647:function(e,t,a){"use strict";var n=a(0),s=a.n(n);a(648);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)}},648:function(e,t,a){},649:function(e,t,a){e.exports=a(650)},650: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},782:function(e,t,a){},783:function(e,t,a){},784:function(e,t,a){},785:function(e,t,a){}}]);
//# sourceMappingURL=study.f2aa4d8c.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.7d4b3c37.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['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'] ? <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":""} {"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":"kQAoBA,IAAMA,EAAYC,IAAMC,KAAK,SAAAC,GAAA,IAAEC,EAAFD,EAAEC,eAAF,OACzBC,EAAAC,EAAAC,cAAA,OAAKC,UAAU,cACXH,EAAAC,EAAAC,cAAA,UAAQC,UAAU,MAAMC,QAASL,GAAjC,gCAIR,SAASM,EAATC,GAAkD,IAAAC,EAAAD,EAAjCE,OAASC,EAAwBF,EAAxBE,QAASC,EAAeH,EAAfG,YAE3BC,EAAS,GAEb,GAAID,EAAa,CACb,IAAIE,EAJC,uBAIgBC,KAAKH,GAC1BC,GAAWC,GAAeA,EAAY,GAAMA,EAAY,GAAK,GAGjE,GAAIH,EAAS,CACT,IAAIK,EAxBZ,SAAsBL,GAClB,MAAO,CACHM,KAAMC,KAAKC,MAAMR,EAAO,MACxBS,IAAKF,KAAKC,MAAMR,EAAU,IAAM,GAChCU,IAAKV,EAAU,IAoBCW,CAAaX,GAK7BE,IAJWG,EAAUC,KAAOM,OAAOP,EAAUC,MAAMO,SAAS,EAAG,KAAO,IAAM,KAClER,EAAUI,IAAMG,OAAOP,EAAUI,KAAKI,SAAS,EAAG,KAAO,IAAM,KAC/DR,EAAUK,IAAME,OAAOP,EAAUK,KAAKG,SAAS,EAAG,KAAO,IAKvE,OACItB,EAAAC,EAAAC,cAAA,QAAMC,UAAW,UAETQ,EAAOY,OAAP,qBAAAC,OAAsBb,GAAW,MAOjD,IAAMc,EAAS7B,IAAMC,KAAK,SAAA6B,GAAY,IAAVC,EAAUD,EAAVC,KACxB,GAAIA,EAAKC,KAAOD,EAAKlB,QAAS,CAC1B,IAAIoB,EAAO,IAAIC,KAAgB,IAAXH,EAAKC,KACrBG,EAAOC,kBAAQH,GAAQI,iBAAOJ,EAAM,oBAAYI,iBAAOJ,EAAM,oBACjE,OACI7B,EAAAC,EAAAC,cAAA,OAAKC,UAAU,OACXH,EAAAC,EAAAC,cAAA,QAAMC,UAAU,QAAQ4B,GACxB/B,EAAAC,EAAAC,cAACG,EAAD,CAAQG,OAAQmB,KAI5B,OACI3B,EAAAC,EAAAC,cAAA,UAAQC,UAAU,eAAlB,8BAIF+B,6MAIFC,MAAQ,CACJC,WAAW,KAGfC,YAAc,SAAAC,GACVC,EAAKC,MAAMC,QAAQC,KAAnB,kBAAAlB,OAA0Cc,OAE9CvC,eAAiB,WACbwC,EAAKC,MAAMC,QAAQC,KAAK,gBAY5BC,SAAWC,mBAAS,WACZL,EAAKC,MAAMK,WAAWtB,OAAS,KAAO,GACtCgB,EAAKC,MAAMM,4BAEhB,wFAZCC,KAAKP,MAAMQ,WAAU,GACrBD,KAAKP,MAAMM,0EAIXC,KAAKP,MAAMQ,WAAU,oCAShB,IAAAC,EAAAF,KAAAG,EACoBH,KAAKP,MAAzBK,EADAK,EACAL,WAAYM,EADZD,EACYC,KAEjB,OAAOnD,EAAAC,EAAAC,cAACkD,EAAA,EAAD,CAAShB,UAAWW,KAAKP,MAAMJ,WAE9BS,GAAoC,IAAtBA,EAAWtB,OAErBvB,EAAAC,EAAAC,cAAAF,EAAAC,EAAAoD,SAAA,KACIrD,EAAAC,EAAAC,cAAA,OAAKC,UAAU,iBAAf,+DAAAqB,QACmB2B,EAAKG,UAAYP,KAAKP,MAAMW,KAAKI,KAAKC,MAEzDxD,EAAAC,EAAAC,cAACuD,EAAAxD,EAAD,CACIyD,UAAW,EACXC,SAAS,EACTC,SAAUb,KAAKJ,SACfkB,WAAW,GAEX7D,EAAAC,EAAAC,cAAA,MAAI4D,IAAK,SAAAC,GAAE,OAAId,EAAKe,KAAOD,IAEnBlB,EAAWoB,IAAI,SAACtC,EAAMuC,GAElB,IAAMC,EACFnE,EAAAC,EAAAC,cAAA,OAAKC,UAAU,QACXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,SAASwB,EAAKyC,cAEzBzC,EAAK0C,QACCrE,EAAAC,EAAAC,cAAA,OAAKC,UAAU,WAAf,iCAA+BwB,EAAK2C,eACpCtE,EAAAC,EAAAC,cAAA,OAAKC,UAAU,WAAf,iBAA8BwB,EAAK4C,WAGzC5C,EAAK0C,SAAW1C,EAAK6C,eACrBxE,EAAAC,EAAAC,cAAA,OAAKC,UAAU,kBACXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,mBACXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,cACVsE,MAAO,CAACC,MAAK,GAAAlD,OAAKmD,WAAWhD,EAAK6C,eAArB,SAEtBxE,EAAAC,EAAAC,cAAA,OAAKC,UAAU,gBAAgBwB,EAAK6C,gBAG5CxE,EAAAC,EAAAC,cAAC0E,EAAD,CAAQjD,KAAMA,KAIhBkD,EACFlD,EAAK0C,SAAWrE,EAAAC,EAAAC,cAAA,QAAMC,UAAU,UAAhB,gBAEpB,OACIH,EAAAC,EAAAC,cAAC4E,EAAA,EAADC,OAAAC,OAAA,CAAOC,IAAKtD,EAAKuD,WACV7C,YAAaY,EAAKZ,aACdV,EAFX,CAGOwD,IAAKjB,EACLkB,KAAMjB,EACNU,OAAQA,EACRvC,GAAIX,EAAI,mBAQ/BkB,EAAWtB,OAAS,KAAO,EACvBvB,EAAAC,EAAAC,cAACP,EAAD,CAAWI,eAAgBgD,KAAKhD,iBAC9B,MAIdC,EAAAC,EAAAC,cAAA,OAAKC,UAAU,SACXH,EAAAC,EAAAC,cAAA,SAAGF,EAAAC,EAAAC,cAAA,KAAGC,UAAU,uBAChBH,EAAAC,EAAAC,cAAA,KAAGC,UAAU,gBAAb,uEACAH,EAAAC,EAAAC,cAAA,SACIF,EAAAC,EAAAC,cAACmF,EAAA,EAAD,CAAMlF,UAAU,gBAAgBmF,GAAG,aAAnC,gCArGJC,iBA8GTC,cACX,SAAArD,GAAK,MAAK,CACNU,WAAYV,EAAMsD,UAAU5C,WAC5BM,KAAMhB,EAAMgB,KACZf,UAAWD,EAAMsD,UAAUrD,YAE/B,CACIU,6BACAE,eAROwC,CASRtD,4BC/KQwD,UAXA,SAAClD,GACZ,OACIxC,EAAAC,EAAAC,cAAA,MAAIC,UAAS,oBAAAqB,OAAsBgB,EAAMrC,WAAaC,QAASoC,EAAMH,YAAYsD,YAAWnD,EAAMF,KAC7FE,EAAMoD,IACH5F,EAAAC,EAAAC,cAAA,OAAK2F,IAAKrD,EAAMyC,IAAKa,IAAI,KACzB9F,EAAAC,EAAAC,cAAA,KAAGC,UAAU,gBAAgBqC,EAAMuD,OACtCvD,EAAMwD,kCCEbvE,UAAS,SAACe,GAAD,OACXxC,EAAAC,EAAAC,cAAA,OAAKC,UAAU,UACXH,EAAAC,EAAAC,cAACkD,EAAA,EAAD,CAAKjD,UAAWqC,EAAMrC,WAAYqC,EAAMyD,MACxCjG,EAAAC,EAAAC,cAAA,YAAOsC,EAAM0D,SAAb,yBAiHOC,6MA5GXhE,MAAQ,CACJiE,QAAS,GACTC,KAAM,GACNC,KAAM,EACNC,IAAK,MA4BTlE,YAAc,SAAAC,GACVC,EAAKC,MAAMC,QAAQC,KAAnB,kBAAAlB,OAA0Cc,OAG9CkE,eAAiB,WACb,OAAOC,IAAKC,IAAL,GAAAlF,OAAYmF,IAAIC,KAAhB,mBAAApF,OAAsCe,EAAKJ,MAAMmE,KAAjD,KAAA9E,OAAyDe,EAAKJ,MAAMoE,SAG/EM,YAAc,WACV,OAAOJ,IAAKC,IAAL,GAAAlF,OAAYmF,IAAIC,KAAhB,yBAGXE,OAAS,SAAAT,GAAQ,IACNU,EAAwBV,EAAxBU,QAAwBV,EAAfW,YAEZC,OAAOC,SAASlC,OAAhB,2CAAAxD,OAAkEuF,IAElEI,EAAAlH,EAAMmF,KAAK,qEAAe,EAAG,MAAM,uFA1CvB,IAAAnC,EAAAF,KAChBA,KAAKyD,iBACAY,KAAK,SAAAC,GACF,IAAI9D,EAAO8D,EAAI9D,KACE,KAAbA,EAAK+D,KACLrE,EAAKsE,SAAS,CACVnB,QAAS7C,EAAKA,OAGlB4D,EAAAlH,EAAMmF,KAAK7B,EAAKiE,OAG5BzE,KAAK8D,cACAO,KAAK,SAAAC,GACF,IAAI9D,EAAO8D,EAAI9D,KACE,KAAbA,EAAK+D,KACLrE,EAAKsE,SAAS,CACVlB,KAAMoB,kBAAQlE,EAAKA,MAAQ,GAAKA,EAAKA,OAGzC4D,EAAAlH,EAAMmF,KAAK7B,EAAKiE,IAAK,EAAG,MAAM,sCA0BrC,IAAAE,EAAA3E,KACL,OACI/C,EAAAC,EAAAC,cAAA,MAAIC,UAAU,gBAEN4C,KAAKZ,MAAMkE,KAAKpC,IAAI,SAACtC,EAAMuC,GACvB,IAAMzC,EACFzB,EAAAC,EAAAC,cAAA,OAAKC,UAAU,UACXH,EAAAC,EAAAC,cAAA,OAAKC,UAAU,iBACV,IAAIwH,MAAM,GAAGC,KAAK,KAAK3D,IAAI,SAACtC,EAAMuC,GAC/B,OAAOlE,EAAAC,EAAAC,cAAA,KAAGiF,IAAKjB,EAAO/D,UAAW0H,IAAW,SAAD,UAAArG,OAAqB0C,EAAQ,SAGhFlE,EAAAC,EAAAC,cAAA,OAAKC,UAAU,QAAf,GAAAqB,OAA0BG,EAAI,mBAIhCmG,EACFnG,EAAI,YAAkB3B,EAAAC,EAAAC,cAACkD,EAAA,EAAD,CAAKjD,UAAW,gBAAhB,4BAClBH,EAAAC,EAAAC,cAACkD,EAAA,EAAD,CAAKjD,UAAW,mBAAhB,4BAER,OACIH,EAAAC,EAAAC,cAAC6H,EAAD,CACI9C,IAAKtD,EAAI,WACToE,MAAOpE,EAAI,WACXiE,IAAKkC,EACL9B,OAAQvE,EACR0D,IAAKxD,EAAI,QACTxB,UAAW,OACXkC,YAAaqF,EAAKZ,OAAOnB,KAAK+B,EAAM/F,GACpCW,GAAI4B,MAMhBnB,KAAKZ,MAAMiE,QAAQnC,IAAI,SAACtC,EAAMuC,GAAP,OACnBlE,EAAAC,EAAAC,cAAC6H,EAAD,CACI9C,IAAKtD,EAAKqG,KACVjC,MAAOpE,EAAI,kBACXU,YAAaqF,EAAKrF,YAClB2D,OACIhG,EAAAC,EAAAC,cAAC+H,EAAD,CAAQ/B,SAAUvE,EAAI,WAAgBxB,UAAW,eAAgB8F,KAAMtE,EAAKuG,WAEhF5F,GAAIX,EAAI,YACRwD,IAAKjB,EACL/D,UAAW,0BAnGdoF,2CCPnB4C,6MAEFhG,MAAQ,CACJiG,SAAU,4EAGL,IACEC,EAAStF,KAAKP,MAAd6F,MACP,OACIrI,EAAAC,EAAAC,cAAA,WAASoC,GAAG,SACRtC,EAAAC,EAAAC,cAAA,OAAKC,UAAU,OACXH,EAAAC,EAAAC,cAAA,WACIF,EAAAC,EAAAC,cAACmF,EAAA,EAAD,CAASC,GAAE,GAAA9D,OAAK6G,EAAMC,IAAX,cACFC,SAAO,EACPC,gBAAgB,UAFzB,6BAKJxI,EAAAC,EAAAC,cAAA,WACIF,EAAAC,EAAAC,cAACmF,EAAA,EAAD,CAASC,GAAE,GAAA9D,OAAK6G,EAAMC,IAAX,gBACFC,SAAO,EACPC,gBAAgB,UAFzB,8BAMRxI,EAAAC,EAAAC,cAAA,OAAKC,UAAU,mBACXH,EAAAC,EAAAC,cAACuI,EAAA,EAAD,KACIzI,EAAAC,EAAAC,cAACuI,EAAA,EAAD,CAAUC,OAAK,EAACC,KAAK,SAASrD,GAAG,oBACjCtF,EAAAC,EAAAC,cAACuI,EAAA,EAAD,CAAOG,KAAI,GAAApH,OAAKuB,KAAKP,MAAM6F,MAAMO,KAAtB,cAAwCC,UAAW3G,IAC9DlC,EAAAC,EAAAC,cAACuI,EAAA,EAAD,CAAOG,KAAI,GAAApH,OAAKuB,KAAKP,MAAM6F,MAAMO,KAAtB,gBAA0CC,UAAWC,cA5BpEC,aAqCLC,sBACXC,IACAC,IAFWF,CAGbb,gECjCagB,IAfD,SAAC3G,GACX,OACI4G,EAAAnJ,EAAAC,cAAA,MAAIC,UAAU,mBAAmBC,QAASoC,EAAMH,YAAYsD,YAAWnD,EAAMF,KACzE8G,EAAAnJ,EAAAC,cAAA,OAAKC,UAAU,WACXiJ,EAAAnJ,EAAAC,cAAA,OAAKC,UAAU,SACVqC,EAAMqC,OACPuE,EAAAnJ,EAAAC,cAAA,OAAK2F,IAAKrD,EAAMyC,IAAKa,IAAI,MAE5BtD,EAAM4C,MAEV5C,EAAM6G,iDCbnBC,EAAAC,QAAiBC,EAAQ,uCCEzBzE,OAAA0E,eAAAF,EAAA,cACAG,OAAA,IAGA,IAAAC,EAAA,WACA,SAAAC,EAAAC,EAAArH,GACA,QAAAsH,EAAA,EAAmBA,EAAAtH,EAAAjB,OAAkBuI,IAAA,CACrC,IAAAC,EAAAvH,EAAAsH,GACAC,EAAAC,WAAAD,EAAAC,aAAA,EACAD,EAAAE,cAAA,EACA,UAAAF,MAAAG,UAAA,GACAnF,OAAA0E,eAAAI,EAAAE,EAAA5E,IAAA4E,IAIA,gBAAAI,EAAAC,EAAAC,GAGA,OAFAD,GAAAR,EAAAO,EAAAG,UAAAF,GACAC,GAAAT,EAAAO,EAAAE,GACAF,GAdA,GAkBAI,EAAaf,EAAQ,GAErBgB,EAAAC,EAAAF,GAIAG,EAAAD,EAFiBjB,EAAQ,IAIzB,SAAAiB,EAAAE,GACA,OAAAA,KAAAC,WAAAD,EAAA,CACAE,QAAAF,GA8CA,IAAAG,EAAA,SAAAC,GAGA,SAAAD,EAAAtI,IAjCA,SAAAwI,EAAAb,GACA,KAAAa,aAAAb,GACA,UAAAc,UAAA,qCAgCAC,CAAAnI,KAAA+H,GAEA,IAAAvI,EA9BA,SAAA4I,EAAAC,GACA,IAAAD,EACA,UAAAE,eAAA,6DAGA,OAAAD,GAAA,kBAAAA,GAAA,oBAAAA,EAAAD,EAAAC,EAyBAE,CAAAvI,MAAA+H,EAAAS,WAAAxG,OAAAyG,eAAAV,IAAAM,KAAArI,KAAAP,IAKA,OAHAD,EAAAkJ,eAAAlJ,EAAAkJ,eAAA9F,KAAApD,GACAA,EAAAmJ,qBAAAnJ,EAAAmJ,qBAAA/F,KAAApD,GACAA,EAAAoJ,mBAAApJ,EAAAoJ,mBAAAhG,KAAApD,GACAA,EA0OA,OArQA,SAAAqJ,EAAAC,GACA,uBAAAA,GAAA,OAAAA,EACA,UAAAZ,UAAA,kEAAAY,GAGAD,EAAAtB,UAAAvF,OAAA+G,OAAAD,KAAAvB,UAAA,CACAyB,YAAA,CACArC,MAAAkC,EACA5B,YAAA,EACAE,UAAA,EACAD,cAAA,KAGA4B,IAAA9G,OAAAiH,eAAAjH,OAAAiH,eAAAJ,EAAAC,GAAAD,EAAAL,UAAAM,GAIAI,CAAAnB,EAqPCP,EAAAxB,WAxODY,EAAAmB,EAAA,EACA3F,IAAA,oBACAuE,MAAA,WACA3G,KAAAmJ,WAAAnJ,KAAAP,MAAAkB,UACAX,KAAAoJ,QAAApJ,KAAA2I,uBACA3I,KAAAqJ,yBAEG,CACHjH,IAAA,qBACAuE,MAAA,WACA,GAAA3G,KAAAP,MAAA6J,WAAAtJ,KAAAa,SAAA,CACA,IAAA0I,EAAAvJ,KAAAwJ,iBAAAxJ,KAAAyJ,iBACAF,EAAAG,UAAAH,EAAAI,aAAA3J,KAAA4J,mBAAA5J,KAAA6J,gBACA7J,KAAAa,UAAA,EAGAb,KAAAqJ,yBAEG,CACHjH,IAAA,uBACAuE,MAAA,WACA3G,KAAA8J,uBACA9J,KAAA+J,6BAEG,CACH3H,IAAA,qBACAuE,MAAA,WACA,IAAAqD,GAAA,EACAC,EAAA,CACAD,cACAA,GAAA,IAKA,IACAE,SAAAC,iBAAA,YAAAF,GACAC,SAAAE,oBAAA,YAAAH,GACO,MAAAI,IAGP,OAAAL,IAEG,CACH5H,IAAA,uBACAuE,MAAA,WACA,IAAAyC,EAAApJ,KAAAP,MAAA6K,WASA,OAPAtK,KAAAuK,uBACAnB,EAAA,CACAkB,WAAAtK,KAAAP,MAAA6K,WACAN,SAAA,IAIAZ,IAGG,CACHhH,IAAA,mBACAuE,MAAA,SAAA6D,GACAxK,KAAAyK,cAAAD,IAEG,CACHpI,IAAA,2BACAuE,MAAA,WACA,IAAA+D,EAAAxG,QAEA,IAAAlE,KAAAP,MAAAqB,YACA4J,EAAA1K,KAAAyJ,gBAAAkB,YAGAD,EAAAN,oBAAA,aAAApK,KAAA4I,mBAAA5I,KAAAoJ,QAAApJ,KAAAoJ,QAAApJ,KAAAP,MAAA6K,cAEG,CACHlI,IAAA,uBACAuE,MAAA,WACA,IAAA+D,EAAAxG,QAEA,IAAAlE,KAAAP,MAAAqB,YACA4J,EAAA1K,KAAAwJ,iBAAAxJ,KAAAyJ,kBAGAiB,EAAAN,oBAAA,SAAApK,KAAA0I,eAAA1I,KAAAoJ,QAAApJ,KAAAoJ,QAAApJ,KAAAP,MAAA6K,YACAI,EAAAN,oBAAA,SAAApK,KAAA0I,eAAA1I,KAAAoJ,QAAApJ,KAAAoJ,QAAApJ,KAAAP,MAAA6K,cAEG,CACHlI,IAAA,mBACAuE,MAAA,SAAA3F,GACA,IAAA4J,EAAA5K,KAAAP,MAAAoL,iBAAA7K,KAAAP,MAAAoL,kBAEA,aAAAD,EACAA,EAGA5J,KAAA2J,aAEG,CACHvI,IAAA,cACAuE,MAAA,SAAAlH,GACA,OAAAA,IAEG,CACH2C,IAAA,uBACAuE,MAAA,WACA,IAAA4C,EAAAvJ,KAAAwJ,iBAAAxJ,KAAAyJ,iBAEA,GAAAzJ,KAAAP,MAAAmB,SAAA2I,EAAA,CAIA,IAAAmB,EAAAxG,QAEA,IAAAlE,KAAAP,MAAAqB,YACA4J,EAAAnB,GAGAmB,EAAAP,iBAAA,aAAAnK,KAAA4I,mBAAA5I,KAAAoJ,QAAApJ,KAAAoJ,QAAApJ,KAAAP,MAAA6K,YACAI,EAAAP,iBAAA,SAAAnK,KAAA0I,eAAA1I,KAAAoJ,QAAApJ,KAAAoJ,QAAApJ,KAAAP,MAAA6K,YACAI,EAAAP,iBAAA,SAAAnK,KAAA0I,eAAA1I,KAAAoJ,QAAApJ,KAAAoJ,QAAApJ,KAAAP,MAAA6K,YAEAtK,KAAAP,MAAAqL,aACA9K,KAAA0I,oBAGG,CACHtG,IAAA,qBACAuE,MAAA,SAAA0D,GAGA,IAAAA,EAAAU,QAAA/K,KAAAuK,sBACAF,EAAAW,mBAGG,CACH5I,IAAA,iBACAuE,MAAA,WACA,IAAA3F,EAAAhB,KAAAyJ,gBACAiB,EAAAxG,OACAyG,EAAA3K,KAAAwJ,iBAAAxI,GACAiK,OAAA,EAEA,GAAAjL,KAAAP,MAAAqB,UAAA,CACA,IAAAoK,EAAAhB,SAAAiB,iBAAAjB,SAAAkB,KAAAT,YAAAT,SAAAkB,KACA1B,OAAA2B,IAAAX,EAAAY,YAAAZ,EAAAY,YAAAJ,EAAAxB,UAGAuB,EADAjL,KAAAP,MAAA6J,UACAI,EAEA1J,KAAAuL,gBAAAvK,EAAA0I,QAGAuB,EADOjL,KAAAP,MAAA6J,UACPqB,EAAAjB,UAEA1I,EAAA2I,aAAAgB,EAAAjB,UAAAiB,EAAAa,aAIAP,EAAAQ,OAAAzL,KAAAP,MAAAiM,YAAA1K,GAAA,OAAAA,EAAA2K,eACA3L,KAAA8J,uBACA9J,KAAA4J,mBAAAe,EAAAhB,aACA3J,KAAA6J,gBAAAc,EAAAjB,UAEA,oBAAA1J,KAAAP,MAAAoB,WACAb,KAAAP,MAAAoB,SAAAb,KAAAmJ,YAAA,GACAnJ,KAAAa,UAAA,MAIG,CACHuB,IAAA,kBACAuE,MAAA,SAAA3F,EAAA0I,GACA,OAAA1I,EAIAhB,KAAA4L,qBAAA5K,MAAA6K,aAAAnC,EAAAxF,OAAA4H,aAHA,IAKG,CACH1J,IAAA,uBACAuE,MAAA,SAAA3F,GACA,OAAAA,EAIAA,EAAA+K,UAAA/L,KAAA4L,qBAAA5K,EAAA2K,cAHA,IAKG,CACHvJ,IAAA,SACAuE,MAAA,WACA,IAAAzG,EAAAF,KAEAgM,EAAAhM,KAAAiM,YAAAjM,KAAAP,OAEAyM,EAAAF,EAAAE,SACAC,EAAAH,EAAAG,QACAvL,EAAAoL,EAAApL,QAEA0I,GADA0C,EAAAlB,YACAkB,EAAA1C,WACAkB,EAAAwB,EAAAxB,OAGAzJ,GAFAiL,EAAAnL,SACAmL,EAAArL,UACAqL,EAAAjL,KAKAtB,GAJAuM,EAAAN,UACAM,EAAA1B,WACA0B,EAAAlL,UACAkL,EAAAnB,gBAtQA,SAAAjD,EAAAwE,GACA,IAAAtF,EAAA,GAEA,QAAAC,KAAAa,EACAwE,EAAAC,QAAAtF,IAAA,GACA/E,OAAAuF,UAAA+E,eAAAjE,KAAAT,EAAAb,KACAD,EAAAC,GAAAa,EAAAb,IAGA,OAAAD,EA8PAyF,CAAAP,EAAA,0JAEAvM,EAAAsB,IAAA,SAAAyL,GACAtM,EAAAuJ,gBAAA+C,EAEAzL,GACAA,EAAAyL,IAIA,IAAAC,EAAA,CAAAP,GAUA,OARAtL,IACA4J,EACAlB,EAAAmD,EAAAC,QAAAlC,GAAAiC,EAAA9M,KAAA6K,GACSxK,KAAAyK,gBACTnB,EAAAmD,EAAAC,QAAA1M,KAAAyK,eAAAgC,EAAA9M,KAAAK,KAAAyK,iBAIAhD,EAAAK,QAAA3K,cAAAgP,EAAA1M,EAAAgN,OAIA1E,EArPA,GAwPAA,EAAA4E,UAAA,CACAT,SAAAvE,EAAAG,QAAA0E,KAAAI,WACAT,QAAAxE,EAAAG,QAAA0E,KACA5L,QAAA+G,EAAAG,QAAA+E,KACA/B,YAAAnD,EAAAG,QAAA+E,KACAvD,UAAA3B,EAAAG,QAAA+E,KACArC,OAAA7C,EAAAG,QAAA0E,KACA3L,SAAA8G,EAAAG,QAAAgF,KAAAF,WACAjM,UAAAgH,EAAAG,QAAAiF,OACAhM,IAAA4G,EAAAG,QAAAgF,KACAjC,gBAAAlD,EAAAG,QAAAgF,KACApB,UAAA/D,EAAAG,QAAAiF,OACAzC,WAAA3C,EAAAG,QAAA+E,KACA/L,UAAA6G,EAAAG,QAAA+E,MAEA9E,EAAAiF,aAAA,CACAb,QAAA,MACAvL,SAAA,EACAkK,aAAA,EACAnK,UAAA,EACAI,IAAA,KACA2K,UAAA,IACA5K,WAAA,EACAwI,WAAA,EACAgB,YAAA,EACAE,OAAA,KACAK,gBAAA,MAEArE,EAAAsB,QAAAC,EACAxB,EAAAC,UAAA","file":"static/js/study.f2aa4d8c.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'] ? <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 \ 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/index.js","common/v-list-base/index.js","components/detail/single/index.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","getCourses","push","this","_this2","length","map","Info","course_title","simpledescription","recommendation_Bottom","v_list_base","key","course_id","img","image_name","handleClick","PureComponent","VideoCatalog","i","selectVideo","videoCatalog","index","classnames","active","activeIndex","onClick","bind","name","duration","video_auth","practice","qid","react_router_dom","to","pathname","search","title","is_tested","Component","DatumCatalog","datum","accordion_default","Panel","header","dir_name","files","file_id","file_name","defaultProps","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","tobuy","getParam","errno","simple","toSingleset","boxHide","val","setupRecord","recordSocket","io","record","transports","forceNew","on","time","player","currentTime","recordTimer","setInterval","sendRecord","emit","recordUserInfo","uid","user","courseID","video_id","video_time","parseInt","plat","setupWS","ws","WebSocket","addEventListener","setTimeout","clearInterval","timer","e","JSON","parse","sendMessage","message","send","stringify","getShareProgressInfo","countSchedule","mtype","token","platform","sendWatchTime","sec","rate","_this$state","v_course_id","setupTimer","count","watchSec","paused","initializePlayer","window","HELP_IMPROVE_VIDEOJS","videojs","video","controls","preload","bigPlayButton","textTrackDisplay","posterImage","errorDisplay","playbackRates","controlBar","pictureInPictureToggle","playbackRate","sendLastRecord","post","hasAuth","setPlayerSrc","playVideo","getVideoList","is_aist","lessonAvailable","Promise","resolve","_this$state2","videoIndex","findIndex","last_video_id","playWithAuth","getCoursePrice","text","onPress","src","type","play","_this$state3","_this$state4","_this$state5","location","protocol","jsCookie","getDatumCatalog","replace","slice","dispose","close","_this3","match","_this$state6","HeaderBar","arrow","common","ref","el","activeClassName","single","videoId","course_tile","react_router","exact","from","path","render","video_video_catalog","Object","assign","video_datum_catalog","video_recommendation","VList","react__WEBPACK_IMPORTED_MODULE_0___default","status","alt","tab","Single","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","check","payType","toBuy","orderId","order_id","alipayPay","weixinPay","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","browser","isWeixin","encodeURIComponent","toLowerCase","onBridgeReady","WeixinJSBridge","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","payCallback","isweixinPay","weixin_code","undefined","document","attachEvent","nowPrice","now_price","laterPrice","three_day_later_price","toBuyAll","zerobuyReceive","success","colse","zerogroupBuy","getOrderId","groupOrderId","getOrderStatus","getTime","pdd_order_id","endTime","end_time","toGroup","hour","min","date","now","Date","s","differenceInSeconds","m","differenceInMinutes","h","differenceInHours","react__WEBPACK_IMPORTED_MODULE_7___default","class_price","onclick","react_router_dom__WEBPACK_IMPORTED_MODULE_10__","avatar","String","padStart","compose","withRouter"],"mappings":"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","file":"static/js/video.46b1913c.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\nimport {connect} from 'react-redux';\nimport {getCourses} from './../../detail/actions';\nimport './recommendation.scss'\nimport { http } from '@/utils'\nimport { Toast } from \"antd-mobile\";\nimport VList from '@/common/v-list-base';\n\n\nconst Bottom = ({item}) => {\n return (\n <div className='bottom'>\n <span className='price'>¥{item.price1}</span>\n <span className='stale-price'>¥{item.price0}</span>\n </div>\n )\n}\n\n@connect()\nclass Recommendation extends PureComponent {\n state = {\n num: 10,\n list: [],\n courseId: null\n }\n\n componentDidMount() {\n this.getRecommendation()\n }\n\n getRecommendation = () => {\n http.get(`${API.home}/m/play/recommend_course/${this.props.vCourseId}?num=${this.state.num}`)\n .then(res => {\n const data = res.data\n if(data.code === 200){\n\n this.setState({\n list: Array.isArray(data.data) ? data.data : []\n })\n\n }else {\n Toast.info(data.msg)\n }\n })\n }\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n dispatch(getCourses(id, () => {\n history.push(`/detail?id=${id}`)\n }));\n }\n\n render() {\n return (\n this.state.list.length\n ?\n <div className='recommendation'>\n <div className={'title'}>相关推荐</div>\n <ul>\n {\n this.state.list.map(item => {\n const Info = (\n <div className=\"info\">\n <p className='title text-overflow-1'>{item.course_title}</p>\n <p className='des text-overflow-2'>{item.simpledescription}</p>\n <Bottom\n item={item}\n />\n </div>\n )\n\n return (\n <VList\n key={item.course_id}\n img={item.image_name}\n handleClick={this.toCourseDetail}\n info={Info}\n id={item.course_id}\n />\n )\n })\n }\n </ul>\n </div>\n : null\n );\n }\n}\n\nexport default Recommendation;","import React, { Component } from 'react'\nimport './video-catalog.scss'\nimport { Link } from \"react-router-dom\";\nimport classnames from 'classnames'\n\n\nclass VideoCatalog extends Component {\n\n handleClick = (i) => {\n this.props.selectVideo(i)\n }\n\n render() {\n return (\n <div className='video-catalog'>\n <ul>\n {\n this.props.videoCatalog.map((item, index) => {\n return (\n <li key={item.id}\n className={classnames({active: this.props.activeIndex === index})}\n >\n <div className=\"video-title\" onClick={this.handleClick.bind(this, index)}>\n <span className=\"title\">{item.name}</span>\n <span className='duration'>{item.duration}</span>\n <i className={classnames(`iconfont`,\n [item.video_auth === 0\n ? 'iconiconfront-74'\n : 'iconplay_hovericon'],\n )}/>\n </div>\n {\n (item.practice && item.practice.qid)\n ? <Link to={{\n pathname: '/campTest',\n search: `?keshi_id=${item.id}&qid=${item.practice.qid}`\n }}>\n <div className=\"exercise\">\n 课后练习:{item.practice.title}\n <i className={classnames('iconfont', item.practice.is_tested ? 'iconiconfront-3' : 'iconiconfront-74')}/>\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 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 } 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\";\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\n\nclass Video extends Component {\n\n video //video element\n player //video player instance\n\n courseID\n\n ws //websocket instance\n timer\n token\n count\n watchSec\n previousPlaybackRate = 1\n currentPlaybackRate = 1\n reconnect = true\n\n recordSocket\n recordTimer\n\n\n state = {\n title: '',\n courseId: null,\n videoList: [],\n datum: [],\n currentVideoSrc: '',\n activeIndex: 0,\n isAuth: true,\n course: null,\n salePrice: null,\n vCourseId: null,\n isLoading: true,\n isShowShareModal: false,\n shareData: {},\n singleBox: false,\n singMess: '',\n }\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 this.token = jsCookie.get('token')\n this.getVideoList()\n this.getDatumCatalog()\n this.setupRecord()\n }\n\n // 直接购买\n tobuy = () => {\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${getParam('id')}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=${getParam('id')}`, {simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n // 购买单集\n toSingleset = (item) => {\n this.setState({\n singleBox: true,\n singMess: item\n })\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({singleBox: val})\n }\n\n\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.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: true,\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.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\n if (index === this.state.activeIndex) {\n return\n }\n\n this.countSchedule()\n\n this.setState({\n activeIndex: index\n },\n () => {\n if (this.hasAuth()) {\n this.setPlayerSrc(this.state.videoList[index]['play_url'])\n this.sendLastRecord()\n this.playVideo()\n }\n\n\n }\n )\n }\n\n\n getVideoList = () => {\n http.get(`${API.home}/m/course/play/${this.courseID + '?video_id=' + getParam('video_id')}`)\n .then(res => {\n const data = res.data\n if (data.code === 200) {\n\n this.setState(\n state => ({\n videoList: data.data['lessons'],\n currentVideoSrc: data.data['lessons'][state.activeIndex]['play_url'],\n course: data.data.course,\n courseId: data.data.course['course_id'],\n vCourseId: data.data.course['v_course_id'],\n title: data.data.course['course_title'],\n isLoading: false\n }),\n () => {\n if (this.state.course.is_aist) {\n this.setupWS()\n this.setupTimer()\n }\n if (this.lessonAvailable()) {\n if (this.hasAuth()) {\n Promise.resolve().then(() => {\n\n let {videoList, course} = this.state\n let videoIndex = videoList.findIndex(item => item.id == course.last_video_id)\n this.setState({\n activeIndex: videoIndex < 0 ? 0 : videoIndex\n })\n\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 } else {\n Toast.info(data.msg)\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 = () => {\n const {videoList, activeIndex} = this.state\n return videoList[activeIndex]['video_size'] !== 0\n }\n\n getCoursePrice = () => {\n http.get(`${API.home}/sys/course/price/${getParam('id')}`)\n .then(res => {\n const {data} = res\n if (data.code === 200) {\n this.setState({\n salePrice: data.data['sale_price']\n })\n }\n })\n }\n\n playWithAuth = () => {\n const {videoList, activeIndex} = this.state\n\n if (this.hasAuth()) {\n this.setPlayerSrc(videoList[activeIndex]['play_url'])\n }\n }\n\n hasAuth = () => {\n const {course, videoList, activeIndex} = this.state\n let lesson = videoList[activeIndex]\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} = this.state\n return (\n <div className='play'>\n <HeaderBar title={this.state.title} arrow={true}/>\n <Loading isLoading={this.state.isLoading}>\n <div className=\"video\">\n <video className={'video-js'} ref={el => this.video = el}>\n <source src={'/'} type='application/x-mpegURL'/>\n </video>\n {\n !isAuth && !!videoList[activeIndex]['is_class'] && (\n <div className=\"purchase-box\">\n <div className='hint'>您尚未购买该课时,请购买后学习。</div>\n <div className='btns'>\n <button type='button'\n onClick={this.tobuy}\n className='purchase-class'>¥{salePrice} 购买课程\n </button>\n <button type='button'\n onClick={this.toSingleset.bind(this, videoList[activeIndex])}\n className='purchase-episode'>¥{videoList.length && videoList[activeIndex]['class_price']} 购买单集\n </button>\n </div>\n </div>\n )\n }\n {\n !isAuth && !!course.is_aist && (\n <div className=\"is-aist-box\">\n <i className={'iconfont iconiconfront-21'}></i>\n <p className={'time'}>{videoList[activeIndex]['aist_start_time']}</p>\n <p className={'time'}>请耐心等待...</p>\n </div>\n )\n }\n </div>\n <div className='tab'>\n <div>\n <NavLink to={{pathname: `${match.url}/video`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >视频</NavLink>\n </div>\n <div>\n <NavLink to={{pathname: `${match.url}/datum`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >资料</NavLink>\n </div>\n </div>\n\n {/*单集购买*/}\n <Single singleBox={this.state.singleBox} boxHide={this.boxHide} data={this.state.singMess}\n videoId={this.state.singMess.id}\n title={this.state.singMess.course_tile}/>\n </Loading>\n <Switch>\n <Redirect exact from={'/play'} to={{\n pathname: '/play/video',\n search: location.search\n }}/>\n <Route path={`${match.path}/video`} render={props => {\n return <VideoCatalog\n activeIndex={this.state.activeIndex}\n selectVideo={this.selectVideo}\n videoCatalog={videoList}\n {...props}/>\n }}/>\n <Route path={`${match.path}/datum`} render={props => {\n return <DatumCatalog {...props} datum={this.state.datum}/>\n }}/>\n </Switch>\n <Route render={props => {\n return this.state.vCourseId ? <Recommendation {...props} vCourseId={this.state.vCourseId}/>\n : null\n }}/>\n <ProgressShareModal isShow={this.state.isShowShareModal}\n closeShareModal={() => this.setState({isShowShareModal: false})}\n data={this.state.shareData}\n />\n\n </div>\n );\n }\n}\n\n\nexport default connect(\n state => ({user: state.user}),\n null\n)(Video);","import React from 'react';\nimport './index.scss'\n\nconst VList = (props) => {\n return (\n <li className='v-list-base-item' onClick={props.handleClick.bind(this, props.id)}>\n <div className=\"content\">\n <div className=\"cover\">\n {props.status}\n <img src={props.img} alt=\"\"/>\n </div>\n {props.info}\n </div>\n {props.tab}\n </li>\n );\n};\n\nexport default VList;","import React, {Component} from 'react'\nimport './index.scss'\nimport {api, 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 }\n }\n\n componentDidMount() {\n if (getParam('is_class') === 1 || getParam('weixinpay')) {\n this.payCallback()\n }\n if (browser.isWeixin) {\n this.isweixinPay()\n }\n }\n\n // 选择支付方式\n check = (type) => {\n this.setState({\n payType: type\n })\n }\n\n // 确定购买\n toBuy = () => {\n http.get(`${API.home}/sys/createClassOrder/${this.props.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(this.state.orderId) : this.weixinPay(this.state.orderId)\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\").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\").toLowerCase();\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n http.get(`${API['base-api']}/pay/alipay/wap_charge/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n onBridgeReady = (data) => {\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 this.payCallback()\n } else {\n alert('支付失败')\n }\n }\n )\n }\n // 微信内部支付\n isweixinPay = () => {\n let weixin_code = getParam('code')\n if (weixin_code) {\n if (getParam('oid') === undefined) {\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 this.onBridgeReady(data)\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady)\n }\n } else {\n this.onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n }\n\n // 支付完成之后获取状态\n payCallback = () => {\n http.get(`${API.home}/sys/orderStatus/${getParam('oid')}`).then((res) => {\n if (res.data.data.errno == '200') {\n // 正常购买单集成功\n this.setState({\n status: 6\n })\n } else if (res.data.data.errno == '201') {\n // 0元参团\n this.setState({\n status: 4\n })\n } else if (res.data.data.errno == '202') {\n // 0元购\n this.setState({\n status: 3\n })\n } else if (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 })\n } else {\n Toast.info(res.data.data.msg, 2)\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 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\n return (\n <div>\n {\n this.props.singleBox &&\n <div className='popup-box'>\n {\n this.state.status === 1 &&\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 iconzhifubaox-'></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 }\n {\n this.state.status === 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.state.nowPrice}元购买。</div>\n <div className=\"dec\">· 超过3天,按照未够集数/全部集数等比例计费,{this.state.laterPrice}元购买全集。</div>\n <div className='btn btn-18B4ED'>开始学习</div>\n <div className='btn btn-FF4000' onclick={this.toBuyAll()}>¥{this.state.nowPrice}购买全集\n </div>\n </div>\n }\n {\n this.state.status === 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 this.state.status === 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 this.state.status === 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=${getParam('id')}`} className='btn btn-18B4ED'>去学习</Link>\n </div>\n }\n {\n this.state.status === 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 </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],{1176:function(e,t,a){"use strict";a.r(t);a(44);var n,c=a(14),i=a.n(c),s=a(7),r=a(8),o=a(11),l=a(9),d=a(10),u=(a(257),a(99)),m=a.n(u),p=a(0),h=a.n(p),v=a(162),f=(a(786),a(20)),y=a(53),E=a(4),b=a(21),g=a(46),N=(a(787),a(647)),I=function(e){var t=e.item;return h.a.createElement("div",{className:"bottom"},h.a.createElement("span",{className:"price"},"\xa5",t.price1),h.a.createElement("span",{className:"stale-price"},"\xa5",t.price0))},S=Object(b.b)()(n=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,c=new Array(n),r=0;r<n;r++)c[r]=arguments[r];return(a=Object(o.a)(this,(e=Object(l.a)(t)).call.apply(e,[this].concat(c)))).state={num:10,list:[],courseId:null},a.getRecommendation=function(){E.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,n=t.dispatch,c=t.history;n(Object(g.d)(e,function(){c.push("/detail?id=".concat(e))}))},a}return Object(d.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){this.getRecommendation()}},{key:"render",value:function(){var e=this;return this.state.list.length?h.a.createElement("div",{className:"recommendation"},h.a.createElement("div",{className:"title"},"\u76f8\u5173\u63a8\u8350"),h.a.createElement("ul",null,this.state.list.map(function(t){var a=h.a.createElement("div",{className:"info"},h.a.createElement("p",{className:"title text-overflow-1"},t.course_title),h.a.createElement("p",{className:"des text-overflow-2"},t.simpledescription),h.a.createElement(I,{item:t}));return h.a.createElement(N.a,{key:t.course_id,img:t.image_name,handleClick:e.toCourseDetail,info:a,id:t.course_id})}))):null}}]),t}(p.PureComponent))||n,_=(a(788),a(15)),w=a.n(_),k=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,c=new Array(n),i=0;i<n;i++)c[i]=arguments[i];return(a=Object(o.a)(this,(e=Object(l.a)(t)).call.apply(e,[this].concat(c)))).handleClick=function(e){a.props.selectVideo(e)},a}return Object(d.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){var e=this;return h.a.createElement("div",{className:"video-catalog"},h.a.createElement("ul",null,this.props.videoCatalog.map(function(t,a){return h.a.createElement("li",{key:t.id,className:w()({active:e.props.activeIndex===a})},h.a.createElement("div",{className:"video-title",onClick:e.handleClick.bind(e,a)},h.a.createElement("span",{className:"title"},t.name),h.a.createElement("span",{className:"duration"},t.duration),h.a.createElement("i",{className:w()("iconfont",[0===t.video_auth?"iconiconfront-74":"iconplay_hovericon"])})),t.practice&&t.practice.qid?h.a.createElement(f.b,{to:{pathname:"/campTest",search:"?keshi_id=".concat(t.id,"&qid=").concat(t.practice.qid)}},h.a.createElement("div",{className:"exercise"},"\u8bfe\u540e\u7ec3\u4e60\uff1a",t.practice.title,h.a.createElement("i",{className:w()("iconfont",t.practice.is_tested?"iconiconfront-3":"iconiconfront-74")}))):null)})))}}]),t}(p.Component),x=(a(789),a(791)),O=a.n(x),P=(a(792),function(e){function t(){return Object(s.a)(this,t),Object(o.a)(this,Object(l.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){var e=this.props.datum;return h.a.createElement("div",{className:"datum-catalog"},h.a.createElement("p",{className:"prompt"},"\u8bfe\u7a0b\u8d44\u6599\u8bf7\u5230PC\u7aef\u64ad\u653e\u9875\u4e0b\u8f7d"),h.a.createElement(O.a,null,e&&e.length&&e.map(function(e,t){return h.a.createElement(O.a.Panel,{header:e.dir_name,key:t},e.files.map(function(e){return h.a.createElement("div",{key:e.file_id,className:"file-name"},e.file_name)}))})))}}]),t}(p.Component));P.defaultProps={datum:[{dir_name:"",files:[{file_name:"",file_id:0}]}]};var j=P,C=a(1155),A=(a(838),a(30)),R=a(43),D=a.n(R),L=a(839),B=a.n(L),T=a(660),W=m.a.alert;function M(e){return e.isShow&&h.a.createElement("div",{className:"progress-share-modal-wrapper"},h.a.createElement("div",{className:"progress-share-modal"},h.a.createElement("div",{className:"title"},"\u6bcf\u65e5\u6253\u5361"),h.a.createElement("ul",{className:"progress-container"},h.a.createElement("li",null,h.a.createElement("div",{className:"title"},"\u7d2f\u8ba1\u5b66\u4e60"),h.a.createElement("div",{className:"number"},h.a.createElement("span",{className:"num"},e.data.learn_day_count),"\u5929")),h.a.createElement("li",null,h.a.createElement("div",{className:"title"},"\u884c\u52a8\u529b\u8d85\u8fc7"),h.a.createElement("div",{className:"number"},h.a.createElement("span",{className:"num"},parseFloat(e.data.action_power)),"%"))),h.a.createElement("div",{className:"share-container"},h.a.createElement("div",{className:"title"},"\u5206\u4eab\u5230"),h.a.createElement("ul",null,h.a.createElement("li",{className:"share-icon"},h.a.createElement("a",{style:{display:"block"},href:e.data.url},h.a.createElement("div",{className:"icon"},h.a.createElement("i",{className:"iconfont iconweixinzhifu"})),h.a.createElement("div",{className:"text"},"\u5fae\u4fe1\u597d\u53cb"))),h.a.createElement("li",{className:"share-icon"},h.a.createElement("a",{style:{display:"block"},href:e.data.url},h.a.createElement("div",{className:"icon"},h.a.createElement("i",{className:"iconfont iconpengyouquaniconx"})),h.a.createElement("div",{className:"text"},"\u670b\u53cb\u5708"))))),h.a.createElement("i",{className:"iconfont iconiconfront-2 close",onClick:e.closeShareModal})))}var z=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,c=new Array(n),r=0;r<n;r++)c[r]=arguments[r];return(a=Object(o.a)(this,(e=Object(l.a)(t)).call.apply(e,[this].concat(c)))).previousPlaybackRate=1,a.currentPlaybackRate=1,a.reconnect=!0,a.state={title:"",courseId:null,videoList:[],datum:[],currentVideoSrc:"",activeIndex:0,isAuth:!0,course:null,salePrice:null,vCourseId:null,isLoading:!0,isShowShareModal:!1,shareData:{},singleBox:!1,singMess:""},a.tobuy=function(){E.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/[").concat(Object(E.b)("id"),"]")).then(function(e){0===e.data.errno?a.props.history.push("/order?id=".concat(Object(E.b)("id")),{simple:1}):i.a.info(e.data.msg,2)})},a.toSingleset=function(e){a.setState({singleBox:!0,singMess:e})},a.boxHide=function(e){a.setState({singleBox:e})},a.setupRecord=function(){a.recordSocket=B()(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.send(JSON.stringify(e))},a.getShareProgressInfo=function(){E.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,s=n.vCourseId;a.sendMessage({mtype:"watch_time",rate:t,time:e,video_id:c[i].id,course_id:a.courseID,v_course_id:s,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:!0,textTrackDisplay:!1,posterImage:!1,errorDisplay:!1,playbackRates:["0.75","1","1.5","2"],controlBar:{pictureInPictureToggle:!1}}),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(){E.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.setPlayerSrc(a.state.videoList[e].play_url),a.sendLastRecord(),a.playVideo())}))},a.getVideoList=function(){E.c.get("".concat(API.home,"/m/course/play/").concat(a.courseID+"?video_id="+Object(E.b)("video_id"))).then(function(e){var t=e.data;200===t.code?a.setState(function(e){return{videoList:t.data.lessons,currentVideoSrc:t.data.lessons[e.activeIndex].play_url,course:t.data.course,courseId:t.data.course.course_id,vCourseId:t.data.course.v_course_id,title:t.data.course.course_title,isLoading:!1}},function(){a.state.course.is_aist&&(a.setupWS(),a.setupTimer()),a.lessonAvailable()?a.hasAuth()?Promise.resolve().then(function(){var e=a.state,t=e.videoList,n=e.course,c=t.findIndex(function(e){return e.id==n.last_video_id});a.setState({activeIndex:c<0?0:c}),a.initializePlayer(),a.playWithAuth()}):a.getCoursePrice():W("\u6682\u65e0\u89c6\u9891","",[{text:"OK",onPress:function(){a.props.history.push("/")}}])}):i.a.info(t.msg)})},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(){var e=a.state;return 0!==e.videoList[e.activeIndex].video_size},a.getCoursePrice=function(){E.c.get("".concat(API.home,"/sys/course/price/").concat(Object(E.b)("id"))).then(function(e){var t=e.data;200===t.code&&a.setState({salePrice:t.data.sale_price})})},a.playWithAuth=function(){var e=a.state,t=e.videoList,n=e.activeIndex;a.hasAuth()&&a.setPlayerSrc(t[n].play_url)},a.hasAuth=function(){var e=a.state;e.course;return e.videoList[e.activeIndex].video_auth?(a.setState({isAuth:!0}),!0):(a.setState({isAuth:!1}),!1)},a}return Object(d.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){var e=window.location;"https:"!==e.protocol?(this.courseID=Object(E.b)("id"),this.courseID?(this.setState({courseId:this.courseID}),this.token=D.a.get("token"),this.getVideoList(),this.getDatumCatalog(),this.setupRecord()):this.props.history.replace("/")):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;E.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,s=c.activeIndex,r=c.isAuth,o=c.salePrice,l=c.course;return h.a.createElement("div",{className:"play"},h.a.createElement(v.a,{title:this.state.title,arrow:!0}),h.a.createElement(A.f,{isLoading:this.state.isLoading},h.a.createElement("div",{className:"video"},h.a.createElement("video",{className:"video-js",ref:function(t){return e.video=t}},h.a.createElement("source",{src:"/",type:"application/x-mpegURL"})),!r&&!!i[s].is_class&&h.a.createElement("div",{className:"purchase-box"},h.a.createElement("div",{className:"hint"},"\u60a8\u5c1a\u672a\u8d2d\u4e70\u8be5\u8bfe\u65f6\uff0c\u8bf7\u8d2d\u4e70\u540e\u5b66\u4e60\u3002"),h.a.createElement("div",{className:"btns"},h.a.createElement("button",{type:"button",onClick:this.tobuy,className:"purchase-class"},"\xa5",o," \u8d2d\u4e70\u8bfe\u7a0b"),h.a.createElement("button",{type:"button",onClick:this.toSingleset.bind(this,i[s]),className:"purchase-episode"},"\xa5",i.length&&i[s].class_price," \u8d2d\u4e70\u5355\u96c6"))),!r&&!!l.is_aist&&h.a.createElement("div",{className:"is-aist-box"},h.a.createElement("i",{className:"iconfont iconiconfront-21"}),h.a.createElement("p",{className:"time"},i[s].aist_start_time),h.a.createElement("p",{className:"time"},"\u8bf7\u8010\u5fc3\u7b49\u5f85..."))),h.a.createElement("div",{className:"tab"},h.a.createElement("div",null,h.a.createElement(f.c,{to:{pathname:"".concat(a.url,"/video"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u89c6\u9891")),h.a.createElement("div",null,h.a.createElement(f.c,{to:{pathname:"".concat(a.url,"/datum"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u8d44\u6599"))),h.a.createElement(T.a,{singleBox:this.state.singleBox,boxHide:this.boxHide,data:this.state.singMess,videoId:this.state.singMess.id,title:this.state.singMess.course_tile})),h.a.createElement(y.d,null,h.a.createElement(y.a,{exact:!0,from:"/play",to:{pathname:"/play/video",search:n.search}}),h.a.createElement(y.b,{path:"".concat(a.path,"/video"),render:function(t){return h.a.createElement(k,Object.assign({activeIndex:e.state.activeIndex,selectVideo:e.selectVideo,videoCatalog:i},t))}}),h.a.createElement(y.b,{path:"".concat(a.path,"/datum"),render:function(t){return h.a.createElement(j,Object.assign({},t,{datum:e.state.datum}))}})),h.a.createElement(y.b,{render:function(t){return e.state.vCourseId?h.a.createElement(S,Object.assign({},t,{vCourseId:e.state.vCourseId})):null}}),h.a.createElement(M,{isShow:this.state.isShowShareModal,closeShareModal:function(){return e.setState({isShowShareModal:!1})},data:this.state.shareData}))}}]),t}(p.Component);t.default=Object(b.b)(function(e){return{user:e.user}},null)(z)},647:function(e,t,a){"use strict";var n=a(0),c=a.n(n);a(648);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)}},648:function(e,t,a){},660:function(e,t,a){"use strict";a(44);var n=a(14),c=a.n(n),i=a(7),s=a(8),r=a(11),o=a(9),l=a(10),d=a(0),u=a.n(d),m=(a(661),a(4)),p=a(20),h=a(53),v=a(17),f=a(21),y=a(156),E=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))).check=function(e){a.setState({payType:e})},a.toBuy=function(){m.c.get("".concat(API.home,"/sys/createClassOrder/").concat(a.props.videoId)).then(function(e){200===e.data.code?(a.setState({orderId:e.data.data.order_id}),"1"===a.state.payType?a.alipayPay(a.state.orderId):a.weixinPay(a.state.orderId)):c.a.info(e.data.msg,2)})},a.weixinPay=function(e){m.a.isWeixin?window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri="+encodeURIComponent(window.location.href+"&aa=bb").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(e){0===e.data.errno?window.location.href=e.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1").toLowerCase():c.a.info(e.data.msg,2)})},a.alipayPay=function(e){m.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge/oid/").concat(e)).then(function(e){0===e.data.errno?window.location=e.data.data.url:c.a.info(e.data.msg,2)})},a.onBridgeReady=function(e){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},function(e){"get_brand_wcpay_request:ok"==e.err_msg?this.payCallback():alert("\u652f\u4ed8\u5931\u8d25")})},a.isweixinPay=function(){var e=Object(m.b)("code");if(e){if(void 0===Object(m.b)("oid"))return;m.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(m.b)("oid"),"/code/").concat(e)).then(function(e){if(0===e.data.errno){var t=e.data.data;a.onBridgeReady(t),"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",a.onBridgeReady,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",a.onBridgeReady),document.attachEvent("onWeixinJSBridgeReady",a.onBridgeReady)):a.onBridgeReady()}else c.a.info(e.data.msg,2)})}},a.payCallback=function(){m.c.get("".concat(API.home,"/sys/orderStatus/").concat(Object(m.b)("oid"))).then(function(e){"200"==e.data.data.errno?a.setState({status:6}):"201"==e.data.data.errno?a.setState({status:4}):"202"==e.data.data.errno?a.setState({status:3}):"203"==e.data.data.errno?a.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,status:2}):c.a.info(e.data.data.msg,2)})},a.toBuyAll=function(){},a.zerobuyReceive=function(){c.a.success("\u8d2d\u4e70\u5168\u96c6\u6210\u529f",3),a.colse()},a.zerogroupBuy=function(){a.getOrderId()},a.getOrderId=function(){var e={course_id:Object(m.b)("id")};m.c.post("".concat(API["base-api"],"/pdd/sys"),e).then(function(e){0===e.data.errno?(a.setState({groupOrderId:e.data.data.order_id}),a.getOrderStatus(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.getOrderStatus=function(e){m.c.get("".concat(API.home,"/m/pdd/order_status/").concat(e)).then(function(e){200===e.data.code?a.getTime(e.data.data.pdd_order_id):c.a.info(e.data.msg,2)})},a.getTime=function(e){m.c.get("".concat(API.home,"/m/pdd_order_end_time/").concat(e)).then(function(e){200===e.data.code?a.setState({endTime:e.data.data.end_time,status:7}):c.a.info(e.data.msg,2)})},a.toGroup=function(){a.props.history.push("/togroup?id=".concat(a.state.groupOrderId))},a.colse=function(){a.props.boxHide(!1),a.setState({status:1})},a.state={status:1,orderId:"",nowPrice:"",laterPrice:"",hour:"",min:"",sec:"",endTime:"",groupOrderId:"",payType:"0"},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){(1===Object(m.b)("is_class")||Object(m.b)("weixinpay"))&&this.payCallback(),m.a.isWeixin&&this.isweixinPay()}},{key:"render",value:function(){var e=this;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 u.a.createElement("div",null,this.props.singleBox&&u.a.createElement("div",{className:"popup-box"},1===this.state.status&&u.a.createElement("div",{className:"content singleset-payment"},u.a.createElement("div",{className:"price-box"},u.a.createElement("span",null,"\u5b9e\u4ed8\u6b3e\uff1a"),u.a.createElement("p",null,this.props.data.class_price,"\u5143")),u.a.createElement("div",{className:"course-info"},u.a.createElement("p",{className:"text-overflow-1"},u.a.createElement("span",null,"\u8bfe\u7a0b\uff1a"),this.props.title),u.a.createElement("p",{className:"text-overflow-1"},u.a.createElement("span",null,"\u8bfe\u65f6\uff1a"),this.props.data.name)),u.a.createElement("div",{className:"payment-type"},u.a.createElement("label",null,"\u652f\u4ed8\u65b9\u5f0f\uff1a"),!m.a.isWeixin&&u.a.createElement("p",{onClick:this.check.bind(this,"1")},u.a.createElement("i",{className:"iconfont iconzhifubaox-"}),u.a.createElement("span",null,"\u652f\u4ed8\u5b9d"),u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("1"===this.state.payType?"redioed":"")})),u.a.createElement("p",{onClick:this.check.bind(this,"0")},u.a.createElement("i",{className:"iconfont iconweixinzhifu buy"}),u.a.createElement("span",null,"\u5fae\u4fe1\u652f\u4ed8"),u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("0"===this.state.payType?"redioed":"")}))),u.a.createElement("div",{className:"btn btn-18B4ED",onClick:this.toBuy},"\u786e\u8ba4\u8d2d\u4e70")),2===this.state.status&&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.state.nowPrice,"\u5143\u8d2d\u4e70\u3002"),u.a.createElement("div",{className:"dec"},"\xb7 \u8d85\u8fc73\u5929\uff0c\u6309\u7167\u672a\u591f\u96c6\u6570/\u5168\u90e8\u96c6\u6570\u7b49\u6bd4\u4f8b\u8ba1\u8d39\uff0c",this.state.laterPrice,"\u5143\u8d2d\u4e70\u5168\u96c6\u3002"),u.a.createElement("div",{className:"btn btn-18B4ED"},"\u5f00\u59cb\u5b66\u4e60"),u.a.createElement("div",{className:"btn btn-FF4000",onclick:this.toBuyAll()},"\uffe5",this.state.nowPrice,"\u8d2d\u4e70\u5168\u96c6")),3===this.state.status&&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===this.state.status&&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===this.state.status&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement(p.b,{to:"/play/video?id=".concat(Object(m.b)("id")),className:"btn btn-18B4ED"},"\u53bb\u5b66\u4e60")),7===this.state.status&&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}(d.Component);t.a=Object(v.d)(Object(f.b)(function(e){return{user:e.user}},null),h.g)(E)},661:function(e,t,a){},786:function(e,t,a){},787:function(e,t,a){},788:function(e,t,a){},792:function(e,t,a){},794:function(e,t){},862:function(e,t){}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[23],{1176:function(e,t,a){"use strict";a.r(t);a(44);var n,c=a(14),i=a.n(c),s=a(7),r=a(8),o=a(11),l=a(9),d=a(10),u=(a(257),a(99)),m=a.n(u),p=a(0),h=a.n(p),v=a(162),f=(a(786),a(20)),y=a(53),b=a(4),E=a(21),g=a(46),N=(a(787),a(647)),I=function(e){var t=e.item;return h.a.createElement("div",{className:"bottom"},h.a.createElement("span",{className:"price"},"\xa5",t.price1),h.a.createElement("span",{className:"stale-price"},"\xa5",t.price0))},S=Object(E.b)()(n=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,c=new Array(n),r=0;r<n;r++)c[r]=arguments[r];return(a=Object(o.a)(this,(e=Object(l.a)(t)).call.apply(e,[this].concat(c)))).state={num:10,list:[],courseId:null},a.getRecommendation=function(){b.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,n=t.dispatch,c=t.history;n(Object(g.d)(e,function(){c.push("/detail?id=".concat(e))}))},a}return Object(d.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){this.getRecommendation()}},{key:"render",value:function(){var e=this;return this.state.list.length?h.a.createElement("div",{className:"recommendation"},h.a.createElement("div",{className:"title"},"\u76f8\u5173\u63a8\u8350"),h.a.createElement("ul",null,this.state.list.map(function(t){var a=h.a.createElement("div",{className:"info"},h.a.createElement("p",{className:"title text-overflow-1"},t.course_title),h.a.createElement("p",{className:"des text-overflow-2"},t.simpledescription),h.a.createElement(I,{item:t}));return h.a.createElement(N.a,{key:t.course_id,img:t.image_name,handleClick:e.toCourseDetail,info:a,id:t.course_id})}))):null}}]),t}(p.PureComponent))||n,_=(a(788),a(15)),w=a.n(_),k=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,c=new Array(n),i=0;i<n;i++)c[i]=arguments[i];return(a=Object(o.a)(this,(e=Object(l.a)(t)).call.apply(e,[this].concat(c)))).handleClick=function(e){a.props.selectVideo(e)},a}return Object(d.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){var e=this;return h.a.createElement("div",{className:"video-catalog"},h.a.createElement("ul",null,this.props.videoCatalog.map(function(t,a){return h.a.createElement("li",{key:t.id,className:w()({active:e.props.activeIndex===a})},h.a.createElement("div",{className:"video-title",onClick:e.handleClick.bind(e,a)},h.a.createElement("span",{className:"title"},t.name),h.a.createElement("span",{className:"duration"},t.duration),h.a.createElement("i",{className:w()("iconfont",[0===t.video_auth?"iconiconfront-74":"iconplay_hovericon"])})),t.practice&&t.practice.qid?h.a.createElement(f.b,{to:{pathname:"/campTest",search:"?keshi_id=".concat(t.id,"&qid=").concat(t.practice.qid)}},h.a.createElement("div",{className:"exercise"},"\u8bfe\u540e\u7ec3\u4e60\uff1a",t.practice.title,h.a.createElement("i",{className:w()("iconfont",t.practice.is_tested?"iconiconfront-3":"iconiconfront-74")}))):null)})))}}]),t}(p.Component),x=(a(789),a(791)),O=a.n(x),P=(a(792),function(e){function t(){return Object(s.a)(this,t),Object(o.a)(this,Object(l.a)(t).apply(this,arguments))}return Object(d.a)(t,e),Object(r.a)(t,[{key:"render",value:function(){var e=this.props.datum;return h.a.createElement("div",{className:"datum-catalog"},h.a.createElement("p",{className:"prompt"},"\u8bfe\u7a0b\u8d44\u6599\u8bf7\u5230PC\u7aef\u64ad\u653e\u9875\u4e0b\u8f7d"),h.a.createElement(O.a,null,e&&e.length&&e.map(function(e,t){return h.a.createElement(O.a.Panel,{header:e.dir_name,key:t},e.files.map(function(e){return h.a.createElement("div",{key:e.file_id,className:"file-name"},e.file_name)}))})))}}]),t}(p.Component));P.defaultProps={datum:[{dir_name:"",files:[{file_name:"",file_id:0}]}]};var j=P,C=a(1155),A=(a(838),a(30)),R=a(43),D=a.n(R),L=a(839),B=a.n(L),T=a(660),W=m.a.alert;function M(e){return e.isShow&&h.a.createElement("div",{className:"progress-share-modal-wrapper"},h.a.createElement("div",{className:"progress-share-modal"},h.a.createElement("div",{className:"title"},"\u6bcf\u65e5\u6253\u5361"),h.a.createElement("ul",{className:"progress-container"},h.a.createElement("li",null,h.a.createElement("div",{className:"title"},"\u7d2f\u8ba1\u5b66\u4e60"),h.a.createElement("div",{className:"number"},h.a.createElement("span",{className:"num"},e.data.learn_day_count),"\u5929")),h.a.createElement("li",null,h.a.createElement("div",{className:"title"},"\u884c\u52a8\u529b\u8d85\u8fc7"),h.a.createElement("div",{className:"number"},h.a.createElement("span",{className:"num"},parseFloat(e.data.action_power)),"%"))),h.a.createElement("div",{className:"share-container"},h.a.createElement("div",{className:"title"},"\u5206\u4eab\u5230"),h.a.createElement("ul",null,h.a.createElement("li",{className:"share-icon"},h.a.createElement("a",{style:{display:"block"},href:e.data.url},h.a.createElement("div",{className:"icon"},h.a.createElement("i",{className:"iconfont iconweixinzhifu"})),h.a.createElement("div",{className:"text"},"\u5fae\u4fe1\u597d\u53cb"))),h.a.createElement("li",{className:"share-icon"},h.a.createElement("a",{style:{display:"block"},href:e.data.url},h.a.createElement("div",{className:"icon"},h.a.createElement("i",{className:"iconfont iconpengyouquaniconx"})),h.a.createElement("div",{className:"text"},"\u670b\u53cb\u5708"))))),h.a.createElement("i",{className:"iconfont iconiconfront-2 close",onClick:e.closeShareModal})))}var z=function(e){function t(){var e,a;Object(s.a)(this,t);for(var n=arguments.length,c=new Array(n),r=0;r<n;r++)c[r]=arguments[r];return(a=Object(o.a)(this,(e=Object(l.a)(t)).call.apply(e,[this].concat(c)))).previousPlaybackRate=1,a.currentPlaybackRate=1,a.reconnect=!0,a.state={title:"",courseId:null,videoList:[],datum:[],currentVideoSrc:"",activeIndex:0,isAuth:!0,course:null,salePrice:null,vCourseId:null,isLoading:!0,isShowShareModal:!1,shareData:{},singleBox:!1,singMess:""},a.tobuy=function(){b.c.get("".concat(API["base-api"],"/m/cart/addtopreorder/[").concat(Object(b.b)("id"),"]")).then(function(e){0===e.data.errno?a.props.history.push("/order?id=".concat(Object(b.b)("id")),{simple:1}):i.a.info(e.data.msg,2)})},a.toSingleset=function(e){a.setState({singleBox:!0,singMess:e})},a.boxHide=function(e){a.setState({singleBox:e})},a.setupRecord=function(){a.recordSocket=B()(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.send(JSON.stringify(e))},a.getShareProgressInfo=function(){b.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,s=n.vCourseId;a.sendMessage({mtype:"watch_time",rate:t,time:e,video_id:c[i].id,course_id:a.courseID,v_course_id:s,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:!0,textTrackDisplay:!1,posterImage:!1,errorDisplay:!1,playbackRates:["0.75","1","1.5","2"],controlBar:{pictureInPictureToggle:!1}}),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(){b.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.setPlayerSrc(a.state.videoList[e].play_url),a.sendLastRecord(),a.playVideo())}))},a.getVideoList=function(){var e="";e=Object(b.b)("video_id")?"".concat(API.home,"/m/course/play/").concat(a.courseID+"?video_id="+Object(b.b)("video_id")):"".concat(API.home,"/m/course/play/").concat(a.courseID),b.c.get(e).then(function(e){var t=e.data;200===t.code?a.setState(function(e){return{videoList:t.data.lessons,currentVideoSrc:t.data.lessons[e.activeIndex].play_url,course:t.data.course,courseId:t.data.course.course_id,vCourseId:t.data.course.v_course_id,title:t.data.course.course_title,isLoading:!1}},function(){a.state.course.is_aist&&(a.setupWS(),a.setupTimer()),a.lessonAvailable()?a.hasAuth()?Promise.resolve().then(function(){var e=a.state,t=e.videoList,n=e.course,c=t.findIndex(function(e){return e.id==n.last_video_id});a.setState({activeIndex:c<0?0:c}),a.initializePlayer(),a.playWithAuth()}):a.getCoursePrice():W("\u6682\u65e0\u89c6\u9891","",[{text:"OK",onPress:function(){a.props.history.push("/")}}])}):i.a.info(t.msg)})},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(){var e=a.state;return 0!==e.videoList[e.activeIndex].video_size},a.getCoursePrice=function(){b.c.get("".concat(API.home,"/sys/course/price/").concat(Object(b.b)("id"))).then(function(e){var t=e.data;200===t.code&&a.setState({salePrice:t.data.sale_price})})},a.playWithAuth=function(){var e=a.state,t=e.videoList,n=e.activeIndex;a.hasAuth()&&a.setPlayerSrc(t[n].play_url)},a.hasAuth=function(){var e=a.state;e.course;return e.videoList[e.activeIndex].video_auth?(a.setState({isAuth:!0}),!0):(a.setState({isAuth:!1}),!1)},a}return Object(d.a)(t,e),Object(r.a)(t,[{key:"componentDidMount",value:function(){var e=window.location;"https:"!==e.protocol?(this.courseID=Object(b.b)("id"),this.courseID?(this.setState({courseId:this.courseID}),this.token=D.a.get("token"),this.getVideoList(),this.getDatumCatalog(),this.setupRecord()):this.props.history.replace("/")):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;b.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,s=c.activeIndex,r=c.isAuth,o=c.salePrice,l=c.course;return h.a.createElement("div",{className:"play"},h.a.createElement(v.a,{title:this.state.title,arrow:!0}),h.a.createElement(A.f,{isLoading:this.state.isLoading},h.a.createElement("div",{className:"video"},h.a.createElement("video",{className:"video-js",ref:function(t){return e.video=t}},h.a.createElement("source",{src:"/",type:"application/x-mpegURL"})),!r&&!!i[s].is_class&&h.a.createElement("div",{className:"purchase-box"},h.a.createElement("div",{className:"hint"},"\u60a8\u5c1a\u672a\u8d2d\u4e70\u8be5\u8bfe\u65f6\uff0c\u8bf7\u8d2d\u4e70\u540e\u5b66\u4e60\u3002"),h.a.createElement("div",{className:"btns"},h.a.createElement("button",{type:"button",onClick:this.tobuy,className:"purchase-class"},"\xa5",o," \u8d2d\u4e70\u8bfe\u7a0b"),h.a.createElement("button",{type:"button",onClick:this.toSingleset.bind(this,i[s]),className:"purchase-episode"},"\xa5",i.length&&i[s].class_price," \u8d2d\u4e70\u5355\u96c6"))),!r&&!!l.is_aist&&h.a.createElement("div",{className:"is-aist-box"},h.a.createElement("i",{className:"iconfont iconiconfront-21"}),h.a.createElement("p",{className:"time"},i[s].aist_start_time),h.a.createElement("p",{className:"time"},"\u8bf7\u8010\u5fc3\u7b49\u5f85..."))),h.a.createElement("div",{className:"tab"},h.a.createElement("div",null,h.a.createElement(f.c,{to:{pathname:"".concat(a.url,"/video"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u89c6\u9891")),h.a.createElement("div",null,h.a.createElement(f.c,{to:{pathname:"".concat(a.url,"/datum"),search:"?id=".concat(this.courseID)},replace:!0,activeClassName:"active"},"\u8d44\u6599"))),h.a.createElement(T.a,{singleBox:this.state.singleBox,boxHide:this.boxHide,data:this.state.singMess,videoId:this.state.singMess.id,title:this.state.singMess.course_tile})),h.a.createElement(y.d,null,h.a.createElement(y.a,{exact:!0,from:"/play",to:{pathname:"/play/video",search:n.search}}),h.a.createElement(y.b,{path:"".concat(a.path,"/video"),render:function(t){return h.a.createElement(k,Object.assign({activeIndex:e.state.activeIndex,selectVideo:e.selectVideo,videoCatalog:i},t))}}),h.a.createElement(y.b,{path:"".concat(a.path,"/datum"),render:function(t){return h.a.createElement(j,Object.assign({},t,{datum:e.state.datum}))}})),h.a.createElement(y.b,{render:function(t){return e.state.vCourseId?h.a.createElement(S,Object.assign({},t,{vCourseId:e.state.vCourseId})):null}}),h.a.createElement(M,{isShow:this.state.isShowShareModal,closeShareModal:function(){return e.setState({isShowShareModal:!1})},data:this.state.shareData}))}}]),t}(p.Component);t.default=Object(E.b)(function(e){return{user:e.user}},null)(z)},647:function(e,t,a){"use strict";var n=a(0),c=a.n(n);a(648);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)}},648:function(e,t,a){},660:function(e,t,a){"use strict";a(44);var n=a(14),c=a.n(n),i=a(7),s=a(8),r=a(11),o=a(9),l=a(10),d=a(0),u=a.n(d),m=(a(661),a(4)),p=a(20),h=a(53),v=a(17),f=a(21),y=a(156),b=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))).check=function(e){a.setState({payType:e})},a.toBuy=function(){m.c.get("".concat(API.home,"/sys/createClassOrder/").concat(a.props.videoId)).then(function(e){200===e.data.code?(a.setState({orderId:e.data.data.order_id}),"1"===a.state.payType?a.alipayPay(a.state.orderId):a.weixinPay(a.state.orderId)):c.a.info(e.data.msg,2)})},a.weixinPay=function(e){m.a.isWeixin?window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri="+encodeURIComponent(window.location.href+"&aa=bb").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(e){0===e.data.errno?window.location.href=e.data.data.url+"&redirect_url="+encodeURIComponent(window.location.href+"&weixinpay=1").toLowerCase():c.a.info(e.data.msg,2)})},a.alipayPay=function(e){m.c.get("".concat(API["base-api"],"/pay/alipay/wap_charge/oid/").concat(e)).then(function(e){0===e.data.errno?window.location=e.data.data.url:c.a.info(e.data.msg,2)})},a.onBridgeReady=function(e){WeixinJSBridge.invoke("getBrandWCPayRequest",{appId:e.appId,timeStamp:e.timeStamp,nonceStr:e.nonceStr,package:e.package,signType:e.signType,paySign:e.paySign},function(e){"get_brand_wcpay_request:ok"==e.err_msg?this.payCallback():alert("\u652f\u4ed8\u5931\u8d25")})},a.isweixinPay=function(){var e=Object(m.b)("code");if(e){if(void 0===Object(m.b)("oid"))return;m.c.get("".concat(API["base-api"],"/pay/wxpay/pub_charge/oid/").concat(Object(m.b)("oid"),"/code/").concat(e)).then(function(e){if(0===e.data.errno){var t=e.data.data;a.onBridgeReady(t),"undefined"==typeof WeixinJSBridge?document.addEventListener?document.addEventListener("WeixinJSBridgeReady",a.onBridgeReady,!1):document.attachEvent&&(document.attachEvent("WeixinJSBridgeReady",a.onBridgeReady),document.attachEvent("onWeixinJSBridgeReady",a.onBridgeReady)):a.onBridgeReady()}else c.a.info(e.data.msg,2)})}},a.payCallback=function(){m.c.get("".concat(API.home,"/sys/orderStatus/").concat(Object(m.b)("oid"))).then(function(e){"200"==e.data.data.errno?a.setState({status:6}):"201"==e.data.data.errno?a.setState({status:4}):"202"==e.data.data.errno?a.setState({status:3}):"203"==e.data.data.errno?a.setState({nowPrice:e.data.data.data.now_price,laterPrice:e.data.data.data.three_day_later_price,status:2}):c.a.info(e.data.data.msg,2)})},a.toBuyAll=function(){},a.zerobuyReceive=function(){c.a.success("\u8d2d\u4e70\u5168\u96c6\u6210\u529f",3),a.colse()},a.zerogroupBuy=function(){a.getOrderId()},a.getOrderId=function(){var e={course_id:Object(m.b)("id")};m.c.post("".concat(API["base-api"],"/pdd/sys"),e).then(function(e){0===e.data.errno?(a.setState({groupOrderId:e.data.data.order_id}),a.getOrderStatus(e.data.data.order_id)):c.a.info(e.data.msg,2)})},a.getOrderStatus=function(e){m.c.get("".concat(API.home,"/m/pdd/order_status/").concat(e)).then(function(e){200===e.data.code?a.getTime(e.data.data.pdd_order_id):c.a.info(e.data.msg,2)})},a.getTime=function(e){m.c.get("".concat(API.home,"/m/pdd_order_end_time/").concat(e)).then(function(e){200===e.data.code?a.setState({endTime:e.data.data.end_time,status:7}):c.a.info(e.data.msg,2)})},a.toGroup=function(){a.props.history.push("/togroup?id=".concat(a.state.groupOrderId))},a.colse=function(){a.props.boxHide(!1),a.setState({status:1})},a.state={status:1,orderId:"",nowPrice:"",laterPrice:"",hour:"",min:"",sec:"",endTime:"",groupOrderId:"",payType:"0"},a}return Object(l.a)(t,e),Object(s.a)(t,[{key:"componentDidMount",value:function(){(1===Object(m.b)("is_class")||Object(m.b)("weixinpay"))&&this.payCallback(),m.a.isWeixin&&this.isweixinPay()}},{key:"render",value:function(){var e=this;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 u.a.createElement("div",null,this.props.singleBox&&u.a.createElement("div",{className:"popup-box"},1===this.state.status&&u.a.createElement("div",{className:"content singleset-payment"},u.a.createElement("div",{className:"price-box"},u.a.createElement("span",null,"\u5b9e\u4ed8\u6b3e\uff1a"),u.a.createElement("p",null,this.props.data.class_price,"\u5143")),u.a.createElement("div",{className:"course-info"},u.a.createElement("p",{className:"text-overflow-1"},u.a.createElement("span",null,"\u8bfe\u7a0b\uff1a"),this.props.title),u.a.createElement("p",{className:"text-overflow-1"},u.a.createElement("span",null,"\u8bfe\u65f6\uff1a"),this.props.data.name)),u.a.createElement("div",{className:"payment-type"},u.a.createElement("label",null,"\u652f\u4ed8\u65b9\u5f0f\uff1a"),!m.a.isWeixin&&u.a.createElement("p",{onClick:this.check.bind(this,"1")},u.a.createElement("i",{className:"iconfont iconzhifubaox-"}),u.a.createElement("span",null,"\u652f\u4ed8\u5b9d"),u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("1"===this.state.payType?"redioed":"")})),u.a.createElement("p",{onClick:this.check.bind(this,"0")},u.a.createElement("i",{className:"iconfont iconweixinzhifu buy"}),u.a.createElement("span",null,"\u5fae\u4fe1\u652f\u4ed8"),u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5 redio ".concat("0"===this.state.payType?"redioed":"")}))),u.a.createElement("div",{className:"btn btn-18B4ED",onClick:this.toBuy},"\u786e\u8ba4\u8d2d\u4e70")),2===this.state.status&&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.state.nowPrice,"\u5143\u8d2d\u4e70\u3002"),u.a.createElement("div",{className:"dec"},"\xb7 \u8d85\u8fc73\u5929\uff0c\u6309\u7167\u672a\u591f\u96c6\u6570/\u5168\u90e8\u96c6\u6570\u7b49\u6bd4\u4f8b\u8ba1\u8d39\uff0c",this.state.laterPrice,"\u5143\u8d2d\u4e70\u5168\u96c6\u3002"),u.a.createElement("div",{className:"btn btn-18B4ED"},"\u5f00\u59cb\u5b66\u4e60"),u.a.createElement("div",{className:"btn btn-FF4000",onclick:this.toBuyAll()},"\uffe5",this.state.nowPrice,"\u8d2d\u4e70\u5168\u96c6")),3===this.state.status&&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===this.state.status&&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===this.state.status&&u.a.createElement("div",{className:"content zero"},u.a.createElement("div",{className:"header"},u.a.createElement("i",{className:"iconfont icondanseshixintubiao-5"}),u.a.createElement("span",null,"\u8d2d\u4e70\u6210\u529f")),u.a.createElement(p.b,{to:"/play/video?id=".concat(Object(m.b)("id")),className:"btn btn-18B4ED"},"\u53bb\u5b66\u4e60")),7===this.state.status&&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}(d.Component);t.a=Object(v.d)(Object(f.b)(function(e){return{user:e.user}},null),h.g)(b)},661:function(e,t,a){},786:function(e,t,a){},787:function(e,t,a){},788:function(e,t,a){},792:function(e,t,a){},794:function(e,t){},862:function(e,t){}}]);
//# sourceMappingURL=video.46b1913c.chunk.js.map //# sourceMappingURL=video.7c320d7a.chunk.js.map
\ No newline at end of file \ 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/index.js","common/v-list-base/index.js","components/detail/single/index.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","getCourses","push","this","_this2","length","map","Info","course_title","simpledescription","recommendation_Bottom","v_list_base","key","course_id","img","image_name","handleClick","PureComponent","VideoCatalog","i","selectVideo","videoCatalog","index","classnames","active","activeIndex","onClick","bind","name","duration","video_auth","practice","qid","react_router_dom","to","pathname","search","title","is_tested","Component","DatumCatalog","datum","accordion_default","Panel","header","dir_name","files","file_id","file_name","defaultProps","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","tobuy","getParam","errno","simple","toSingleset","boxHide","val","setupRecord","recordSocket","io","record","transports","forceNew","on","time","player","currentTime","recordTimer","setInterval","sendRecord","emit","recordUserInfo","uid","user","courseID","video_id","video_time","parseInt","plat","setupWS","ws","WebSocket","addEventListener","setTimeout","clearInterval","timer","e","JSON","parse","sendMessage","message","send","stringify","getShareProgressInfo","countSchedule","mtype","token","platform","sendWatchTime","sec","rate","_this$state","v_course_id","setupTimer","count","watchSec","paused","initializePlayer","window","HELP_IMPROVE_VIDEOJS","videojs","video","controls","preload","bigPlayButton","textTrackDisplay","posterImage","errorDisplay","playbackRates","controlBar","pictureInPictureToggle","playbackRate","sendLastRecord","post","hasAuth","setPlayerSrc","playVideo","getVideoList","is_aist","lessonAvailable","Promise","resolve","_this$state2","videoIndex","findIndex","last_video_id","playWithAuth","getCoursePrice","text","onPress","src","type","play","_this$state3","_this$state4","_this$state5","location","protocol","jsCookie","getDatumCatalog","replace","slice","dispose","close","_this3","match","_this$state6","HeaderBar","arrow","common","ref","el","activeClassName","single","videoId","course_tile","react_router","exact","from","path","render","video_video_catalog","Object","assign","video_datum_catalog","video_recommendation","VList","react__WEBPACK_IMPORTED_MODULE_0___default","status","alt","tab","Single","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_4__","_Users_xzh_dnmp_www_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_5__","call","check","payType","toBuy","orderId","order_id","alipayPay","weixinPay","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","browser","isWeixin","encodeURIComponent","toLowerCase","onBridgeReady","WeixinJSBridge","invoke","appId","timeStamp","nonceStr","package","signType","paySign","err_msg","payCallback","isweixinPay","weixin_code","undefined","document","attachEvent","nowPrice","now_price","laterPrice","three_day_later_price","toBuyAll","zerobuyReceive","success","colse","zerogroupBuy","getOrderId","groupOrderId","getOrderStatus","getTime","pdd_order_id","endTime","end_time","toGroup","hour","min","date","now","Date","s","differenceInSeconds","m","differenceInMinutes","h","differenceInHours","react__WEBPACK_IMPORTED_MODULE_7___default","class_price","onclick","react_router_dom__WEBPACK_IMPORTED_MODULE_10__","avatar","String","padStart","compose","withRouter"],"mappings":"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","file":"static/js/video.7c320d7a.chunk.js","sourcesContent":["import React, { PureComponent } from 'react';\nimport {connect} from 'react-redux';\nimport {getCourses} from './../../detail/actions';\nimport './recommendation.scss'\nimport { http } from '@/utils'\nimport { Toast } from \"antd-mobile\";\nimport VList from '@/common/v-list-base';\n\n\nconst Bottom = ({item}) => {\n return (\n <div className='bottom'>\n <span className='price'>¥{item.price1}</span>\n <span className='stale-price'>¥{item.price0}</span>\n </div>\n )\n}\n\n@connect()\nclass Recommendation extends PureComponent {\n state = {\n num: 10,\n list: [],\n courseId: null\n }\n\n componentDidMount() {\n this.getRecommendation()\n }\n\n getRecommendation = () => {\n http.get(`${API.home}/m/play/recommend_course/${this.props.vCourseId}?num=${this.state.num}`)\n .then(res => {\n const data = res.data\n if(data.code === 200){\n\n this.setState({\n list: Array.isArray(data.data) ? data.data : []\n })\n\n }else {\n Toast.info(data.msg)\n }\n })\n }\n\n toCourseDetail = (id) => {\n const { dispatch, history } = this.props;\n dispatch(getCourses(id, () => {\n history.push(`/detail?id=${id}`)\n }));\n }\n\n render() {\n return (\n this.state.list.length\n ?\n <div className='recommendation'>\n <div className={'title'}>相关推荐</div>\n <ul>\n {\n this.state.list.map(item => {\n const Info = (\n <div className=\"info\">\n <p className='title text-overflow-1'>{item.course_title}</p>\n <p className='des text-overflow-2'>{item.simpledescription}</p>\n <Bottom\n item={item}\n />\n </div>\n )\n\n return (\n <VList\n key={item.course_id}\n img={item.image_name}\n handleClick={this.toCourseDetail}\n info={Info}\n id={item.course_id}\n />\n )\n })\n }\n </ul>\n </div>\n : null\n );\n }\n}\n\nexport default Recommendation;","import React, { Component } from 'react'\nimport './video-catalog.scss'\nimport { Link } from \"react-router-dom\";\nimport classnames from 'classnames'\n\n\nclass VideoCatalog extends Component {\n\n handleClick = (i) => {\n this.props.selectVideo(i)\n }\n\n render() {\n return (\n <div className='video-catalog'>\n <ul>\n {\n this.props.videoCatalog.map((item, index) => {\n return (\n <li key={item.id}\n className={classnames({active: this.props.activeIndex === index})}\n >\n <div className=\"video-title\" onClick={this.handleClick.bind(this, index)}>\n <span className=\"title\">{item.name}</span>\n <span className='duration'>{item.duration}</span>\n <i className={classnames(`iconfont`,\n [item.video_auth === 0\n ? 'iconiconfront-74'\n : 'iconplay_hovericon'],\n )}/>\n </div>\n {\n (item.practice && item.practice.qid)\n ? <Link to={{\n pathname: '/campTest',\n search: `?keshi_id=${item.id}&qid=${item.practice.qid}`\n }}>\n <div className=\"exercise\">\n 课后练习:{item.practice.title}\n <i className={classnames('iconfont', item.practice.is_tested ? 'iconiconfront-3' : 'iconiconfront-74')}/>\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 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} 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\";\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\n\nclass Video extends Component {\n\n video //video element\n player //video player instance\n\n courseID\n\n ws //websocket instance\n timer\n token\n count\n watchSec\n previousPlaybackRate = 1\n currentPlaybackRate = 1\n reconnect = true\n\n recordSocket\n recordTimer\n\n\n state = {\n title: '',\n courseId: null,\n videoList: [],\n datum: [],\n currentVideoSrc: '',\n activeIndex: 0,\n isAuth: true,\n course: null,\n salePrice: null,\n vCourseId: null,\n isLoading: true,\n isShowShareModal: false,\n shareData: {},\n singleBox: false,\n singMess: '',\n }\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 this.token = jsCookie.get('token')\n this.getVideoList()\n this.getDatumCatalog()\n this.setupRecord()\n }\n\n // 直接购买\n tobuy = () => {\n http.get(`${API['base-api']}/m/cart/addtopreorder/[${getParam('id')}]`).then((res) => {\n if (res.data.errno === 0) {\n this.props.history.push(`/order?id=${getParam('id')}`, {simple: 1})\n } else {\n Toast.info(res.data.msg, 2);\n }\n })\n }\n // 购买单集\n toSingleset = (item) => {\n this.setState({\n singleBox: true,\n singMess: item\n })\n }\n\n // 自组件传给父组件的boxHide\n boxHide = (val) => {\n this.setState({singleBox: val})\n }\n\n\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.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: true,\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.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\n if (index === this.state.activeIndex) {\n return\n }\n\n this.countSchedule()\n\n this.setState({\n activeIndex: index\n },\n () => {\n if (this.hasAuth()) {\n this.setPlayerSrc(this.state.videoList[index]['play_url'])\n this.sendLastRecord()\n this.playVideo()\n }\n\n\n }\n )\n }\n\n\n getVideoList = () => {\n let url = ''\n\n if (getParam('video_id')) {\n url = `${API.home}/m/course/play/${this.courseID + '?video_id=' + getParam('video_id')}`\n } else {\n url = `${API.home}/m/course/play/${this.courseID}`\n }\n http.get(url)\n .then(res => {\n const data = res.data\n if (data.code === 200) {\n\n this.setState(\n state => ({\n videoList: data.data['lessons'],\n currentVideoSrc: data.data['lessons'][state.activeIndex]['play_url'],\n course: data.data.course,\n courseId: data.data.course['course_id'],\n vCourseId: data.data.course['v_course_id'],\n title: data.data.course['course_title'],\n isLoading: false\n }),\n () => {\n if (this.state.course.is_aist) {\n this.setupWS()\n this.setupTimer()\n }\n if (this.lessonAvailable()) {\n if (this.hasAuth()) {\n Promise.resolve().then(() => {\n\n let {videoList, course} = this.state\n let videoIndex = videoList.findIndex(item => item.id == course.last_video_id)\n this.setState({\n activeIndex: videoIndex < 0 ? 0 : videoIndex\n })\n\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 } else {\n Toast.info(data.msg)\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 = () => {\n const {videoList, activeIndex} = this.state\n return videoList[activeIndex]['video_size'] !== 0\n }\n\n getCoursePrice = () => {\n http.get(`${API.home}/sys/course/price/${getParam('id')}`)\n .then(res => {\n const {data} = res\n if (data.code === 200) {\n this.setState({\n salePrice: data.data['sale_price']\n })\n }\n })\n }\n\n playWithAuth = () => {\n const {videoList, activeIndex} = this.state\n\n if (this.hasAuth()) {\n this.setPlayerSrc(videoList[activeIndex]['play_url'])\n }\n }\n\n hasAuth = () => {\n const {course, videoList, activeIndex} = this.state\n let lesson = videoList[activeIndex]\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} = this.state\n return (\n <div className='play'>\n <HeaderBar title={this.state.title} arrow={true}/>\n <Loading isLoading={this.state.isLoading}>\n <div className=\"video\">\n <video className={'video-js'} ref={el => this.video = el}>\n <source src={'/'} type='application/x-mpegURL'/>\n </video>\n {\n !isAuth && !!videoList[activeIndex]['is_class'] && (\n <div className=\"purchase-box\">\n <div className='hint'>您尚未购买该课时,请购买后学习。</div>\n <div className='btns'>\n <button type='button'\n onClick={this.tobuy}\n className='purchase-class'>¥{salePrice} 购买课程\n </button>\n <button type='button'\n onClick={this.toSingleset.bind(this, videoList[activeIndex])}\n className='purchase-episode'>¥{videoList.length && videoList[activeIndex]['class_price']} 购买单集\n </button>\n </div>\n </div>\n )\n }\n {\n !isAuth && !!course.is_aist && (\n <div className=\"is-aist-box\">\n <i className={'iconfont iconiconfront-21'}></i>\n <p className={'time'}>{videoList[activeIndex]['aist_start_time']}</p>\n <p className={'time'}>请耐心等待...</p>\n </div>\n )\n }\n </div>\n <div className='tab'>\n <div>\n <NavLink to={{pathname: `${match.url}/video`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >视频</NavLink>\n </div>\n <div>\n <NavLink to={{pathname: `${match.url}/datum`, search: `?id=${this.courseID}`}}\n replace\n activeClassName='active'\n >资料</NavLink>\n </div>\n </div>\n\n {/*单集购买*/}\n <Single singleBox={this.state.singleBox} boxHide={this.boxHide} data={this.state.singMess}\n videoId={this.state.singMess.id}\n title={this.state.singMess.course_tile}/>\n </Loading>\n <Switch>\n <Redirect exact from={'/play'} to={{\n pathname: '/play/video',\n search: location.search\n }}/>\n <Route path={`${match.path}/video`} render={props => {\n return <VideoCatalog\n activeIndex={this.state.activeIndex}\n selectVideo={this.selectVideo}\n videoCatalog={videoList}\n {...props}/>\n }}/>\n <Route path={`${match.path}/datum`} render={props => {\n return <DatumCatalog {...props} datum={this.state.datum}/>\n }}/>\n </Switch>\n <Route render={props => {\n return this.state.vCourseId ? <Recommendation {...props} vCourseId={this.state.vCourseId}/>\n : null\n }}/>\n <ProgressShareModal isShow={this.state.isShowShareModal}\n closeShareModal={() => this.setState({isShowShareModal: false})}\n data={this.state.shareData}\n />\n\n </div>\n );\n }\n}\n\n\nexport default connect(\n state => ({user: state.user}),\n null\n)(Video);","import React from 'react';\nimport './index.scss'\n\nconst VList = (props) => {\n return (\n <li className='v-list-base-item' onClick={props.handleClick.bind(this, props.id)}>\n <div className=\"content\">\n <div className=\"cover\">\n {props.status}\n <img src={props.img} alt=\"\"/>\n </div>\n {props.info}\n </div>\n {props.tab}\n </li>\n );\n};\n\nexport default VList;","import React, {Component} from 'react'\nimport './index.scss'\nimport {api, 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 }\n }\n\n componentDidMount() {\n if (getParam('is_class') === 1 || getParam('weixinpay')) {\n this.payCallback()\n }\n if (browser.isWeixin) {\n this.isweixinPay()\n }\n }\n\n // 选择支付方式\n check = (type) => {\n this.setState({\n payType: type\n })\n }\n\n // 确定购买\n toBuy = () => {\n http.get(`${API.home}/sys/createClassOrder/${this.props.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(this.state.orderId) : this.weixinPay(this.state.orderId)\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\").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\").toLowerCase();\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n // 支付宝支付\n alipayPay = (orderId) => {\n http.get(`${API['base-api']}/pay/alipay/wap_charge/oid/${orderId}`).then((res) => {\n if (res.data.errno === 0) {\n window.location = res.data.data.url;\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n onBridgeReady = (data) => {\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 this.payCallback()\n } else {\n alert('支付失败')\n }\n }\n )\n }\n // 微信内部支付\n isweixinPay = () => {\n let weixin_code = getParam('code')\n if (weixin_code) {\n if (getParam('oid') === undefined) {\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 this.onBridgeReady(data)\n if (typeof WeixinJSBridge == \"undefined\") {\n if (document.addEventListener) {\n document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady, false)\n } else if (document.attachEvent) {\n document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady)\n document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady)\n }\n } else {\n this.onBridgeReady()\n }\n } else {\n Toast.info(res.data.msg, 2)\n }\n })\n }\n }\n }\n\n // 支付完成之后获取状态\n payCallback = () => {\n http.get(`${API.home}/sys/orderStatus/${getParam('oid')}`).then((res) => {\n if (res.data.data.errno == '200') {\n // 正常购买单集成功\n this.setState({\n status: 6\n })\n } else if (res.data.data.errno == '201') {\n // 0元参团\n this.setState({\n status: 4\n })\n } else if (res.data.data.errno == '202') {\n // 0元购\n this.setState({\n status: 3\n })\n } else if (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 })\n } else {\n Toast.info(res.data.data.msg, 2)\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 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\n return (\n <div>\n {\n this.props.singleBox &&\n <div className='popup-box'>\n {\n this.state.status === 1 &&\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 iconzhifubaox-'></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 }\n {\n this.state.status === 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.state.nowPrice}元购买。</div>\n <div className=\"dec\">· 超过3天,按照未够集数/全部集数等比例计费,{this.state.laterPrice}元购买全集。</div>\n <div className='btn btn-18B4ED'>开始学习</div>\n <div className='btn btn-FF4000' onclick={this.toBuyAll()}>¥{this.state.nowPrice}购买全集\n </div>\n </div>\n }\n {\n this.state.status === 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 this.state.status === 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 this.state.status === 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=${getParam('id')}`} className='btn btn-18B4ED'>去学习</Link>\n </div>\n }\n {\n this.state.status === 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 </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
...@@ -19,7 +19,8 @@ ...@@ -19,7 +19,8 @@
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 50%; left: 50%;
transform: translate(-50%, -50%); margin-left: -225px;
margin-top: -400px;
text-align: center; text-align: center;
} }
} }
......
...@@ -151,7 +151,7 @@ class MyCourses extends PureComponent { ...@@ -151,7 +151,7 @@ class MyCourses extends PureComponent {
key={index} key={index}
info={Info} info={Info}
status={status} status={status}
id={item['course_id']} id={item['v_course_id']}
/> />
) )
}) })
......
import React, { Component } from 'react' import React, {Component} from 'react'
import HeaderBar from '@/common/HeaderBar' import HeaderBar from '@/common/HeaderBar'
import './video.scss' import './video.scss'
import { NavLink, Route, Redirect, Switch, Link } from 'react-router-dom' import {NavLink, Route, Redirect, Switch, Link} from 'react-router-dom'
import { http, getParam } from '@/utils' import {http, getParam} from '@/utils'
import Recommendation from './recommendation' import Recommendation from './recommendation'
import VideoCatalog from './video-catalog' import VideoCatalog from './video-catalog'
import DatumCatalog from './datum-catalog' import DatumCatalog from './datum-catalog'
import { Toast } from 'antd-mobile' import {Toast} from 'antd-mobile'
import videojs from 'video.js' import videojs from 'video.js'
import 'video.js/dist/video-js.min.css' import 'video.js/dist/video-js.min.css'
import { Modal } from "antd-mobile" import {Modal} from "antd-mobile"
import { Loading } from '@/common' import {Loading} from '@/common'
import { connect } from "react-redux" import {connect} from "react-redux"
import jsCookie from 'js-cookie' import jsCookie from 'js-cookie'
import io from 'socket.io-client' import io from 'socket.io-client'
import Single from "@/components/detail/single"; import Single from "@/components/detail/single";
...@@ -100,8 +100,8 @@ class Video extends Component { ...@@ -100,8 +100,8 @@ class Video extends Component {
componentDidMount() { componentDidMount() {
const location = window.location; const location = window.location;
if(location.protocol === 'https:'){ if (location.protocol === 'https:') {
location.replace('http'+ location.href.slice(5)) location.replace('http' + location.href.slice(5))
return return
} }
...@@ -334,7 +334,14 @@ class Video extends Component { ...@@ -334,7 +334,14 @@ class Video extends Component {
getVideoList = () => { getVideoList = () => {
http.get(`${API.home}/m/course/play/${this.courseID + '?video_id=' + getParam('video_id')}`) let url = ''
if (getParam('video_id')) {
url = `${API.home}/m/course/play/${this.courseID + '?video_id=' + getParam('video_id')}`
} else {
url = `${API.home}/m/course/play/${this.courseID}`
}
http.get(url)
.then(res => { .then(res => {
const data = res.data const data = res.data
if (data.code === 200) { if (data.code === 200) {
......
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