{"version":3,"sources":["webpack:///src/App.vue","webpack:///./src/App.vue?c8fe","webpack:///./src/App.vue","webpack:///./src/router/index.js","webpack:///./src/store/index.js","webpack:///./src/assets/js/api.js","webpack:///./src/assets/js/WtsTool.js","webpack:///./src/main.js"],"names":["App","data","shopId","this","getQueryString","renderDom","components","Toast","__webpack_require__","e","then","bind","Loading","computed","watch","uid","val","created","_this","$nextTick","window","_app_this","mounted","methods","selectortype_template_index_0_src_App","render","_h","$createElement","_c","_self","staticClass","attrs","id","_v","_e","staticRenderFns","src_App","normalizeComponent","ssrContext","Vue","use","Router","routerList","pathname","title","hideTopBar","keepAlive","component","Promise","all","path","redirect","hidden","map","item","name","meta","showHandbookBar","requireLogin","router","routes","beforeEach","to","from","next","query","fullPath","Vuex","store","Store","state","isShowTopHint","saveData","isToastShow","timeout","toastText","toastIcon","toastType","toastSubText","isLoading","themeColor","showTabBar","input","showInput","inputTitle","inputType","confirm","hideInput","defaultContent","clearInput","areaPicker","showAreaPicker","showAllArea","areaId","hideArea","datePickerConfig","dateLimitType","type","show","initTime","multiSelect","selectList","scheduleList","startDate","cancel","singleTime","isLoginShow","noAllowHide","showTopBar","token","sportType","mutations","changeTabBar","hideToast","showToast","valType","typeof_default","keys_default","length","text","icon","subText","Text","clearTimeout","setTimeout","hideLogin","setTopBar","setLoading","getters","actions","modules","isDevelopment","apiAddressJava","axios","require","interceptors","request","config","method","defaults","response","res","error","code","message","includes","api","postJ","urlKey","d","json","JSON","parse","key","localUid","localStorage","version","stringify_default","url","indexOf","post","headers","Content-Type","satoken","getItem","secretkey","setItem","$postJ","get","apiPath","param","isFirst","prop","$post","$get","apiBase","apiAddress","WtsTool","search","location","href","substr","r","reg","RegExp","match","unescape","decodeURI","replace","searchOther","isMobile","navigator","userAgent","isWenXin","toLowerCase","isQQ","qq","test","testPhone","phone","$axios","prototype","productionTip","commit","goUrlWts","goUrl","customType","console","log","protocol","host","p","arr","push","join","showLoading","hideLoading","doHttpRequestJ","params","arguments","undefined","timout","isShowErr","status","hasOwnProperty","promise_default","a","resolve","returndata","reject","Error","errMsg","catch","finally","el","template"],"mappings":"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","file":"static/js/app.0131da264a0eeb0a81e7.js","sourcesContent":["\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"_full-window _ref\",attrs:{\"id\":\"app\"}},[(_vm.renderDom)?_c('div',{staticClass:\"app-view\",attrs:{\"id\":\"appView\"}},[[_c('router-view')],_vm._v(\" \"),_c('div',[_c('Toast'),_vm._v(\" \"),_c('Loading')],1)],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-eafabdd6\",\"hasScoped\":true,\"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 = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-eafabdd6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../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-eafabdd6\\\",\\\"hasScoped\\\":true,\\\"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__ = \"data-v-eafabdd6\"\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)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nVue.use(Router)\r\n\r\nconst list = [\r\n {\r\n pathname: 'HomePage',\r\n title: 'App下载',\r\n hideTopBar: true,\r\n keepAlive: true,\r\n component: () => import('@/components/HomePage')\r\n },\r\n {\r\n pathname: 'Register',\r\n title: '注册',\r\n hideTopBar: true,\r\n keepAlive: true,\r\n component: () => import('@/components/Register')\r\n },\r\n {\r\n pathname: 'EnglishPrivate',\r\n title: '英语四六级考试真题隐私政策声明',\r\n hideTopBar: true,\r\n keepAlive: true,\r\n component: () => import('@/components/private/EnglishPrivate')\r\n },\r\n {\r\n pathname: 'LevelPrivate',\r\n title: '英语四六级考试真题',\r\n hideTopBar: true,\r\n keepAlive: true,\r\n component: () => import('@/components/private/LevelPrivate')\r\n },\r\n // 任意path 跳转登录页面\r\n { pathname: '', path: '', redirect: '/HomePage', hidden: true }\r\n]\r\nconst routerList = list.map(item => {\r\n return {\r\n path: '/' + item.pathname,\r\n name: item.pathname,\r\n meta: {\r\n keepAlive: item.keepAlive || false,\r\n title: item.title,\r\n hideTopBar: item.hideTopBar,\r\n showHandbookBar: item.showHandbookBar,\r\n requireLogin: item.requireLogin\r\n },\r\n component: item.component\r\n }\r\n})\r\n\r\nconst router = new Router({\r\n // mode: 'history', 为了nginx部署访问带上项目名称,这里 加上base:'keke-read'项目名称\r\n routes: routerList\r\n})\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n // 路由发生变化修改页面title\r\n if (to.path === '/') {\r\n next({\r\n path: '/HomePage',\r\n query: { redirect: to.fullPath }\r\n })\r\n } else {\r\n next()\r\n }\r\n})\r\n\r\nexport default router\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nVue.use(Vuex)\r\n\r\n// 各个模块\r\nexport default new Vuex.Store({\r\n state: {\r\n isShowTopHint: false,\r\n saveData: '',\r\n isToastShow: false, // 控制吐司提示显示\r\n timeout: null, // 吐司定时器\r\n toastText: '', // 吐司内容\r\n toastIcon: '', // 吐司提示图标\r\n toastType: '', // 吐司类型\r\n toastSubText: '', // 吐司副内容\r\n isLoading: false, // 加载动画\r\n themeColor: null, // 项目主题色\r\n showTabBar: true,\r\n input: {\r\n showInput: false,\r\n inputTitle: '',\r\n inputType: '',\r\n confirm: '',\r\n hideInput: '',\r\n defaultContent: '',\r\n clearInput: false\r\n },\r\n areaPicker: {\r\n showAreaPicker: false,\r\n showAllArea: true,\r\n areaId: '',\r\n confirm: '',\r\n hideArea: ''\r\n },\r\n datePickerConfig: {\r\n dateLimitType: '',\r\n type: 'datetime',\r\n show: false,\r\n initTime: '',\r\n multiSelect: false,\r\n selectList: [],\r\n scheduleList: [],\r\n startDate: '',\r\n cancel: '',\r\n confirm: '',\r\n title: '',\r\n singleTime: false\r\n },\r\n isLoginShow: false, // 登录弹窗是否显示\r\n noAllowHide: false, // 是否允许关闭登录弹窗\r\n showTopBar: true, // 是否显示顶部下载条\r\n showHandbookBar: false, // 是否显示顶部合作伙伴手册入口\r\n uid: 0, // 存储登录后获得的用户id\r\n token: null, // 存储登录后获得的用户token\r\n sportType: '1'\r\n },\r\n mutations: {\r\n changeTabBar: (state, val) => {\r\n state.showTabBar = val\r\n },\r\n // 吐司提示,现设置时长2+1(动画)秒,暂不支持自定义时长\r\n hideToast: (state) => {\r\n state.isToastShow = false\r\n },\r\n showToast: (state, val) => {\r\n // console.log('showToast:' + val)\r\n if (!val) return\r\n let valType = typeof val\r\n if (valType === 'undefined' || (valType === 'object' && Object.keys(val).length === 0)) return\r\n let text = ''\r\n let icon = ''\r\n let type = ''\r\n let subText = ''\r\n if (valType === 'string') {\r\n text = val\r\n } else if (valType === 'object') {\r\n text = val.Text\r\n type = val.type\r\n icon = val.icon\r\n subText = val.subText\r\n }\r\n state.toastText = ''\r\n clearTimeout(state.timeout)\r\n state.toastText = text\r\n state.toastIcon = icon\r\n state.toastType = type\r\n state.toastSubText = subText\r\n state.isToastShow = true\r\n // console.log('2showToast:' + val)\r\n state.timeout = setTimeout(() => {\r\n state.isToastShow = false\r\n }, 2000)\r\n },\r\n // 隐藏登录弹窗\r\n hideLogin: (state) => { state.isLoginShow = false },\r\n // 设置顶部下载条显不显示\r\n setTopBar: (state, val) => { state.showTopBar = val },\r\n // 设置是否显示加载动画\r\n setLoading: (state, val) => { state.isLoading = val }\r\n },\r\n getters: {},\r\n actions: {},\r\n modules: {\r\n }\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","/**\r\n * 这里集中管理所有数据请求接口\r\n * 2020-11-17\r\n * @author wts\r\n */\r\n// api库,1正式,2 localhost\r\nconst apiBase = 1\r\nwindow.isDevelopment = false\r\n\r\n// api 地址\r\nconst apiAddressJava = apiBase === 1 ? 'http://keke-read.networkstar.wang:9101/keke-english/'\r\n : 'http://localhost:9101/keke-english/' // 本地开发环境\r\n\r\n// 版本号\r\nconst version = 'h5 1.0.0'\r\n\r\n// 引入 axios 数据请求插件\r\nconst axios = require('axios')\r\n// 配置axios的data,Content-Type='application/x-www-form-urlencoded' 需要qs.stringify转换\r\naxios.interceptors.request.use(config => {\r\n // PHP API 请求才需要转换URL post 参数 qs.stringify(config.data)\r\n if (config.method === 'post') {\r\n // config.data = qs.stringify(config.data)\r\n }\r\n return config\r\n})\r\n\r\n// 超时拦截 默认30s 2020/03/11 lz\r\naxios.defaults.timeout = 80000\r\naxios.interceptors.response.use(res => {\r\n return res\r\n}, error => {\r\n if (error.code === 'ECONNABORTED' || error.message.includes('timeout') || error.message === 'Network Error') {\r\n // Vue.prototype.showToast('连接超时,请稍后再试')\r\n }\r\n return false\r\n})\r\n\r\n// post 请求\r\nconst $postJ = function (url, data) {\r\n // console.log('postJ*****2*******'+data,url)\r\n return axios.post(url, data, {headers: {'Content-Type': 'application/json;charset=utf-8', 'satoken': localStorage.getItem('satoken') || ''}}).then(res => {\r\n if (res.data.secretkey && res.data.secretkey.length > 0 && res.data.secretkey.length !== 'null') {\r\n if (localStorage.getItem && localStorage.setItem) { // 保存secretkey,2018-05-15\r\n let key = localStorage.getItem('secretkey')\r\n if (res.data.secretkey !== key) {\r\n localStorage.setItem('secretkey', res.data.secretkey)\r\n }\r\n }\r\n }\r\n return res.data\r\n })\r\n}\r\n\r\n// 导出 api 对象\r\nexport default {\r\n // 地址前缀相同的 post 接口, urlKey是路径文件名\r\n postJ: function (urlKey, data) {\r\n let d = data ? data.json && JSON.parse(data.json) ? JSON.parse(data.json) : data : {}\r\n for (let key in d) { // 把空类型转成空字符串\r\n if (!d[key]) {\r\n d[key] = ''\r\n }\r\n }\r\n let localUid = localStorage && localStorage.uid\r\n d.version = version\r\n d.uid = +d.uid || localUid || '' // uid不存在时传-9999 2019/11/19 LightZeg\r\n d.token = d.token || localStorage.token\r\n data = JSON.stringify(d)\r\n let url = `${apiAddressJava}${urlKey}`\r\n if (urlKey.indexOf('http') >= 0) { // 完整的urlkey 不需要拼接\r\n url = urlKey\r\n }\r\n // console.log('postJ************'+data,url)\r\n return $postJ(url, data)\r\n },\r\n // get 方法调用,参数与 post 一致,data会转换成get参数\r\n get: function (urlKey, data) {\r\n let apiPath = urlKey\r\n let param = ''\r\n let isFirst = true\r\n for (let prop in data) {\r\n if (isFirst) {\r\n param += `?${prop}=${data[prop]}`\r\n isFirst = false\r\n } else {\r\n param += `&${prop}=${data[prop]}`\r\n }\r\n }\r\n let url = `${apiAddressJava}${apiPath}${param}`\r\n return axios.get(url).then(res => {\r\n return res.data\r\n })\r\n },\r\n // 把 post 和 get 也暴露出去,以应对更多请求场景\r\n $post: axios.post,\r\n $get: axios.get,\r\n // 编译的接口库\r\n apiBase: apiBase,\r\n apiAddress: apiAddressJava\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/assets/js/api.js","\r\n/**\r\n * 校验手机号格式\r\n * @param phone 手机号\r\n * @returns {boolean} 校验结果\r\n */\r\nfunction testPhone (phone) {\r\n if (!phone || phone.length === 0) {\r\n return false\r\n }\r\n if (phone.length !== 11) {\r\n return false\r\n }\r\n let reg = /^[1][3456789][0-9]{9}$/\r\n return reg.test(phone)\r\n}\r\n\r\nfunction isQQ (qq) {\r\n let reg = /^[1-9][0-9]{4,15}$/gim\r\n if (reg.test(qq)) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nfunction isWenXin () {\r\n if (navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1) {\r\n return true // 是微信端\r\n } else {\r\n return false\r\n }\r\n}\r\n\r\nfunction isMobile () {\r\n return navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)\r\n}\r\n// 获取URL参数的方法\r\nconst getQueryString = (name, url) => {\r\n let search = url || location.href.substr(location.href.indexOf('?') + 1)\r\n if (!search) return null\r\n let r = null\r\n // 加#判断,因为vue-router链接hash(#)特性\r\n let reg = new RegExp('(^|&)' + name + '=([^&^#]*)(&|#|$)', 'i')\r\n r = search.match(reg)\r\n if (r != null) {\r\n if (!r[2] || r[2] === 'null' || r[2] === 'undefined') {\r\n return null\r\n } else {\r\n return unescape(decodeURI(r[2])).replace(/=/g, '')\r\n }\r\n }\r\n // 添加另一段参数获取,因为微信授权登录后会把code、state插入 vue-router 链接hash('#')之前\r\n // url?code=code&state=state#/customQuery\r\n let searchOther = search.substr(search.indexOf('?') + 1, search.length)\r\n if (!searchOther) return null\r\n // 加#判断,因为vue-router链接hash(#)特性\r\n reg = new RegExp('(^|&)' + name + '=([^&^#]*)(&|#|$)', 'i')\r\n r = searchOther.match(reg)\r\n if (r != null) return unescape(decodeURI(r[2])).replace(/=/g, '')\r\n return null\r\n}\r\n\r\n// 导出所有方法\r\nexport default {\r\n getQueryString,\r\n isMobile,\r\n isWenXin,\r\n isQQ,\r\n testPhone\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/assets/js/WtsTool.js","// The Vue build version to load with the `import` command\r\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\r\nimport Vue from 'vue'\r\nimport App from './App'\r\nimport router from './router'\r\nimport store from './store/index'\r\nimport api from '@/assets/js/api.js'\r\n// 配置常用的js方法\r\nimport WtsTool from '@/assets/js/WtsTool.js'\r\n// 引入公用css npm run build 后把dist目录上传到 可可高配腾讯云 服务器 /usr/local/nginx/html 目录\r\n// cd /usr/local/nginx/sbin/\r\n// 进入 /sbin目录下\r\n// cd /usr/local/nginx/sbin\r\n// //启动nginx\r\n// ./nginx\r\n// //检查更改的配置\r\n// ./nginx -t\r\n// //重新加载\r\n// ./nginx -s reload\r\n// //停止nginx\r\n// ./nginx -s stop\r\n//\r\n// 停止:\r\n// ps -ef|grep nginx\r\n// kill -9 2072\r\n// 验证nginx配置是否正确:/usr/local/nginx/sbin/nginx -t\r\n// 安装nginx记得配置 vim /etc/hosts 加入映射 119.45.144.253 www.networkstar.wang 127.0.0.1 www.networkstar.wang\r\n// nginx 安装目录:cd /usr/local/nginx 查看配置: /usr/local/nginx/conf/nginx.conf\r\n// http://119.45.144.253:8390/#/HomePage\r\n// https://www.networkstar.wang:8390/#/HomePage\r\n// nginx https证书 上传到目录 /usr/local/nginx/Nginx-https/ 下 443自动转发直接输入 https://keke-read.networkstar.wang/#/HomePage 访问\r\n// build 的文件上传到 /usr/local/nginx/html/dist 目录\r\nimport '@/assets/less/index.less'\r\nimport 'lib-flexible'\r\nwindow.$axios = Vue.prototype.$axios = api\r\nVue.config.productionTip = false\r\nVue.prototype.WtsTool = WtsTool\r\nVue.prototype.getQueryString = WtsTool.getQueryString\r\n/* eslint-disable no-new */\r\nVue.prototype.showToast = val => {\r\n // 调用吐司提示\r\n store.commit('showToast', val) // val 包含文字和显示的图片类型\r\n}\r\nVue.prototype.goUrlWts = (path, query) => { // customType,自定义的跳转类型,默认是goUrl\r\n Vue.prototype.goUrl({\r\n path: path,\r\n query: query\r\n })\r\n}\r\nVue.prototype.goUrl = (data, customType) => { // customType,自定义的跳转类型,默认是goUrl\r\n console.log('goUrl:', data)\r\n if (data && data.path) {\r\n // 存入goUrl的标志\r\n localStorage && localStorage.setItem('goUrl', data.path)\r\n // 拼链接\r\n let url = `${location.protocol}//${location.host}${location.pathname}#/${data.path}`\r\n console.log('goUrl url:', url)\r\n let p = ''\r\n if (data.query) {\r\n let arr = []\r\n for (let key in data.query) {\r\n if (!data.query[key] || data.query[key] === null || data.query[key].length === 0) {\r\n } else {\r\n arr.push(key + '=' + data.query[key])\r\n // p = p + key + '=' + data.query[key] + '&'\r\n }\r\n }\r\n if (arr.length > 0) {\r\n p = arr.join('&')\r\n url = url + '?' + p\r\n }\r\n }\r\n router.push({\r\n path: `/${data.path}?${p}`\r\n })\r\n }\r\n}\r\nVue.prototype.showLoading = () => { // 显示正在加载\r\n store.commit('setLoading', true)\r\n}\r\nVue.prototype.hideLoading = () => { // 隐藏正在加载\r\n store.commit('setLoading', false)\r\n}\r\nVue.prototype.doHttpRequestJ = (params, url, hideLoading = false, timout = 0, isShowErr = true) => {\r\n if (!hideLoading) {\r\n Vue.prototype.showLoading()\r\n }\r\n return Vue.prototype.$axios.postJ(url, params)\r\n .then(res => {\r\n if (res.status === 'success' || +res.status === 200) {\r\n if (+res.status === 200 || res.hasOwnProperty('returndata')) { return Promise.resolve([null, res.returndata]) } else {\r\n if (isShowErr) { Vue.prototype.showToast('接口缺少returndata') }\r\n // return Promise.reject('接口缺少returndata')\r\n return Promise.reject(new Error('接口缺少returndata'))\r\n }\r\n } else {\r\n if (res.errMsg || res.error) {\r\n if (isShowErr) { Vue.prototype.showToast(res.errMsg) }\r\n return Promise.reject(res.errMsg || res.error)\r\n } else {\r\n console.log('*************未知错误status is fail or no status')\r\n console.log(params)\r\n return Promise.reject(new Error('未知错误'))\r\n }\r\n }\r\n })\r\n .catch(e => Promise.resolve([e, null]))\r\n .finally(() => {\r\n if (!hideLoading) {\r\n if (+timout > 0) {\r\n setTimeout(() => {\r\n Vue.prototype.hideLoading()\r\n }, timout)\r\n } else {\r\n Vue.prototype.hideLoading()\r\n }\r\n }\r\n })\r\n}\r\nnew Vue({\r\n el: '#app',\r\n store, // 一定要保留store,否则toast没法用\r\n router,\r\n components: { App },\r\n template: ''\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}