{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/router.js","webpack:///./src/App.vue?82df","webpack:///src/App.vue","webpack:///./src/App.vue?382d","webpack:///./src/App.vue","webpack:///./src/store/token.js","webpack:///./src/store/index.js","webpack:///./src/apis/https.js","webpack:///./src/main.js","webpack:///./src/App.vue?595f"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Vue","use","VueRouter","originalPush","location","this","catch","routes","path","component","redirect","meta","isAuthorize","breadcrumb","link","children","forumId","_vm","_h","$createElement","_c","_self","attrs","_e","staticRenderFns","provide","methods","routerRefresh","routerAlive","$nextTick","beforeDestroy","localStorage","clear","state","refreshToken","token","expireTime","mutations","SET_AUTH","payload","CLEAR_AUTH","actions","setAuth","context","option","commit","clearAuth","ls","SecureLS","isCompression","Vuex","Store","isLoading","LOADING","status","tokenModule","plugins","createPersistedState","reducer","val","storage","getItem","setItem","set","removeItem","remove","instance","axios","isRefreshing","refreshSubscribers","failTimes","subscribeTokenRefresh","cb","onRefreshed","map","interceptors","config","url","indexOf","store","headers","Authorization","response","originalRequest","alert","refreshUrl","post","res","issuccessful","dispatch","newToken","router","retryOrigReq","localize","TW","extend","required","email","validate","args","params","VueLoading","canCancel","color","loader","width","height","backgroundColor","isFullPage","opacity","FontAwesomeIcon","ValidationProvider","ValidationObserver","library","add","faShoppingCart","faCoffee","faAngry","faUser","faBookDead","faUserGraduate","faGhost","faPen","faThumbsUp","faThumbsDown","faTrash","faBookmark","faHeart","faCrown","faCaretDown","faClipboardCheck","$axios","$bus","VueParticles","BoostrapVue","VueQuillEditor","infiniteScroll","VueSweetalert2","el","Router","render","h","App"],"mappings":"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","file":"js/app.2ff047c3.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0209afdc\":\"8e2ffa69\",\"chunk-2d0baaa9\":\"cc446e93\",\"chunk-6d9312dd\":\"84f96560\",\"chunk-03decc01\":\"b07e5796\",\"chunk-105e4861\":\"a9ecd691\",\"chunk-11da73c1\":\"6fd1546c\",\"chunk-18dc0866\":\"ad081b22\",\"chunk-29eb9048\":\"bf5b6462\",\"chunk-5336fd54\":\"ad4ce778\",\"chunk-5acfc3e3\":\"828537a6\",\"chunk-3312f772\":\"9ade93e0\",\"chunk-50d8c3cc\":\"3fb2d510\",\"chunk-5a5cd7be\":\"c9b775cb\",\"chunk-7d116427\":\"7c2162e4\",\"chunk-816bfb82\":\"3b32e758\",\"chunk-92585c3c\":\"fff78b6f\",\"chunk-d4bd5a26\":\"5e71865e\",\"chunk-fbc601a4\":\"0231c2b0\",\"chunk-403b1434\":\"9807342e\",\"chunk-0f46e6e3\":\"bfd54e44\",\"chunk-2d22a126\":\"56879357\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-0209afdc\":1,\"chunk-6d9312dd\":1,\"chunk-03decc01\":1,\"chunk-105e4861\":1,\"chunk-11da73c1\":1,\"chunk-18dc0866\":1,\"chunk-5336fd54\":1,\"chunk-5acfc3e3\":1,\"chunk-3312f772\":1,\"chunk-50d8c3cc\":1,\"chunk-5a5cd7be\":1,\"chunk-7d116427\":1,\"chunk-d4bd5a26\":1,\"chunk-fbc601a4\":1,\"chunk-403b1434\":1,\"chunk-0f46e6e3\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0209afdc\":\"26c402db\",\"chunk-2d0baaa9\":\"31d6cfe0\",\"chunk-6d9312dd\":\"34cef300\",\"chunk-03decc01\":\"1aa74f50\",\"chunk-105e4861\":\"b6f19655\",\"chunk-11da73c1\":\"26c402db\",\"chunk-18dc0866\":\"26c402db\",\"chunk-29eb9048\":\"31d6cfe0\",\"chunk-5336fd54\":\"ad752ee4\",\"chunk-5acfc3e3\":\"b9675d1a\",\"chunk-3312f772\":\"55c02b93\",\"chunk-50d8c3cc\":\"26c402db\",\"chunk-5a5cd7be\":\"544f2c8e\",\"chunk-7d116427\":\"26c402db\",\"chunk-816bfb82\":\"31d6cfe0\",\"chunk-92585c3c\":\"31d6cfe0\",\"chunk-d4bd5a26\":\"bea56952\",\"chunk-fbc601a4\":\"58f8b34a\",\"chunk-403b1434\":\"26c402db\",\"chunk-0f46e6e3\":\"ad690da4\",\"chunk-2d22a126\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Vue from 'vue';\r\nimport VueRouter from 'vue-router';\r\n\r\nVue.use(VueRouter);\r\n\r\nconst originalPush = VueRouter.prototype.push;\r\nVueRouter.prototype.push = function push(location) {\r\n return originalPush.call(this, location).catch(err => err)\r\n}\r\n\r\nexport default new VueRouter({\r\n mode: 'hash',\r\n routes: [\r\n {\r\n path: \"/reloadPage\",\r\n name: \"ReloadPage\",\r\n component: ()=> import(\"./views/ReloadPage.vue\")\r\n },\r\n {\r\n path: '*',\r\n redirect: { name: 'home' },\r\n },\r\n {\r\n path: '/Login',\r\n component: () => import('./views/Login.vue'),\r\n name: 'login',\r\n },\r\n {\r\n path: '/Register',\r\n component: () => import('./views/Register.vue'),\r\n name: 'register',\r\n },\r\n {\r\n path: \"/VerifyThreadManagerPage\",\r\n component: () => import('./views/VerifyThreadManagerPage.vue'),\r\n name: 'verifythreadManagerPage'\r\n },\r\n {\r\n path: \"/VerifyThreadModPage\",\r\n component: () => import('./views/VerifyThreadModPage.vue'),\r\n name: 'verifyThreadModPage'\r\n },\r\n {\r\n path: \"/ForgetAccount\",\r\n component: () => import('./views/ForgetAccount.vue'),\r\n name: 'forgetAccount'\r\n },\r\n {\r\n path: '/CreateThread',\r\n component: () => import('./views/CreateThread.vue'),\r\n name: 'createthread',\r\n },\r\n {\r\n path: '/Rank',\r\n component: () => import('./views/Rank.vue'),\r\n name: 'rank',\r\n },\r\n {\r\n path: '/Post',\r\n component: () => import('./views/Post.vue'),\r\n name: 'post',\r\n meta: {\r\n isAuthorize: true,\r\n breadcrumb: [\r\n {\r\n name: '首頁',\r\n link: '/',\r\n },\r\n {\r\n name: '發文區',\r\n link: './views/Post.vue',\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: '/MemberCenter',\r\n component: () => import('./views/MemberCTR.vue'),\r\n name: 'memberCTR',\r\n\r\n },\r\n\r\n {\r\n path: '/LoveWheal',\r\n component: () => import('./views/LoveWheal.vue')\r\n },\r\n {\r\n path: '/',\r\n component: () => import('./views/Layout.vue'),\r\n children: [\r\n {\r\n path: '',\r\n name: 'home',\r\n component: () => import('./views/Index.vue'),\r\n meta: {\r\n breadcrumb: [\r\n {\r\n name: '首頁',\r\n link: '/',\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: '/Thread/:routeName',\r\n component: () => import('./views/Thread.vue'),\r\n meta: {\r\n forumId: \"\",\r\n breadcrumb: [\r\n {\r\n name: '首頁',\r\n link: '/',\r\n\r\n },\r\n {\r\n },\r\n ],\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n path: '*',\r\n component: () => import('./views/404.vue'),\r\n },\r\n {\r\n path: '/article/:id',\r\n component: () => import('./views/Article.vue')\r\n },\r\n ],\r\n});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.routerAlive)?_c('router-view'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n
\r\n \r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--11-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=9a5cd62a&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export default {\r\n state: {\r\n refreshToken: '',\r\n token: '',\r\n expireTime: '',\r\n isAuthorize: false,\r\n },\r\n mutations: {\r\n SET_AUTH(state, payload) {\r\n state.token = payload.token;\r\n state.refreshToken = payload.refreshToken;\r\n state.expireTime = payload.expireTime;\r\n state.isAuthorize = payload.isAuthorize;\r\n },\r\n CLEAR_AUTH(state) {\r\n state.token = '';\r\n state.refreshToken = '';\r\n state.expireTime = '';\r\n state.isAuthorize = false;\r\n },\r\n },\r\n actions: {\r\n setAuth(context, option) {\r\n context.commit('SET_AUTH', {\r\n token: option.token,\r\n isAuthorize: option.isAuthorize,\r\n refreshToken: option.refreshToken,\r\n expireTime: option.expireTime\r\n });\r\n },\r\n clearAuth(context) {\r\n context.commit('CLEAR_AUTH');\r\n },\r\n },\r\n};\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n// vuex 長期存儲套件\r\nimport createPersistedState from 'vuex-persistedstate';\r\nimport SecureLS from 'secure-ls';\r\nconst ls = new SecureLS({\r\n isCompression: false,\r\n});\r\nimport tokenModule from './token';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state: {\r\n isLoading: false,\r\n },\r\n mutations: {\r\n LOADING(state,payload){\r\n state.isLoading = payload\r\n } \r\n },\r\n actions: {\r\n isLoading (context) {\r\n context.commit('LOADING', status)\r\n },\r\n },\r\n modules: {\r\n tokenModule,\r\n },\r\n plugins: [\r\n createPersistedState({\r\n reducer(val){\r\n return {tokenModule: val.tokenModule}\r\n },\r\n storage: {\r\n getItem: (key) => ls.get(key),\r\n setItem: (key, value) => ls.set(key, value),\r\n removeItem: (key) => ls.remove(key),\r\n },\r\n }),\r\n ],\r\n});\r\n","import axios from 'axios';\r\nimport store from '../store/index';\r\nimport router from '../router';\r\n// axios 配置\r\nconst instance = axios.create();\r\n\r\nlet isRefreshing = false;\r\nlet refreshSubscribers = [];\r\nlet failTimes = 0;\r\n\r\ninstance.interceptors.request.use(\r\n async (config) => {\r\n if (\r\n config.url.indexOf('/refresh') >= 0 ||\r\n config.url.indexOf('/login') >= 0\r\n ) {\r\n return config;\r\n }\r\n if (store.state.tokenModule.isAuthorize) {\r\n config.headers.Authorization = `Bearer ${store.state.tokenModule.token}`;\r\n }\r\n return config;\r\n },\r\n (err) => {\r\n return Promise.reject(err);\r\n }\r\n);\r\n\r\ninstance.interceptors.response.use(\r\n (response) => {\r\n return response;\r\n },\r\n (error) => {\r\n const originalRequest = error.config;\r\n if (error.response.status === 401) {\r\n //錯誤超過5次就停止請求\r\n if (failTimes <= 5) {\r\n failTimes++;\r\n } else {\r\n alert('驗證失敗請重新登入');\r\n return;\r\n }\r\n if (!isRefreshing) {\r\n isRefreshing = true;\r\n let refreshUrl = process.env.VUE_APP_API + '/api/JwtHelper/refresh';\r\n let refreshToken = store.state.tokenModule.refreshToken;\r\n axios\r\n .post(refreshUrl, { refreshToken: refreshToken })\r\n .then((res) => {\r\n if (res.status === 200 && res.data.issuccessful) {\r\n let data = {\r\n refreshToken: res.data.refreshToken,\r\n token: res.data.token,\r\n expireTime: res.data.expireTime,\r\n isAuthorize: true,\r\n };\r\n store.dispatch('setAuth', data);\r\n return res.data.token;\r\n } else {\r\n return '';\r\n }\r\n })\r\n .then((newToken) => {\r\n if (newToken === '') {\r\n isRefreshing = false;\r\n refreshSubscribers = [];\r\n } else {\r\n isRefreshing = false;\r\n onRefreshed(newToken);\r\n }\r\n })\r\n .catch(() => {\r\n alert('驗證過期,請重新登入');\r\n router.push('/login');\r\n });\r\n }\r\n\r\n const retryOrigReq = new Promise((resolve) => {\r\n subscribeTokenRefresh((token) => {\r\n // replace the expired token and retry\r\n originalRequest.headers['Authorization'] = 'Bearer ' + token;\r\n resolve(axios(originalRequest));\r\n });\r\n });\r\n return retryOrigReq;\r\n } else {\r\n return Promise.reject(error.response.data);\r\n }\r\n }\r\n);\r\nfunction subscribeTokenRefresh(cb) {\r\n refreshSubscribers.push(cb);\r\n}\r\n\r\nfunction onRefreshed(token) {\r\n refreshSubscribers.map((cb) => cb(token));\r\n}\r\nexport default instance;\r\n","import Vue from 'vue';\r\nimport Router from './router';\r\nimport App from './App.vue';\r\nimport VueParticles from 'vue-particles';\r\nimport 'bootstrap';\r\nimport BoostrapVue from 'bootstrap-vue';\r\nimport infiniteScroll from 'vue-infinite-scroll'\r\nimport VueSweetalert2 from 'vue-sweetalert2';\r\nimport 'sweetalert2/dist/sweetalert2.min.css';\r\nimport VueLoading from 'vue-loading-overlay';\r\nimport 'vue-loading-overlay/dist/vue-loading.css'\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\nimport {\r\n faShoppingCart,\r\n faCoffee,\r\n faAngry,\r\n faUser,\r\n faBookDead,\r\n faUserGraduate,\r\n faGhost,\r\n faPen,\r\n faThumbsUp,\r\n faThumbsDown,\r\n faTrash,\r\n faHeart,\r\n faBookmark,\r\n faCrown,\r\n faCaretDown,\r\n faClipboardCheck\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport VueQuillEditor from \"vue-quill-editor\";\r\n\r\nimport 'quill/dist/quill.core.css'; // import styles\r\nimport 'quill/dist/quill.snow.css'; // for snow theme\r\nimport 'quill/dist/quill.bubble.css'; // for bubble theme\r\nimport store from './store';\r\nimport axios from './apis/https';\r\n// Vee-Validate\r\nimport {\r\n ValidationObserver,\r\n ValidationProvider,\r\n extend,\r\n localize,\r\n} from 'vee-validate';\r\nimport { required, email } from 'vee-validate/dist/rules';\r\nimport TW from 'vee-validate/dist/locale/zh_TW.json';\r\n\r\nlocalize('zh_TW', TW);\r\n\r\nextend('required', {\r\n ...required,\r\n message: '*欄位不得為空',\r\n});\r\nextend('email', {\r\n ...email,\r\n message: '*{_field_}格式錯誤'\r\n});\r\nextend('min', {\r\n validate(value, args) {\r\n return value.length >= args.length;\r\n },\r\n params: ['length'],\r\n message: '*長度至少 6 字元',\r\n});\r\nextend('password', {\r\n params: ['target'],\r\n validate(value, { target }) {\r\n return value === target;\r\n },\r\n message: '*密碼不相符',\r\n});\r\nVue.use(VueLoading, {\r\n canCancel: false,\r\n color: '#000000',\r\n loader: 'dots', //spinner/dots/bars\r\n width: 50,\r\n height: 50,\r\n backgroundColor: '#ffffff',\r\n isFullPage: true,\r\n opacity: 0.8\r\n});\r\nVue.component('font-awesome-icon', FontAwesomeIcon); //使用kebab-case\r\nVue.component('ValidationProvider', ValidationProvider);\r\nVue.component('ValidationObserver', ValidationObserver);\r\nlibrary.add(\r\n faShoppingCart,\r\n faCoffee,\r\n faAngry,\r\n faUser,\r\n faBookDead,\r\n faUserGraduate,\r\n faGhost,\r\n faPen,\r\n faThumbsUp,\r\n faThumbsDown,\r\n faTrash,\r\n faBookmark,\r\n faHeart,\r\n faCrown,\r\n faCaretDown,\r\n faClipboardCheck\r\n);\r\n\r\nVue.prototype.$axios = axios;\r\nVue.prototype.$bus = new Vue();\r\nVue.use(VueParticles);\r\nVue.use(BoostrapVue);\r\nVue.use(VueQuillEditor);\r\nVue.use(infiniteScroll);\r\nVue.use(VueSweetalert2);\r\nnew Vue({\r\n el: '#app',\r\n router: Router,\r\n store,\r\n axios,\r\n render: (h) => h(App),\r\n});\r\n","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--7-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\""],"sourceRoot":""}