Commit a61e5770 authored by wangwei's avatar wangwei

磨耳朵

parent 319b2428
......@@ -4,4 +4,4 @@
hm.src = "https://hm.baidu.com/hm.js?3d48322170d471164729cba5dfa4195f";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();</script><style></style><link href=static/css/app.9f631d4069047acf4ee994f5d9f958c3.css rel=stylesheet></head><body><div id=app></div><script src=https://res.wx.qq.com/open/js/jweixin-1.3.2.js></script><script type=text/javascript src=static/js/manifest.72a8eeba4c837569e2d8.js></script><script type=text/javascript src=static/js/vendor.4cd27f7178c561192f9c.js></script><script type=text/javascript src=static/js/app.d5461d6fe89708bb4059.js></script></body></html>
\ No newline at end of file
})();</script><style></style><link href=static/css/app.9f631d4069047acf4ee994f5d9f958c3.css rel=stylesheet></head><body><div id=app></div><script src=https://res.wx.qq.com/open/js/jweixin-1.3.2.js></script><script type=text/javascript src=static/js/manifest.ec666e09e47b4cfebced.js></script><script type=text/javascript src=static/js/vendor.11662b0d6b6c262afef4.js></script><script type=text/javascript src=static/js/app.5830153defe41ae6afac.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([21],{GHGh:function(e,n,t){var a=t("z/+d");"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);t("rjj0")("64033dd0",a,!1,{})},IcnI:function(e,n,t){"use strict";var a=t("7+uW"),i=t("NYxO"),o=(t("zSLJ"),{setToken:function(e,n){e.token=n,localStorage.setItem("cc_token",n)},transitionGo:function(e){e.transitionName="slide-left"},transitionBack:function(e){e.transitionName="slide-right"},isMobile:function(e,n){e.isMobile=n}});a.default.use(i.a);n.a=new i.a.Store({state:{token:"",transitionName:"slide-left",isMobile:!1},mutations:o,actions:{setToken:function(e,n){(0,e.commit)("setToken",n)},isMobile:function(e,n){(0,e.commit)("isMobile",n)}}})},NHnr:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=t("7+uW"),i=function(){var e=this.$createElement,n=this._self._c||e;return n("div",{attrs:{id:"app"}},[n("transition",{attrs:{name:"fade"}},[n("router-view",{staticClass:"child-view"})],1)],1)};i._withStripped=!0;var o={render:i,staticRenderFns:[]},r=o;var l=!1;var c=t("VU/8")({name:"App",mounted:function(){}},r,!1,function(e){l||t("GHGh")},null,null);c.options.__file="src/App.vue";var s=c.exports,u=t("YaEn"),p=t("IcnI"),f=t("Au9i"),h=t.n(f),d=t("KPKd"),m=t.n(d),v=t("5Brm"),A=t.n(v),g=(t("d8/S"),function(){});g._getEventName=function(e,n){var t=e.getAttribute("vkshop-event-name").replace(/(^\s*)|(\s*$)/g,"");if(t){var a=[t],i=[];w(e,"vkshop-event-scope",i);for(var o=0,r=i.length;o<r;o++){var l=i[o].getAttribute("vkshop-event-scope").replace(/(^\s*)|(\s*$)/g,"");l&&a.push(l)}return a.reverse(),a.join("-")}return""},g.push=function(e){if(""==e[1])A.a.track(e[0]);else try{var n=b(e[1]);A.a.track(e[0],n)}catch(e){}};var b=function(e){if(""==e||null==e||void 0==e)return e;var n={};return e.split("&").forEach(function(e,t){var a=e.split("=");n[a[0]]=a[1]}),n},y=function(e){return function(n){var t=n.target,a=t.getAttribute("vkshop-event-type")||"click",i=t.getAttribute("vkshop-event-param")||"",o=t.getAttribute("vkshop-event-name").replace(/(^\s*)|(\s*$)/g,"");if(o&&a===e){var r=[o],l=[];w(t,"vkshop-event-scope",l);for(var c=0,s=l.length;c<s;c++){var u=l[c].getAttribute("vkshop-event-scope").replace(/(^\s*)|(\s*$)/g,"");u&&r.push(u)}r.reverse(),g.push(["_h5-"+r.join("-"),i])}}};function w(e,n,t){var a=e.parentNode;if("BODY"==a.nodeName)return a.hasAttribute(n)?t.push(a):t;a.hasAttribute(n)&&t.push(a),w(a,n,t)}g.init=function(){var e=document.querySelector("body"),n=document.querySelectorAll("[vkshop-event-no-bubble]");e.addEventListener("click",function(e){e.target.hasAttribute("vkshop-event-name")&&y("click")(e)}),n&&n.length>0&&n.addEventListener("click",y("click"))};var k=g;a.default.config.productionTip=!1,A.a.init({server_url:"http://47.107.250.38:8106/sa?project=default",heatmap:{clickmap:"not_collect",show_log:!0,scroll_notice_map:"not_collect"}}),k.init(),a.default.use(h.a),a.default.use(m.a),new a.default({el:"#app",router:u.a,store:p.a,components:{App:s},template:"<App/>"}),Array.prototype.find||(Array.prototype.find=function(e){if(null==this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n,t=Object(this),a=t.length>>>0,i=arguments[1],o=0;o<a;o++)if(n=t[o],e.call(i,n,o,t))return n})},YaEn:function(e,n,t){"use strict";var a=t("7+uW"),i=t("IcnI"),o=t("sf/l"),r=t("/ocq"),l=t("5Brm"),c=t.n(l);a.default.use(r.a);var s=new r.a({routes:[{path:"/",name:"index",component:function(e){return Promise.all([t.e(0),t.e(11)]).then(function(){var n=[t("dAjm")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:0}},{path:"/newLesson",name:"newLesson",component:function(e){return Promise.all([t.e(0),t.e(1)]).then(function(){var n=[t("4t0V")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:0}},{path:"/myGoodsList",name:"myGoodsList",component:function(e){return Promise.all([t.e(0),t.e(17)]).then(function(){var n=[t("P3Wy")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:1}},{path:"/mine",name:"mine",component:function(e){return Promise.all([t.e(0),t.e(15)]).then(function(){var n=[t("U/b5")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:1}},{path:"/order",name:"order",component:function(e){return Promise.all([t.e(0),t.e(10)]).then(function(){var n=[t("R7Pr")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:2}},{path:"/share",name:"share",component:function(e){return Promise.all([t.e(0),t.e(19)]).then(function(){var n=[t("Eg0l")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:2}},{path:"/author",name:"author",component:function(e){return t.e(14).then(function(){var n=[t("sA+T")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:100,noNew:!0}},{path:"/buyDetail",name:"buyDetail",component:function(e){return Promise.all([t.e(0),t.e(9)]).then(function(){var n=[t("bNYG")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{skip_login:!0,noNew:!0,deep:10}},{path:"/buy",name:"buy",component:function(e){return Promise.all([t.e(0),t.e(6)]).then(function(){var n=[t("Y1ei")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{noNew:!0,deep:11}},{path:"/success",name:"success",component:function(e){return Promise.all([t.e(0),t.e(7)]).then(function(){var n=[t("IF8E")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{noNew:!0,deep:12}},{path:"/buySuccess",name:"buySuccess",component:function(e){return Promise.all([t.e(0),t.e(18)]).then(function(){var n=[t("w9eS")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{noNew:!0,deep:12}},{path:"/map",name:"map",component:function(e){return Promise.all([t.e(0),t.e(5)]).then(function(){var n=[t("3QU7")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:3}},{path:"/saleSuccess",name:"saleSuccess",component:function(e){return Promise.all([t.e(0),t.e(13)]).then(function(){var n=[t("wSE2")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:4}},{path:"/bindMobile",name:"bindMobile",component:function(e){return Promise.all([t.e(0),t.e(12)]).then(function(){var n=[t("/Vxk")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{deep:0}},{path:"/activity",name:"activity",component:function(e){return Promise.all([t.e(0),t.e(4)]).then(function(){var n=[t("yYpN")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{skip_login:!0}},{path:"/activityInvite",name:"activityInvite",component:function(e){return Promise.all([t.e(0),t.e(3)]).then(function(){var n=[t("aRHX")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{skip_login:!0}},{path:"/inviteList",name:"inviteList",component:function(e){return Promise.all([t.e(0),t.e(8)]).then(function(){var n=[t("eZU3")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{skip_login:!0}},{path:"/collection",name:"collection",component:function(e){return Promise.all([t.e(0),t.e(2)]).then(function(){var n=[t("PTpu")];e.apply(null,n)}.bind(this)).catch(t.oe)},meta:{skip_login:!0}},{path:"*",component:function(e){return Promise.all([t.e(0),t.e(16)]).then(function(){var n=[t("Zazt")];e.apply(null,n)}.bind(this)).catch(t.oe)}}]});s.beforeEach(function(e,n,t){a.default.nextTick(function(){c.a.quick("autoTrackSinglePage")});var r={versions:function(){var e=navigator.userAgent;navigator.appVersion;return{trident:e.indexOf("Trident")>-1,presto:e.indexOf("Presto")>-1,webKit:e.indexOf("AppleWebKit")>-1,gecko:e.indexOf("Gecko")>-1&&-1===e.indexOf("KHTML"),mobile:!!e.match(/AppleWebKit.*Mobile.*/),ios:!!e.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),android:e.indexOf("Android")>-1||e.indexOf("Linux")>-1,iPhone:e.indexOf("iPhone")>-1,iPad:e.indexOf("iPad")>-1,webApp:-1==e.indexOf("Safari")}}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()};r.versions.mobile&&navigator.userAgent.toLowerCase().match(/MicroMessenger/i);i.a.dispatch("isMobile",r.versions.mobile),window._hmt.push(["_trackPageview","/#"+e.fullPath]),document.title="唱唱启蒙英语";var l=function(){if(localStorage.getItem("retUrl")&&null!==localStorage.getItem("retUrl")&&""!==localStorage.getItem("retUrl")){var e=localStorage.getItem("retUrl").toString();localStorage.removeItem("retUrl"),t(e)}else t()};if("author"===e.name||"bindMobile"===e.name)t();else if(window.location.href.indexOf("token")>-1){var s=o.a.getUrlParam().token;i.a.dispatch("setToken",s),l()}else if(localStorage.getItem("cc_token"))i.a.dispatch("setToken",localStorage.getItem("cc_token")),l();else if(e.meta.skip_login)l();else{var u={retUrl:e.fullPath};e.meta.noNew&&(u.is_new_user_url=1),t({name:"author",query:u})}}),n.a=s},"d8/S":function(e,n){},"sf/l":function(e,n,t){"use strict";n.a={dateFmt:function(e,n){var t={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds(),"q+":Math.floor((e.getMonth()+3)/3),S:e.getMilliseconds()};for(var a in/(y+)/.test(n)&&(n=n.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length))),t)new RegExp("("+a+")").test(n)&&(n=n.replace(RegExp.$1,1==RegExp.$1.length?t[a]:("00"+t[a]).substr((""+t[a]).length)));return n},getUrlParam:function(){var e=location.search,n=new Object;if(-1!=e.indexOf("?"))for(var t=e.substr(1).split("&"),a=0;a<t.length;a++)n[t[a].split("=")[0]]=unescape(t[a].split("=")[1]);return n},toDataURL:function(e,n){var t=new XMLHttpRequest;t.onload=function(){var e=new FileReader;e.onloadend=function(){n(e.result)},e.readAsDataURL(t.response)},t.responseType="blob",t.open("GET",e,!0),t.send()}}},"z/+d":function(e,n,t){(e.exports=t("FZ+f")(!0)).push([e.i,'\n#app {\n overflow: auto;\n -webkit-overflow-scrolling:touch;\n font-family: "Helvetica Neue",\n Helvetica,\n "PingFang SC",\n "Hiragino Sans GB",\n "Microsoft YaHei",\n "\\5FAE\\8F6F\\96C5\\9ED1",\n Arial,\n sans-serif;\n}\nhtml,body,#app{\n width: 100%;\n overflow: auto;\n}\n*{\n margin: auto;\n padding: auto;\n}\n.child-view {\n position: relative;\n width: 100%;\n min-height: 100vh;\n -webkit-transition: all .5s;\n transition: all .5s;\n}\n.fade-enter-active, .fade-leave-active {\n -webkit-transition: opacity .5s;\n transition: opacity .5s;\n}\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n opacity: 0;\n}\n',"",{version:3,sources:["D:/myproject/new-singsingH5/src/src/App.vue"],names:[],mappings:";AAiBA;EACA,eAAA;EACA,iCAAA;EACA;;;;;;;aAOA;CACA;AACA;IACA,YAAA;IACA,eAAA;CACA;AACA;IACA,aAAA;IACA,cAAA;CACA;AACA;EACA,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,4BAAA;EAAA,oBAAA;CACA;AACA;EACA,gCAAA;EAAA,wBAAA;CACA;AACA;EACA,WAAA;CACA",file:"App.vue",sourcesContent:['<template>\n <div id="app">\n <transition name="fade">\n <router-view class="child-view"/>\n </transition>\n </div>\n</template>\n\n<script>\nexport default {\n name: \'App\',\n mounted(){\n },\n}\n<\/script>\n\n<style>\n#app {\n overflow: auto;\n -webkit-overflow-scrolling:touch;\n font-family: "Helvetica Neue",\n Helvetica,\n "PingFang SC",\n "Hiragino Sans GB",\n "Microsoft YaHei",\n "微软雅黑",\n Arial,\n sans-serif;\n}\n html,body,#app{\n width: 100%;\n overflow: auto;\n }\n *{\n margin: auto;\n padding: auto;\n }\n.child-view {\n position: relative;\n width: 100%;\n min-height: 100vh;\n transition: all .5s;\n}\n.fade-enter-active, .fade-leave-active {\n transition: opacity .5s;\n}\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n opacity: 0;\n}\n</style>\n'],sourceRoot:""}])},zSLJ:function(e,n,t){"use strict"}},["NHnr"]);
//# sourceMappingURL=app.5830153defe41ae6afac.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///./src/App.vue?cefc","webpack:///./src/store/mutations.js","webpack:///./src/store/index.js","webpack:///./src/store/actions.js","webpack:///./src/App.vue?edc5","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/util/log.js","webpack:///./src/main.js","webpack:///./src/router/index.js","webpack:///./src/util/common.js","webpack:///./src/App.vue?569e"],"names":["content","__webpack_require__","module","i","locals","exports","store_mutations","setToken","state","token","localStorage","setItem","transitionGo","transitionName","transitionBack","isMobile","flag","vue_esm","use","vuex_esm","__webpack_exports__","Store","mutations","actions","_ref","commit","_ref2","render","_h","this","$createElement","_c","_self","attrs","id","name","staticClass","_withStripped","esExports","staticRenderFns","selectortype_template_index_0_src_App","disposed","Component","normalizeComponent","mounted","ssrContext","options","__file","src_App","Log","_getEventName","target","attr","eventName","getAttribute","replace","arr","list1","getParents","len","length","scope","push","reverse","join","args","sensorsdata_min_default","a","track","paramObj","compileParam","e","param","undefined","obj","split","forEach","v","arr1","getEventHandler","_eventType","eventTarget","eventType","eventParam","scopes","list2","el","list","parent","parentNode","nodeName","hasAttribute","init","ndBody","document","querySelector","ndNoBubble","querySelectorAll","addEventListener","log","config","productionTip","server_url","heatmap","clickmap","show_log","scroll_notice_map","mint_ui_common_default","vue_clipboard_default","router","store","components","App","template","Array","prototype","find","predicate","TypeError","value","Object","thisArg","arguments","call","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1__store__","__WEBPACK_IMPORTED_MODULE_2__util_common__","__WEBPACK_IMPORTED_MODULE_3_vue_router__","__WEBPACK_IMPORTED_MODULE_4_sa_sdk_javascript__","__WEBPACK_IMPORTED_MODULE_4_sa_sdk_javascript___default","n","routes","path","component","Promise","all","then","__WEBPACK_AMD_REQUIRE_ARRAY__","apply","bind","catch","oe","meta","deep","noNew","skip_login","beforeEach","to","from","next","nextTick","quick","browser","versions","u","navigator","userAgent","appVersion","trident","indexOf","presto","webKit","gecko","mobile","match","ios","android","iPhone","iPad","webApp","language","browserLanguage","toLowerCase","dispatch","window","_hmt","fullPath","title","goOn","getItem","retUrl","toString","removeItem","location","href","getUrlParam","query","is_new_user_url","dateFmt","date","format","o","M+","getMonth","d+","getDate","h+","getHours","m+","getMinutes","s+","getSeconds","q+","Math","floor","S","getMilliseconds","k","test","RegExp","$1","getFullYear","substr","url","search","theRequest","strs","unescape","toDataURL","src","callback","xhttp","XMLHttpRequest","onload","fileReader","FileReader","onloadend","result","readAsDataURL","response","responseType","open","send","version","sources","names","mappings","file","sourcesContent","sourceRoot"],"mappings":"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","file":"static/js/app.5830153defe41ae6afac.js","sourcesContent":["// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/index.js?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7ba5bd90\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./App.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar update = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\")(\"64033dd0\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../node_modules/css-loader/index.js?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7ba5bd90\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./App.vue\", function() {\n var newContent = require(\"!!../node_modules/css-loader/index.js?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7ba5bd90\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./App.vue\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-style-loader!./node_modules/css-loader?{\"sourceMap\":true}!./node_modules/vue-loader/lib/style-compiler?{\"vue\":true,\"id\":\"data-v-7ba5bd90\",\"scoped\":false,\"hasInlineConfig\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue\n// module id = GHGh\n// module chunks = 21","import Cookie from \"@/util/cookie\";\r\nconst mutations={\r\n setToken(state,token){\r\n state.token=token;\r\n localStorage.setItem('cc_token',token);\r\n },\r\n transitionGo(state){\r\n state.transitionName='slide-left';\r\n },\r\n transitionBack(state){\r\n state.transitionName='slide-right';\r\n },\r\n isMobile(state,flag){\r\n state.isMobile = flag\r\n }\r\n};\r\nexport default mutations;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/mutations.js","import Vue from 'vue'\r\nimport vuex from 'vuex'\r\nimport mutations from './mutations'\r\nimport actions from './actions'\r\nVue.use(vuex);\r\n\r\nexport default new vuex.Store({\r\n state:{\r\n token:'',\r\n transitionName:'slide-left',\r\n isMobile:false,\r\n },\r\n mutations,\r\n actions\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","export default{\r\n setToken({commit},token){\r\n commit('setToken',token);\r\n },\r\n isMobile({commit},flag){\r\n commit('isMobile',flag);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/actions.js","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"app\" } },\n [\n _c(\n \"transition\",\n { attrs: { name: \"fade\" } },\n [_c(\"router-view\", { staticClass: \"child-view\" })],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\nif (module.hot) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"vue-hot-reload-api\") .rerender(\"data-v-7ba5bd90\", esExports)\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7ba5bd90\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","var disposed = false\nfunction injectStyle (ssrContext) {\n if (disposed) return\n require(\"!!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7ba5bd90\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7ba5bd90\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\nComponent.options.__file = \"src/App.vue\"\n\n/* hot reload */\nif (module.hot) {(function () {\n var hotAPI = require(\"vue-hot-reload-api\")\n hotAPI.install(require(\"vue\"), false)\n if (!hotAPI.compatible) return\n module.hot.accept()\n if (!module.hot.data) {\n hotAPI.createRecord(\"data-v-7ba5bd90\", Component.options)\n } else {\n hotAPI.reload(\"data-v-7ba5bd90\", Component.options)\n }\n module.hot.dispose(function (data) {\n disposed = true\n })\n})()}\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","<template>\n <div id=\"app\">\n <transition name=\"fade\">\n <router-view class=\"child-view\"/>\n </transition>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'App',\n mounted(){\n },\n}\n</script>\n\n<style>\n#app {\n overflow: auto;\n -webkit-overflow-scrolling:touch;\n font-family: \"Helvetica Neue\",\n Helvetica,\n \"PingFang SC\",\n \"Hiragino Sans GB\",\n \"Microsoft YaHei\",\n \"微软雅黑\",\n Arial,\n sans-serif;\n}\n html,body,#app{\n width: 100%;\n overflow: auto;\n }\n *{\n margin: auto;\n padding: auto;\n }\n.child-view {\n position: relative;\n width: 100%;\n min-height: 100vh;\n transition: all .5s;\n}\n.fade-enter-active, .fade-leave-active {\n transition: opacity .5s;\n}\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n opacity: 0;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","import sa from 'sa-sdk-javascript'\nconst Log = function () {}\n// 模块发送统计\nLog._getEventName = function (target, attr) {\n var eventName = target.getAttribute('vkshop-event-name').replace(/(^\\s*)|(\\s*$)/g,'');\n if (eventName) {\n // 获取页面层级属性\n var arr = [eventName],\n list1 = [];\n getParents(target, 'vkshop-event-scope', list1)\n for (var i = 0, len = list1.length; i < len; i++) {\n var scope = list1[i].getAttribute('vkshop-event-scope').replace(/(^\\s*)|(\\s*$)/g,'');\n if (scope) {\n arr.push(scope);\n }\n }\n arr.reverse();\n return arr.join('-');\n } else {\n return '';\n }\n};\n// 事件统计发送到神策\nLog.push = function (args) {\n if (args[1] == '') {\n sa.track(args[0])\n } else {\n try{\n let paramObj = compileParam(args[1])\n sa.track(args[0], paramObj)\n }catch(e) {\n\n }\n }\n};\n\nlet compileParam = function (param) {\n if (param == '' || param == null || param == undefined) return param;\n let arr = param.split(\"&\");\n let obj = {}\n arr.forEach( function (v, i) {\n let arr1 = v.split(\"=\");\n obj[arr1[0]] = arr1[1];\n })\n return obj;\n}\n\n/**\n * 生成1个统计事件监听函数,要么是focus、要么是click,更多的事件需要的时候再支持\n *\n * @param {String} _eventType 需要处理哪种类型的事件\n * @param {Boolean} isGaEnabled 透传的参数\n * @return Function\n */\nvar getEventHandler = function (_eventType) {\n return function (e) {\n // 拿到事件发生的节点\n var eventTarget = e.target,\n eventType = eventTarget.getAttribute('vkshop-event-type') || 'click',\n eventParam = eventTarget.getAttribute('vkshop-event-param')|| '',\n eventName = eventTarget.getAttribute('vkshop-event-name').replace(/(^\\s*)|(\\s*$)/g,''),\n eventExpand = {};\n if (eventName && eventType === _eventType) { // 判断vkshop-event-name 是否为空,并且类型匹配\n // 获取页面层级属性\n var scopes = [eventName],\n list2 = []\n getParents(eventTarget, 'vkshop-event-scope', list2)\n for (var i = 0, len = list2.length; i < len; i++) {\n var scope = list2[i].getAttribute('vkshop-event-scope').replace(/(^\\s*)|(\\s*$)/g,'')\n if (scope) { // 判断vkshop-event-scope 是否为空\n scopes.push(scope);\n }\n }\n scopes.reverse();\n // 最前面说明来源是h5\n Log.push(['_h5-' + scopes.join('-'), eventParam]);\n }\n };\n};\n/**\n * 原生获取父元素\n * @param {*} el\n * @param {*} attr 属性,符合条件的属性\n * @param {*} list 返回的父元素集合\n */\nfunction getParents(el, attr, list) {\n var parent = el.parentNode\n if (parent.nodeName == 'BODY') {\n if (parent.hasAttribute(attr)) {\n return list.push(parent)\n } else {\n return list\n }\n } else {\n if (parent.hasAttribute(attr)) {\n list.push(parent)\n }\n getParents(parent, attr, list)\n }\n}\n\n/**\n * 利用事件委托对所有需要自动发送统计事件的节点进行监听,只能初始化一次\n */\nvar isInitialized = false;\nLog.init = function () {\n // if (isBrowser === false) { return; }\n // if (isInitialized) { return; }\n // isInitialized = true;\n // window.onload = function () {\n var ndBody = document.querySelector('body');\n var ndNoBubble = document.querySelectorAll('[vkshop-event-no-bubble]');\n\n // 处理可以冒泡的节点\n ndBody.addEventListener('click', function (e) {\n // 处理选择符\n if (e.target.hasAttribute('vkshop-event-name')) {\n getEventHandler('click')(e)\n }\n });\n\n // 处理无法冒泡到顶层的结点点击\n if (ndNoBubble && ndNoBubble.length > 0) {\n ndNoBubble.addEventListener('click', getEventHandler('click'));\n }\n};\n\nexport default Log\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/log.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\nimport router from './router'\nimport store from './store'\nimport MintUI from 'mint-ui'\nimport VueClipboard from 'vue-clipboard2'\nimport sa from'sa-sdk-javascript';\nimport 'mint-ui/lib/style.css'\nimport Log from './util/log'\nVue.config.productionTip = false;\nsa.init({\n server_url: 'http://47.107.250.38:8106/sa?project=default', // 替换成自己的神策地址\n heatmap: {\n //是否开启点击图,默认 default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭\n clickmap:'not_collect',\n show_log: true, // 打印console,自己配置,可以看到自己是否踩点成功,以及\n //是否开启触达注意力图,默认 default 表示开启,自动采集 $WebStay 事件,可以设置 'not_collect' 表示关闭\n scroll_notice_map:'not_collect'\n }\n});\n Log.init();\nVue.use(MintUI);\nVue.use(VueClipboard);\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n store,\n components: { App },\n template: '<App/>'\n});\nif (!Array.prototype.find) {\n Array.prototype.find = function(predicate) {\n 'use strict';\n if (this == null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n };\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import Vue from 'vue'\nimport store from \"@/store\"\nimport common from '../util/common'\nimport Router from 'vue-router'\nimport sa from'sa-sdk-javascript';\nVue.use(Router);\n\nconst router =new Router({\n routes: [\n {\n path: '/',\n name: 'index',\n component: e=>require(['@/components/index'],e),//\n meta:{\n deep:0\n }\n }, {\n path: '/newLesson',\n name: 'newLesson',\n component: e=>require(['@/components/newLesson'],e),//\n meta:{\n deep:0\n }\n }, {\n path: '/myGoodsList',\n name: 'myGoodsList',\n component: e=>require(['@/components/myGoodsList'],e),\n meta:{\n deep:1\n }\n },{\n path: '/mine',\n name: 'mine',\n component: e=>require(['@/components/mine'],e),\n meta:{\n deep:1\n }\n },{\n path: '/order',\n name: 'order',\n component: e=>require(['@/components/order'],e),\n meta:{\n deep:2\n }\n },{\n path: '/share',\n name: 'share',\n component: e=>require(['@/components/share'],e),\n meta:{\n deep:2\n }\n },\n {\n path: '/author',\n name: 'author',\n component: e=>require(['@/components/author'],e),\n meta:{\n deep:100,\n noNew:true\n }\n },{\n path: '/buyDetail',\n name: 'buyDetail',\n component: e=>require(['@/components/buy/index'],e),\n meta:{\n skip_login:true,\n noNew:true,\n deep:10\n }\n }, {\n path: '/buy',\n name: 'buy',\n component: e=>require(['@/components/buy/buy'],e),\n meta:{\n noNew:true,\n deep:11\n }\n }, {\n path: '/success',\n name: 'success',\n component: e=>require(['@/components/buy/success'],e),\n meta:{\n noNew:true,\n deep:12\n }\n },{\n path: '/buySuccess',\n name: 'buySuccess',\n component: e=>require(['@/components/buy/buySuccess'],e),\n meta:{\n noNew:true,\n deep:12\n }\n }, {\n path: '/map',\n name: 'map',\n component: e=>require(['@/components/map/index'],e),\n meta:{\n deep:3\n }\n },\n {\n path: '/saleSuccess',\n name: 'saleSuccess',\n component: e=>require(['@/components/buy/saleSuccess'],e),\n meta:{\n deep:4\n }\n }, {\n path: '/bindMobile',\n name: 'bindMobile',\n component: e=>require(['@/components/bindMobile'],e),\n meta:{\n deep:0\n }\n },\n {\n path: '/activity',\n name: 'activity',\n component: e=>require(['@/components/buy/activity'],e),\n meta:{\n skip_login:true\n }\n },\n {\n path: '/activityInvite',\n name: 'activityInvite',\n component: e=>require(['@/components/buy/activityInvite'],e),\n meta:{\n skip_login:true\n }\n },\n {\n path: '/inviteList',\n name: 'inviteList',\n component: e=>require(['@/components/buy/inviteList'],e),\n meta:{\n skip_login:true\n }\n },\n {\n path: '/collection',\n name: 'collection',\n component: e=>require(['@/components/collection'],e),\n meta:{\n skip_login:true\n }\n },\n {\n path:'*',\n component: e=>require(['@/components/error'],e),\n },\n ]\n});\n\nrouter.beforeEach((to,from,next)=> {\n Vue.nextTick(() => {\n sa.quick(\"autoTrackSinglePage\");\n });\n let browser = {\n versions: function () {\n let u = navigator.userAgent, app = navigator.appVersion;\n return { //移动终端浏览器版本信息\n trident: u.indexOf('Trident') > -1, //IE内核\n presto: u.indexOf('Presto') > -1, //opera内核\n webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核\n gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') === -1, //火狐内核\n mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端\n ios: !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端\n android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器\n iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器\n iPad: u.indexOf('iPad') > -1, //是否iPad\n webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部\n };\n }(),\n\n language: (navigator.browserLanguage || navigator.language).toLowerCase()\n };\n if (browser.versions.mobile) {//判断是否是移动设备打开。browser代码在下面\n let ua = navigator.userAgent.toLowerCase();//获取判断用的对象\n if (ua.match(/MicroMessenger/i) == \"micromessenger\") {\n\n }else{\n }\n }\n store.dispatch('isMobile',browser.versions.mobile);\n window._hmt.push(['_trackPageview', '/#' + to.fullPath]);\n document.title = '唱唱启蒙英语';\n let goOn=function(){\n if(localStorage.getItem('retUrl') && localStorage.getItem('retUrl') !== null && localStorage.getItem('retUrl') !== ''){\n let retUrl = localStorage.getItem('retUrl').toString();\n localStorage.removeItem('retUrl');\n next(retUrl);\n }else{\n next()\n }\n };\n if(to.name === 'author' || to.name === 'bindMobile'){\n next()\n }else if(window.location.href.indexOf('token')>-1){\n let token = common.getUrlParam().token;\n store.dispatch('setToken',token);\n goOn()\n // 通过cookie获取token\n }else if(localStorage.getItem('cc_token')) {\n store.dispatch('setToken', localStorage.getItem('cc_token'));\n goOn()\n // 无需token登录页面\n }else if(to.meta.skip_login){\n goOn()\n }else{\n let query = {retUrl:to.fullPath};\n if(to.meta.noNew){\n query.is_new_user_url = 1\n }\n next({name:'author',query:query})\n }\n\n // if(to.meta.skip_login){\n\n // next();\n // }\n});\n\nexport default router;\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","export default{\n\tdateFmt:function(date,format) {\n\t\tvar o = {\n\t\t \"M+\" : date.getMonth()+1, //month\n\t\t \"d+\" : date.getDate(), //day\n\t\t \"h+\" : date.getHours(), //hour\n\t\t \"m+\" : date.getMinutes(), //minute\n\t\t \"s+\" : date.getSeconds(), //second\n\t\t \"q+\" : Math.floor((date.getMonth()+3)/3), //quarter\n\t\t \"S\" : date.getMilliseconds() //millisecond\n\t\t }\n\t\t if(/(y+)/.test(format)) format=format.replace(RegExp.$1,\n\t\t (date.getFullYear()+\"\").substr(4 - RegExp.$1.length));\n\t\t for(var k in o)if(new RegExp(\"(\"+ k +\")\").test(format))\n\t\t format = format.replace(RegExp.$1,\n\t\t RegExp.$1.length==1 ? o[k] :\n\t\t (\"00\"+ o[k]).substr((\"\"+ o[k]).length));\n\t\t return format;\n\t},\n\tgetUrlParam(){\n var url = location.search; //获取url中\"?\"符后的字串\n var theRequest = new Object();\n if (url.indexOf(\"?\") != -1) {\n var str = url.substr(1);\n var strs = str.split(\"&\");\n for(var i = 0; i < strs.length; i ++) {\n theRequest[strs[i].split(\"=\")[0]]=unescape(strs[i].split(\"=\")[1]);\n }\n }\n return theRequest;\n },\n toDataURL (src, callback) {\n var xhttp = new XMLHttpRequest()\n xhttp.onload = function () {\n var fileReader = new FileReader()\n fileReader.onloadend = function () {\n callback(fileReader.result)\n }\n fileReader.readAsDataURL(xhttp.response)\n };\n xhttp.responseType = 'blob'\n xhttp.open('GET', src, true)\n xhttp.send()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/util/common.js","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(true);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#app {\\n overflow: auto;\\n -webkit-overflow-scrolling:touch;\\n font-family: \\\"Helvetica Neue\\\",\\n Helvetica,\\n \\\"PingFang SC\\\",\\n \\\"Hiragino Sans GB\\\",\\n \\\"Microsoft YaHei\\\",\\n \\\"\\\\5FAE\\\\8F6F\\\\96C5\\\\9ED1\\\",\\n Arial,\\n sans-serif;\\n}\\nhtml,body,#app{\\n width: 100%;\\n overflow: auto;\\n}\\n*{\\n margin: auto;\\n padding: auto;\\n}\\n.child-view {\\n position: relative;\\n width: 100%;\\n min-height: 100vh;\\n -webkit-transition: all .5s;\\n transition: all .5s;\\n}\\n.fade-enter-active, .fade-leave-active {\\n -webkit-transition: opacity .5s;\\n transition: opacity .5s;\\n}\\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\\n opacity: 0;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"D:/myproject/new-singsingH5/src/src/App.vue\"],\"names\":[],\"mappings\":\";AAiBA;EACA,eAAA;EACA,iCAAA;EACA;;;;;;;aAOA;CACA;AACA;IACA,YAAA;IACA,eAAA;CACA;AACA;IACA,aAAA;IACA,cAAA;CACA;AACA;EACA,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,4BAAA;EAAA,oBAAA;CACA;AACA;EACA,gCAAA;EAAA,wBAAA;CACA;AACA;EACA,WAAA;CACA\",\"file\":\"App.vue\",\"sourcesContent\":[\"<template>\\n <div id=\\\"app\\\">\\n <transition name=\\\"fade\\\">\\n <router-view class=\\\"child-view\\\"/>\\n </transition>\\n </div>\\n</template>\\n\\n<script>\\nexport default {\\n name: 'App',\\n mounted(){\\n },\\n}\\n</script>\\n\\n<style>\\n#app {\\n overflow: auto;\\n -webkit-overflow-scrolling:touch;\\n font-family: \\\"Helvetica Neue\\\",\\n Helvetica,\\n \\\"PingFang SC\\\",\\n \\\"Hiragino Sans GB\\\",\\n \\\"Microsoft YaHei\\\",\\n \\\"微软雅黑\\\",\\n Arial,\\n sans-serif;\\n}\\n html,body,#app{\\n width: 100%;\\n overflow: auto;\\n }\\n *{\\n margin: auto;\\n padding: auto;\\n }\\n.child-view {\\n position: relative;\\n width: 100%;\\n min-height: 100vh;\\n transition: all .5s;\\n}\\n.fade-enter-active, .fade-leave-active {\\n transition: opacity .5s;\\n}\\n.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\\n opacity: 0;\\n}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader?{\"sourceMap\":true}!./node_modules/vue-loader/lib/style-compiler?{\"vue\":true,\"id\":\"data-v-7ba5bd90\",\"scoped\":false,\"hasInlineConfig\":false}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue\n// module id = z/+d\n// module chunks = 21"],"sourceRoot":""}
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,o){for(var f,d,i,u=0,b=[];u<r.length;u++)d=r[u],t[d]&&b.push(t[d][0]),t[d]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(n&&n(r,c,o);b.length;)b.shift()();if(o)for(u=0;u<o.length;u++)i=a(a.s=o[u]);return i};var r={},t={22:0};function a(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,a){n=t[e]=[r,a]});n[2]=r;var c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,a.nc&&o.setAttribute("nonce",a.nc),o.src=a.p+"static/js/"+e+"."+{0:"70a7e7dda89d34d1485f",1:"a00eeec97eca55eb2661",2:"2aff34d1c988155088e0",3:"280edd1955649f0ed2b2",4:"403c7c374ba40f0b079e",5:"20759f75ea39d01afe98",6:"42dc7cd7f3c0a7513063",7:"ab3305eb425a0075e299",8:"5b7f72034dfa7a4bba36",9:"36abe5869f956c6e960c",10:"8d0e37c9f9a3f2593959",11:"bc77666fec064591b087",12:"223ef55d3b18924abc66",13:"e071662ce4bb6348695c",14:"da3a460997d731c65432",15:"efc5b92baeac5a717659",16:"8af7eb6f97e0759ee078",17:"f5938e4969a0c61b5f31",18:"6cd5dca1601592bd95fd",19:"2ec1f3dfd3391f01a7e4"}[e]+".js";var f=setTimeout(d,12e4);function d(){o.onerror=o.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return o.onerror=o.onload=d,c.appendChild(o),r},a.m=e,a.c=r,a.d=function(e,n,r){a.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},a.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(n,"a",n),n},a.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},a.p="",a.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.ec666e09e47b4cfebced.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 50921f53e925fc19dedf"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","22","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"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","file":"static/js/manifest.ec666e09e47b4cfebced.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\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 = [], result;\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(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\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// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t22: 0\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 installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = \"text/javascript\";\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"70a7e7dda89d34d1485f\",\"1\":\"a00eeec97eca55eb2661\",\"2\":\"2aff34d1c988155088e0\",\"3\":\"280edd1955649f0ed2b2\",\"4\":\"403c7c374ba40f0b079e\",\"5\":\"20759f75ea39d01afe98\",\"6\":\"42dc7cd7f3c0a7513063\",\"7\":\"ab3305eb425a0075e299\",\"8\":\"5b7f72034dfa7a4bba36\",\"9\":\"36abe5869f956c6e960c\",\"10\":\"8d0e37c9f9a3f2593959\",\"11\":\"bc77666fec064591b087\",\"12\":\"223ef55d3b18924abc66\",\"13\":\"e071662ce4bb6348695c\",\"14\":\"da3a460997d731c65432\",\"15\":\"efc5b92baeac5a717659\",\"16\":\"8af7eb6f97e0759ee078\",\"17\":\"f5938e4969a0c61b5f31\",\"18\":\"6cd5dca1601592bd95fd\",\"19\":\"2ec1f3dfd3391f01a7e4\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 50921f53e925fc19dedf"],"sourceRoot":""}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
src/assets/changeOld.png

24.5 KB | W: | H:

src/assets/changeOld.png

21.9 KB | W: | H:

src/assets/changeOld.png
src/assets/changeOld.png
src/assets/changeOld.png
src/assets/changeOld.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/guide/next.png

347 Bytes | W: | H:

src/assets/guide/next.png

624 Bytes | W: | H:

src/assets/guide/next.png
src/assets/guide/next.png
src/assets/guide/next.png
src/assets/guide/next.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/listen.png

21.7 KB | W: | H:

src/assets/listen.png

24 KB | W: | H:

src/assets/listen.png
src/assets/listen.png
src/assets/listen.png
src/assets/listen.png
  • 2-up
  • Swipe
  • Onion skin
<template>
<div class="collection-page">
<div class="collection-content">
<div class="collection-content" v-if="!noOne">
<div class="top-play">
<img :src="playAllUrl" class="play-all-img">
<div>
......@@ -11,7 +11,8 @@
class="collection-list"
v-infinite-scroll="loadMore"
infinite-scroll-disabled="loading">
<li v-for="(data,index) in showObj.audio" @click="showAudio(index)">
<li
v-for="(data,index) in showObj.audio" @click="showAudio(index)">
<div class="index">{{index+1}}</div>
<div class="text">
<div class="title">
......@@ -26,27 +27,45 @@
</li>
</ul>
</div>
<div v-if="noOne" class="noOne">
<img :src="errorUrl">
<div class="text">
还没有收藏哦
<br>
快去课程里添加吧
</div>
<div class="btn">
去添加
</div>
</div>
<foot-page/>
<audio-page ref="audioPage" v-if="showObj.audio.length>0" v-show="showObj.show" :showObj="showObj"/>
<guide-block v-if="noOne"></guide-block>
</div>
</template>
<script>
import guideBlock from '../guide/collection'
import {getUserCollectApi} from "../../service/api";
import errorUrl from '../../assets/error.png'
import playAllUrl from '../../assets/newLesson/audio-play-all.png'
import playDefaultUrl from '../../assets/newLesson/zDefaultIcon.png'
import playActiveUrl from '../../assets/newLesson/zIcon.png'
import footPage from '../public/bottomTab'
import audioPage from './audio'
export default {
name: "index",
components:{
footPage,
audioPage
audioPage,
guideBlock
},
data(){
return {
errorUrl:errorUrl,
playAllUrl:playAllUrl,
noOne:false,
playDefaultUrl:playDefaultUrl,
playActiveUrl:playActiveUrl,
showObj:{
......@@ -72,9 +91,12 @@
},
initPage(){
getUserCollectApi({limit:100000}).then(res=>{
this.showObj.audio =this.showObj.audio.concat(res.list);
this.total = res.total;
this.page++
if(res.list.length < 1){
this.noOne =true
}else{
this.showObj.audio =res.list;
this.total = res.total;
}
})
}
}
......@@ -86,6 +108,32 @@
._27377740323539322{height:14*@toVw;width:16*@toVw;background-position:0 0;}
.zIcon{height:18*@toVw;width:18*@toVw;background-position:0 -14*@toVw;}
.zDefaultIcon{height:18*@toVw;width:18*@toVw;background-position:0 -32*@toVw;}
.noOne{
padding-top: 86*@toVw;
text-align: center;
img{
width: 164*@toVw;
}
.text{
margin-top: 20*@toVw;
font-size:16px;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(153,153,153,1);
}
.btn{
margin-top: 26*@toVw;
width:91*@toVw;
height:32*@toVw;
border-radius:18*@toVw;
border:1*@toVw solid rgba(255,120,117,1);
line-height: 32*@toVw;
font-size:14px;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(255,120,117,1);
}
}
.collection-page{
background: #eeeeee;
.collection-content{
......
......@@ -5,14 +5,16 @@
点击放大图片
</div>
<div class="btn-block">
<img :src="toBigUrl"/>
<img :src="listUrl"/>
<img :src="backUrl"/>
<img :src="nextUrl" class="backImg"/>
<img class="play-btn" :src="playUrl"/>
<img :src="nextUrl"/>
<img :src="refUrl"/>
<img :src="loveUrl"/>
</div>
<img :src="goDownUrl" class="toLesson"/>
<div class="lesson-text">音频功能栏</div>
<img :src="goUrl" class="toLesson"/>
<div class="lesson-text">点击<span class="color-red">收藏</span></div>
<img class="i-know" :src="iKnowUrl"/>
</div>
</div>
......@@ -20,10 +22,11 @@
<script>
import {getGuideApi,setGuideApi} from "../../service/api";
import toBigUrl from '../../assets/guide/toBig.png'
import loveUrl from '../../assets/guide/love.png'
import iKnowUrl from '../../assets/guide/lesson.png'
import playUrl from '../../assets/guide/play.png'
import nextUrl from '../../assets/guide/next.png'
import backUrl from '../../assets/guide/back.png'
import listUrl from '../../assets/guide/list.png'
import refUrl from '../../assets/guide/ref.png'
import goUrl from '../../assets/guide/go.png'
......@@ -36,8 +39,9 @@
iKnowUrl:iKnowUrl,
goDownUrl:goDownUrl,
playUrl:playUrl,
toBigUrl:toBigUrl,
loveUrl:loveUrl,
nextUrl:nextUrl,
backUrl:backUrl,
listUrl:listUrl,
refUrl:refUrl,
goUrl:goUrl,
......@@ -46,7 +50,7 @@
},
mounted(){
let json = {
page_name:'audio'
page_name:'newAudio'
};
getGuideApi(json).then(res=>{
if(res == 0){
......@@ -62,6 +66,9 @@
.star{
width: 23*@toVw;
}
.color-red{
color: #FF5050;
}
.title{
width:190*@toVw;
height:187*@toVw;
......@@ -73,19 +80,22 @@
top: 107*@toVw;
left: 93*@toVw;
}
.btn-block{
width:251*@toVw;
width:280*@toVw;
height:57*@toVw;
border-radius:29*@toVw;
border:1*@toVw solid rgba(255,255,255,1);
display: flex;
position: absolute;
top: 430*@toVw;
left: 60*@toVw;
top: 435*@toVw;
left: 50%;
margin-left: -140*@toVw;
img{
width: 16*@toVw;
vertical-align: middle;
}
.backImg{
transform: rotate(180deg);
}
.play-btn{
width: 40*@toVw;
}
......@@ -114,9 +124,9 @@
.toLesson{
width: 45*@toVw;
position: absolute;
top: 500*@toVw;
left: 100*@toVw;
transform: rotate(30deg);
top: 485*@toVw;
right: 55*@toVw;
transform: rotate(150deg);
}
.color-red{
color: #FF6477;
......@@ -131,7 +141,7 @@
border-radius:8*@toVw;
position: absolute;
top: 520*@toVw;
left: 150*@toVw;
left: 160*@toVw;
text-align: center;
border:1*@toVw solid rgba(255,255,255,1)
}
......
<template>
<div>
<div class="guide" v-if="show" @click="show=false">
<img :src="bgUrl" class="bg"/>
<div class="tips">
需要先在课程中将歌曲<span class="color-red">加入收藏</span>
才可以使用哦
</div>
</div>
</div>
</template>
<script>
import {getGuideApi,setGuideApi} from "../../service/api";
import bgUrl from '../../assets/guide/collect.png'
export default {
name: "guide",
data(){
return{
bgUrl:bgUrl,
show:false
}
},
mounted(){
let json = {
page_name:'collection'
};
this.show=true;
}
}
</script>
<style scoped lang="less">
@import "../../util/public";
.color-red{
color:#FF5050 ;
}
.guide{
position: fixed;
top: 0;
left: 0;
bottom: 0;
overflow: hidden;
right: 0;
background-size: 100% 100%;
color: white;
z-index: 9999;
background:rgba(0,0,0,0.8);
.bg{
margin-top: -60*@toVw;
width: 100%;
}
.tips{
width: 196*@toVw;
position: absolute;
top: 440*@toVw;
left: 20*@toVw;
font-size:14*@toVw;
font-family:PingFang-SC-Medium;
font-weight:500;
color:rgba(255,255,255,1);
text-align: center;
padding: 10*@toVw;
border: 1*@toVw solid #fff;
border-radius: 8*@toVw;
}
}
</style>
......@@ -6,12 +6,23 @@ import router from './router'
import store from './store'
import MintUI from 'mint-ui'
import VueClipboard from 'vue-clipboard2'
import sa from'sa-sdk-javascript';
import 'mint-ui/lib/style.css'
import Log from './util/log'
Vue.config.productionTip = false;
Vue.use(MintUI)
Vue.use(VueClipboard)
sa.init({
server_url: 'http://47.107.250.38:8106/sa?project=default', // 替换成自己的神策地址
heatmap: {
//是否开启点击图,默认 default 表示开启,自动采集 $WebClick 事件,可以设置 'not_collect' 表示关闭
clickmap:'not_collect',
show_log: true, // 打印console,自己配置,可以看到自己是否踩点成功,以及
//是否开启触达注意力图,默认 default 表示开启,自动采集 $WebStay 事件,可以设置 'not_collect' 表示关闭
scroll_notice_map:'not_collect'
}
});
Log.init();
Vue.use(MintUI);
Vue.use(VueClipboard);
/* eslint-disable no-new */
new Vue({
el: '#app',
......
......@@ -2,6 +2,7 @@ import Vue from 'vue'
import store from "@/store"
import common from '../util/common'
import Router from 'vue-router'
import sa from'sa-sdk-javascript';
Vue.use(Router);
const router =new Router({
......@@ -153,6 +154,9 @@ const router =new Router({
});
router.beforeEach((to,from,next)=> {
Vue.nextTick(() => {
sa.quick("autoTrackSinglePage");
});
let browser = {
versions: function () {
let u = navigator.userAgent, app = navigator.appVersion;
......@@ -205,7 +209,6 @@ router.beforeEach((to,from,next)=> {
}else if(to.meta.skip_login){
goOn()
}else{
alert(to.fullPath)
let query = {retUrl:to.fullPath};
if(to.meta.noNew){
query.is_new_user_url = 1
......@@ -214,6 +217,7 @@ router.beforeEach((to,from,next)=> {
}
// if(to.meta.skip_login){
// next();
// }
});
......
import sa from 'sa-sdk-javascript'
const Log = function () {}
// 模块发送统计
Log._getEventName = function (target, attr) {
var eventName = target.getAttribute('vkshop-event-name').replace(/(^\s*)|(\s*$)/g,'');
if (eventName) {
// 获取页面层级属性
var arr = [eventName],
list1 = [];
getParents(target, 'vkshop-event-scope', list1)
for (var i = 0, len = list1.length; i < len; i++) {
var scope = list1[i].getAttribute('vkshop-event-scope').replace(/(^\s*)|(\s*$)/g,'');
if (scope) {
arr.push(scope);
}
}
arr.reverse();
return arr.join('-');
} else {
return '';
}
};
// 事件统计发送到神策
Log.push = function (args) {
if (args[1] == '') {
sa.track(args[0])
} else {
try{
let paramObj = compileParam(args[1])
sa.track(args[0], paramObj)
}catch(e) {
}
}
};
let compileParam = function (param) {
if (param == '' || param == null || param == undefined) return param;
let arr = param.split("&");
let obj = {}
arr.forEach( function (v, i) {
let arr1 = v.split("=");
obj[arr1[0]] = arr1[1];
})
return obj;
}
/**
* 生成1个统计事件监听函数,要么是focus、要么是click,更多的事件需要的时候再支持
*
* @param {String} _eventType 需要处理哪种类型的事件
* @param {Boolean} isGaEnabled 透传的参数
* @return Function
*/
var getEventHandler = function (_eventType) {
return function (e) {
// 拿到事件发生的节点
var eventTarget = e.target,
eventType = eventTarget.getAttribute('vkshop-event-type') || 'click',
eventParam = eventTarget.getAttribute('vkshop-event-param')|| '',
eventName = eventTarget.getAttribute('vkshop-event-name').replace(/(^\s*)|(\s*$)/g,''),
eventExpand = {};
if (eventName && eventType === _eventType) { // 判断vkshop-event-name 是否为空,并且类型匹配
// 获取页面层级属性
var scopes = [eventName],
list2 = []
getParents(eventTarget, 'vkshop-event-scope', list2)
for (var i = 0, len = list2.length; i < len; i++) {
var scope = list2[i].getAttribute('vkshop-event-scope').replace(/(^\s*)|(\s*$)/g,'')
if (scope) { // 判断vkshop-event-scope 是否为空
scopes.push(scope);
}
}
scopes.reverse();
// 最前面说明来源是h5
Log.push(['_h5-' + scopes.join('-'), eventParam]);
}
};
};
/**
* 原生获取父元素
* @param {*} el
* @param {*} attr 属性,符合条件的属性
* @param {*} list 返回的父元素集合
*/
function getParents(el, attr, list) {
var parent = el.parentNode
if (parent.nodeName == 'BODY') {
if (parent.hasAttribute(attr)) {
return list.push(parent)
} else {
return list
}
} else {
if (parent.hasAttribute(attr)) {
list.push(parent)
}
getParents(parent, attr, list)
}
}
/**
* 利用事件委托对所有需要自动发送统计事件的节点进行监听,只能初始化一次
*/
var isInitialized = false;
Log.init = function () {
// if (isBrowser === false) { return; }
// if (isInitialized) { return; }
// isInitialized = true;
// window.onload = function () {
var ndBody = document.querySelector('body');
var ndNoBubble = document.querySelectorAll('[vkshop-event-no-bubble]');
// 处理可以冒泡的节点
ndBody.addEventListener('click', function (e) {
// 处理选择符
if (e.target.hasAttribute('vkshop-event-name')) {
getEventHandler('click')(e)
}
});
// 处理无法冒泡到顶层的结点点击
if (ndNoBubble && ndNoBubble.length > 0) {
ndNoBubble.addEventListener('click', getEventHandler('click'));
}
};
export default Log
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