{"version":3,"sources":["webpack:///./src/router/index.js","webpack:///./src/store/modules/user.js","webpack:///./src/store/modules/shoppingCart.js","webpack:///./src/store/modules/order.js","webpack:///./src/store/modules/address.js","webpack:///./src/store/index.js","webpack:///./src/main.js"],"names":["Vue","use","Router","routes","path","name","component","meta","requireAuth","router","originalPush","prototype","push","location","onResolve","onReject","call","this","catch","err","state","user","showLogin","getters","getUser","getShowLogin","getUserId","UserId","mutations","setUser","data","setShowLogin","upUserName","Name","actions","_ref","commit","_ref2","_ref3","shoppingCart","getShoppingCart","getNum","totalNum","i","length","temp","num","getIsAllCheck","isAllCheck","check","State","getCheckGoods","checkGoods","getCheckNum","getTotalPrice","totalPrice","price","parseFloat","toFixed","setShoppingCart","unshiftShoppingCart","productID","skuId","index","findIndex","item","unshift","updateShoppingCart","payload","prop","key","maxNum","val","addShoppingCartNum","deleteShoppingCart","id","splice","checkAll","_ref4","_ref5","_ref6","orderInfo","getOrderInfo","find","setOrderInfo","mode","_objectSpread","Object","assign","removeOrder","remove","provinceList","cityList","district","street","getProvince","getCity","code","getDistrict","getStreet","date","setProvince","setCity","mo","setDistrict","setStreet","Vuex","Store","strict","modules","order","address","ElementUI","Global","$axios","Axios","$util","util","$regular","regular","qs","$helpMenus","helpMenus","interceptors","request","config","token","store","Token","headers","error","Promise","reject","response","res","head","notifyError","message","body","status","localStorage","setItem","dispatch","beforeResolve","to","from","next","loginUser","sessionStorage","JSON","stringify","afterEach","document","querySelector","setAttribute","filter","dataStr","time","Date","timeAdd0","str","y","getFullYear","m","getMonth","d","getDate","h","getHours","mm","getMinutes","s","getSeconds","intPart","Math","trunc","intPartFormat","toString","replace","floatPart","newArr","split","directive","_asyncToGenerator","_regeneratorRuntime","mark","_callee","el","binding","imgURL","exist","wrap","_context","prev","value","imageIsExist","sent","stop","_x","_x2","apply","arguments","url","resolve","img","Image","onload","complete","onerror","src","Array","indexOf","Browser","window","navigator","agent","userAgent","toLowerCase","IEMode","documentMode","chrome","System","isIE","test","isGecko","isWebkit","isStrict","compatMode","supportSubTitle","createElement","supportScope","ieVersion","match","e","console","log","operaVersion","opera","versionFilter","version","start","end","substr","type","openDatabase","shell","external","clientInfo","clientInformation","clientLanguage","languages","storeKeyLen","keys","webstore","client","format","fmt","o","floor","getMilliseconds","RegExp","$1","substring","k","String","MyMenu","MyList","MyLogin","MyRegister","IndexMianMenu","productionTip","apiGlobalConfigData","render","App","$mount"],"mappings":"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","file":"js/app~5a11b65b.7b941372.js","sourcesContent":["/*\r\n * @Description: 路由配置\r\n * @Author: hai-27\r\n * @Date: 2020-02-07 16:23:00\r\n * @LastEditors: hai-27\r\n * @LastEditTime: 2020-02-27 13:58:48\r\n */\r\nimport Vue from 'vue'\r\nimport Router from 'vue-router'\r\n\r\nVue.use(Router)\r\n\r\nconst routes = [\r\n {\r\n path: '/error',\r\n name: 'Error',\r\n component: () =>\r\n import ('../components/Error.vue'),\r\n },\r\n {\r\n path: \"/userlogin\",\r\n name: \"Login\",\r\n component: () =>\r\n import ('../views/Login.vue') \r\n },\r\n {\r\n path: '/MP_verify_o9PCRnV4nDA1JMQK.txt',\r\n name: 'gongzhonghao'\r\n },\r\n {\r\n path: '/97dea3ee8c3fc7cec441c37777b3a497.txt',\r\n name: 'gongzhonghaoshegnshu'\r\n },\r\n\r\n\r\n {\r\n path: '/',\r\n name: 'Home',\r\n component: () =>\r\n import ('../views/Home.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n \r\n {\r\n path: '/goods',\r\n name: 'Goods',\r\n component: () =>\r\n import ('../views/Goods.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //商品详情\r\n path: '/goods/info',\r\n name: 'GoodsDetails',\r\n component: () =>\r\n import ('../views/goods/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n path: '/about',\r\n name: 'About',\r\n component: () =>\r\n import ('../views/About.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n path: '/goods/details',\r\n name: 'Details',\r\n component: () =>\r\n import ('../views/Details.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n path: '/shoppingCart',\r\n name: 'ShoppingCart',\r\n component: () =>\r\n import ('../views/ShoppingCart.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n path: '/collect',\r\n name: 'Collect',\r\n component: () =>\r\n import ('../views/Collect.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n path: '/order',\r\n name: 'Order',\r\n component: () =>\r\n import ('../views/Order.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n path: '/confirmOrder',\r\n name: 'ConfirmOrder',\r\n component: () =>\r\n import ('../views/ConfirmOrder.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //个人中心主页\r\n path: '/user/Index',\r\n name: 'userIndex',\r\n component: () =>\r\n import ('../views/user/Index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n\r\n },\r\n {\r\n //个人中心-收货地址\r\n path: '/user/address',\r\n name: 'userAddress',\r\n component: () =>\r\n import ('../views/user/profile/shipping-address'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n\r\n },\r\n {\r\n //账户管理-个人信息\r\n path: '/user/info',\r\n name: 'userInfo',\r\n component: () =>\r\n import ('../views/user/profile/index'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n\r\n },\r\n {\r\n //账户管理-账户安全\r\n path: '/user/account',\r\n name: 'userAccount',\r\n component: () =>\r\n import ('../views/user/account/index'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n\r\n },\r\n {\r\n //订单中心-我的订单\r\n path: '/order/index',\r\n name: 'OrderInfo',\r\n component: () =>\r\n import ('../views/order/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //订单详情\r\n path: '/order/detail',\r\n name: 'OrderDetail',\r\n component: () =>\r\n import ('../views/order/detail.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //订单支付\r\n path: '/order/pay',\r\n name: 'OrderPay',\r\n component: () =>\r\n import ('../views/order/pay/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //订单支付成功\r\n path: '/order/paysuccess',\r\n name: 'OrderPaySucces',\r\n component: () =>\r\n import ('../views/order/pay/pay-success.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n \r\n {\r\n //优惠券回收\r\n path: '/user/exchange',\r\n name: 'exchange',\r\n component: () =>\r\n import ('../views/user/exchange/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //卡券订单\r\n path: '/user/exchangeorder',\r\n name: 'exchangeorder',\r\n component: () =>\r\n import ('../views/user/exchange/exchangeOrder.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //充值总入口,支付宝充值是跳转到支付宝的页面,微信是生成一个二维码\r\n path: '/user/recharge',\r\n name: 'recharge',\r\n component: () =>\r\n import ('../views/user/recharge/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //流水记录\r\n path: '/user/balancehistory',\r\n name: 'balancehistory',\r\n component: () =>\r\n import ('../views/user/balancehistory/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //充值异常\r\n path: '/user/rechargeError',\r\n name: 'rechargeError',\r\n component: () =>\r\n import ('../views/user/recharge/rechargeError.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //帮助\r\n path: '/help',\r\n name: 'helpIndex',\r\n component: () =>\r\n import ('../views/help/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //用户注册协议\r\n path: '/login/agreement',\r\n name: 'agreement',\r\n component: () =>\r\n import ('../views/help/agreement.vue'),\r\n },\r\n {\r\n //卡卷兑换信息\r\n path: '/user/exchangeinfo',\r\n name: 'exchangeInfo',\r\n component: () =>\r\n import ('../views/user/exchange/info.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //icp审核付费阅读\r\n path: '/icp/read',\r\n name: 'icpRead',\r\n component: () =>\r\n import ('../views/icp/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //icp审核文章内容\r\n path: '/icp/word',\r\n name: 'icpWord',\r\n component: () =>\r\n import ('../views/icp/word.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //icp商家入驻协议\r\n path: '/icp/article',\r\n name: 'article',\r\n component: () =>\r\n import ('../views/icp/article.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //我要采购\r\n path: '/user/purchase',\r\n name: 'purchaseIndex',\r\n component: () =>\r\n import ('../views/user/purchase/index.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n {\r\n //我要留言\r\n path: '/user/message',\r\n name: 'purchaseMessage',\r\n component: () =>\r\n import ('../views/user/purchase/message.vue'),\r\n meta: {\r\n requireAuth: true // 需要验证登录状态\r\n }\r\n },\r\n]\r\n\r\nconst router = new Router({\r\n // base: '/dist',\r\n // mode: 'history',\r\n routes\r\n})\r\n\r\n/* 由于Vue-router在3.1之后把$router.push()方法改为了Promise。所以假如没有回调函数,错误信息就会交给全局的路由错误处理。\r\nvue-router先报了一个Uncaught(in promise)的错误(因为push没加回调) ,然后再点击路由的时候才会触发NavigationDuplicated的错误(路由出现的错误,全局错误处理打印了出来)。*/\r\n// 禁止全局路由错误处理打印\r\nconst originalPush = Router.prototype.push;\r\nRouter.prototype.push = function push(location, onResolve, onReject) {\r\n if (onResolve || onReject)\r\n return originalPush.call(this, location, onResolve, onReject)\r\n return originalPush.call(this, location).catch(err => err)\r\n}\r\n\r\nexport default router","/*\r\n * @Description: 用户登录状态模块\r\n * @Author: hai-27\r\n * @Date: 2020-02-19 17:42:11\r\n * @LastEditors: hai-27\r\n * @LastEditTime: 2020-02-26 23:14:32\r\n */\r\nexport default {\r\n state: {\r\n user: \"\", // 登录的用户\r\n showLogin: false // 用于控制是否显示登录组件\r\n },\r\n getters: {\r\n getUser (state) {\r\n return state.user\r\n },\r\n getShowLogin (state) {\r\n return state.showLogin\r\n },\r\n getUserId(state){\r\n return state.user.UserId\r\n }\r\n },\r\n mutations: {\r\n setUser (state, data) {\r\n state.user = data;\r\n },\r\n setShowLogin (state, data) {\r\n state.showLogin = data;\r\n },\r\n upUserName(state, data){\r\n state.user.Name=data\r\n }\r\n },\r\n actions: {\r\n setUser ({ commit }, data) {\r\n commit('setUser', data);\r\n },\r\n setShowLogin ({ commit }, data) {\r\n commit('setShowLogin', data);\r\n },\r\n upUserName ({ commit }, data) {\r\n commit('upUserName', data);\r\n }\r\n }\r\n}","/*\r\n * @Description: 购物车状态模块\r\n * @Author: hai-27\r\n * @Date: 2020-02-21 18:40:41\r\n * @LastEditors: hai-27\r\n * @LastEditTime: 2020-03-07 20:38:55\r\n */\r\nexport default {\r\n state: {\r\n shoppingCart: []\r\n // shoppingCart结构\r\n /* \r\n shoppingCart = {\r\n id: \"\", // 购物车id\r\n productID: \"\", // 商品id\r\n productName: \"\", // 商品名称\r\n productImg: \"\", // 商品图片\r\n price: \"\", // 商品价格\r\n num: \"\", // 商品数量\r\n maxNum: \"\", // 商品限购数量\r\n check: false // 是否勾选\r\n } */\r\n },\r\n getters: {\r\n getShoppingCart (state) {\r\n // 获取购物车状态\r\n return state.shoppingCart;\r\n },\r\n getNum (state) {\r\n // 购物车商品总数量\r\n let totalNum = 0;\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n totalNum += temp.num;\r\n }\r\n return totalNum;\r\n },\r\n getIsAllCheck (state) {\r\n // 判断是否全选\r\n let isAllCheck = true;\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n // 只要有一个商品没有勾选立即return false;\r\n if (!temp.check && temp.State!=0) {\r\n isAllCheck = false;\r\n return isAllCheck;\r\n }\r\n }\r\n return isAllCheck;\r\n },\r\n getCheckGoods (state) {\r\n // 获取勾选的商品信息\r\n // 用于确认订单页面\r\n let checkGoods = [];\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n if (temp.check) {\r\n checkGoods.push(temp);\r\n }\r\n }\r\n return checkGoods;\r\n },\r\n getCheckNum (state) {\r\n // 获取购物车勾选的商品数量\r\n let totalNum = 0;\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n if (temp.check) {\r\n totalNum += temp.num;\r\n }\r\n }\r\n return totalNum;\r\n },\r\n getTotalPrice (state) {\r\n // 购物车勾选的商品总价格\r\n let totalPrice = 0;\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n if (temp.check) {\r\n totalPrice += temp.price * temp.num;\r\n }\r\n }\r\n return parseFloat(totalPrice.toFixed(2));\r\n }\r\n },\r\n mutations: {\r\n setShoppingCart (state, data) {\r\n // 设置购物车状态\r\n state.shoppingCart = data;\r\n },\r\n unshiftShoppingCart (state, data) {\r\n // 添加购物车\r\n // 用于在商品详情页点击添加购物车,后台添加成功后,更新vuex状态\r\n let shoppingCart=state.shoppingCart\r\n const {productID,skuId}=data\r\n let index=shoppingCart.findIndex(item=>item.productID==productID && item.skuId==skuId)\r\n if(index>=0){\r\n state.shoppingCart[index].num=data.num\r\n }\r\n else{\r\n state.shoppingCart.unshift(data);\r\n }\r\n \r\n },\r\n updateShoppingCart (state, payload) {\r\n // 更新购物车\r\n // 可更新商品数量和是否勾选\r\n // 用于购物车点击勾选及加减商品数量\r\n if (payload.prop == \"num\") {\r\n // 判断效果的商品数量是否大于限购数量或小于1\r\n if (state.shoppingCart[payload.key].maxNum < payload.val && state.shoppingCart[payload.key].maxNum>0) {\r\n return;\r\n }\r\n if (payload.val < 1) {\r\n return;\r\n }\r\n }\r\n // 根据商品在购物车的数组的索引和属性更改\r\n state.shoppingCart[payload.key][payload.prop] = payload.val;\r\n },\r\n addShoppingCartNum (state, productID) {\r\n // 增加购物车商品数量\r\n // 用于在商品详情页点击添加购物车,后台返回002,“该商品已在购物车,数量 +1”,更新vuex的商品数量\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n if (temp.productID == productID) {\r\n if (temp.num < temp.maxNum) {\r\n temp.num++;\r\n }\r\n }\r\n }\r\n },\r\n deleteShoppingCart (state, id) {\r\n // 根据购物车id删除购物车商品\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n const temp = state.shoppingCart[i];\r\n if (temp.id == id) {\r\n state.shoppingCart.splice(i, 1);\r\n }\r\n }\r\n },\r\n checkAll (state, data) {\r\n // 点击全选按钮,更改每个商品的勾选状态\r\n for (let i = 0; i < state.shoppingCart.length; i++) {\r\n if(state.shoppingCart[i].State!=0){\r\n state.shoppingCart[i].check = data;\r\n }\r\n else{\r\n state.shoppingCart[i].check =false\r\n }\r\n }\r\n }\r\n },\r\n actions: {\r\n setShoppingCart ({ commit }, data) {\r\n commit('setShoppingCart', data);\r\n },\r\n unshiftShoppingCart ({ commit }, data) {\r\n commit('unshiftShoppingCart', data);\r\n },\r\n updateShoppingCart ({ commit }, payload) {\r\n commit('updateShoppingCart', payload);\r\n },\r\n addShoppingCartNum ({ commit }, productID) {\r\n commit('addShoppingCartNum', productID);\r\n },\r\n deleteShoppingCart ({ commit }, id) {\r\n commit('deleteShoppingCart', id);\r\n },\r\n checkAll ({ commit }, data) {\r\n commit('checkAll', data);\r\n }\r\n }\r\n}","/*\r\n*订单信息\r\n* \r\n*/\r\nexport default {\r\n state: {\r\n orderInfo: []\r\n },\r\n getters: {\r\n getOrderInfo: (state) => (id) => {\r\n var data=state.orderInfo.find(item => item.id ==id )\r\n return data\r\n }\r\n },\r\n mutations: {\r\n setOrderInfo(state, data) {\r\n let mode = state.orderInfo.find(item => item.id == data.id)\r\n if (mode) {\r\n mode = {...Object.assign(mode, data),}\r\n }\r\n else {\r\n state.orderInfo.push(data)\r\n }\r\n\r\n },\r\n removeOrder(state, data) {\r\n state.orderInfo.remove(data)\r\n }\r\n },\r\n actions: {\r\n setOrderInfo({ commit }, data) {\r\n commit('setOrderInfo', data);\r\n },\r\n removeOrder({ commit }, data) {\r\n commit('removeOrder', data);\r\n },\r\n }\r\n}","/*\r\n *地址信息\r\n */\r\nexport default {\r\n state: {\r\n provinceList: [],\r\n cityList: [],\r\n district: [],\r\n street:[]\r\n },\r\n getters: {\r\n getProvince(state) {\r\n return state.provinceList\r\n },\r\n getCity: (state) => (code) => {\r\n return state.cityList.find(item => item.code == code)\r\n },\r\n getDistrict: (state) => (code) => {\r\n return state.district.find(item => item.code == code)\r\n },\r\n getStreet: (state) => (code) => {\r\n var date=state.street.find(item => item.code == code)\r\n return date\r\n },\r\n },\r\n mutations: {\r\n setProvince(state, data) {\r\n state.provinceList = data\r\n },\r\n setCity(state, data) {\r\n const mo = state.cityList.find(item => item.code == data.code)\r\n if (!mo) {\r\n state.cityList.push(data)\r\n }\r\n },\r\n setDistrict(state, data) {\r\n const mo = state.district.find(item => item.code == data.code)\r\n if (!mo) {\r\n state.district.push(data)\r\n }\r\n },\r\n setStreet(state, data) {\r\n const mo = state.street.find(item => item.code == data.code)\r\n if (!mo) {\r\n state.street.push(data)\r\n }\r\n }\r\n },\r\n actions: {\r\n setProvince({ commit }, data) {\r\n commit('setProvince', data);\r\n },\r\n setCity({ commit }, data) {\r\n commit('setCity', data);\r\n },\r\n setDistrict({ commit }, data) {\r\n commit('setDistrict', data);\r\n },\r\n setStreet({ commit }, data) {\r\n commit('setStreet', data);\r\n },\r\n }\r\n}","/*\r\n * @Description: Vuex入口\r\n * @Author: hai-27\r\n * @Date: 2020-02-07 16:23:00\r\n * @LastEditors: hai-27\r\n * @LastEditTime: 2020-02-25 22:51:50\r\n */\r\nimport Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nimport user from './modules/user'\r\nimport shoppingCart from './modules/shoppingCart'\r\nimport order from './modules/order'\r\nimport address from './modules/address'\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n strict: true,\r\n modules: {\r\n user,\r\n shoppingCart,\r\n order,\r\n address\r\n }\r\n})\r\n","/*\r\n * 入口文件\r\n * @Author: hai-27\r\n * @Date: 2020-02-07 16:23:00\r\n * @LastEditors: hai-27\r\n * @LastEditTime: 2020-03-04 23:38:41\r\n */\r\nimport Vue from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\nimport ElementUI from 'element-ui';\r\nimport 'element-ui/lib/theme-chalk/index.css';\r\nimport './assets/css/global.css';\r\nVue.use(ElementUI);\r\n\r\n// 全局函数及变量\r\nimport Global from './Global';\r\nVue.use(Global);\r\nimport Axios from 'axios';\r\nVue.prototype.$axios = Axios;\r\nimport util from './common/tools/util.js';\r\nVue.prototype.$util = util;\r\nimport regular from './common/tools/regular.js';\r\nVue.prototype.$regular = regular;//校验规则\r\nimport qs from 'qs'\r\nVue.prototype.qs = qs\r\nimport helpMenus from '@/common/config/help/help-menus.js'\r\nVue.prototype.$helpMenus = helpMenus\r\n\r\n// 全局请求拦截器\r\nAxios.interceptors.request.use(\r\n config => {\r\n // if (config.method == 'post') {\r\n\r\n // config.data = qs.stringify(config.data)\r\n // console.log(config)\r\n // // config.headers['Content-Type'] = 'application/x-www-form-urlencoded'\r\n // }\r\n // console.log(config)\r\n let token = store.getters.getUser.Token\r\n if (token) {\r\n config.headers[\"Authorization\"] = \"Bearer \" + token\r\n }\r\n return config;\r\n },\r\n error => {\r\n // 跳转error页面\r\n router.push({ path: \"/error\" });\r\n return Promise.reject(error);\r\n }\r\n);\r\n// 全局响应拦截器\r\nAxios.interceptors.response.use(\r\n res => {\r\n // if (res.data.code === \"401\") {\r\n // // 401表示没有登录\r\n // // 提示没有登录\r\n // Vue.prototype.notifyError(res.data.msg);\r\n // // 修改vuex的showLogin状态,显示登录组件\r\n // store.dispatch(\"setShowLogin\", true);\r\n // }\r\n // if (res.data.code === \"500\") {\r\n // // 500表示服务器异常\r\n // // 跳转error页面\r\n // // router.push({ path: \"/error\" });\r\n // }\r\n // switch(res.data.code){\r\n // case \"400\" :\r\n // this.notifyError()\r\n // }\r\n let data = res.data\r\n if (data.head) {\r\n if (data.head.code != 10000) {\r\n Vue.prototype.notifyError(data.head.message)\r\n data = {}\r\n }\r\n else {\r\n data = data.body\r\n }\r\n }\r\n else {\r\n data = res\r\n }\r\n\r\n return data;\r\n },\r\n error => {\r\n // 跳转error页面\r\n // router.push({ path: \"/error\" });\r\n const res = error.response\r\n if (res.status == 401) {\r\n Vue.prototype.notifyError(\"未存在登录信息,请重新登录\");\r\n // 清空本地登录信息\r\n localStorage.setItem(\"user\", \"\");\r\n // 清空vuex登录信息\r\n store.dispatch(\"setUser\", \"\");\r\n store.dispatch(\"setShowLogin\", true);\r\n }\r\n else if(res.status == 500){\r\n Vue.prototype.notifyError(\"服务器出现错误\")\r\n }\r\n else {\r\n if (res.data) {\r\n Vue.prototype.notifyError(res.data)\r\n }\r\n else {\r\n Vue.prototype.notifyError(error.message)\r\n }\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n// 全局拦截器,在进入需要用户权限的页面前校验是否已经登录\r\nrouter.beforeResolve((to, from, next) => {\r\n // alert(Browser.client.name+ \" \" +Browser.client.version + \" \" + Browser.client.type,'1234')\r\n //提示用户切换浏览器模式\r\n // const url=require(\"./assets/imgs/jsms.png\")\r\n // if(!Browser.client.isWebkit && Browser.client.isStrict){\r\n // ElementUI.MessageBox.alert(' ',\"请将浏览器切换为极速模式\",{\r\n // dangerouslyUseHTMLString: true,\r\n // showConfirmButton:false\r\n // })\r\n \r\n // }\r\n\r\n \r\n // 判断路由是否设置相应校验用户权限\r\n if (to.meta.requireAuth) {\r\n const loginUser = store.state.user.user;\r\n if (!loginUser) {\r\n // // 没有登录,显示登录组件\r\n // store.dispatch(\"setShowLogin\", true);\r\n // if (from.name == null) {\r\n // //此时,是在页面没有加载,直接在地址栏输入链接,进入需要登录验证的页面\r\n // next(\"/\");\r\n // return;\r\n // }\r\n //记录拦截的页面路由\r\n sessionStorage.setItem(\"beforePath\", JSON.stringify(to));\r\n \r\n //去登录页面\r\n router.push({ path: \"/userlogin\" });\r\n\r\n // 终止导航\r\n next(false); \r\n return;\r\n }\r\n }\r\n next();\r\n});\r\n// 解决bug:页面/路由跳转后,滚动条消失,页面无法滚动\r\nrouter.afterEach((to, from, next) => {\r\n document.querySelector(\"body\").setAttribute(\"style\", \"overflow: auto !important;\")\r\n});\r\n// 相对时间过滤器,把时间戳转换成时间\r\n// 格式: 2020-02-25 21:43:23\r\nVue.filter('dateFormat', (dataStr) => {\r\n var time = new Date(dataStr);\r\n function timeAdd0(str) {\r\n if (str < 10) {\r\n str = '0' + str;\r\n }\r\n return str;\r\n }\r\n var y = time.getFullYear();\r\n var m = time.getMonth() + 1;\r\n var d = time.getDate();\r\n var h = time.getHours();\r\n var mm = time.getMinutes();\r\n var s = time.getSeconds();\r\n return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' ' + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);\r\n});\r\n\r\nVue.filter(\"formatMoney\", (data) => {\r\n if (!data) return '0.00'\r\n\t // 将数据分割,保留两位小数\r\n\t data= data.toFixed(2)\r\n\t // 获取整数部分\r\n\t const intPart = Math.trunc(data)\r\n\t // 整数部分处理,增加,\r\n\t const intPartFormat = intPart.toString().replace(/(\\d)(?=(?:\\d{3})+$)/g, '$1,')\r\n\t // 预定义小数部分\r\n\t let floatPart = '.00'\r\n\t // 将数据分割为小数部分和整数部分\r\n\t const newArr = data.toString().split('.')\r\n\t if (newArr.length === 2) { // 有小数部分\r\n\t floatPart = newArr[1].toString() // 取得小数部分\r\n\t return intPartFormat + '.' + floatPart\r\n\t }\r\n\t return intPartFormat + floatPart;\r\n});\r\n\r\nVue.filter(\"formatMoneySimple\", (data) => {\r\n if (!data) return '0.00'\r\n\t // 将数据分割,保留两位小数\r\n\t return data.toFixed(2);\r\n});\r\n\r\n\r\n//全局注册自定义指令,用于判断当前图片是否能够加载成功,可以加载成功则赋值为img的src属性,否则使用默认图片\r\nVue.directive('real-img', async function (el, binding) {//指令名称为:real-img\r\n let imgURL = binding.value;//获取图片地址\r\n if (imgURL) {\r\n let exist = await imageIsExist(imgURL);\r\n if (exist) {\r\n el.setAttribute('src', imgURL);\r\n }\r\n }\r\n})\r\n\r\n/**\r\n* 检测图片是否存在\r\n* @param url\r\n*/\r\nlet imageIsExist = function (url) {\r\n return new Promise((resolve) => {\r\n var img = new Image();\r\n img.onload = function () {\r\n if (this.complete == true) {\r\n resolve(true);\r\n img = null;\r\n }\r\n }\r\n img.onerror = function () {\r\n resolve(false);\r\n img = null;\r\n }\r\n img.src = url;\r\n })\r\n}\r\n\r\n\r\nArray.prototype.remove = function (val) {\r\n var index = this.indexOf(val);\r\n if (index > -1) {\r\n this.splice(index, 1);\r\n }\r\n};\r\n\r\nvar Browser = Browser || (function (window) {\r\n var document = window.document,\r\n navigator = window.navigator,\r\n agent = navigator.userAgent.toLowerCase(),\r\n //IE8+支持.返回浏览器渲染当前文档所用的模式\r\n //IE6,IE7:undefined.IE8:8(兼容模式返回7).IE9:9(兼容模式返回7||8)\r\n //IE10:10(兼容模式7||8||9)\r\n IEMode = document.documentMode,\r\n //chorme\r\n chrome = window.chrome || false,\r\n System = {\r\n //user-agent\r\n agent: agent,\r\n //是否为IE\r\n isIE: /msie/.test(agent),\r\n //Gecko内核\r\n isGecko: agent.indexOf(\"gecko\") > 0 && agent.indexOf(\"like gecko\") < 0,\r\n //webkit内核\r\n isWebkit: agent.indexOf(\"webkit\") > 0,\r\n //是否为标准模式\r\n isStrict: document.compatMode === \"CSS1Compat\",\r\n //是否支持subtitle\r\n supportSubTitle: function () {\r\n return \"track\" in document.createElement(\"track\");\r\n },\r\n //是否支持scoped\r\n supportScope: function () {\r\n return \"scoped\" in document.createElement(\"style\");\r\n },\r\n //获取IE的版本号\r\n ieVersion: function () {\r\n try {\r\n return agent.match(/msie ([\\d.]+)/)[1] || 0;\r\n } catch (e) {\r\n console.log(\"error\");\r\n return IEMode;\r\n }\r\n },\r\n //Opera版本号\r\n operaVersion: function () {\r\n try {\r\n if (window.opera) {\r\n return agent.match(/opera.([\\d.]+)/)[1];\r\n } else if (agent.indexOf(\"opr\") > 0) {\r\n return agent.match(/opr\\/([\\d.]+)/)[1];\r\n }\r\n } catch (e) {\r\n console.log(\"error\");\r\n return 0;\r\n }\r\n },\r\n //描述:version过滤.如31.0.252.152 只保留31.0\r\n versionFilter: function () {\r\n if (arguments.length === 1 && typeof arguments[0] === \"string\") {\r\n var version = arguments[0];\r\n let start = version.indexOf(\".\");\r\n if (start > 0) {\r\n let end = version.indexOf(\".\", start + 1);\r\n if (end !== - 1) {\r\n return version.substr(0, end);\r\n }\r\n }\r\n return version;\r\n } else if (arguments.length === 1) {\r\n return arguments[0];\r\n }\r\n return 0;\r\n }\r\n };\r\n\r\n try {\r\n //浏览器类型(IE、Opera、Chrome、Safari、Firefox)\r\n System.type = System.isIE ? \"IE\" :\r\n window.opera || (agent.indexOf(\"opr\") > 0) ? \"Opera\" :\r\n (agent.indexOf(\"chrome\") > 0) ? \"Chrome\" :\r\n //safari也提供了专门的判定方式\r\n window.openDatabase ? \"Safari\" :\r\n (agent.indexOf(\"firefox\") > 0) ? \"Firefox\" :\r\n 'unknow';\r\n\r\n //版本号\r\n System.version = (System.type === \"IE\") ? System.ieVersion() :\r\n (System.type === \"Firefox\") ? agent.match(/firefox\\/([\\d.]+)/)[1] :\r\n (System.type === \"Chrome\") ? agent.match(/chrome\\/([\\d.]+)/)[1] :\r\n (System.type === \"Opera\") ? System.operaVersion() :\r\n (System.type === \"Safari\") ? agent.match(/version\\/([\\d.]+)/)[1] :\r\n \"0\";\r\n\r\n //浏览器外壳\r\n System.shell = function () {\r\n //遨游浏览器\r\n if (agent.indexOf(\"maxthon\") > 0) {\r\n System.version = agent.match(/maxthon\\/([\\d.]+)/)[1] || System.version;\r\n return \"傲游浏览器\";\r\n }\r\n //QQ浏览器\r\n if (agent.indexOf(\"qqbrowser\") > 0) {\r\n System.version = agent.match(/qqbrowser\\/([\\d.]+)/)[1] || System.version;\r\n return \"QQ浏览器\";\r\n }\r\n\r\n //搜狗浏览器\r\n if (agent.indexOf(\"se 2.x\") > 0) {\r\n return '搜狗浏览器';\r\n }\r\n\r\n //Chrome:也可以使用window.chrome && window.chrome.webstore判断\r\n if (chrome && System.type !== \"Opera\") {\r\n var external = window.external,\r\n clientInfo = window.clientInformation,\r\n //客户端语言:zh-cn,zh.360下面会返回undefined\r\n clientLanguage = clientInfo.languages;\r\n\r\n //猎豹浏览器:或者agent.indexOf(\"lbbrowser\")>0\r\n if (external && 'LiebaoGetVersion' in external) {\r\n return '猎豹浏览器';\r\n }\r\n //百度浏览器\r\n if (agent.indexOf(\"bidubrowser\") > 0) {\r\n System.version = agent.match(/bidubrowser\\/([\\d.]+)/)[1] ||\r\n agent.match(/chrome\\/([\\d.]+)/)[1];\r\n return \"百度浏览器\";\r\n }\r\n //360极速浏览器和360安全浏览器\r\n if (System.supportSubTitle() && typeof clientLanguage === \"undefined\") {\r\n //object.key()返回一个数组.包含可枚举属性和方法名称\r\n var storeKeyLen = Object.keys(chrome.webstore).length,\r\n v8Locale = \"v8Locale\" in window;\r\n return storeKeyLen > 1 ? '360极速浏览器' : '360安全浏览器';\r\n }\r\n return \"Chrome\";\r\n }\r\n return System.type;\r\n };\r\n\r\n //浏览器名称(如果是壳浏览器,则返回壳名称)\r\n System.name = System.shell();\r\n //对版本号进行过滤过处理\r\n System.version = System.versionFilter(System.version);\r\n\r\n } catch (e) {\r\n console.log(\"error\");\r\n }\r\n return {\r\n client: System\r\n };\r\n\r\n})(window);\r\n\r\n//#region 格式化时间\r\nDate.prototype.format = function (fmt) {\r\n var o = {\r\n \"M+\": this.getMonth() + 1,\r\n \"d+\": this.getDate(),\r\n \"H+\": this.getHours(),\r\n \"h+\":(this.getHours()>12 ? this.getHours()-12 : this.getHours()),//12小时制\r\n \"m+\": this.getMinutes(),\r\n \"s+\": this.getSeconds(),\r\n \"q+\": Math.floor(( this.getMonth() % 3 == 0 ? ( this.getMonth() / 3 ) : ( this.getMonth() / 3 + 1 ) )),//季度\r\n \"S\": this.getMilliseconds()\r\n }\r\n if (/(y+)/.test(fmt)) {\r\n fmt = fmt.replace(RegExp.$1, (this.getFullYear() + \"\").substring(4 - RegExp.$1.length))\r\n }\r\n if(new RegExp(\"(h+)\").test(fmt)){\r\n var h=this.getHours()\r\n if(h>12){\r\n h=\"PM\"\r\n }\r\n else{\r\n h=\"AM\"\r\n }\r\n fmt+=\" \"+h\r\n }\r\n for (var k in o) {\r\n let str=\"00\"\r\n if(new RegExp(\"(S)\").test(k)){\r\n str=\"000\"\r\n }\r\n if (new RegExp(\"(\" + k + \")\").test(fmt)) {\r\n fmt = fmt.replace(RegExp.$1, (RegExp.$1 == 1 ? (o[k]) : (str + o[k]).substring((\"\" + o[k]).length)))\r\n }\r\n }\r\n \r\n return fmt\r\n}\r\nString.prototype.format=function (fmt) {\r\n var str=''\r\n if(this){\r\n str=new Date(this).format(fmt)\r\n }\r\n return str\r\n}\r\n\r\n//#endregion\r\n\r\n//全局组件\r\nimport MyMenu from './components/MyMenu';\r\nVue.component(MyMenu.name, MyMenu);\r\nimport MyList from './components/MyList';\r\nVue.component(MyList.name, MyList);\r\nimport MyLogin from './components/MyLogin';\r\nVue.component(MyLogin.name, MyLogin);\r\nimport MyRegister from './components/MyRegister';\r\nVue.component(MyRegister.name, MyRegister);\r\nimport IndexMianMenu from './components/IndexMianMenu';\r\nVue.component(IndexMianMenu.name, IndexMianMenu);\r\nVue.component('zw-dialog', () => import('@/components/common/dialog.vue'));\r\nVue.component('bread-crumb', () => import('@/components/common/bread-crumb.vue'));\r\nVue.component('password-input', () => import('@/components/common/password-input'));\r\nVue.component('scrollbar', () => import('@/components/common/scrollContainer.vue'));//自定义滚动条\r\nVue.config.productionTip = false;\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n data:{\r\n apiGlobalConfigData:[],//后台返回的全局配置数据\r\n },\r\n render: h => h(App)\r\n}).$mount('#app')\r\n"],"sourceRoot":""}