\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./FlexSpacer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./FlexSpacer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlexSpacer.vue?vue&type=template&id=4f513f03&scoped=true&\"\nimport script from \"./FlexSpacer.vue?vue&type=script&lang=js&\"\nexport * from \"./FlexSpacer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlexSpacer.vue?vue&type=style&index=0&id=4f513f03&scoped=true&lang=css&\"\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 \"4f513f03\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=style&index=0&id=2bf8adb6&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenu.vue?vue&type=style&index=0&id=2bf8adb6&scoped=true&lang=scss&\"","export default {\r\n 'index': () => import('@v/index/Index'),\r\n 'vue-routers/create': () => import('@v/vue-routers/Form'),\r\n 'vue-routers': () => import('@v/vue-routers/Index'),\r\n 'vue-routers/:id(\\\\d+)/edit': () => import('@v/vue-routers/Form'),\r\n\r\n 'admin-permissions': () => import('@v/admin-permissions/Index'),\r\n 'admin-permissions/create': () => import('@v/admin-permissions/Form'),\r\n 'admin-permissions/:id(\\\\d+)/edit': () => import('@v/admin-permissions/Form'),\r\n\r\n 'admin-roles': () => import('@v/admin-roles/Index'),\r\n 'admin-roles/create': () => import('@v/admin-roles/Form'),\r\n 'admin-roles/:id(\\\\d+)/edit': () => import('@v/admin-roles/Form'),\r\n\r\n 'admin-users': () => import('@v/admin-users/Index'),\r\n 'admin-users/create': () => import('@v/admin-users/Form'),\r\n 'admin-users/:id(\\\\d+)/edit': () => import('@v/admin-users/Form'),\r\n\r\n 'system-media': () => import('@v/system-media/Index'),\r\n\r\n 'config-categories': () => import('@v/config-categories/Index'),\r\n\r\n 'configs': () => import('@v/configs/Index'),\r\n 'configs/create': () => import('@v/configs/Form'),\r\n 'configs/:id(\\\\d+)/edit': () => import('@v/configs/Form'),\r\n 'configs/:categorySlug': () => import('@v/configs/ConfigValuesForm'),\r\n}\r\n","import { Table } from 'element-ui'\r\n\r\nexport default {\r\n extends: Table,\r\n provide() {\r\n return {\r\n elTable: this,\r\n }\r\n },\r\n props: {\r\n stripe: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n border: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n rowKey: {\r\n type: [String, Function],\r\n default: 'id',\r\n },\r\n /**\r\n * API 资源名\r\n */\r\n resource: String,\r\n },\r\n}\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgIcon.vue?vue&type=style&index=0&id=3700162c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgIcon.vue?vue&type=style&index=0&id=3700162c&scoped=true&lang=css&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-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--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-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&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenuItem.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideMenuItem.vue?vue&type=style&index=1&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonLink.vue?vue&type=style&index=0&id=8ff31d3c&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonLink.vue?vue&type=style&index=0&id=8ff31d3c&scoped=true&lang=scss&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Hamburger.vue?vue&type=style&index=0&id=0376588e&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Hamburger.vue?vue&type=style&index=0&id=0376588e&scoped=true&lang=scss&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=style&index=0&id=4aff9831&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Refresh.vue?vue&type=style&index=0&id=4aff9831&scoped=true&lang=scss&\"","import axios from 'axios'\r\nimport { getToken } from '@/libs/token'\r\nimport { Message } from 'element-ui'\r\nimport _trimStart from 'lodash/trimStart'\r\nimport {\r\n debounceMsg,\r\n getFirstError,\r\n handleValidateErrors,\r\n showLoginDialog,\r\n} from '@/libs/utils'\r\nimport _forIn from 'lodash/forIn'\r\n\r\nlet config = {\r\n baseURL: '/admin-api',\r\n timeout: 30 * 1000,\r\n}\r\n\r\nconst _axios = axios.create(config)\r\nconst CancelToken = axios.CancelToken\r\n\r\nexport const requestQueue = {}\r\nconst destroyUrlFromQueue = (path) => {\r\n if (!path) {\r\n return\r\n }\r\n path = path.slice('/admin-api/'.length)\r\n delete requestQueue[path]\r\n}\r\n\r\nconst showError = res => {\r\n const { message: msg } = res.data\r\n msg && Message.error(msg)\r\n}\r\n\r\nexport const cancelAllRequest = (msg = '') => {\r\n Object.values(requestQueue).forEach(i => i.source.cancel(msg))\r\n _forIn(requestQueue, (value, url) => {\r\n value.source.cancel(msg)\r\n delete requestQueue[url]\r\n })\r\n}\r\n\r\n_axios.interceptors.request.use(\r\n (config) => {\r\n config.headers.Authorization = getToken()\r\n\r\n const source = CancelToken.source()\r\n config.cancelToken = source.token\r\n\r\n requestQueue[_trimStart(config.url, '/')] = {\r\n source,\r\n }\r\n\r\n return config\r\n },\r\n (error) => {\r\n return Promise.reject(error)\r\n },\r\n)\r\n\r\n_axios.interceptors.response.use(\r\n (res) => {\r\n destroyUrlFromQueue(res.config.url)\r\n return res\r\n },\r\n (err) => {\r\n const { response: res } = err\r\n let { config } = err\r\n\r\n config = config && Object.assign({\r\n // 是否以 message 的方式显示第一条 422 错误消息\r\n showValidationMsg: true,\r\n // 请求时的表单所在的组件,配合 error key 使用,可以自动填充表单中的 errors 错误提示\r\n validationForm: undefined,\r\n // 页面中,存储错误的键,默认为 errors\r\n validationErrorKey: 'errors',\r\n // 请求出现 401 时,默认会打开弹框要求登录,设置 true 来禁止\r\n disableLoginDialog: undefined,\r\n }, config)\r\n\r\n // 可通过 config.disableHandle错误码 来禁用该类型错误的默认处理\r\n if (res && !config[`disableHandle${res.status}`]) {\r\n switch (res.status) {\r\n case 404:\r\n Message.error('请求的网址不存在')\r\n break\r\n case 401:\r\n cancelAllRequest('登录失效: ' + config.url)\r\n if (!config.disableLoginDialog) {\r\n showLoginDialog()\r\n } else {\r\n Message.error('登录已失效,请重新登录')\r\n }\r\n break\r\n case 400:\r\n showError(res)\r\n break\r\n case 403:\r\n showError(res)\r\n cancelAllRequest('无权访问: ' + config.url)\r\n break\r\n case 422:\r\n if (config.showValidationMsg) { // 如果显示验证消息,则显示首条\r\n Message.error(getFirstError(res))\r\n } else if (config.validationForm) { // 如果传入了 Vue 实例,则维护实例中的 errors\r\n Message.error(getFirstError(res))\r\n config.validationForm[config.validationErrorKey] = handleValidateErrors(res)\r\n } // 否则不做处理\r\n break\r\n case 429:\r\n Message.error('操作太频繁,请稍后再试')\r\n cancelAllRequest('操作太频繁')\r\n break\r\n default:\r\n Message.error(`服务器异常(code: ${res.status})`)\r\n break\r\n }\r\n } else {\r\n if (err instanceof axios.Cancel) { // 手动取消时,err 为一个 Cancel 对象,有一个 message 属性\r\n console.log(err.toString())\r\n } else {\r\n debounceMsg('请求失败')\r\n }\r\n }\r\n\r\n config && destroyUrlFromQueue(config.url)\r\n\r\n return Promise.reject(err)\r\n },\r\n)\r\n\r\nclass Request {\r\n method\r\n\r\n url\r\n data\r\n _config\r\n\r\n methodsWithData = [\r\n 'put', 'patch', 'post',\r\n ]\r\n\r\n withData() {\r\n return this.methodsWithData.indexOf(this.method) !== -1\r\n }\r\n\r\n config(config = {}) {\r\n this._config = Object.assign({}, this._config, config)\r\n return this\r\n }\r\n\r\n async request() {\r\n let args = []\r\n if (this.withData()) {\r\n args = [this.url, this.data, this._config]\r\n } else {\r\n args = [this.url, this._config]\r\n }\r\n return _axios[this.method](...args)\r\n }\r\n\r\n then(resolve, reject) {\r\n try {\r\n resolve(this.request())\r\n } catch (e) {\r\n reject(e)\r\n }\r\n }\r\n\r\n static create(method) {\r\n return class extends Request {\r\n constructor(url, data, config) {\r\n super()\r\n this.method = method\r\n this.url = url\r\n if (this.withData()) {\r\n this.data = data\r\n this._config = config\r\n } else {\r\n this._config = data\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst requestMethods = ['request', 'delete', 'get', 'head', 'options', 'post', 'put', 'patch']\r\nconst requests = {}\r\nrequestMethods.forEach((method) => {\r\n requests[method] = function () {\r\n return new (Request.create(method))(...arguments)\r\n }\r\n})\r\n\r\nexport default requests\r\n","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-password\",\n \"use\": \"icon-password-usage\",\n \"viewBox\": \"0 0 128 128\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","export default {\r\n inserted(el, binding) {\r\n const callback = binding.value\r\n const options = binding.options || { passive: true }\r\n\r\n window.addEventListener('resize', callback, options)\r\n el._onResize = {\r\n callback,\r\n options,\r\n }\r\n if (!binding.modifiers || !binding.modifiers.quiet) {\r\n callback()\r\n }\r\n },\r\n unbind(el) {\r\n if (!el._onResize) {\r\n return\r\n }\r\n\r\n const { callback, options } = el._onResize\r\n window.removeEventListener('resize', callback, options)\r\n delete el._onResize\r\n },\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',_vm._b({staticClass:\"el-button\",class:[\n _vm.type ? 'el-button--' + _vm.type : '',\n _vm.size ? 'el-button--' + _vm.size : '' ]},'router-link',_vm.$attrs,false),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","
\r\n \r\n \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--12-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!./ButtonLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./ButtonLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ButtonLink.vue?vue&type=template&id=8ff31d3c&scoped=true&\"\nimport script from \"./ButtonLink.vue?vue&type=script&lang=js&\"\nexport * from \"./ButtonLink.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ButtonLink.vue?vue&type=style&index=0&id=8ff31d3c&scoped=true&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 \"8ff31d3c\",\n null\n \n)\n\nexport default component.exports","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-cardRiding\",\n \"use\": \"icon-cardRiding-usage\",\n \"viewBox\": \"0 0 1028 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Test.vue?vue&type=style&index=0&id=bef69736&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Test.vue?vue&type=style&index=0&id=bef69736&scoped=true&lang=scss&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavbarItems.vue?vue&type=style&index=0&id=3f94a646&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavbarItems.vue?vue&type=style&index=0&id=3f94a646&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',[_vm._v(\"TEST\")]),_c('button',{staticClass:\"amap-page-container\"},[_c('el-amap',{ref:\"map\",staticClass:\"amap-demo\",attrs:{\"vid\":\"amapDemo\",\"amap-manager\":_vm.amapManager,\"center\":_vm.center,\"zoom\":_vm.zoom,\"plugin\":_vm.plugin,\"events\":_vm.events}}),_c('button',{staticClass:\"toolbar\"},[_c('button',{on:{\"click\":function($event){return _vm.getMap()}}},[_vm._v(\"get map\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","
\r\n \r\n
TEST
\r\n \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--12-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!./Test.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-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!./Test.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Test.vue?vue&type=template&id=bef69736&scoped=true&\"\nimport script from \"./Test.vue?vue&type=script&lang=js&\"\nexport * from \"./Test.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Test.vue?vue&type=style&index=0&id=bef69736&scoped=true&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 \"bef69736\",\n null\n \n)\n\nexport default component.exports","import Layout from '@c/Layout'\r\nimport Page404 from '@v/errors/Page404'\r\nimport Test from '@v/Test'\r\nimport { randomChars } from '@/libs/utils'\r\n\r\nexport const pageNotFoundRoute = {\r\n path: '/',\r\n component: Layout,\r\n children: [\r\n {\r\n path: '*',\r\n meta: {\r\n title: '页面没有找到',\r\n },\r\n component: Page404,\r\n },\r\n ],\r\n}\r\n\r\nexport const fixedRoutes = [\r\n pageNotFoundRoute,\r\n]\r\n\r\nif (process.env.NODE_ENV === 'development') {\r\n fixedRoutes.unshift({\r\n path: '/test/test',\r\n component: Layout,\r\n children: [\r\n {\r\n path: '/',\r\n component: Test,\r\n },\r\n ],\r\n })\r\n}\r\n\r\nexport default [\r\n {\r\n path: '/login',\r\n name: 'login',\r\n meta: {\r\n title: '登录',\r\n },\r\n component: () => import('@v/Login'),\r\n },\r\n {\r\n path: '/monitor',\r\n name: 'monitor',\r\n meta: {\r\n title: '监控大屏',\r\n },\r\n component: () => import('@v/monitor/Index'),\r\n },\r\n {\r\n path: randomChars(),\r\n component: Layout,\r\n children: [\r\n {\r\n path: '/user/edit',\r\n name: 'editMyProfile',\r\n meta: {\r\n title: '编辑资料',\r\n },\r\n component: () => import('@v/admin-users/EditProfile'),\r\n },\r\n {\r\n path: '/area',\r\n name: 'area',\r\n meta: {\r\n title: '区域列表',\r\n },\r\n component: () => import('@v/areas/Index'),\r\n },\r\n {\r\n path: '/area/create',\r\n name: 'areaCreate',\r\n meta: {\r\n title: '添加区域',\r\n },\r\n component: () => import('@v/areas/Form'),\r\n },\r\n {\r\n path: '/area/:id/edit',\r\n name: 'areaEdit',\r\n meta: {\r\n title: '编辑区域',\r\n },\r\n component: () => import('@v/areas/Formedit'),\r\n },\r\n {\r\n path: '/parking/:area_id?',\r\n name: 'bikeAreaGaode',\r\n meta: {\r\n title: '停车区管理',\r\n },\r\n component: () => import('@v/areas/parking/Index'),\r\n },\r\n {\r\n path: '/bike',\r\n name: 'bike',\r\n meta: {\r\n title: '车辆列表',\r\n },\r\n component: () => import('@v/bikes/Index'),\r\n },\r\n {\r\n path: '/bikes/contro',\r\n name: 'bikesContro',\r\n meta: {\r\n title: '车辆控制',\r\n },\r\n component: () => import('@v/bikes/BikeContro'),\r\n },\r\n {\r\n path: '/bike/create',\r\n name: 'bikeCreate',\r\n meta: {\r\n title: '添加车辆',\r\n },\r\n component: () => import('@v/bikes/Form'),\r\n },\r\n {\r\n path: '/bike/:id/edit',\r\n name: 'bikeEdit',\r\n meta: {\r\n title: '编辑车辆',\r\n },\r\n component: () => import('@v/bikes/Form'),\r\n },\r\n {\r\n path: '/bike/distribution_map',\r\n name: 'DistributionMap',\r\n meta: {\r\n title: '车辆分布图',\r\n },\r\n component: () => import('@v/bikes/DistributionMap'),\r\n },\r\n {\r\n path: '/area/area_setting',\r\n name: 'AreaSettings',\r\n meta: {\r\n title: '区域基础配置',\r\n },\r\n component: () => import('@v/areas/Setting'),\r\n },\r\n {\r\n path: '/deposit',\r\n name: 'deposit',\r\n meta: {\r\n title: '押金管理',\r\n },\r\n component: () => import('@v/deposits/Index'),\r\n },\r\n {\r\n path: '/profit',\r\n name: 'profit',\r\n meta: {\r\n title: '收益管理',\r\n },\r\n component: () => import('@v/profit/Index'),\r\n },\r\n {\r\n path: '/userList',\r\n name: 'userList',\r\n meta: {\r\n title: '用户列表',\r\n },\r\n component: () => import('@v/user/Index'),\r\n },\r\n {\r\n path: '/userWallet',\r\n name: 'userWallet',\r\n meta: {\r\n title: '钱包管理',\r\n },\r\n component: () => import('@v/user/Wallet'),\r\n },\r\n {\r\n path: '/orders',\r\n name: 'orders',\r\n meta: {\r\n title: '订单管理',\r\n },\r\n component: () => import('@v/orders/Index'),\r\n },\r\n {\r\n path: '/ordersTrajectory',\r\n name: 'ordersTrajectory',\r\n meta: {\r\n title: '订单轨迹',\r\n },\r\n component: () => import('@v/orders/ordersTrajectory'),\r\n },\r\n {\r\n path: '/orderRent',\r\n name: 'orderRent',\r\n meta: {\r\n title: '日租订单管理',\r\n },\r\n component: () => import('@v/order-rent/Index'),\r\n },\r\n {\r\n path: '/orderRentTrajectory',\r\n name: 'orderRentTrajectory',\r\n meta: {\r\n title: '日租订单轨迹',\r\n },\r\n component: () => import('@v/order-rent/ordersTrajectory'),\r\n },\r\n {\r\n path: '/bike_troubles',\r\n name: 'bikeTroubles',\r\n meta: {\r\n title: '工单管理',\r\n },\r\n component: () => import('@v/work-order/Index'),\r\n },\r\n {\r\n path: '/worker',\r\n name: 'worker',\r\n meta: {\r\n title: '地勤人员',\r\n },\r\n component: () => import('@v/worker/Index'),\r\n },\r\n {\r\n path: '/worker/achievements',\r\n name: 'workerAchievements',\r\n meta: {\r\n title: '地勤绩效',\r\n },\r\n component: () => import('@v/worker/Achievements'),\r\n },\r\n {\r\n path: '/dashboard',\r\n name: 'dashboard',\r\n meta: {\r\n title: '概况',\r\n },\r\n component: () => import('@v/dashboard/Index'),\r\n },\r\n {\r\n path: '/feedback',\r\n name: 'feedback',\r\n meta: {\r\n title: '问题反馈',\r\n },\r\n component: () => import('@v/feedback/Index'),\r\n },\r\n {\r\n path: '/user_repaired',\r\n name: 'user_repaired',\r\n meta: {\r\n title: '用户报修',\r\n },\r\n component: () => import('@v/user-repaired/Index'),\r\n },\r\n {\r\n path: '/advertisements',\r\n name: 'advertisements',\r\n meta: {\r\n title: '广告管理',\r\n },\r\n component: () => import('@v/advertisement/Index'),\r\n },\r\n {\r\n path: '/advertisements/create',\r\n name: 'addadvertisements',\r\n meta: {\r\n title: '添加广告',\r\n },\r\n component: () => import('@v/advertisement/Form'),\r\n },\r\n {\r\n path: '/advertisements/:id/edit',\r\n name: 'advertisementsEdit',\r\n meta: {\r\n title: '编辑广告',\r\n },\r\n component: () => import('@v/advertisement/Form'),\r\n },\r\n {\r\n path: '/advertisement-children/:pid',\r\n name: 'advertisement-children',\r\n meta: {\r\n title: '子广告管理',\r\n },\r\n component: () => import('@v/advertisement-children/Index'),\r\n },\r\n {\r\n path: '/advertisement-children/create/:pid',\r\n name: 'advertisement-children-create',\r\n meta: {\r\n title: '添加子广告',\r\n },\r\n component: () => import('@v/advertisement-children/Form'),\r\n },\r\n {\r\n path: '/advertisement-children/:id/edit',\r\n name: 'advertisementsChildrenEdit',\r\n meta: {\r\n title: '编辑子广告',\r\n },\r\n component: () => import('@v/advertisement-children/Form'),\r\n },\r\n {\r\n path: '/announcements',\r\n name: 'announcements',\r\n meta: {\r\n title: '公告管理',\r\n },\r\n component: () => import('@v/announcements/Index'),\r\n },\r\n {\r\n path: '/announcements/create',\r\n name: 'announcementsCreate',\r\n meta: {\r\n title: '添加公告',\r\n },\r\n component: () => import('@v/announcements/Form'),\r\n },\r\n {\r\n path: '/announcements/:id/edit',\r\n name: 'announcementsEdit',\r\n meta: {\r\n title: '编辑公告',\r\n },\r\n component: () => import('@v/announcements/Form'),\r\n },\r\n {\r\n path: '/box_binding',\r\n name: 'box_binding',\r\n meta: {\r\n title: '中控绑定管理',\r\n },\r\n component: () => import('@v/box-binding/Index'),\r\n },\r\n {\r\n path: '/box_binding/warningLogs',\r\n name: 'boxWarningLogs',\r\n meta: {\r\n title: '中控日志',\r\n },\r\n component: () => import('@v/box-binding/WarningLogs'),\r\n },\r\n {\r\n path: '/card_riding',\r\n name: 'riding_card',\r\n meta: {\r\n title: '骑行卡列表',\r\n },\r\n component: () => import('@v/activity/card-riding/Index'),\r\n },\r\n {\r\n path: '/card_riding/create',\r\n name: 'riding_card_create',\r\n meta: {\r\n title: '添加骑行卡',\r\n },\r\n component: () => import('@v/activity/card-riding/Form'),\r\n },\r\n {\r\n path: '/card_riding/:id/edit',\r\n name: 'riding_cardEdit',\r\n meta: {\r\n title: '编辑骑行卡',\r\n },\r\n component: () => import('@v/activity/card-riding/Form'),\r\n },\r\n {\r\n path: '/riding_card_order',\r\n name: 'riding_card_order',\r\n meta: {\r\n title: '骑行卡订单',\r\n },\r\n component: () => import('@v/activity/card-riding-order/Index'),\r\n },\r\n {\r\n path: '/riding_card_user_bags',\r\n name: 'riding_card_user_bags',\r\n meta: {\r\n title: '用户骑行卡',\r\n },\r\n component: () => import('@v/activity/card-riding-user-bags/Index'),\r\n },\r\n {\r\n path: '/recharge_configuration',\r\n name: 'recharge_configuration',\r\n meta: {\r\n title: '充值配置列表',\r\n },\r\n component: () => import('@v/activity/recharge-configuration/Index'),\r\n },\r\n {\r\n path: '/recharge_configuration/:id/edit',\r\n name: 'recharge_configuration_edit',\r\n meta: {\r\n title: '编辑充值配置',\r\n },\r\n component: () => import('@v/activity/recharge-configuration/Form'),\r\n },\r\n {\r\n path: '/recharge_configuration/create',\r\n name: 'recharge_configuration_create',\r\n meta: {\r\n title: '添加充值配置',\r\n },\r\n component: () => import('@v/activity/recharge-configuration/Form'),\r\n },\r\n {\r\n path: '/recharge_order',\r\n name: 'recharge_order',\r\n meta: {\r\n title: '充值订单列表',\r\n },\r\n component: () => import('@v/recharge-order/Index'),\r\n },\r\n {\r\n path: '/recharge_statistics',\r\n name: 'recharge_statistics',\r\n meta: {\r\n title: '充值统计',\r\n },\r\n component: () => import('@v/recharge-order/Statistics'),\r\n },\r\n {\r\n path: '/activity_send_sms',\r\n name: 'activity_send_sms',\r\n meta: {\r\n title: '群发短信',\r\n },\r\n component: () => import('@v/activity/activity-sms/Form'),\r\n },\r\n {\r\n path: '/group_send_sms_list',\r\n name: 'group_send_sms_list',\r\n meta: {\r\n title: '群发短信',\r\n },\r\n component: () => import('@v/activity/activity-sms/Index'),\r\n },\r\n {\r\n path: '/coupon/create',\r\n name: 'coupon_create',\r\n meta: {\r\n title: '添加优惠券',\r\n },\r\n component: () => import('@v/activity/coupon/From'),\r\n },\r\n {\r\n path: '/coupon/:id/edit',\r\n name: 'coupon_edit',\r\n meta: {\r\n title: '编辑优惠券',\r\n },\r\n component: () => import('@v/activity/coupon/From'),\r\n },\r\n {\r\n path: '/coupon',\r\n name: 'coupon',\r\n meta: {\r\n title: '优惠券配置列表',\r\n },\r\n component: () => import('@v/activity/coupon/Index'),\r\n },\r\n {\r\n path: '/coupon_user_bags',\r\n name: 'coupon_user_bags',\r\n meta: {\r\n title: '用户优惠券列表',\r\n },\r\n component: () => import('@v/activity/coupon_user_bags/Index'),\r\n },\r\n {\r\n path: '/invite_new_users_configs',\r\n name: 'invite_new_users_configs',\r\n meta: {\r\n title: '邀请新用户配置列表',\r\n },\r\n component: () => import('@v/activity/invite-new-users-configs/Index'),\r\n },\r\n {\r\n path: '/invite_new_users',\r\n name: 'invite_new_users',\r\n meta: {\r\n title: '新用户列表',\r\n },\r\n component: () => import('@v/activity/invite-new-users/Index'),\r\n },\r\n {\r\n path: '/invite_new_users_configs/create',\r\n name: 'invite_new_users_configs_create',\r\n meta: {\r\n title: '添加邀请新用户配置',\r\n },\r\n component: () => import('@v/activity/invite-new-users-configs/Form'),\r\n },\r\n {\r\n path: '/invite_new_users_configs/:id/edit',\r\n name: 'invite_new_users_configs_edit',\r\n meta: {\r\n title: '修改邀请新用户配置',\r\n },\r\n component: () => import('@v/activity/invite-new-users-configs/Form'),\r\n },\r\n {\r\n path: '/invite_new_users_give_gift_log',\r\n name: 'invite_new_users_give_gift_log',\r\n meta: {\r\n title: '获得奖励列表',\r\n },\r\n component: () => import('@v/activity/invite-new-users-give-gift-log/Index'),\r\n },\r\n\r\n {\r\n path: '/deposit_cards',\r\n name: 'deposit_card',\r\n meta: {\r\n title: '免押金卡列表',\r\n },\r\n component: () => import('@v/activity/deposit-cards/Index'),\r\n },\r\n {\r\n path: '/deposit_cards/create',\r\n name: 'deposit_card_create',\r\n meta: {\r\n title: '添加免押金卡',\r\n },\r\n component: () => import('@v/activity/deposit-cards/Form'),\r\n },\r\n {\r\n path: '/deposit_cards/:id/edit',\r\n name: 'deposit_cardEdit',\r\n meta: {\r\n title: '编辑免押金卡',\r\n },\r\n component: () => import('@v/activity/deposit-cards/Form'),\r\n },\r\n {\r\n path: '/deposit_card_order',\r\n name: 'deposit_card_order',\r\n meta: {\r\n title: '免押金卡订单',\r\n },\r\n component: () => import('@v/activity/deposit-cards/Orders'),\r\n },\r\n {\r\n path: '/apply_add_parking',\r\n name: 'apply_add_parking',\r\n meta: {\r\n title: '申请增加还车点',\r\n },\r\n component: () => import('@v/apply-add-parking/Index'),\r\n },\r\n {\r\n path: '/punishment_orders',\r\n name: 'punishment_orders',\r\n meta: {\r\n title: '罚单列表',\r\n },\r\n component: () => import('@v/punishment-orders/Index'),\r\n },\r\n {\r\n path: '/student',\r\n name: 'student',\r\n meta: {\r\n title: '学生认证列表',\r\n },\r\n component: () => import('@v/user/Student'),\r\n },\r\n {\r\n path: '/punishment_orders/:id/edit',\r\n name: 'punishment_ordersE',\r\n meta: {\r\n title: '编辑免押金卡',\r\n },\r\n component: () => import('@v/punishment-orders/Form'),\r\n },\r\n {\r\n path: '/punishment_orders/create',\r\n name: 'punishment_orders_create',\r\n meta: {\r\n title: '添加罚单',\r\n },\r\n component: () => import('@v/punishment-orders/Form'),\r\n },\r\n {\r\n path: '/refund_balance_order',\r\n name: 'refund_balance_order',\r\n meta: {\r\n title: '退款订单列表',\r\n },\r\n component: () => import('@v/refund-balance-order/Index'),\r\n },\r\n {\r\n path: '/admin_merchants',\r\n name: 'admin-merchantEdit',\r\n meta: {\r\n title: '商户管理',\r\n },\r\n component: () => import('@v/admin-merchant/Index'),\r\n },\r\n {\r\n path: '/admin_merchants/create',\r\n name: 'admin-merchantEdit',\r\n meta: {\r\n title: '添加商户',\r\n },\r\n component: () => import('@v/admin-merchant/Form'),\r\n },\r\n {\r\n path: '/admin_merchants/:id/edit',\r\n name: 'admin-merchantEdit',\r\n meta: {\r\n title: '编辑商户',\r\n },\r\n component: () => import('@v/admin-merchant/Form'),\r\n },\r\n {\r\n path: '/admin_merchant_config/get',\r\n name: 'admin_merchant_config/get',\r\n meta: {\r\n title: '商户配置信息',\r\n },\r\n component: () => import('@v/admin-merchant/Config'),\r\n },{\r\n path: 'admin_merchant_config/edit',\r\n name: 'admin_merchant_config/edit',\r\n meta: {\r\n title: '商户配置信息',\r\n },\r\n component: () => import('@v/admin-merchant/Config'),\r\n },\r\n {\r\n path: '/user_students',\r\n name: 'user_students',\r\n meta: {\r\n title: '用户列表',\r\n },\r\n component: () => import('@v/user/Student'),\r\n },\r\n ],\r\n },\r\n]\r\n","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-sms\",\n \"use\": \"icon-sms-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-total_orders\",\n \"use\": \"icon-total_orders-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import { FormItem } from 'element-ui'\r\nimport { getPropByPath } from 'element-ui/src/utils/util'\r\n\r\nFormItem.mounted = function () {\r\n if (this.prop) {\r\n this.dispatch('ElForm', 'el.form.addField', [this])\r\n\r\n let initialValue = this.fieldValue\r\n if (Array.isArray(initialValue)) {\r\n initialValue = [].concat(initialValue)\r\n }\r\n Object.defineProperty(this, 'initialValue', {\r\n value: initialValue,\r\n // 可以重写\r\n writable: true,\r\n })\r\n\r\n this.addValidateEvents()\r\n }\r\n}\r\n\r\nexport default {\r\n extends: FormItem,\r\n props: {\r\n /**\r\n * 提示性文字\r\n */\r\n helper: String,\r\n },\r\n methods: {\r\n setInitialValue() {\r\n // 简单的深拷贝一个值,避免值是对象时,里面的值会跟着变,导致不能重置\r\n this.initialValue = (this.fieldValue === undefined)\r\n ? undefined\r\n : JSON.parse(JSON.stringify(this.fieldValue))\r\n },\r\n // form-item 设置 required 之后, 只会自动在前面加上 红色 * 号, 不会自动验证是否填了值\r\n getRules() {\r\n let formRules = this.form.rules\r\n const selfRules = this.rules\r\n\r\n const prop = getPropByPath(formRules, this.prop || '')\r\n formRules = formRules ? (prop.o[this.prop || ''] || prop.v) : []\r\n\r\n return [].concat(selfRules || formRules || [])\r\n },\r\n resetField() {\r\n FormItem.methods.resetField.call(this)\r\n this.$nextTick(() => {\r\n this.inputComponent && this.inputComponent.$emit('field-reset')\r\n })\r\n },\r\n },\r\n}\r\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumb.vue?vue&type=style&index=0&id=cf6759e2&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumb.vue?vue&type=style&index=0&id=cf6759e2&scoped=true&lang=scss&\"","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-profit\",\n \"use\": \"icon-profit-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-admin\",\n \"use\": \"icon-admin-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import { getExt } from '@/libs/utils'\r\nimport { IMAGE_EXTS } from '@/libs/constants'\r\n\r\n/**\r\n * 判断是不是链接\r\n *\r\n * @param {string} path\r\n * @returns {Boolean}\r\n */\r\nexport function isExternal(path) {\r\n return /^(https?:|mailto:|tel:)/.test(path)\r\n}\r\n\r\n/**\r\n * 判断是不是整数\r\n * @param val\r\n * @returns {boolean}\r\n */\r\nexport function isInt(val) {\r\n return /^[+-]?\\d+$/.test(val)\r\n}\r\n\r\n/**\r\n * 简单根据后缀判断是不是可在浏览器预览的图片\r\n * @param file\r\n * @param isExt 传入的 file 是不是后缀\r\n */\r\nexport function isImage(file, isExt = false) {\r\n let ext\r\n\r\n if (isExt) {\r\n ext = file\r\n } else if (file instanceof File) {\r\n ext = getExt(file.name)\r\n } else {\r\n ext = getExt(file)\r\n }\r\n\r\n return IMAGE_EXTS.indexOf(ext) !== -1\r\n}\r\n","import _get from 'lodash/get'\r\n\r\nexport default {\r\n name: 'CollapseButtonGroup',\r\n props: {\r\n minWidth: String,\r\n },\r\n computed: {\r\n miniWidth() {\r\n return this.$store.state.miniWidth\r\n },\r\n tooManyButtons() {\r\n return _get(this.$slots, 'default.length', 0) > 1\r\n },\r\n collapse() {\r\n return this.miniWidth && this.tooManyButtons\r\n },\r\n },\r\n render(h) {\r\n const buttons = this.$slots.default\r\n if (this.collapse) {\r\n const size = buttons[0].componentOptions.propsData.size\r\n return (\r\n
\r\n \r\n 操作\r\n \r\n \r\n {buttons.map(i => {i})}\r\n \r\n \r\n )\r\n } else {\r\n return (\r\n
{buttons}\r\n )\r\n }\r\n },\r\n}\r\n","import axios from '@/plugins/axios'\r\n\r\nexport function login(data) {\r\n return axios.post('auth/login', data)\r\n}\r\n\r\nexport function logout() {\r\n return axios.post('auth/logout')\r\n}\r\n","import { getToken, removeToken, setToken } from '@/libs/token'\r\nimport { login, logout } from '@/api/auth'\r\nimport { getUser } from '@/api/admin-users'\r\nimport router from '@/router'\r\n\r\nexport default {\r\n state: {\r\n token: getToken(),\r\n user: null,\r\n },\r\n getters: {\r\n loggedIn(state) {\r\n return !!state.user\r\n },\r\n userInfo: state => (field, defaultValue = null) => {\r\n return state.user ? state.user[field] : defaultValue\r\n },\r\n },\r\n mutations: {\r\n SET_TOKEN(state, token) {\r\n state.token = token\r\n },\r\n SET_USER(state, user) {\r\n state.user = user\r\n },\r\n },\r\n actions: {\r\n async login({ commit }, vm) {\r\n const { data } = await login(vm.form).config({ validationForm: vm })\r\n const token = 'bearer ' + data.token\r\n setToken(token)\r\n commit('SET_TOKEN', token)\r\n },\r\n async logout({ dispatch }) {\r\n try {\r\n await logout().config({ disableHandle401: true })\r\n dispatch('frontendLogout')\r\n } catch (e) {\r\n const { response: res } = e\r\n // 如果退出时,返回 401,则直接前端退出就行\r\n if (res && res.status === 401) {\r\n dispatch('frontendLogout')\r\n } else {\r\n throw e\r\n }\r\n }\r\n },\r\n async getUser({ commit }) {\r\n const { data } = await getUser().config({ disableLoginDialog: true })\r\n commit('SET_USER', data)\r\n\r\n },\r\n frontendLogout() {\r\n removeToken()\r\n // 由于退出后,有一些状态清理麻烦,直接刷新页面\r\n window.location.href = router.resolve({ name: 'login' }).href\r\n },\r\n },\r\n}\r\n","import router from '@/router'\r\nimport { fixedRoutes } from '@/router/routes'\r\nimport { buildRoutes, makeRouteName } from '@/libs/utils'\r\nimport _get from 'lodash/get'\r\nimport { getVueRouters } from '@/api/configs'\r\nimport { SYSTEM_BASIC } from '@/libs/constants'\r\n\r\nexport default {\r\n state: {\r\n vueRouters: [],\r\n loaded: false,\r\n homeRoute: null,\r\n },\r\n getters: {\r\n homeName(state) {\r\n return _get(state, 'homeRoute.name')\r\n },\r\n },\r\n mutations: {\r\n SET_VUE_ROUTERS(state, vueRouters) {\r\n state.vueRouters = vueRouters\r\n },\r\n SET_LOADED(state, payload) {\r\n state.loaded = payload\r\n },\r\n SET_HOME_ROUTE(state, route) {\r\n state.homeRoute = route\r\n },\r\n },\r\n actions: {\r\n async getVueRouters({ commit, getters }) {\r\n const { data } = await getVueRouters().config({ disableLoginDialog: true })\r\n commit('SET_VUE_ROUTERS', data)\r\n commit('SET_LOADED', true)\r\n\r\n const { SLUG, HOME_ROUTE_SLUG, DEFAULT_HOME_ROUTE } = SYSTEM_BASIC\r\n const homeRouteId = getters.getConfig(`${SLUG}.${HOME_ROUTE_SLUG}`, DEFAULT_HOME_ROUTE)\r\n const { routes, homeRoute } = buildRoutes(data, makeRouteName(homeRouteId))\r\n router.addRoutes(routes)\r\n router.addRoutes(fixedRoutes)\r\n commit('SET_HOME_ROUTE', homeRoute)\r\n },\r\n },\r\n}\r\n","const COLLAPSED_KEY = 'side-menu-collapsed'\r\n\r\nexport default {\r\n state: {\r\n opened: !localStorage.getItem(COLLAPSED_KEY),\r\n },\r\n mutations: {\r\n SET_OPENED(state, payload) {\r\n localStorage.setItem(COLLAPSED_KEY, payload ? '' : '1')\r\n state.opened = payload\r\n },\r\n },\r\n actions: {\r\n toggleOpened({ commit, state }) {\r\n commit('SET_OPENED', !state.opened)\r\n },\r\n },\r\n}\r\n","import Vue from 'vue'\r\nimport { getConfigsValueByCategorySlug } from '@/api/configs'\r\nimport { SYSTEM_BASIC } from '@/libs/constants'\r\nimport _get from 'lodash/get'\r\n\r\nexport default {\r\n state: {},\r\n mutations: {\r\n SET_CONFIG(state, { path, value }) {\r\n Vue.set(state, path, value)\r\n },\r\n },\r\n getters: {\r\n getConfig: (state) => (path, defaultVal) => {\r\n return _get(state, path, defaultVal)\r\n },\r\n appName(state) {\r\n const { SLUG, DEFAULT_APP_NAME, APP_NAME_SLUG } = SYSTEM_BASIC\r\n return _get(state, `${SLUG}.${APP_NAME_SLUG}`, DEFAULT_APP_NAME)\r\n },\r\n },\r\n actions: {\r\n async getSystemBasicConfigs({ commit }) {\r\n const { data } = await getConfigsValueByCategorySlug(SYSTEM_BASIC.SLUG)\r\n commit('SET_CONFIG', {\r\n path: SYSTEM_BASIC.SLUG,\r\n value: data,\r\n })\r\n },\r\n },\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nimport users from './modules/users'\r\nimport vueRouters from './modules/vue-routers'\r\nimport sideMenu from './modules/side-menu'\r\nimport config from './modules/config'\r\n\r\nVue.use(Vuex)\r\n\r\n/**\r\n * 存放已经缓存了的组件名,用于 include 去重\r\n */\r\nconst cachedKeys = {\r\n ParentView: true,\r\n}\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n users,\r\n vueRouters,\r\n sideMenu,\r\n config,\r\n },\r\n state: {\r\n miniWidth: window.innerWidth <= 768,\r\n include: [],\r\n /**\r\n * 通过 path,query 来对比过后匹配到的菜单的菜单链\r\n */\r\n matchedMenusChain: [],\r\n },\r\n mutations: {\r\n SET_MINI_WIDTH(state, payload) {\r\n state.miniWidth = payload\r\n },\r\n ADD_INCLUDE(state, name) {\r\n if (cachedKeys[name]) {\r\n return\r\n }\r\n\r\n cachedKeys[name] = true\r\n state.include.push(name)\r\n },\r\n SET_MATCHED_MENUS_CHAIN(state, menus) {\r\n state.matchedMenusChain = menus\r\n },\r\n },\r\n getters: {\r\n matchedMenu(state) {\r\n return state.matchedMenusChain[0] || null\r\n },\r\n },\r\n})\r\n","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-dashboard\",\n \"use\": \"icon-dashboard-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import SpriteSymbol from \"../../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"icon-diandongche\",\n \"use\": \"icon-diandongche-usage\",\n \"viewBox\": \"0 0 1024 1024\",\n \"content\": \"
\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import { roleIn } from '@/libs/utils'\r\n\r\nexport default {\r\n inserted(el, { value, modifiers }) {\r\n const hasRole = roleIn(value)\r\n if (\r\n (modifiers.not && hasRole) ||\r\n (!modifiers.not && !hasRole)\r\n ) {\r\n el.parentNode && el.parentNode.removeChild(el)\r\n }\r\n },\r\n}\r\n"],"sourceRoot":""}