-
+
+
-
+
diff --git a/src/api/ad.js b/src/api/ad.js
deleted file mode 100644
index 065e6a903..000000000
--- a/src/api/ad.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/ad/getList',
- method: 'get',
- data,
- })
-}
diff --git a/src/api/changeLog.js b/src/api/changeLog.js
deleted file mode 100644
index bf7464b85..000000000
--- a/src/api/changeLog.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/changeLog/getList',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/colorfulIcon.js b/src/api/colorfulIcon.js
deleted file mode 100644
index c2b6d5bb6..000000000
--- a/src/api/colorfulIcon.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getIconList(data) {
- return request({
- url: '/colorfulIcon/getList',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/github.js b/src/api/github.js
deleted file mode 100644
index 2d218dc1d..000000000
--- a/src/api/github.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import request from 'axios'
-
-export function getRepos(params) {
- return request({
- url: 'https://api.github.com/repos/chuzhixin/vue-admin-beautiful',
- method: 'get',
- params,
- timeout: 10000,
- })
-}
-
-export function getStargazers(params) {
- return request({
- url:
- 'https://api.github.com/repos/chuzhixin/vue-admin-beautiful/stargazers',
- method: 'get',
- params,
- timeout: 10000,
- })
-}
diff --git a/src/api/goodsList.js b/src/api/goodsList.js
deleted file mode 100644
index 3a40f8fd2..000000000
--- a/src/api/goodsList.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/goodsList/getList',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/icon.js b/src/api/icon.js
deleted file mode 100644
index fe1d1863e..000000000
--- a/src/api/icon.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getIconList(data) {
- return request({
- url: '/icon/getList',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/markdown.js b/src/api/markdown.js
deleted file mode 100644
index e6bb01c81..000000000
--- a/src/api/markdown.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import request from 'axios'
-
-export function getList() {
- return request({
- url: 'https://cdn.jsdelivr.net/gh/prettier/prettier@master/docs/options.md',
- method: 'get',
- })
-}
diff --git a/src/api/menuManagement.js b/src/api/menuManagement.js
deleted file mode 100644
index 32b22d3b6..000000000
--- a/src/api/menuManagement.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getTree(data) {
- return request({
- url: '/menuManagement/getTree',
- method: 'post',
- data,
- })
-}
-
-export function doEdit(data) {
- return request({
- url: '/menuManagement/doEdit',
- method: 'post',
- data,
- })
-}
-
-export function doDelete(data) {
- return request({
- url: '/menuManagement/doDelete',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/notice.js b/src/api/notice.js
deleted file mode 100644
index ced1de3b4..000000000
--- a/src/api/notice.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import request from '@/utils/request'
-
-export function getNoticeList() {
- return request({
- url: '/notice/getList',
- method: 'post',
- })
-}
diff --git a/src/api/personalCenter.js b/src/api/personalCenter.js
deleted file mode 100644
index 804c679be..000000000
--- a/src/api/personalCenter.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/personalCenter/getList',
- method: 'post',
- data,
- })
-}
-
-export function doEdit(data) {
- return request({
- url: '/personalCenter/doEdit',
- method: 'post',
- data,
- })
-}
-
-export function doDelete(data) {
- return request({
- url: '/personalCenter/doDelete',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/publicKey.js b/src/api/publicKey.js
deleted file mode 100644
index 8b641fb8f..000000000
--- a/src/api/publicKey.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import request from '@/utils/request'
-
-export function getPublicKey() {
- return request({
- url: '/publicKey',
- method: 'post',
- })
-}
diff --git a/src/api/remixIcon.js b/src/api/remixIcon.js
deleted file mode 100644
index c62ea704f..000000000
--- a/src/api/remixIcon.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getIconList(data) {
- return request({
- url: '/remixIcon/getList',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/roleManagement.js b/src/api/roleManagement.js
deleted file mode 100644
index 4aac23ed7..000000000
--- a/src/api/roleManagement.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/roleManagement/getList',
- method: 'post',
- data,
- })
-}
-
-export function doEdit(data) {
- return request({
- url: '/roleManagement/doEdit',
- method: 'post',
- data,
- })
-}
-
-export function doDelete(data) {
- return request({
- url: '/roleManagement/doDelete',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/router.js b/src/api/router.js
deleted file mode 100644
index 4d34d4894..000000000
--- a/src/api/router.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getRouterList(data) {
- return request({
- url: '/menu/navigate',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/table.js b/src/api/table.js
deleted file mode 100644
index 0c1effc31..000000000
--- a/src/api/table.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/table/getList',
- method: 'post',
- data,
- })
-}
-
-export function doEdit(data) {
- return request({
- url: '/table/doEdit',
- method: 'post',
- data,
- })
-}
-
-export function doDelete(data) {
- return request({
- url: '/table/doDelete',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/tree.js b/src/api/tree.js
deleted file mode 100644
index e29ad3895..000000000
--- a/src/api/tree.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import request from '@/utils/request'
-
-export function getTreeList(data) {
- return request({
- url: '/tree/list',
- method: 'post',
- data,
- })
-}
diff --git a/src/api/user.js b/src/api/user.js
deleted file mode 100644
index e99e29f15..000000000
--- a/src/api/user.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import request from '@/utils/request'
-import { encryptedData } from '@/utils/encrypt'
-import { loginRSA, tokenName } from '@/config'
-
-export async function login(data) {
- if (loginRSA) {
- data = await encryptedData(data)
- }
- return request({
- url: '/login',
- method: 'post',
- data,
- })
-}
-
-export function getUserInfo(accessToken) {
- return request({
- url: '/userInfo',
- method: 'post',
- data: {
- [tokenName]: accessToken,
- },
- })
-}
-
-export function logout() {
- return request({
- url: '/logout',
- method: 'post',
- })
-}
-
-export function register() {
- return request({
- url: '/register',
- method: 'post',
- })
-}
diff --git a/src/api/userManagement.js b/src/api/userManagement.js
deleted file mode 100644
index 9eaca6ed0..000000000
--- a/src/api/userManagement.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import request from '@/utils/request'
-
-export function getList(data) {
- return request({
- url: '/userManagement/getList',
- method: 'post',
- data,
- })
-}
-
-export function doEdit(data) {
- return request({
- url: '/userManagement/doEdit',
- method: 'post',
- data,
- })
-}
-
-export function doDelete(data) {
- return request({
- url: '/userManagement/doDelete',
- method: 'post',
- data,
- })
-}
diff --git a/src/assets/comparison/left.jpg b/src/assets/comparison/left.jpg
deleted file mode 100644
index f5133cf11..000000000
Binary files a/src/assets/comparison/left.jpg and /dev/null differ
diff --git a/src/assets/comparison/right.jpg b/src/assets/comparison/right.jpg
deleted file mode 100644
index 625a53f24..000000000
Binary files a/src/assets/comparison/right.jpg and /dev/null differ
diff --git a/src/assets/error_images/401.png b/src/assets/error_images/401.png
deleted file mode 100644
index 90bbf6e33..000000000
Binary files a/src/assets/error_images/401.png and /dev/null differ
diff --git a/src/assets/error_images/404.png b/src/assets/error_images/404.png
deleted file mode 100644
index 14fa72555..000000000
Binary files a/src/assets/error_images/404.png and /dev/null differ
diff --git a/src/assets/error_images/cloud.png b/src/assets/error_images/cloud.png
deleted file mode 100644
index 247c06b41..000000000
Binary files a/src/assets/error_images/cloud.png and /dev/null differ
diff --git a/src/assets/ewm.png b/src/assets/ewm.png
deleted file mode 100644
index a97a6ad46..000000000
Binary files a/src/assets/ewm.png and /dev/null differ
diff --git a/src/assets/login_images/background.jpg b/src/assets/login_images/background.jpg
deleted file mode 100644
index 87ac4969b..000000000
Binary files a/src/assets/login_images/background.jpg and /dev/null differ
diff --git a/src/assets/pro.png b/src/assets/pro.png
deleted file mode 100644
index 09bcef5b3..000000000
Binary files a/src/assets/pro.png and /dev/null differ
diff --git a/src/assets/qr_logo/lqr_logo.png b/src/assets/qr_logo/lqr_logo.png
deleted file mode 100644
index f81db4620..000000000
Binary files a/src/assets/qr_logo/lqr_logo.png and /dev/null differ
diff --git a/src/styles/element-variables.scss b/src/assets/styles/element-variables.scss
similarity index 100%
rename from src/styles/element-variables.scss
rename to src/assets/styles/element-variables.scss
diff --git a/src/styles/loading.scss b/src/assets/styles/loading.scss
similarity index 98%
rename from src/styles/loading.scss
rename to src/assets/styles/loading.scss
index bb8515070..f4b398ab5 100644
--- a/src/styles/loading.scss
+++ b/src/assets/styles/loading.scss
@@ -1,5 +1,5 @@
/**
-
+ * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
* @description 全局加载动画
*/
diff --git a/src/styles/normalize.scss b/src/assets/styles/normalize.scss
similarity index 100%
rename from src/styles/normalize.scss
rename to src/assets/styles/normalize.scss
diff --git a/src/styles/spinner/dots.css b/src/assets/styles/spinner/dots.css
similarity index 100%
rename from src/styles/spinner/dots.css
rename to src/assets/styles/spinner/dots.css
diff --git a/src/styles/spinner/gauge.css b/src/assets/styles/spinner/gauge.css
similarity index 100%
rename from src/styles/spinner/gauge.css
rename to src/assets/styles/spinner/gauge.css
diff --git a/src/styles/spinner/inner-circles.css b/src/assets/styles/spinner/inner-circles.css
similarity index 100%
rename from src/styles/spinner/inner-circles.css
rename to src/assets/styles/spinner/inner-circles.css
diff --git a/src/styles/spinner/plus.css b/src/assets/styles/spinner/plus.css
similarity index 100%
rename from src/styles/spinner/plus.css
rename to src/assets/styles/spinner/plus.css
diff --git a/src/styles/themes/default.scss b/src/assets/styles/themes/default.scss
similarity index 100%
rename from src/styles/themes/default.scss
rename to src/assets/styles/themes/default.scss
diff --git a/src/styles/transition.scss b/src/assets/styles/transition.scss
similarity index 76%
rename from src/styles/transition.scss
rename to src/assets/styles/transition.scss
index 1ab389655..91409e569 100644
--- a/src/styles/transition.scss
+++ b/src/assets/styles/transition.scss
@@ -1,5 +1,5 @@
/**
-
+ * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
* @description vue过渡动画
*/
diff --git a/src/styles/vab.scss b/src/assets/styles/vab.scss
similarity index 98%
rename from src/styles/vab.scss
rename to src/assets/styles/vab.scss
index 743afb148..c2618415f 100644
--- a/src/styles/vab.scss
+++ b/src/assets/styles/vab.scss
@@ -1,5 +1,5 @@
/**
-
+ * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
* @description 全局样式
*/
diff --git a/src/styles/variables.scss b/src/assets/styles/variables.scss
similarity index 97%
rename from src/styles/variables.scss
rename to src/assets/styles/variables.scss
index 56b9ab10f..cb76c4ae9 100644
--- a/src/styles/variables.scss
+++ b/src/assets/styles/variables.scss
@@ -1,5 +1,5 @@
/**
-
+ * @author chuzhixin 1204505056@qq.com (不想保留author可删除)
* @description 全局主题变量配置
*/
/* stylelint-disable */
diff --git a/src/assets/zfb_699.jpg b/src/assets/zfb_699.jpg
deleted file mode 100644
index 4760e7c35..000000000
Binary files a/src/assets/zfb_699.jpg and /dev/null differ
diff --git a/src/assets/zfb_799.jpg b/src/assets/zfb_799.jpg
deleted file mode 100644
index ff1060437..000000000
Binary files a/src/assets/zfb_799.jpg and /dev/null differ
diff --git a/src/colorfulIcon/index.js b/src/colorfulIcon/index.js
deleted file mode 100644
index 2dd876e1f..000000000
--- a/src/colorfulIcon/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const req = require.context('./svg', false, /\.svg$/),
- requireAll = (requireContext) => {
- /*let a = requireContext.keys().map(requireContext);
- let arr = [];
- for (let i = 0; i < a.length; i++) {
- console.log();
- let icon = a[i].default.id;
- arr.push(icon);
- }
- console.log(JSON.stringify(arr));*/
- return requireContext.keys().map(requireContext)
- }
-requireAll(req)
diff --git a/src/colorfulIcon/svg/alphabetical_sorting.svg b/src/colorfulIcon/svg/alphabetical_sorting.svg
deleted file mode 100644
index 3cfa035b0..000000000
--- a/src/colorfulIcon/svg/alphabetical_sorting.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/colorfulIcon/svg/vab.svg b/src/colorfulIcon/svg/vab.svg
deleted file mode 100644
index 5c46271c7..000000000
--- a/src/colorfulIcon/svg/vab.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
diff --git a/src/components/SelectTree/index.vue b/src/components/SelectTree/index.vue
deleted file mode 100644
index bacc7dd83..000000000
--- a/src/components/SelectTree/index.vue
+++ /dev/null
@@ -1,201 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/VabCharge/index.vue b/src/components/VabCharge/index.vue
deleted file mode 100644
index 609da971c..000000000
--- a/src/components/VabCharge/index.vue
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/components/VabProfile/index.vue b/src/components/VabProfile/index.vue
deleted file mode 100644
index 7f291dd17..000000000
--- a/src/components/VabProfile/index.vue
+++ /dev/null
@@ -1,313 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/components/VabSnow/index.vue b/src/components/VabSnow/index.vue
deleted file mode 100644
index 5131d525b..000000000
--- a/src/components/VabSnow/index.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/components/VabUpload/index.vue b/src/components/VabUpload/index.vue
deleted file mode 100644
index 31d83a505..000000000
--- a/src/components/VabUpload/index.vue
+++ /dev/null
@@ -1,255 +0,0 @@
-
-
-
-
-
-
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/config/index.js b/src/config/index.js
index 86e58d6d9..144fa272b 100644
--- a/src/config/index.js
+++ b/src/config/index.js
@@ -1,7 +1,3 @@
-/**
- * @description 3个子配置,通用配置|主题配置|网络配置导出
- */
const setting = require('./setting.config')
const theme = require('./theme.config')
-const network = require('./net.config')
-module.exports = Object.assign({}, setting, theme, network)
+module.exports = Object.assign({}, setting, theme)
diff --git a/src/config/net.config.js b/src/config/net.config.js
deleted file mode 100644
index 335b8bf8d..000000000
--- a/src/config/net.config.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * @description 导出默认网路配置
- **/
-const network = {
- //配后端数据的接收方式application/json;charset=UTF-8或者application/x-www-form-urlencoded;charset=UTF-8
- contentType: 'application/json;charset=UTF-8',
- //消息框消失时间
- messageDuration: 3000,
- //最长请求时间
- requestTimeout: 5000,
- //操作正常code,支持String、Array、int多种类型
- successCode: [200, 0],
- //登录失效code
- invalidCode: 402,
- //无权限code
- noPermissionCode: 401,
-}
-module.exports = network
diff --git a/src/config/permission.js b/src/config/permission.js
deleted file mode 100644
index 82302e899..000000000
--- a/src/config/permission.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import router from '@/router'
-import store from '@/store'
-import VabProgress from 'nprogress'
-import 'nprogress/nprogress.css'
-import getPageTitle from '@/utils/pageTitle'
-import {
- authentication,
- loginInterception,
- progressBar,
- recordRoute,
- routesWhiteList,
-} from '@/config'
-
-VabProgress.configure({
- easing: 'ease',
- speed: 500,
- trickleSpeed: 200,
- showSpinner: false,
-})
-router.beforeResolve(async (to, from, next) => {
- if (progressBar) VabProgress.start()
- let hasToken = store.getters['user/accessToken']
-
- if (!loginInterception) hasToken = true
-
- if (hasToken) {
- if (to.path === '/login') {
- next({ path: '/' })
- if (progressBar) VabProgress.done()
- } else {
- const hasPermissions =
- store.getters['user/permissions'] &&
- store.getters['user/permissions'].length > 0
- if (hasPermissions) {
- next()
- } else {
- try {
- let permissions
- if (!loginInterception) {
- //settings.js loginInterception为false时,创建虚拟权限
- await store.dispatch('user/setPermissions', ['admin'])
- permissions = ['admin']
- } else {
- permissions = await store.dispatch('user/getUserInfo')
- }
-
- let accessRoutes = []
- if (authentication === 'intelligence') {
- accessRoutes = await store.dispatch('routes/setRoutes', permissions)
- } else if (authentication === 'all') {
- accessRoutes = await store.dispatch('routes/setAllRoutes')
- }
- router.addRoute(accessRoutes)
- next({ ...to, replace: true })
- } catch {
- await store.dispatch('user/resetAccessToken')
- if (progressBar) VabProgress.done()
- }
- }
- }
- } else {
- if (routesWhiteList.indexOf(to.path) !== -1) {
- next()
- } else {
- if (recordRoute) {
- next(`/login?redirect=${to.path}`)
- } else {
- next('/login')
- }
-
- if (progressBar) VabProgress.done()
- }
- }
- document.title = getPageTitle(to.meta.title)
-})
-router.afterEach(() => {
- if (progressBar) VabProgress.done()
-})
diff --git a/src/config/setting.config.js b/src/config/setting.config.js
index db1bb50ca..f1bcf1a08 100644
--- a/src/config/setting.config.js
+++ b/src/config/setting.config.js
@@ -8,68 +8,19 @@ const setting = {
outputDir: 'dist',
// 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
assetsDir: 'static',
- // 开发环境每次保存时是否输出为eslint编译警告
- lintOnSave: true,
// 进行编译的依赖
transpileDependencies: [],
- // 默认的接口地址 如果是开发环境和生产环境走vab-mock-server,当然你也可以选择自己配置成需要的接口地址
baseURL:
process.env.NODE_ENV === 'development'
- ? 'vab-mock-server'
- : 'vab-mock-server',
- //标题 (包括初次加载雪花屏的标题 页面的标题 浏览器的标题)
- title: 'vue-admin-beautiful-pro',
- //简写
- abbreviation: 'vab',
- //开发环境端口号
- devPort: '80',
- //版本号
+ ? '/'
+ : '/',
+ // 标题
+ title: 'FOTON',
+ // 开发环境端口号
+ devPort: '8888',
+ // 版本号
version: process.env.VUE_APP_VERSION,
- //这一项非常重要!请务必保留MIT协议下package.json及copyright作者信息 即可免费商用,不遵守此项约定你将无法使用该框架,如需自定义版权信息请联系QQ1204505056
- copyright: 'vab',
- //是否显示页面底部自定义版权信息
- footerCopyright: true,
- //是否显示顶部进度条
- progressBar: true,
- //缓存路由的最大数量
- keepAliveMaxNum: 99,
- // 路由模式,可选值为 history 或 hash
- routerMode: 'hash',
- //不经过token校验的路由
- routesWhiteList: ['/login', '/register', '/404', '/401'],
- //加载时显示文字
- loadingText: '正在加载中...',
- //token名称
- tokenName: 'accessToken',
- //token在localStorage、sessionStorage存储的key的名称
- tokenTableName: 'vue-admin-beautiful-2021',
- //token存储位置localStorage sessionStorage
- storage: 'localStorage',
- //token失效回退到登录页时是否记录本次的路由
- recordRoute: true,
- //是否显示logo,不显示时设置false,显示时请填写remixIcon图标名称,暂时只支持设置remixIcon
- logo: 'vuejs-fill',
- //是否显示在页面高亮错误
- errorLog: ['development', 'production'],
- //是否开启登录拦截
- loginInterception: true,
- //是否开启登录RSA加密
- loginRSA: true,
- //intelligence和all两种方式,前者后端权限只控制permissions不控制view文件的import(前后端配合,减轻后端工作量),all方式完全交给后端前端只负责加载
- authentication: 'intelligence',
- //vertical布局时是否只保持一个子菜单的展开
- uniqueOpened: true,
- //vertical布局时默认展开的菜单path,使用逗号隔开建议只展开一个
- defaultOopeneds: ['/vab'],
- //需要加loading层的请求,防止重复提交
- debounce: ['doEdit'],
- //需要自动注入并加载的模块
- providePlugin: { maptalks: 'maptalks', 'window.maptalks': 'maptalks' },
- //npm run build时是否自动生成7z压缩包
- build7z: false,
- //代码生成机生成在view下的文件夹名称
- templateFolder: 'project',
- //是否显示终端donation打印
- donation: true,
+ // 需要自动注入并加载的模块
+ providePlugin: { maptalks: 'maptalks', 'window.maptalks': 'maptalks' }
}
module.exports = setting
diff --git a/src/config/settings.js b/src/config/settings.js
deleted file mode 100644
index c070a6691..000000000
--- a/src/config/settings.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * @description 3个子配置,通用配置|主题配置|网络配置
- */
-//默认配置
-const { setting, theme, network } = require('./')
-module.exports = Object.assign({}, setting, theme, network)
diff --git a/src/layouts/EmptyLayout.vue b/src/layouts/EmptyLayout.vue
deleted file mode 100644
index 98240aef8..000000000
--- a/src/layouts/EmptyLayout.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/src/layouts/components/VabAd/index.vue b/src/layouts/components/VabAd/index.vue
deleted file mode 100644
index 1184f6559..000000000
--- a/src/layouts/components/VabAd/index.vue
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
diff --git a/src/layouts/components/VabAppMain/index.vue b/src/layouts/components/VabAppMain/index.vue
deleted file mode 100644
index 31a34b88c..000000000
--- a/src/layouts/components/VabAppMain/index.vue
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/layouts/components/VabAvatar/index.vue b/src/layouts/components/VabAvatar/index.vue
deleted file mode 100644
index 67dc68bb6..000000000
--- a/src/layouts/components/VabAvatar/index.vue
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
- {{ username }}
-
-
-
-
-
- github地址
- 码云地址
- pro付费版地址
- plus付费版地址
- 退出登录
-
-
-
-
-
-
diff --git a/src/layouts/components/VabBreadcrumb/index.vue b/src/layouts/components/VabBreadcrumb/index.vue
deleted file mode 100644
index 0259bccba..000000000
--- a/src/layouts/components/VabBreadcrumb/index.vue
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
- {{ item.meta.title }}
-
-
-
-
-
-
-
diff --git a/src/layouts/components/VabLogo/index.vue b/src/layouts/components/VabLogo/index.vue
deleted file mode 100644
index c07c1b258..000000000
--- a/src/layouts/components/VabLogo/index.vue
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
-
- {{ title }}
-
-
-
-
-
-
diff --git a/src/layouts/components/VabNavBar/index.vue b/src/layouts/components/VabNavBar/index.vue
deleted file mode 100644
index 9a2a63404..000000000
--- a/src/layouts/components/VabNavBar/index.vue
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/layouts/components/VabThemeBar/index.vue b/src/layouts/components/VabThemeBar/index.vue
deleted file mode 100644
index bd09aba24..000000000
--- a/src/layouts/components/VabThemeBar/index.vue
+++ /dev/null
@@ -1,259 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 默认
- 绿荫草场
- 荣耀典藏
-
-
-
-
- 纵向布局
- 横向布局
-
-
-
-
- 固定头部
- 不固定头部
-
-
-
-
- 开启
- 不开启
-
-
-
-
- 保存
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/layouts/export.js b/src/layouts/export.js
deleted file mode 100644
index 3a4b71f7a..000000000
--- a/src/layouts/export.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
-
- * @description 公共布局及样式自动引入
- */
-
-import Vue from 'vue'
-
-const requireComponents = require.context('./components', true, /\.vue$/)
-requireComponents.keys().forEach((fileName) => {
- const componentConfig = requireComponents(fileName)
- const componentName = componentConfig.default.name
- Vue.component(componentName, componentConfig.default || componentConfig)
-})
-
-const requireZxLayouts = require.context('zx-layouts', true, /\.vue$/)
-requireZxLayouts.keys().forEach((fileName) => {
- const componentConfig = requireZxLayouts(fileName)
- const componentName = componentConfig.default.name
- Vue.component(componentName, componentConfig.default || componentConfig)
-})
-
-const requireThemes = require.context('@/styles/themes', true, /\.scss$/)
-requireThemes.keys().forEach((fileName) => {
- require(`@/styles/themes/${fileName.slice(2)}`)
-})
diff --git a/src/layouts/index.vue b/src/layouts/index.vue
deleted file mode 100644
index ef5c93215..000000000
--- a/src/layouts/index.vue
+++ /dev/null
@@ -1,304 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/main.js b/src/main.js
index 945e63cbe..ed9a3722e 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,20 +1,12 @@
import Vue from 'vue'
-import App from './App'
-import store from './store'
+import App from './App.vue'
import router from './router'
-import './plugins'
-import '@/layouts/export'
-
-if (process.env.NODE_ENV === 'production') {
- const { mockXHR } = require('@/utils/static')
- mockXHR()
-}
+import store from './store'
Vue.config.productionTip = false
new Vue({
- el: '#vue-admin-beautiful',
router,
store,
- render: (h) => h(App),
-})
+ render: h => h(App)
+}).$mount('#foton')
diff --git a/src/plugins/echarts.js b/src/plugins/echarts.js
deleted file mode 100644
index f600f836c..000000000
--- a/src/plugins/echarts.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import 'echarts'
-import VabChart from 'vue-echarts'
-
-export default VabChart
diff --git a/src/plugins/element.js b/src/plugins/element.js
deleted file mode 100644
index 3b91ff0ac..000000000
--- a/src/plugins/element.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import Vue from 'vue'
-import ElementUI from 'element-ui'
-import 'element-ui/lib/theme-chalk/display.css'
-
-import '@/styles/element-variables.scss'
-
-Vue.use(ElementUI, {
- size: 'small',
-})
diff --git a/src/plugins/index.js b/src/plugins/index.js
deleted file mode 100644
index 2d4322a6f..000000000
--- a/src/plugins/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/* 公共引入,勿随意修改,修改时需经过确认 */
-import Vue from 'vue'
-import './element'
-import './support'
-import '@/styles/vab.scss'
-import '@/remixIcon'
-import '@/colorfulIcon'
-import '@/config/permission'
-import '@/utils/errorLog'
-import './vabIcon'
-import VabPermissions from 'zx-layouts/Permissions'
-import Vab from '@/utils/vab'
-import VabCount from 'zx-count'
-
-Vue.use(Vab)
-Vue.use(VabPermissions)
-Vue.use(VabCount)
diff --git a/src/plugins/support.js b/src/plugins/support.js
deleted file mode 100644
index 391064970..000000000
--- a/src/plugins/support.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { MessageBox } from 'element-ui'
-import { donation } from '@/config'
-import { dependencies, repository } from '../../package.json'
-
-if (!!window.ActiveXObject || 'ActiveXObject' in window) {
- MessageBox({
- title: '温馨提示',
- message:
- '自2015年3月起,微软已宣布弃用IE,且不再对IE提供任何更新维护,请
点击此处访问微软官网更新浏览器,如果您使用的是双核浏览器,请您切换浏览器内核为极速模式',
- type: 'warning',
- showClose: false,
- showConfirmButton: false,
- closeOnClickModal: false,
- closeOnPressEscape: false,
- closeOnHashChange: false,
- dangerouslyUseHTMLString: true,
- })
-}
-if (!dependencies['vab-icon'] || !dependencies['zx-layouts'])
- document.body.innerHTML = ''
diff --git a/src/plugins/vabIcon.js b/src/plugins/vabIcon.js
deleted file mode 100644
index 634bca731..000000000
--- a/src/plugins/vabIcon.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import Vue from 'vue'
-import VabIcon from 'vab-icon'
-
-Vue.component('VabIcon', VabIcon)
diff --git a/src/plugins/vabMagnifier.js b/src/plugins/vabMagnifier.js
deleted file mode 100644
index 748fda247..000000000
--- a/src/plugins/vabMagnifier.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import VabMagnifier from 'zx-magnifie'
-
-export default VabMagnifier
diff --git a/src/plugins/vabMarkdownEditor.js b/src/plugins/vabMarkdownEditor.js
deleted file mode 100644
index 03686b69c..000000000
--- a/src/plugins/vabMarkdownEditor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import ZxMarkdownEditor from 'zx-markdown-editor'
-import 'zx-markdown-editor/dist/zx-markdown-editor.css'
-
-const VabMarkdownEditor = ZxMarkdownEditor
-export default VabMarkdownEditor
diff --git a/src/plugins/vabPlayer.js b/src/plugins/vabPlayer.js
deleted file mode 100644
index 69bf8a798..000000000
--- a/src/plugins/vabPlayer.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import { VabPlayerMp4, VabPlayerHls, VabPlayerFlv } from 'zx-player'
-
-export { VabPlayerMp4, VabPlayerHls, VabPlayerFlv }
diff --git a/src/plugins/vabQuill.js b/src/plugins/vabQuill.js
deleted file mode 100644
index eae4bbf4c..000000000
--- a/src/plugins/vabQuill.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import 'zx-quill/dist/zx-quill.css'
-import VabQuill from 'zx-quill'
-
-export default VabQuill
diff --git a/src/plugins/vabVerify.js b/src/plugins/vabVerify.js
deleted file mode 100644
index e98ae43e2..000000000
--- a/src/plugins/vabVerify.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import VabVerify from 'zx-verify'
-import 'zx-verify/dist/zx-verify.css'
-
-export default VabVerify
diff --git a/src/remixIcon/index.js b/src/remixIcon/index.js
deleted file mode 100644
index 2dd876e1f..000000000
--- a/src/remixIcon/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const req = require.context('./svg', false, /\.svg$/),
- requireAll = (requireContext) => {
- /*let a = requireContext.keys().map(requireContext);
- let arr = [];
- for (let i = 0; i < a.length; i++) {
- console.log();
- let icon = a[i].default.id;
- arr.push(icon);
- }
- console.log(JSON.stringify(arr));*/
- return requireContext.keys().map(requireContext)
- }
-requireAll(req)
diff --git a/src/remixIcon/svg/qq-fill.svg b/src/remixIcon/svg/qq-fill.svg
deleted file mode 100644
index 1f446b117..000000000
--- a/src/remixIcon/svg/qq-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/remixIcon/svg/vuejs-fill.svg b/src/remixIcon/svg/vuejs-fill.svg
deleted file mode 100644
index 1b1a1371b..000000000
--- a/src/remixIcon/svg/vuejs-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/router/index.js b/src/router/index.js
index d3add9e70..e44cdcd85 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,382 +1,27 @@
-/**
- * @description router全局配置
- */
-
import Vue from 'vue'
import VueRouter from 'vue-router'
-import Layout from '@/layouts'
-import EmptyLayout from '@/layouts/EmptyLayout'
-import { publicPath, routerMode } from '@/config'
+import Home from '../views/Home.vue'
Vue.use(VueRouter)
-export const constantRoutes = [
- {
- path: '/login',
- component: () => import('@/views/login/index'),
- hidden: true,
- },
- {
- path: '/register',
- component: () => import('@/views/register/index'),
- hidden: true,
- },
- {
- path: '/401',
- name: '401',
- component: () => import('@/views/401'),
- hidden: true,
- },
- {
- path: '/404',
- name: '404',
- component: () => import('@/views/404'),
- hidden: true,
- },
-]
-export const asyncRoutes = [
+const routes = [
{
path: '/',
- component: Layout,
- redirect: 'index',
- children: [
- {
- path: 'index',
- name: 'Index',
- component: () => import('@/views/index/index'),
- meta: {
- title: '首页',
- icon: 'home',
- affix: true,
- },
- },
- ],
- },
-
- {
- path: '/vab',
- component: Layout,
- redirect: 'noRedirect',
- name: 'Vab',
- alwaysShow: true,
- meta: { title: '组件', icon: 'box-open' },
- children: [
- {
- path: 'permissions',
- name: 'Permission',
- component: () => import('@/views/vab/permissions/index'),
- meta: {
- title: '角色权限',
- permissions: ['admin', 'editor'],
- },
- },
- {
- path: 'icon',
- component: EmptyLayout,
- redirect: 'noRedirect',
- name: 'Icon',
- meta: {
- title: '图标',
- permissions: ['admin'],
- },
- children: [
- {
- path: 'awesomeIcon',
- name: 'AwesomeIcon',
- component: () => import('@/views/vab/icon/index'),
- meta: { title: '常规图标' },
- },
- {
- path: 'remixIcon',
- name: 'RemixIcon',
- component: () => import('@/views/vab/icon/remixIcon'),
- meta: { title: '小清新图标' },
- },
- {
- path: 'colorfulIcon',
- name: 'ColorfulIcon',
- component: () => import('@/views/vab/icon/colorfulIcon'),
- meta: { title: '多彩图标' },
- },
- ],
- },
- {
- path: 'table',
- component: () => import('@/views/vab/table/index'),
- name: 'Table',
- meta: {
- title: '表格',
- permissions: ['admin'],
- },
- },
- {
- path: 'map',
- component: () => import('@/views/vab/map/index'),
- name: 'Map',
- meta: {
- title: '地图',
- permissions: ['admin'],
- },
- },
-
- {
- path: 'webSocket',
- name: 'WebSocket',
- component: () => import('@/views/vab/webSocket/index'),
- meta: { title: 'webSocket', permissions: ['admin'] },
- },
- {
- path: 'form',
- name: 'Form',
- component: () => import('@/views/vab/form/index'),
- meta: { title: '表单', permissions: ['admin'] },
- },
- {
- path: 'element',
- name: 'Element',
- component: () => import('@/views/vab/element/index'),
- meta: { title: '常用组件', permissions: ['admin'] },
- },
- {
- path: 'tree',
- name: 'Tree',
- component: () => import('@/views/vab/tree/index'),
- meta: { title: '树', permissions: ['admin'] },
- },
- {
- path: 'verify',
- name: 'Verify',
- component: () => import('@/views/vab/verify/index'),
- meta: { title: '验证码', permissions: ['admin'] },
- },
- {
- path: 'menu1',
- component: () => import('@/views/vab/nested/menu1/index'),
- name: 'Menu1',
- alwaysShow: true,
- meta: {
- title: '嵌套路由 1',
- permissions: ['admin'],
- },
- children: [
- {
- path: 'menu1-1',
- name: 'Menu1-1',
- alwaysShow: true,
- meta: { title: '嵌套路由 1-1' },
- component: () => import('@/views/vab/nested/menu1/menu1-1/index'),
-
- children: [
- {
- path: 'menu1-1-1',
- name: 'Menu1-1-1',
- meta: { title: '嵌套路由 1-1-1' },
- component: () =>
- import('@/views/vab/nested/menu1/menu1-1/menu1-1-1/index'),
- },
- ],
- },
- ],
- },
- {
- path: 'magnifier',
- name: 'Magnifier',
- component: () => import('@/views/vab/magnifier/index'),
- meta: { title: '放大镜', permissions: ['admin'] },
- },
- {
- path: 'loading',
- name: 'Loading',
- component: () => import('@/views/vab/loading/index'),
- meta: { title: 'loading', permissions: ['admin'] },
- },
- {
- path: 'player',
- name: 'Player',
- component: () => import('@/views/vab/player/index'),
- meta: { title: '视频播放器', permissions: ['admin'] },
- },
- {
- path: 'markdownEditor',
- name: 'MarkdownEditor',
- component: () => import('@/views/vab/markdownEditor/index'),
- meta: { title: 'markdown编辑器', permissions: ['admin'] },
- },
- {
- path: 'editor',
- name: 'Editor',
- component: () => import('@/views/vab/editor/index'),
- meta: {
- title: '富文本编辑器',
- permissions: ['admin'],
- badge: 'New',
- },
- },
- {
- path: 'backToTop',
- name: 'BackToTop',
- component: () => import('@/views/vab/backToTop/index'),
- meta: { title: '返回顶部', permissions: ['admin'] },
- },
- {
- path: 'lodash',
- name: 'Lodash',
- component: () => import('@/views/vab/lodash/index'),
- meta: { title: 'lodash', permissions: ['admin'] },
- },
- {
- path: 'smallComponents',
- name: 'SmallComponents',
- component: () => import('@/views/vab/smallComponents/index'),
- meta: { title: '小组件', permissions: ['admin'] },
- },
-
- {
- path: 'upload',
- name: 'Upload',
- component: () => import('@/views/vab/upload/index'),
- meta: { title: '上传', permissions: ['admin'] },
- },
- {
- path: 'log',
- name: 'Log',
- component: () => import('@/views/vab/errorLog/index'),
- meta: { title: '错误日志模拟', permissions: ['admin'] },
- },
- {
- path:
- 'https://github.com/chuzhixin/vue-admin-beautiful?utm_source=gold_browser_extension',
- name: 'ExternalLink',
- meta: {
- title: '外链',
- target: '_blank',
- permissions: ['admin', 'editor'],
- badge: 'New',
- },
- },
- {
- path: 'more',
- name: 'More',
- component: () => import('@/views/vab/more/index'),
- meta: { title: '关于', permissions: ['admin'] },
- },
- ],
+ name: 'Home',
+ component: Home
},
{
- path: '/personnelManagement',
- component: Layout,
- redirect: 'noRedirect',
- name: 'PersonnelManagement',
- meta: { title: '配置', icon: 'users-cog', permissions: ['admin'] },
- children: [
- {
- path: 'userManagement',
- name: 'UserManagement',
- component: () =>
- import('@/views/personnelManagement/userManagement/index'),
- meta: { title: '用户管理' },
- },
- {
- path: 'roleManagement',
- name: 'RoleManagement',
- component: () =>
- import('@/views/personnelManagement/roleManagement/index'),
- meta: { title: '角色管理' },
- },
- {
- path: 'menuManagement',
- name: 'MenuManagement',
- component: () =>
- import('@/views/personnelManagement/menuManagement/index'),
- meta: { title: '菜单管理', badge: 'New' },
- },
- ],
- },
- {
- path: '/mall',
- component: Layout,
- redirect: 'noRedirect',
- name: 'Mall',
- meta: {
- title: '商城',
- icon: 'shopping-cart',
- permissions: ['admin'],
- },
-
- children: [
- {
- path: 'pay',
- name: 'Pay',
- component: () => import('@/views/mall/pay/index'),
- meta: {
- title: '支付',
- noKeepAlive: true,
- },
- children: null,
- },
- {
- path: 'goodsList',
- name: 'GoodsList',
- component: () => import('@/views/mall/goodsList/index'),
- meta: {
- title: '商品列表',
- },
- },
- ],
- },
- {
- path: '/error',
- component: EmptyLayout,
- redirect: 'noRedirect',
- name: 'Error',
- meta: { title: '错误页', icon: 'bug' },
- children: [
- {
- path: '401',
- name: 'Error401',
- component: () => import('@/views/401'),
- meta: { title: '401' },
- },
- {
- path: '404',
- name: 'Error404',
- component: () => import('@/views/404'),
- meta: { title: '404' },
- },
- ],
- },
- {
- path: '*',
- redirect: '/404',
- hidden: true,
- },
+ path: '/about',
+ name: 'About',
+ // route level code-splitting
+ // this generates a separate chunk (about.[hash].js) for this route
+ // which is lazy-loaded when the route is visited.
+ component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
+ }
]
const router = new VueRouter({
- base: publicPath,
- mode: routerMode,
- scrollBehavior: () => ({
- y: 0,
- }),
- routes: constantRoutes,
+ routes
})
-//注释的地方是允许路由重复点击,如果你觉得框架路由跳转规范太过严格可选择放开
-const originalPush = VueRouter.prototype.push
-VueRouter.prototype.push = function push(location, onResolve, onReject) {
- if (onResolve || onReject)
- return originalPush.call(this, location, onResolve, onReject)
- return originalPush.call(this, location).catch((err) => err)
-}
-
-export function resetRouter() {
- router.matcher = new VueRouter({
- base: publicPath,
- mode: routerMode,
- scrollBehavior: () => ({
- y: 0,
- }),
- routes: constantRoutes,
- }).matcher
-}
export default router
diff --git a/src/store/index.js b/src/store/index.js
index 157a2d5df..f453a2fe4 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -16,6 +16,6 @@ Object.keys(modules).forEach((key) => {
modules[key]['namespaced'] = true
})
const store = new Vuex.Store({
- modules,
+ modules
})
export default store
diff --git a/src/store/modules/errorLog.js b/src/store/modules/errorLog.js
deleted file mode 100644
index d06be28a4..000000000
--- a/src/store/modules/errorLog.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
-
- * @description 异常捕获的状态拦截,请勿修改
- */
-
-const state = () => ({
- errorLogs: [],
-})
-const getters = {
- errorLogs: (state) => state.errorLogs,
-}
-const mutations = {
- addErrorLog(state, errorLog) {
- state.errorLogs.push(errorLog)
- },
- clearErrorLog: (state) => {
- state.errorLogs.splice(0)
- },
-}
-const actions = {
- addErrorLog({ commit }, errorLog) {
- commit('addErrorLog', errorLog)
- },
- clearErrorLog({ commit }) {
- commit('clearErrorLog')
- },
-}
-export default { state, getters, mutations, actions }
diff --git a/src/store/modules/routes.js b/src/store/modules/routes.js
deleted file mode 100644
index c2b9b3192..000000000
--- a/src/store/modules/routes.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
-
- * @description 路由拦截状态管理,目前两种模式:all模式与intelligence模式,其中partialRoutes是菜单暂未使用
- */
-import { asyncRoutes, constantRoutes } from '@/router'
-import { getRouterList } from '@/api/router'
-import { convertRouter, filterAsyncRoutes } from '@/utils/handleRoutes'
-
-const state = () => ({
- routes: [],
- partialRoutes: [],
-})
-const getters = {
- routes: (state) => state.routes,
- partialRoutes: (state) => state.partialRoutes,
-}
-const mutations = {
- setRoutes(state, routes) {
- state.routes = constantRoutes.concat(routes)
- },
- setAllRoutes(state, routes) {
- state.routes = constantRoutes.concat(routes)
- },
- setPartialRoutes(state, routes) {
- state.partialRoutes = constantRoutes.concat(routes)
- },
-}
-const actions = {
- async setRoutes({ commit }, permissions) {
- //开源版只过滤动态路由permissions,admin不再默认拥有全部权限
- const finallyAsyncRoutes = await filterAsyncRoutes(
- [...asyncRoutes],
- permissions
- )
- commit('setRoutes', finallyAsyncRoutes)
- return finallyAsyncRoutes
- },
- async setAllRoutes({ commit }) {
- let { data } = await getRouterList()
- data.push({ path: '*', redirect: '/404', hidden: true })
- let accessRoutes = convertRouter(data)
- commit('setAllRoutes', accessRoutes)
- return accessRoutes
- },
- setPartialRoutes({ commit }, accessRoutes) {
- commit('setPartialRoutes', accessRoutes)
- return accessRoutes
- },
-}
-export default { state, getters, mutations, actions }
diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js
deleted file mode 100644
index a0573430b..000000000
--- a/src/store/modules/settings.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
-
- * @description 所有全局配置的状态管理,如无必要请勿修改
- */
-
-import defaultSettings from '@/config'
-
-const { tabsBar, logo, layout, header, themeBar } = defaultSettings
-const theme =
- JSON.parse(localStorage.getItem('vue-admin-beautiful-theme')) || ''
-const state = () => ({
- tabsBar: theme.tabsBar || tabsBar,
- logo,
- collapse: false,
- layout: theme.layout || layout,
- header: theme.header || header,
- device: 'desktop',
- themeBar,
-})
-const getters = {
- collapse: (state) => state.collapse,
- device: (state) => state.device,
- header: (state) => state.header,
- layout: (state) => state.layout,
- logo: (state) => state.logo,
- tabsBar: (state) => state.tabsBar,
- themeBar: (state) => state.themeBar,
-}
-const mutations = {
- changeLayout: (state, layout) => {
- if (layout) state.layout = layout
- },
- changeHeader: (state, header) => {
- if (header) state.header = header
- },
- changeTabsBar: (state, tabsBar) => {
- if (tabsBar) state.tabsBar = tabsBar
- },
- changeCollapse: (state) => {
- state.collapse = !state.collapse
- },
- foldSideBar: (state) => {
- state.collapse = true
- },
- openSideBar: (state) => {
- state.collapse = false
- },
- toggleDevice: (state, device) => {
- state.device = device
- },
-}
-const actions = {
- changeLayout({ commit }, layout) {
- commit('changeLayout', layout)
- },
- changeHeader({ commit }, header) {
- commit('changeHeader', header)
- },
- changeTabsBar({ commit }, tabsBar) {
- commit('changeTabsBar', tabsBar)
- },
- changeCollapse({ commit }) {
- commit('changeCollapse')
- },
- foldSideBar({ commit }) {
- commit('foldSideBar')
- },
- openSideBar({ commit }) {
- commit('openSideBar')
- },
- toggleDevice({ commit }, device) {
- commit('toggleDevice', device)
- },
-}
-export default { state, getters, mutations, actions }
diff --git a/src/store/modules/table.js b/src/store/modules/table.js
deleted file mode 100644
index 70898a0e2..000000000
--- a/src/store/modules/table.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
-
- * @description 代码生成机状态管理
- */
-
-const state = () => ({
- srcCode: '',
-})
-const getters = {
- srcTableCode: (state) => state.srcCode,
-}
-
-const mutations = {
- setTableCode(state, srcCode) {
- state.srcCode = srcCode
- },
-}
-const actions = {
- setTableCode({ commit }, srcCode) {
- commit('setTableCode', srcCode)
- },
-}
-export default { state, getters, mutations, actions }
diff --git a/src/store/modules/tabsBar.js b/src/store/modules/tabsBar.js
deleted file mode 100644
index b9c9e8c65..000000000
--- a/src/store/modules/tabsBar.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
-
- * @description tabsBar多标签页逻辑,前期借鉴了很多开源项目发现都有个共同的特点很繁琐并不符合框架设计的初衷,后来在github用户hipi的启发下完成了重构,请勿修改
- */
-
-const state = () => ({
- visitedRoutes: [],
-})
-const getters = {
- visitedRoutes: (state) => state.visitedRoutes,
-}
-const mutations = {
- addVisitedRoute(state, route) {
- let target = state.visitedRoutes.find((item) => item.path === route.path)
- if (target) {
- if (route.fullPath !== target.fullPath) Object.assign(target, route)
- return
- }
- state.visitedRoutes.push(Object.assign({}, route))
- },
- delVisitedRoute(state, route) {
- state.visitedRoutes.forEach((item, index) => {
- if (item.path === route.path) state.visitedRoutes.splice(index, 1)
- })
- },
- delOthersVisitedRoute(state, route) {
- state.visitedRoutes = state.visitedRoutes.filter(
- (item) => item.meta.affix || item.path === route.path
- )
- },
- delLeftVisitedRoute(state, route) {
- let index = state.visitedRoutes.length
- state.visitedRoutes = state.visitedRoutes.filter((item) => {
- if (item.name === route.name) index = state.visitedRoutes.indexOf(item)
- return item.meta.affix || index <= state.visitedRoutes.indexOf(item)
- })
- },
- delRightVisitedRoute(state, route) {
- let index = state.visitedRoutes.length
- state.visitedRoutes = state.visitedRoutes.filter((item) => {
- if (item.name === route.name) index = state.visitedRoutes.indexOf(item)
- return item.meta.affix || index >= state.visitedRoutes.indexOf(item)
- })
- },
- delAllVisitedRoutes(state) {
- state.visitedRoutes = state.visitedRoutes.filter((item) => item.meta.affix)
- },
- updateVisitedRoute(state, route) {
- state.visitedRoutes.forEach((item) => {
- if (item.path === route.path) item = Object.assign(item, route)
- })
- },
-}
-const actions = {
- addVisitedRoute({ commit }, route) {
- commit('addVisitedRoute', route)
- },
- async delRoute({ dispatch, state }, route) {
- await dispatch('delVisitedRoute', route)
- return {
- visitedRoutes: [...state.visitedRoutes],
- }
- },
- delVisitedRoute({ commit, state }, route) {
- commit('delVisitedRoute', route)
- return [...state.visitedRoutes]
- },
- async delOthersRoutes({ dispatch, state }, route) {
- await dispatch('delOthersVisitedRoute', route)
- return {
- visitedRoutes: [...state.visitedRoutes],
- }
- },
- async delLeftRoutes({ dispatch, state }, route) {
- await dispatch('delLeftVisitedRoute', route)
- return {
- visitedRoutes: [...state.visitedRoutes],
- }
- },
- async delRightRoutes({ dispatch, state }, route) {
- await dispatch('delRightVisitedRoute', route)
- return {
- visitedRoutes: [...state.visitedRoutes],
- }
- },
- delOthersVisitedRoute({ commit, state }, route) {
- commit('delOthersVisitedRoute', route)
- return [...state.visitedRoutes]
- },
- delLeftVisitedRoute({ commit, state }, route) {
- commit('delLeftVisitedRoute', route)
- return [...state.visitedRoutes]
- },
- delRightVisitedRoute({ commit, state }, route) {
- commit('delRightVisitedRoute', route)
- return [...state.visitedRoutes]
- },
- async delAllRoutes({ dispatch, state }, route) {
- await dispatch('delAllVisitedRoutes', route)
- return {
- visitedRoutes: [...state.visitedRoutes],
- }
- },
- delAllVisitedRoutes({ commit, state }) {
- commit('delAllVisitedRoutes')
- return [...state.visitedRoutes]
- },
- updateVisitedRoute({ commit }, route) {
- commit('updateVisitedRoute', route)
- },
-}
-export default { state, getters, mutations, actions }
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index e810b4e36..f41858783 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,99 +1,12 @@
/**
-
* @description 登录、获取用户信息、退出登录、清除accessToken逻辑,不建议修改
*/
import Vue from 'vue'
-import { getUserInfo, login, logout } from '@/api/user'
-import {
- getAccessToken,
- removeAccessToken,
- setAccessToken,
-} from '@/utils/accessToken'
-import { resetRouter } from '@/router'
-import { title, tokenName } from '@/config'
-const state = () => ({
- accessToken: getAccessToken(),
- username: '',
- avatar: '',
- permissions: [],
-})
-const getters = {
- accessToken: (state) => state.accessToken,
- username: (state) => state.username,
- avatar: (state) => state.avatar,
- permissions: (state) => state.permissions,
-}
-const mutations = {
- setAccessToken(state, accessToken) {
- state.accessToken = accessToken
- setAccessToken(accessToken)
- },
- setUsername(state, username) {
- state.username = username
- },
- setAvatar(state, avatar) {
- state.avatar = avatar
- },
- setPermissions(state, permissions) {
- state.permissions = permissions
- },
-}
-const actions = {
- setPermissions({ commit }, permissions) {
- commit('setPermissions', permissions)
- },
- async login({ commit }, userInfo) {
- const { data } = await login(userInfo)
- const accessToken = data[tokenName]
- if (accessToken) {
- commit('setAccessToken', accessToken)
- const hour = new Date().getHours()
- const thisTime =
- hour < 8
- ? '早上好'
- : hour <= 11
- ? '上午好'
- : hour <= 13
- ? '中午好'
- : hour < 18
- ? '下午好'
- : '晚上好'
- Vue.prototype.$baseNotify(`欢迎登录${title}`, `${thisTime}!`)
- } else {
- Vue.prototype.$baseMessage(
- `登录接口异常,未正确返回${tokenName}...`,
- 'error'
- )
- }
- },
- async getUserInfo({ commit, state }) {
- const { data } = await getUserInfo(state.accessToken)
- if (!data) {
- Vue.prototype.$baseMessage('验证失败,请重新登录...', 'error')
- return false
- }
- let { permissions, username, avatar } = data
- if (permissions && username && Array.isArray(permissions)) {
- commit('setPermissions', permissions)
- commit('setUsername', username)
- commit('setAvatar', avatar)
- return permissions
- } else {
- Vue.prototype.$baseMessage('用户信息接口异常', 'error')
- return false
- }
- },
- async logout({ dispatch }) {
- await logout(state.accessToken)
- await dispatch('resetAccessToken')
- await resetRouter()
- },
- resetAccessToken({ commit }) {
- commit('setPermissions', [])
- commit('setAccessToken', '')
- removeAccessToken()
- },
-}
+const state = () => ({})
+const getters = {}
+const mutations = {}
+const actions = {}
+
export default { state, getters, mutations, actions }
diff --git a/src/utils/accessToken.js b/src/utils/accessToken.js
deleted file mode 100644
index c7fd2b3e6..000000000
--- a/src/utils/accessToken.js
+++ /dev/null
@@ -1,59 +0,0 @@
-import { storage, tokenTableName } from '@/config'
-
-/**
-
- * @description 获取accessToken
- * @returns {string|ActiveX.IXMLDOMNode|Promise
|any|IDBRequest|MediaKeyStatus|FormDataEntryValue|Function|Promise}
- */
-export function getAccessToken() {
- if (storage) {
- if ('localStorage' === storage) {
- return localStorage.getItem(tokenTableName)
- } else if ('sessionStorage' === storage) {
- return sessionStorage.getItem(tokenTableName)
- } else {
- return localStorage.getItem(tokenTableName)
- }
- } else {
- return localStorage.getItem(tokenTableName)
- }
-}
-
-/**
-
- * @description 存储accessToken
- * @param accessToken
- * @returns {void|*}
- */
-export function setAccessToken(accessToken) {
- if (storage) {
- if ('localStorage' === storage) {
- return localStorage.setItem(tokenTableName, accessToken)
- } else if ('sessionStorage' === storage) {
- return sessionStorage.setItem(tokenTableName, accessToken)
- } else {
- return localStorage.setItem(tokenTableName, accessToken)
- }
- } else {
- return localStorage.setItem(tokenTableName, accessToken)
- }
-}
-
-/**
-
- * @description 移除accessToken
- * @returns {void|Promise}
- */
-export function removeAccessToken() {
- if (storage) {
- if ('localStorage' === storage) {
- return localStorage.removeItem(tokenTableName)
- } else if ('sessionStorage' === storage) {
- return sessionStorage.clear()
- } else {
- return localStorage.removeItem(tokenTableName)
- }
- } else {
- return localStorage.removeItem(tokenTableName)
- }
-}
diff --git a/src/utils/clipboard.js b/src/utils/clipboard.js
deleted file mode 100644
index a853d9969..000000000
--- a/src/utils/clipboard.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import Vue from 'vue'
-import Clipboard from 'clipboard'
-
-function clipboardSuccess() {
- Vue.prototype.$baseMessage('复制成功', 'success')
-}
-
-function clipboardError() {
- Vue.prototype.$baseMessage('复制失败', 'error')
-}
-
-/**
-
- * @description 复制数据
- * @param text
- * @param event
- */
-export default function handleClipboard(text, event) {
- const clipboard = new Clipboard(event.target, {
- text: () => text,
- })
- clipboard.on('success', () => {
- clipboardSuccess()
- clipboard.destroy()
- })
- clipboard.on('error', () => {
- clipboardError()
- clipboard.destroy()
- })
- clipboard.onClick(event)
-}
diff --git a/src/utils/encrypt.js b/src/utils/encrypt.js
deleted file mode 100644
index de651b90e..000000000
--- a/src/utils/encrypt.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import JSEncrypt from 'jsencrypt'
-import { getPublicKey } from '@/api/publicKey'
-
-const privateKey =
- 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAMFPa+v52FkSUXvcUnrGI/XzW3EpZRI0s9BCWJ3oNQmEYA5luWW5p8h0uadTIoTyYweFPdH4hveyxlwmS7oefvbIdiP+o+QIYW/R4Wjsb4Yl8MhR4PJqUE3RCy6IT9fM8ckG4kN9ECs6Ja8fQFc6/mSl5dJczzJO3k1rWMBhKJD/AgMBAAECgYEAucMakH9dWeryhrYoRHcXo4giPVJsH9ypVt4KzmOQY/7jV7KFQK3x//27UoHfUCak51sxFw9ek7UmTPM4HjikA9LkYeE7S381b4QRvFuf3L6IbMP3ywJnJ8pPr2l5SqQ00W+oKv+w/VmEsyUHr+k4Z+4ik+FheTkVWp566WbqFsECQQDjYaMcaKw3j2Zecl8T6eUe7fdaRMIzp/gcpPMfT/9rDzIQk+7ORvm1NI9AUmFv/FAlfpuAMrdL2n7p9uznWb7RAkEA2aP934kbXg5bdV0R313MrL+7WTK/qdcYxATUbMsMuWWQBoS5irrt80WCZbG48hpocJavLNjbtrjmUX3CuJBmzwJAOJg8uP10n/+ZQzjEYXh+BszEHDuw+pp8LuT/fnOy5zrJA0dO0RjpXijO3vuiNPVgHXT9z1LQPJkNrb5ACPVVgQJBALPeb4uV0bNrJDUb5RB4ghZnIxv18CcaqNIft7vuGCcFBAIPIRTBprR+RuVq+xHDt3sNXdsvom4h49+Hky1b0ksCQBBwUtVaqH6ztCtwUF1j2c/Zcrt5P/uN7IHAd44K0gIJc1+Csr3qPG+G2yoqRM8KVqLI8Z2ZYn9c+AvEE+L9OQY='
-
-/**
-
- * @description RSA加密
- * @param data
- * @returns {Promise<{param: PromiseLike}|*>}
- */
-export async function encryptedData(data) {
- let publicKey = ''
- const res = await getPublicKey()
- publicKey = res.data.publicKey
- if (res.data.mockServer) {
- publicKey = ''
- }
- if (publicKey == '') {
- return data
- }
- const encrypt = new JSEncrypt()
- encrypt.setPublicKey(
- `-----BEGIN PUBLIC KEY-----${publicKey}-----END PUBLIC KEY-----`
- )
- data = encrypt.encrypt(JSON.stringify(data))
- return {
- param: data,
- }
-}
-
-/**
-
- * @description RSA解密
- * @param data
- * @returns {PromiseLike}
- */
-export function decryptedData(data) {
- const decrypt = new JSEncrypt()
- decrypt.setPrivateKey(
- `-----BEGIN RSA PRIVATE KEY-----${privateKey}-----END RSA PRIVATE KEY-----`
- )
- data = decrypt.decrypt(JSON.stringify(data))
- return data
-}
diff --git a/src/utils/errorLog.js b/src/utils/errorLog.js
deleted file mode 100644
index 07a836c31..000000000
--- a/src/utils/errorLog.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import Vue from 'vue'
-import store from '@/store'
-import { isArray, isString } from '@/utils/validate'
-import { errorLog } from '@/config'
-
-const needErrorLog = errorLog
-const checkNeed = () => {
- const env = process.env.NODE_ENV
- if (isString(needErrorLog)) {
- return env === needErrorLog
- }
- if (isArray(needErrorLog)) {
- return needErrorLog.includes(env)
- }
- return false
-}
-if (checkNeed()) {
- Vue.config.errorHandler = (err, vm, info) => {
- console.error('vue-admin-beautiful错误拦截:', err, vm, info)
- const url = window.location.href
- Vue.nextTick(() => {
- store.dispatch('errorLog/addErrorLog', { err, vm, info, url })
- })
- }
-}
diff --git a/src/utils/handleRoutes.js b/src/utils/handleRoutes.js
deleted file mode 100644
index 7058f2ef5..000000000
--- a/src/utils/handleRoutes.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
-
- * @description all模式渲染后端返回路由
- * @param constantRoutes
- * @returns {*}
- */
-export function convertRouter(asyncRoutes) {
- return asyncRoutes.map((route) => {
- if (route.component) {
- if (route.component === 'Layout') {
- route.component = (resolve) => require(['@/layouts'], resolve)
- } else if (route.component === 'EmptyLayout') {
- route.component = (resolve) =>
- require(['@/layouts/EmptyLayout'], resolve)
- } else {
- const index = route.component.indexOf('views')
- const path =
- index > 0 ? route.component.slice(index) : `views/${route.component}`
- route.component = (resolve) => require([`@/${path}`], resolve)
- }
- }
- if (route.children && route.children.length)
- route.children = convertRouter(route.children)
- if (route.children && route.children.length === 0) delete route.children
- return route
- })
-}
-
-/**
-
- * @description 判断当前路由是否包含权限
- * @param permissions
- * @param route
- * @returns {boolean|*}
- */
-function hasPermission(permissions, route) {
- if (route.meta && route.meta.permissions) {
- return permissions.some((role) => route.meta.permissions.includes(role))
- } else {
- return true
- }
-}
-
-/**
-
- * @description intelligence模式根据permissions数组拦截路由
- * @param routes
- * @param permissions
- * @returns {[]}
- */
-export function filterAsyncRoutes(routes, permissions) {
- const finallyRoutes = []
- routes.forEach((route) => {
- const item = { ...route }
- if (hasPermission(permissions, item)) {
- if (item.children) {
- item.children = filterAsyncRoutes(item.children, permissions)
- }
- finallyRoutes.push(item)
- }
- })
- return finallyRoutes
-}
diff --git a/src/utils/index.js b/src/utils/index.js
deleted file mode 100644
index e9afbd571..000000000
--- a/src/utils/index.js
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
-
- * @description 格式化时间
- * @param time
- * @param cFormat
- * @returns {string|null}
- */
-export function parseTime(time, cFormat) {
- if (arguments.length === 0) {
- return null
- }
- const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
- let date
- if (typeof time === 'object') {
- date = time
- } else {
- if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
- time = parseInt(time)
- }
- if (typeof time === 'number' && time.toString().length === 10) {
- time = time * 1000
- }
- date = new Date(time)
- }
- const formatObj = {
- y: date.getFullYear(),
- m: date.getMonth() + 1,
- d: date.getDate(),
- h: date.getHours(),
- i: date.getMinutes(),
- s: date.getSeconds(),
- a: date.getDay(),
- }
- const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
- let value = formatObj[key]
- if (key === 'a') {
- return ['日', '一', '二', '三', '四', '五', '六'][value]
- }
- if (result.length > 0 && value < 10) {
- value = '0' + value
- }
- return value || 0
- })
- return time_str
-}
-
-/**
-
- * @description 格式化时间
- * @param time
- * @param option
- * @returns {string}
- */
-export function formatTime(time, option) {
- if (('' + time).length === 10) {
- time = parseInt(time) * 1000
- } else {
- time = +time
- }
- const d = new Date(time)
- const now = Date.now()
-
- const diff = (now - d) / 1000
-
- if (diff < 30) {
- return '刚刚'
- } else if (diff < 3600) {
- // less 1 hour
- return Math.ceil(diff / 60) + '分钟前'
- } else if (diff < 3600 * 24) {
- return Math.ceil(diff / 3600) + '小时前'
- } else if (diff < 3600 * 24 * 2) {
- return '1天前'
- }
- if (option) {
- return parseTime(time, option)
- } else {
- return (
- d.getMonth() +
- 1 +
- '月' +
- d.getDate() +
- '日' +
- d.getHours() +
- '时' +
- d.getMinutes() +
- '分'
- )
- }
-}
-
-/**
-
- * @description 将url请求参数转为json格式
- * @param url
- * @returns {{}|any}
- */
-export function paramObj(url) {
- const search = url.split('?')[1]
- if (!search) {
- return {}
- }
- return JSON.parse(
- '{"' +
- decodeURIComponent(search)
- .replace(/"/g, '\\"')
- .replace(/&/g, '","')
- .replace(/=/g, '":"')
- .replace(/\+/g, ' ') +
- '"}'
- )
-}
-
-/**
-
- * @description 父子关系的数组转换成树形结构数据
- * @param data
- * @returns {*}
- */
-export function translateDataToTree(data) {
- const parent = data.filter(
- (value) => value.parentId === 'undefined' || value.parentId == null
- )
- const children = data.filter(
- (value) => value.parentId !== 'undefined' && value.parentId != null
- )
- const translator = (parent, children) => {
- parent.forEach((parent) => {
- children.forEach((current, index) => {
- if (current.parentId === parent.id) {
- const temp = JSON.parse(JSON.stringify(children))
- temp.splice(index, 1)
- translator([current], temp)
- typeof parent.children !== 'undefined'
- ? parent.children.push(current)
- : (parent.children = [current])
- }
- })
- })
- }
- translator(parent, children)
- return parent
-}
-
-/**
-
- * @description 树形结构数据转换成父子关系的数组
- * @param data
- * @returns {[]}
- */
-export function translateTreeToData(data) {
- const result = []
- data.forEach((item) => {
- const loop = (data) => {
- result.push({
- id: data.id,
- name: data.name,
- parentId: data.parentId,
- })
- const child = data.children
- if (child) {
- for (let i = 0; i < child.length; i++) {
- loop(child[i])
- }
- }
- }
- loop(item)
- })
- return result
-}
-
-/**
-
- * @description 10位时间戳转换
- * @param time
- * @returns {string}
- */
-export function tenBitTimestamp(time) {
- const date = new Date(time * 1000)
- const y = date.getFullYear()
- let m = date.getMonth() + 1
- m = m < 10 ? '' + m : m
- let d = date.getDate()
- d = d < 10 ? '' + d : d
- let h = date.getHours()
- h = h < 10 ? '0' + h : h
- let minute = date.getMinutes()
- let second = date.getSeconds()
- minute = minute < 10 ? '0' + minute : minute
- second = second < 10 ? '0' + second : second
- return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
-}
-
-/**
-
- * @description 13位时间戳转换
- * @param time
- * @returns {string}
- */
-export function thirteenBitTimestamp(time) {
- const date = new Date(time / 1)
- const y = date.getFullYear()
- let m = date.getMonth() + 1
- m = m < 10 ? '' + m : m
- let d = date.getDate()
- d = d < 10 ? '' + d : d
- let h = date.getHours()
- h = h < 10 ? '0' + h : h
- let minute = date.getMinutes()
- let second = date.getSeconds()
- minute = minute < 10 ? '0' + minute : minute
- second = second < 10 ? '0' + second : second
- return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
-}
-
-/**
-
- * @description 获取随机id
- * @param length
- * @returns {string}
- */
-export function uuid(length = 32) {
- const num = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
- let str = ''
- for (let i = 0; i < length; i++) {
- str += num.charAt(Math.floor(Math.random() * num.length))
- }
- return str
-}
-
-/**
-
- * @description m到n的随机数
- * @param m
- * @param n
- * @returns {number}
- */
-export function random(m, n) {
- return Math.floor(Math.random() * (m - n) + n)
-}
-
-/**
-
- * @description addEventListener
- * @type {function(...[*]=)}
- */
-export const on = (function () {
- return function (element, event, handler, useCapture = false) {
- if (element && event && handler) {
- element.addEventListener(event, handler, useCapture)
- }
- }
-})()
-
-/**
-
- * @description removeEventListener
- * @type {function(...[*]=)}
- */
-export const off = (function () {
- return function (element, event, handler, useCapture = false) {
- if (element && event) {
- element.removeEventListener(event, handler, useCapture)
- }
- }
-})()
diff --git a/src/utils/pageTitle.js b/src/utils/pageTitle.js
deleted file mode 100644
index e09567da0..000000000
--- a/src/utils/pageTitle.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { title } from '@/config'
-
-/**
-
- * @description 设置标题
- * @param pageTitle
- * @returns {string}
- */
-export default function getPageTitle(pageTitle) {
- if (pageTitle) {
- return `${pageTitle}-${title}`
- }
- return `${title}`
-}
diff --git a/src/utils/permission.js b/src/utils/permission.js
deleted file mode 100644
index ed33463cc..000000000
--- a/src/utils/permission.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import store from '@/store'
-
-/**
-
- * @description 检查权限
- * @param value
- * @returns {boolean}
- */
-export default function checkPermission(value) {
- if (value && value instanceof Array && value.length > 0) {
- const permissions = store.getters['user/permissions']
- const permissionPermissions = value
-
- return permissions.some((role) => {
- return permissionPermissions.includes(role)
- })
- } else {
- return false
- }
-}
diff --git a/src/utils/request.js b/src/utils/request.js
deleted file mode 100644
index 53a2cad7a..000000000
--- a/src/utils/request.js
+++ /dev/null
@@ -1,125 +0,0 @@
-import Vue from 'vue'
-import axios from 'axios'
-import {
- baseURL,
- contentType,
- debounce,
- invalidCode,
- noPermissionCode,
- requestTimeout,
- successCode,
- tokenName,
- loginInterception,
-} from '@/config'
-import store from '@/store'
-import qs from 'qs'
-import router from '@/router'
-import { isArray } from '@/utils/validate'
-
-let loadingInstance
-
-/**
-
- * @description 处理code异常
- * @param {*} code
- * @param {*} msg
- */
-const handleCode = (code, msg) => {
- switch (code) {
- case invalidCode:
- Vue.prototype.$baseMessage(msg || `后端接口${code}异常`, 'error')
- store.dispatch('user/resetAccessToken').catch(() => {})
- if (loginInterception) {
- location.reload()
- }
- break
- case noPermissionCode:
- router.push({ path: '/401' }).catch(() => {})
- break
- default:
- Vue.prototype.$baseMessage(msg || `后端接口${code}异常`, 'error')
- break
- }
-}
-
-const instance = axios.create({
- baseURL,
- timeout: requestTimeout,
- headers: {
- 'Content-Type': contentType,
- },
-})
-
-instance.interceptors.request.use(
- (config) => {
- if (store.getters['user/accessToken']) {
- config.headers[tokenName] = store.getters['user/accessToken']
- }
- //这里会过滤所有为空、0、false的key,如果不需要请自行注释
- if (config.data)
- config.data = Vue.prototype.$baseLodash.pickBy(
- config.data,
- Vue.prototype.$baseLodash.identity
- )
- if (
- config.data &&
- config.headers['Content-Type'] ===
- 'application/x-www-form-urlencoded;charset=UTF-8'
- )
- config.data = qs.stringify(config.data)
- if (debounce.some((item) => config.url.includes(item)))
- loadingInstance = Vue.prototype.$baseLoading()
- return config
- },
- (error) => {
- return Promise.reject(error)
- }
-)
-
-instance.interceptors.response.use(
- (response) => {
- if (loadingInstance) loadingInstance.close()
-
- const { data, config } = response
- const { code, msg } = data
- // 操作正常Code数组
- const codeVerificationArray = isArray(successCode)
- ? [...successCode]
- : [...[successCode]]
- // 是否操作正常
- if (codeVerificationArray.includes(code)) {
- return data
- } else {
- handleCode(code, msg)
- return Promise.reject(
- 'vue-admin-beautiful请求异常拦截:' +
- JSON.stringify({ url: config.url, code, msg }) || 'Error'
- )
- }
- },
- (error) => {
- if (loadingInstance) loadingInstance.close()
- const { response, message } = error
- if (error.response && error.response.data) {
- const { status, data } = response
- handleCode(status, data.msg || message)
- return Promise.reject(error)
- } else {
- let { message } = error
- if (message === 'Network Error') {
- message = '后端接口连接异常'
- }
- if (message.includes('timeout')) {
- message = '后端接口请求超时'
- }
- if (message.includes('Request failed with status code')) {
- const code = message.substr(message.length - 3)
- message = '后端接口' + code + '异常'
- }
- Vue.prototype.$baseMessage(message || `后端接口未知异常`, 'error')
- return Promise.reject(error)
- }
- }
-)
-
-export default instance
diff --git a/src/utils/vab.js b/src/utils/vab.js
deleted file mode 100644
index e594e9ade..000000000
--- a/src/utils/vab.js
+++ /dev/null
@@ -1,180 +0,0 @@
-import { loadingText, messageDuration, title } from '@/config'
-import * as lodash from 'lodash'
-import { Loading, Message, MessageBox, Notification } from 'element-ui'
-import store from '@/store'
-import { getAccessToken } from '@/utils/accessToken'
-
-const accessToken = store.getters['user/accessToken']
-const layout = store.getters['settings/layout']
-
-const install = (Vue, opts = {}) => {
- /* 全局accessToken */
- Vue.prototype.$baseAccessToken = () => {
- return accessToken || getAccessToken()
- }
- /* 全局标题 */
- Vue.prototype.$baseTitle = (() => {
- return title
- })()
- /* 全局加载层 */
- Vue.prototype.$baseLoading = (index, text) => {
- let loading
- if (!index) {
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- background: 'hsla(0,0%,100%,.8)',
- })
- } else {
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- spinner: 'vab-loading-type' + index,
- background: 'hsla(0,0%,100%,.8)',
- })
- }
- return loading
- }
- /* 全局多彩加载层 */
- Vue.prototype.$baseColorfullLoading = (index, text) => {
- let loading
- if (!index) {
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- spinner: 'dots-loader',
- background: 'hsla(0,0%,100%,.8)',
- })
- } else {
- switch (index) {
- case 1:
- index = 'dots'
- break
- case 2:
- index = 'gauge'
- break
- case 3:
- index = 'inner-circles'
- break
- case 4:
- index = 'plus'
- break
- }
- loading = Loading.service({
- lock: true,
- text: text || loadingText,
- spinner: index + '-loader',
- background: 'hsla(0,0%,100%,.8)',
- })
- }
- return loading
- }
- /* 全局Message */
- Vue.prototype.$baseMessage = (message, type) => {
- Message({
- offset: 60,
- showClose: true,
- message: message,
- type: type,
- dangerouslyUseHTMLString: true,
- duration: messageDuration,
- })
- }
-
- /* 全局Alert */
- Vue.prototype.$baseAlert = (content, title, callback) => {
- MessageBox.alert(content, title || '温馨提示', {
- confirmButtonText: '确定',
- dangerouslyUseHTMLString: true,
- callback: (action) => {
- if (callback) {
- callback()
- }
- },
- })
- }
-
- /* 全局Confirm */
- Vue.prototype.$baseConfirm = (content, title, callback1, callback2) => {
- MessageBox.confirm(content, title || '温馨提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- closeOnClickModal: false,
- type: 'warning',
- })
- .then(() => {
- if (callback1) {
- callback1()
- }
- })
- .catch(() => {
- if (callback2) {
- callback2()
- }
- })
- }
-
- /* 全局Notification */
- Vue.prototype.$baseNotify = (message, title, type, position) => {
- Notification({
- title: title,
- message: message,
- position: position || 'top-right',
- type: type || 'success',
- duration: messageDuration,
- })
- }
-
- /* 全局TableHeight */
- Vue.prototype.$baseTableHeight = (formType) => {
- let height = window.innerHeight
- let paddingHeight = 400
- const formHeight = 50
-
- if (layout === 'vertical') {
- paddingHeight = 365
- }
-
- if ('number' == typeof formType) {
- height = height - paddingHeight - formHeight * formType
- } else {
- height = height - paddingHeight
- }
- return height
- }
-
- /* 全局map图层 */
- Vue.prototype.$baseMap = () => {
- return new maptalks.Map('map', {
- center: [116.41348403785, 39.910843952376],
- zoom: 12,
- minZoom: 1,
- maxZoom: 19,
- spatialReference: {
- projection: 'baidu',
- },
- attribution: {
- content: '© vue-admin-beautiful',
- },
- baseLayer: new maptalks.TileLayer('base', {
- cssFilter: 'sepia(100%) invert(90%)',
- urlTemplate:
- 'http://online{s}.map.bdimg.com/onlinelabel/?qt=tile&x={x}&y={y}&z={z}&styles=pl&scaler=1&p=1',
- subdomains: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
- attribution:
- '© Baidu',
- }),
- })
- }
-
- /* 全局lodash */
- Vue.prototype.$baseLodash = lodash
- /* 全局事件总线 */
- Vue.prototype.$baseEventBus = new Vue()
-}
-
-if (typeof window !== 'undefined' && window.Vue) {
- install(window.Vue)
-}
-
-export default install
diff --git a/src/utils/validate.js b/src/utils/validate.js
deleted file mode 100644
index f14dccbb7..000000000
--- a/src/utils/validate.js
+++ /dev/null
@@ -1,212 +0,0 @@
-/**
-
- * @description 判读是否为外链
- * @param path
- * @returns {boolean}
- */
-export function isExternal(path) {
- return /^(https?:|mailto:|tel:)/.test(path)
-}
-
-/**
-
- * @description 校验密码是否小于6位
- * @param str
- * @returns {boolean}
- */
-export function isPassword(str) {
- return str.length >= 6
-}
-
-/**
-
- * @description 判断是否为数字
- * @param value
- * @returns {boolean}
- */
-export function isNumber(value) {
- const reg = /^[0-9]*$/
- return reg.test(value)
-}
-
-/**
-
- * @description 判断是否是名称
- * @param value
- * @returns {boolean}
- */
-export function isName(value) {
- const reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/
- return reg.test(value)
-}
-
-/**
-
- * @description 判断是否为IP
- * @param ip
- * @returns {boolean}
- */
-export function isIP(ip) {
- const reg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
- return reg.test(ip)
-}
-
-/**
-
- * @description 判断是否是传统网站
- * @param url
- * @returns {boolean}
- */
-export function isUrl(url) {
- const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
- return reg.test(url)
-}
-
-/**
-
- * @description 判断是否是小写字母
- * @param str
- * @returns {boolean}
- */
-export function isLowerCase(str) {
- const reg = /^[a-z]+$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否是大写字母
- * @param str
- * @returns {boolean}
- */
-export function isUpperCase(str) {
- const reg = /^[A-Z]+$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否是大写字母开头
- * @param str
- * @returns {boolean}
- */
-export function isAlphabets(str) {
- const reg = /^[A-Za-z]+$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否是字符串
- * @param str
- * @returns {boolean}
- */
-export function isString(str) {
- return typeof str === 'string' || str instanceof String
-}
-
-/**
-
- * @description 判断是否是数组
- * @param arg
- * @returns {arg is any[]|boolean}
- */
-export function isArray(arg) {
- if (typeof Array.isArray === 'undefined') {
- return Object.prototype.toString.call(arg) === '[object Array]'
- }
- return Array.isArray(arg)
-}
-
-/**
-
- * @description 判断是否是端口号
- * @param str
- * @returns {boolean}
- */
-export function isPort(str) {
- const reg = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否是手机号
- * @param str
- * @returns {boolean}
- */
-export function isPhone(str) {
- const reg = /^1\d{10}$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否是身份证号(第二代)
- * @param str
- * @returns {boolean}
- */
-export function isIdCard(str) {
- const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否是邮箱
- * @param str
- * @returns {boolean}
- */
-export function isEmail(str) {
- const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否中文
- * @param str
- * @returns {boolean}
- */
-export function isChina(str) {
- const reg = /^[\u4E00-\u9FA5]{2,4}$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否为空
- * @param str
- * @returns {boolean}
- */
-export function isBlank(str) {
- return (
- str == null ||
- false ||
- str === '' ||
- str.trim() === '' ||
- str.toLocaleLowerCase().trim() === 'null'
- )
-}
-
-/**
-
- * @description 判断是否为固话
- * @param str
- * @returns {boolean}
- */
-export function isTel(str) {
- const reg = /^(400|800)([0-9\\-]{7,10})|(([0-9]{4}|[0-9]{3})(-| )?)?([0-9]{7,8})((-| |转)*([0-9]{1,4}))?$/
- return reg.test(str)
-}
-
-/**
-
- * @description 判断是否为数字且最多两位小数
- * @param str
- * @returns {boolean}
- */
-export function isNum(str) {
- const reg = /^\d+(\.\d{1,2})?$/
- return reg.test(str)
-}
diff --git a/src/views/401.vue b/src/views/401.vue
deleted file mode 100644
index b09711a2e..000000000
--- a/src/views/401.vue
+++ /dev/null
@@ -1,296 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/views/404.vue b/src/views/404.vue
deleted file mode 100644
index 9c261b691..000000000
--- a/src/views/404.vue
+++ /dev/null
@@ -1,296 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/views/index/components/Plan.vue b/src/views/index/components/Plan.vue
deleted file mode 100644
index 02ef9ae04..000000000
--- a/src/views/index/components/Plan.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
- 计划
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/index/components/VersionInformation.vue b/src/views/index/components/VersionInformation.vue
deleted file mode 100644
index 1df8fcf53..000000000
--- a/src/views/index/components/VersionInformation.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-
-
- 信息
-
-
-
-
-
- | vue |
- {{ dependencies['vue'] }} |
- @vue/cli |
- {{ devDependencies['@vue/cli-service'] }} |
-
-
- | vuex |
- {{ dependencies['vuex'] }} |
- vue-router |
- {{ dependencies['vue-router'] }} |
-
-
- | element-ui |
- {{ dependencies['element-ui'] }} |
- axios |
- {{ dependencies['axios'] }} |
-
-
- | 授权渠道 |
-
-
-
-
-
- 付款后加QQ 1204505056
- 获取下载权限,是否购买pro填是即可(赠送VIP专属问题解答群,包含PRO详细文档、PRO基础版源码、PRO标准版源码、绑定git后拥有随时克隆及更新权限,拥有完整的登录鉴权和前后端多种配置的动态路由流程,仅限自己及团队使用,源码不得二次出售转卖,恶意分享取消使用资格
- )
-
-
-
-
-
- PRO付费版本 购买源码 ¥699
-
-
-
-
-
-
-
-
- 付款后加QQ 1204505056
- 获取下载权限,是否购买pro填是即可(赠送VIP专属问题解答群,包含Plus详细文档、Plus基础版源码、Plus标准版源码、绑定git后拥有随时克隆及更新权限,拥有完整的登录鉴权和前后端多种配置的动态路由流程,仅限自己及团队使用,源码不得二次出售转卖,恶意分享取消使用资格
- )
-
-
-
-
-
- Plus付费版本 购买源码 ¥799
-
-
-
-
-
-
-
-
- 付款后加QQ 1204505056
- 获取VIP群加群资格,是否购买VIP填是即可(包含开源版及PRO版技术支持、开源版及PRO版问题解答、开源版详细文档,PRO版用户(已付699)无需购买此项!!!(此项不包含PRO版源码))
-
-
-
-
- 开源版技术支持
-
-
-
-
-
- 开源免费版
-
-
- |
-
-
-
-
-
-
-
-
-
diff --git a/src/views/index/index.vue b/src/views/index/index.vue
deleted file mode 100644
index 468d62bcb..000000000
--- a/src/views/index/index.vue
+++ /dev/null
@@ -1,699 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- 访问量
-
-
-
-
- 日均访问量:
-
-
-
-
-
-
-
-
-
- 授权数
-
-
-
-
- 总授权数:
-
-
-
-
-
-
-
-
-
-
- {{ item.title }}
-
-
-
-
-
-
-
-
依赖信息
-
部署时间:{{ updateTime }}
-
-
-
-
- | @vue/cli版本 |
- {{ devDependencies['@vue/cli-service'] }} |
- vue版本 |
- {{ dependencies['vue'] }} |
-
-
- | vuex版本 |
- {{ dependencies['vuex'] }} |
- vue-router版本 |
- {{ dependencies['vue-router'] }} |
-
-
- | element-ui版本 |
- {{ dependencies['element-ui'] }} |
- axios版本 |
- {{ dependencies['axios'] }} |
-
-
- | eslint版本 |
- {{ devDependencies['eslint'] }} |
- prettier版本 |
- {{ devDependencies['prettier'] }} |
-
-
- | sass版本 |
- {{ devDependencies['sass'] }} |
- mockjs版本 |
- {{ dependencies['mockjs'] }} |
-
-
- | zx-layouts版本 |
- {{ dependencies['zx-layouts'] }} |
- lodash版本 |
- {{ dependencies['lodash'] }} |
-
-
-
-
-
-
- 其他信息
-
-
-
-
vue-admin-beautiful
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 更新日志
-
-
-
- {{ activity.content }}
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
deleted file mode 100644
index dd9976441..000000000
--- a/src/views/login/index.vue
+++ /dev/null
@@ -1,327 +0,0 @@
-
-
-
-
-
- 占位符
-
-
-
- hello !
- 欢迎来到{{ title }}!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 登录
-
-
- 注册
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mall/goodsList/index.vue b/src/views/mall/goodsList/index.vue
deleted file mode 100644
index 824c62ba7..000000000
--- a/src/views/mall/goodsList/index.vue
+++ /dev/null
@@ -1,163 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
-
-
-
-
- 推荐
- 缺货
-
-
-
![]()
-
-
{{ item.title }}
-
{{ item.description }}
-
- ¥ {{ item.price }} 元
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/mall/pay/components/Step1.vue b/src/views/mall/pay/components/Step1.vue
deleted file mode 100644
index 202e906f9..000000000
--- a/src/views/mall/pay/components/Step1.vue
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
- 请务必仔细填写并核对
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 下一步
-
-
-
-
-
diff --git a/src/views/mall/pay/components/Step2.vue b/src/views/mall/pay/components/Step2.vue
deleted file mode 100644
index c64e5ddee..000000000
--- a/src/views/mall/pay/components/Step2.vue
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
- 确认转账后,资金将直接打入对方账户,无法退回。
-
-
-
- {{ infoData.payAccount }}
-
-
- {{ infoData.gatheringAccount }}
-
-
- {{ infoData.gatheringName }}
-
-
-
- {{ infoData.price }}
-
-
-
-
-
-
-
-
- 提交
-
- 上一步
-
-
-
-
-
diff --git a/src/views/mall/pay/components/Step3.vue b/src/views/mall/pay/components/Step3.vue
deleted file mode 100644
index a504a1944..000000000
--- a/src/views/mall/pay/components/Step3.vue
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
-
- {{ infoData.payAccount }}
-
-
- {{ infoData.gatheringAccount }}
-
-
- {{ infoData.gatheringName }}
-
-
-
- {{ infoData.price }}
-
-
-
-
- 再转一笔
-
-
-
-
-
diff --git a/src/views/mall/pay/index.vue b/src/views/mall/pay/index.vue
deleted file mode 100644
index e0543288c..000000000
--- a/src/views/mall/pay/index.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/personalCenter/index.vue b/src/views/personalCenter/index.vue
deleted file mode 100644
index 42b0fa291..000000000
--- a/src/views/personalCenter/index.vue
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- 个人简介
- 基本设置
- 安全设置
- 安全设置
-
-
-
-
-
diff --git a/src/views/personnelManagement/menuManagement/components/MenuManagementEdit.vue b/src/views/personnelManagement/menuManagement/components/MenuManagementEdit.vue
deleted file mode 100644
index df23fdff5..000000000
--- a/src/views/personnelManagement/menuManagement/components/MenuManagementEdit.vue
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
-
- 这里就不具体写了,请自行完善
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/personnelManagement/menuManagement/index.vue b/src/views/personnelManagement/menuManagement/index.vue
deleted file mode 100644
index 260ebc7a8..000000000
--- a/src/views/personnelManagement/menuManagement/index.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-
-
-
-
-
diff --git a/src/views/personnelManagement/roleManagement/components/RoleManagementEdit.vue b/src/views/personnelManagement/roleManagement/components/RoleManagementEdit.vue
deleted file mode 100644
index dc3a9fdab..000000000
--- a/src/views/personnelManagement/roleManagement/components/RoleManagementEdit.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/personnelManagement/roleManagement/index.vue b/src/views/personnelManagement/roleManagement/index.vue
deleted file mode 100644
index 5fcf65896..000000000
--- a/src/views/personnelManagement/roleManagement/index.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
- 演示环境仅做基础功能展示,若想实现不同角色的真实菜单配置,需将settings.js路由加载模式改为all模式,由后端全面接管路由渲染与权限控制
-
-
-
-
- 添加
-
-
- 批量删除
-
-
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
diff --git a/src/views/personnelManagement/userManagement/components/UserManagementEdit.vue b/src/views/personnelManagement/userManagement/components/UserManagementEdit.vue
deleted file mode 100644
index fe4487260..000000000
--- a/src/views/personnelManagement/userManagement/components/UserManagementEdit.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/personnelManagement/userManagement/index.vue b/src/views/personnelManagement/userManagement/index.vue
deleted file mode 100644
index e44e687f4..000000000
--- a/src/views/personnelManagement/userManagement/index.vue
+++ /dev/null
@@ -1,166 +0,0 @@
-
-
-
-
-
- 添加
-
-
- 批量删除
-
-
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item }}
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
diff --git a/src/views/register/index.vue b/src/views/register/index.vue
deleted file mode 100644
index 7cb514fe4..000000000
--- a/src/views/register/index.vue
+++ /dev/null
@@ -1,377 +0,0 @@
-
-
-
-
-
- 占位符
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ phoneCode }}
-
-
-
-
-
-
-
-
-
- 注册
-
-
- 登录
-
-
-
-
-
-
-
-
-
diff --git a/src/views/test/index.vue b/src/views/test/index.vue
deleted file mode 100644
index cd3fc662d..000000000
--- a/src/views/test/index.vue
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- 你可以在这里写demo
-
-
-
diff --git a/src/views/vab/backToTop/index.vue b/src/views/vab/backToTop/index.vue
deleted file mode 100644
index 49c101ac7..000000000
--- a/src/views/vab/backToTop/index.vue
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- 测试滚轮显示返回顶部-{{ index }}
-
-
-
-
-
-
-
diff --git a/src/views/vab/editor/index.vue b/src/views/vab/editor/index.vue
deleted file mode 100644
index 7e931a057..000000000
--- a/src/views/vab/editor/index.vue
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 预览效果
- 保存
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/element/index.vue b/src/views/vab/element/index.vue
deleted file mode 100644
index 5d44c4596..000000000
--- a/src/views/vab/element/index.vue
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-
-
-
- element全部文档点这里
-
-
-
-
-
- Tag 标签
-
- 文档
-
-
- 标签一
- 标签二
- 标签三
- 标签四
- 标签五
- 标签一
- 标签二
- 标签三
- 标签四
- 标签五
-
-
- 进度条
-
- 文档
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 按钮
-
- 文档
-
-
- 默认按钮
- 主要按钮
- 成功按钮
- 信息按钮
- 警告按钮
- 危险按钮
- 朴素按钮
- 主要按钮
- 成功按钮
- 信息按钮
- 警告按钮
- 危险按钮
- 圆角按钮
- 主要按钮
- 成功按钮
- 信息按钮
- 警告按钮
- 危险按钮
-
-
-
-
-
-
- 默认按钮
- 主要按钮
- 成功按钮
- 信息按钮
- 警告按钮
- 危险按钮
-
-
-
- 搜索
-
- 上传
-
-
- 加载中
-
-
- 文字链接
-
- 文档
-
-
-
- 默认链接
-
- 主要链接
- 成功链接
- 警告链接
- 危险链接
- 信息链接
- 默认链接
- 主要链接
- 成功链接
- 警告链接
- 危险链接
- 信息链接
- 无下划线
- 有下划线
-
- 头像
-
- 文档
-
-
-
-
- 页头
-
- 文档
-
-
-
-
- 面包屑
-
- 文档
-
-
-
- 首页
- 活动管理
- 活动列表
- 活动详情
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/errorLog/components/ErrorTest.vue b/src/views/vab/errorLog/components/ErrorTest.vue
deleted file mode 100644
index a64210faa..000000000
--- a/src/views/vab/errorLog/components/ErrorTest.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- {{ chuzhixinjiayou.chuzhixinjiayou }}
-
-
-
diff --git a/src/views/vab/errorLog/index.vue b/src/views/vab/errorLog/index.vue
deleted file mode 100644
index 09593e740..000000000
--- a/src/views/vab/errorLog/index.vue
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
- 这里会在顶部navbar上模拟一个控制台错误日志
-
-
- 点击模拟一个chuzhixinjiayou的错误
-
-
-
-
-
-
diff --git a/src/views/vab/form/index.vue b/src/views/vab/form/index.vue
deleted file mode 100644
index 64d96d3cf..000000000
--- a/src/views/vab/form/index.vue
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 立即创建
-
- 重置
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/icon/colorfulIcon.vue b/src/views/vab/icon/colorfulIcon.vue
deleted file mode 100644
index d1890b98c..000000000
--- a/src/views/vab/icon/colorfulIcon.vue
+++ /dev/null
@@ -1,155 +0,0 @@
-
-
-
-
-
- 多彩图标在演示环境中使用的是cdn加速服务,开发时需存储到本地,使用方法可查看群文档,点击图标即可复制源码
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/icon/index.vue b/src/views/vab/icon/index.vue
deleted file mode 100644
index aad8cca14..000000000
--- a/src/views/vab/icon/index.vue
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
- 点击图标即可复制源码
-
-
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/icon/remixIcon.vue b/src/views/vab/icon/remixIcon.vue
deleted file mode 100644
index e8e376892..000000000
--- a/src/views/vab/icon/remixIcon.vue
+++ /dev/null
@@ -1,153 +0,0 @@
-
-
-
-
-
- 小清新图标在演示环境中使用的是cdn加速服务,开发时需存储到本地,使用方法可查看群文档,点击图标即可复制源码,点击图标即可复制源码
-
-
-
-
-
-
-
-
-
- 搜索
-
-
-
-
-
-
-
-
-
-
-
- {{ item }}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/loading/index.vue b/src/views/vab/loading/index.vue
deleted file mode 100644
index 94ce9f781..000000000
--- a/src/views/vab/loading/index.vue
+++ /dev/null
@@ -1,71 +0,0 @@
-
-
- 传统loading
- 默认效果
- 效果1
- 效果2
- 效果3
- 效果4
- 效果5
- 效果6
- 效果7
- 效果8
- 效果9
-
-
-
- 多彩loading
-
- 效果1
-
-
- 效果2
-
-
- 效果3
-
-
- 效果4
-
-
-
-
-
-
-
diff --git a/src/views/vab/lodash/index.vue b/src/views/vab/lodash/index.vue
deleted file mode 100644
index 8d326b594..000000000
--- a/src/views/vab/lodash/index.vue
+++ /dev/null
@@ -1,211 +0,0 @@
-
-
-
-
-
-
- lodashjs官网
-
-
-
-
-
-
-
- 去除数组array中的最后一个元素
-
-
- this.$baseLodash.initial([1, 2, 3])
-
- // => [1, 2]
-
-
-
-
-
-
-
- 返回数组 array的第一个元素
-
-
- this.$baseLodash.head([1, 2, 3])
-
- // => 1
-
-
-
-
-
-
- 合并数组
-
- this.$baseLodash.concat([1],[2])
-
- // => [1,2]
-
-
-
-
-
-
- 左切片
-
- this.$baseLodash.drop([1, 2, 3],2切除的数量)
-
- // => [3]
-
-
-
-
-
-
- 右切片
-
- this.$baseLodash.dropRight([1, 2, 3],2切除的数量)
-
- // => [1]
-
-
-
-
-
-
- 修改拼接
-
- this.$baseLodash.join(['a', 'b', 'c'], '~');
-
- // => 'a~b~c'
-
-
-
-
-
-
- 获取数组最后一个元素
-
- this.$baseLodash.last(['a', 'b', 'c']);
-
- // => 'c'
-
-
-
-
-
-
- 数组去重
-
- this.$baseLodash.uniq(['a', 'b', 'a']);
-
- // => ['a','b']
-
-
-
-
-
-
- 获取数组的最大值
-
- this.$baseLodash.max([4, 2, 8, 6])
-
- // => 8
-
-
-
-
-
-
- 获取数组的最小值
-
- this.$baseLodash.min([4, 2, 8, 6])
-
- // => 2
-
-
-
-
-
-
-
- 四舍五入(保留任意位小数)
-
-
- this.$baseLodash.round(4.006,2保持几位小数)
-
- // => 4.01
-
-
-
-
-
-
- 数组内数据相加
-
- this.$baseLodash.sum([4, 2, 8, 6])
-
- // => 20
-
-
-
-
-
-
- 返回随机数
-
- this.$baseLodash.random(0, 5)
-
- // => 0到5任意数
-
-
-
-
-
-
- 返回数组内的随机数
-
- this.$baseLodash.sample([1, 2, 3, 4])
-
- // => 数组1到4任意数
-
-
-
-
-
-
- 事件防抖动
-
- this.$baseLodash.debounce(@click的事件,延迟的毫秒数)
-
- // => 点击后多久不可以点击
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/magnifier/index.vue b/src/views/vab/magnifier/index.vue
deleted file mode 100644
index 460dce4d9..000000000
--- a/src/views/vab/magnifier/index.vue
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
- 放大镜1
-
-
-
-
-
- 放大镜2
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/map/index.vue b/src/views/vab/map/index.vue
deleted file mode 100644
index c86897780..000000000
--- a/src/views/vab/map/index.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-
-
-
-
-
-
diff --git a/src/views/vab/markdownEditor/index.vue b/src/views/vab/markdownEditor/index.vue
deleted file mode 100644
index 48989a15e..000000000
--- a/src/views/vab/markdownEditor/index.vue
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
-
- 增加文本
- 增加图片
-
-
-
-
- markdown转换html实时演示区域
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/more/index.vue b/src/views/vab/more/index.vue
deleted file mode 100644
index 1c05e9dc0..000000000
--- a/src/views/vab/more/index.vue
+++ /dev/null
@@ -1,119 +0,0 @@
-
-
-
-
-
-
- 开源版本
-
- 永久免费 个人/商业使用
-
-
-
-
- - 永久开源免费,支持横纵布局切换
- -
- 保留浏览器控制台打印即可免费商用,页面中的作者信息可全部去除,无需保留,可快速入手框架,包含打包优化,公共外框布局layout本地化及自定义教程,如需自定义版权及作者信息¥299(自愿原则)
-
- -
- 开源地址
-
- 如果有幸帮到了你,麻烦给个star
-
-
- - 提供讨论群专属文档,QQ群 972435319、1139183756
-
-
-
-
-
-
-
- VIP群(自愿原则)
-
- ¥100
-
-
-
-
- - 支持以上所有特权
- - vip群提供技术支持、专属vip文档
- - QQ咨询 1204505056
-
-
-
-
-
-
-
- PRO版
-
- ¥699
-
-
-
-
- -
- 演示地址:
-
- 点我
-
-
- - PRO独立版本与开源版本不同
- -
- 无版权限制,无需额外配置,拿来即用,支持权限精确到权限点,按钮级权限取反,支持代码一键生成
-
- - 免费加入vue-admin-beautifl github团队
- - 提供100余种布局主题搭配
- - 图标使用方式大为简化
- - 支持国际化语言包、中英文无缝切换
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/nested/menu1/index.vue b/src/views/vab/nested/menu1/index.vue
deleted file mode 100644
index 43702fcc9..000000000
--- a/src/views/vab/nested/menu1/index.vue
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
diff --git a/src/views/vab/nested/menu1/menu1-1/index.vue b/src/views/vab/nested/menu1/menu1-1/index.vue
deleted file mode 100644
index 2560d5dad..000000000
--- a/src/views/vab/nested/menu1/menu1-1/index.vue
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
diff --git a/src/views/vab/nested/menu1/menu1-1/menu1-1-1/index.vue b/src/views/vab/nested/menu1/menu1-1/menu1-1-1/index.vue
deleted file mode 100644
index bcff7d3dc..000000000
--- a/src/views/vab/nested/menu1/menu1-1/menu1-1-1/index.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
diff --git a/src/views/vab/permissions/index.vue b/src/views/vab/permissions/index.vue
deleted file mode 100644
index 011a65548..000000000
--- a/src/views/vab/permissions/index.vue
+++ /dev/null
@@ -1,156 +0,0 @@
-
-
-
- intelligence模式,前端根据permissions拦截路由(演示环境,默认使用此方案)
-
-
-
-
-
- admin
- editor
- test
-
-
-
-
-
- 切换权限
-
-
-
- {{ JSON.stringify(permissions) }}
-
-
-
按钮级权限演示
-
- 我是拥有["admin"]权限的按钮
-
-
- 我是拥有["editor"]权限的按钮
-
-
- 我是拥有["test"]权限的按钮
-
-
-
-
- all模式,路由以及view文件引入全部交给后端(权限复杂,且随时变更,建议使用此方案)
-
-
- settings.js配置authentication为all即可完全交由后端控制,mock中有后端接口示例,权限繁琐,有几十种权限的项目直接用这种,
- 由于演示环境是mock数据模拟,可能无法展现此功能的配置,只做如下展示,便于您的理解
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ row.meta.affix }}
-
-
-
-
-
-
- {{ row.meta.noKeepAlive }}
-
-
-
-
-
-
- {{ row.meta.badge }}
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/player/index.vue b/src/views/vab/player/index.vue
deleted file mode 100644
index 504e10dd5..000000000
--- a/src/views/vab/player/index.vue
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
- 视频地址采用cdn加速服务,开发时需部署到到本地,使用方法可查看群文档
-
-
-
-
- 播放传统MP4
-
-
-
-
-
- 播放m3u8,且不暴露视频地址
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/smallComponents/index.vue b/src/views/vab/smallComponents/index.vue
deleted file mode 100644
index 95c7328d7..000000000
--- a/src/views/vab/smallComponents/index.vue
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
- 小组件
-
-
-
-
- snow
-
-
-
-
-
-
-
- profile
-
- 重载
-
-
-
-
-
-
-
-
- charge
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/table/components/TableEdit.vue b/src/views/vab/table/components/TableEdit.vue
deleted file mode 100644
index 3e8d877e1..000000000
--- a/src/views/vab/table/components/TableEdit.vue
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/table/index.vue b/src/views/vab/table/index.vue
deleted file mode 100644
index f9186c6ee..000000000
--- a/src/views/vab/table/index.vue
+++ /dev/null
@@ -1,263 +0,0 @@
-
-
-
-
-
- 添加
-
-
- 删除
-
- baseMessage
- baseAlert
- baseConfirm
- baseNotify
-
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
-
-
-
-
- {{ scope.$index + 1 }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ row.status }}
-
-
-
-
-
-
-
- 编辑
- 删除
-
-
-
-
-
-
-
-
-
diff --git a/src/views/vab/tree/index.vue b/src/views/vab/tree/index.vue
deleted file mode 100644
index 565e5aecf..000000000
--- a/src/views/vab/tree/index.vue
+++ /dev/null
@@ -1,478 +0,0 @@
-
-
-
-
-
diff --git a/src/views/vab/upload/index.vue b/src/views/vab/upload/index.vue
deleted file mode 100644
index 910718325..000000000
--- a/src/views/vab/upload/index.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
- 演示环境可能无法模拟上传
-
-
- 模拟上传
-
-
-
-
-
diff --git a/src/views/vab/verify/index.vue b/src/views/vab/verify/index.vue
deleted file mode 100644
index 899d7e3d5..000000000
--- a/src/views/vab/verify/index.vue
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/views/vab/webSocket/index.vue b/src/views/vab/webSocket/index.vue
deleted file mode 100644
index 84b867d21..000000000
--- a/src/views/vab/webSocket/index.vue
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
-
-
-
- webSocket连接{{ status }}!
-
-
-
-
-
-
-
-
-
-
- 发送消息
-
-
- {{ data }}
-
-
-
-
-
-
-
-
diff --git a/vue.config.js b/vue.config.js
index 9d3a6c98b..b8a835dbc 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,34 +1,18 @@
-/**
-
- * @description cli配置
- */
-
const path = require('path')
const {
publicPath,
assetsDir,
outputDir,
- lintOnSave,
transpileDependencies,
title,
- abbreviation,
- devPort,
- providePlugin,
- build7z,
- donation,
+ devPort
} = require('./src/config')
-const { webpackBarName, webpackBanner, donationConsole } = require('zx-layouts')
-if (donation) donationConsole()
const { version, author } = require('./package.json')
-const Webpack = require('webpack')
-const WebpackBar = require('webpackbar')
-const FileManagerPlugin = require('filemanager-webpack-plugin')
const dayjs = require('dayjs')
-const date = dayjs().format('YYYY_M_D')
const time = dayjs().format('YYYY-M-D HH:mm:ss')
-process.env.VUE_APP_TITLE = title || 'vue-admin-beautiful'
-process.env.VUE_APP_AUTHOR = author || 'chuzhixin 1204505056@qq.com'
+process.env.VUE_APP_TITLE = title
+process.env.VUE_APP_AUTHOR = author
process.env.VUE_APP_UPDATE_TIME = time
process.env.VUE_APP_VERSION = version
@@ -38,7 +22,6 @@ module.exports = {
publicPath,
assetsDir,
outputDir,
- lintOnSave,
transpileDependencies,
devServer: {
hot: true,
@@ -47,25 +30,20 @@ module.exports = {
noInfo: false,
overlay: {
warnings: true,
- errors: true,
- },
+ errors: true
+ }
},
- configureWebpack() {
+ configureWebpack () {
return {
resolve: {
alias: {
'@': resolve('src'),
- },
- },
- plugins: [
- new Webpack.ProvidePlugin(providePlugin),
- new WebpackBar({
- name: webpackBarName,
- }),
- ],
+ styles: resolve('src/styles')
+ }
+ }
}
},
- chainWebpack(config) {
+ chainWebpack (config) {
config.plugins.delete('preload')
config.plugins.delete('prefetch')
config.module
@@ -93,10 +71,6 @@ module.exports = {
.loader('svg-sprite-loader')
.options({ symbolId: 'colorful-icon-[name]' })
.end()
-
- /* config.when(process.env.NODE_ENV === "development", (config) => {
- config.devtool("source-map");
- }); */
config.when(process.env.NODE_ENV !== 'development', (config) => {
config.performance.set('hints', false)
config.devtool('none')
@@ -107,54 +81,21 @@ module.exports = {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
- chunks: 'initial',
+ chunks: 'initial'
},
elementUI: {
name: 'chunk-elementUI',
priority: 20,
- test: /[\\/]node_modules[\\/]_?element-ui(.*)/,
+ test: /[\\/]node_modules[\\/]_?element-ui(.*)/
},
fortawesome: {
name: 'chunk-fortawesome',
priority: 20,
- test: /[\\/]node_modules[\\/]_?@fortawesome(.*)/,
- },
- },
+ test: /[\\/]node_modules[\\/]_?@fortawesome(.*)/
+ }
+ }
})
- config
- .plugin('banner')
- .use(Webpack.BannerPlugin, [`${webpackBanner}${time}`])
- .end()
- config.module
- .rule('images')
- .use('image-webpack-loader')
- .loader('image-webpack-loader')
- .options({
- bypassOnDebug: true,
- })
- .end()
})
-
- if (build7z) {
- config.when(process.env.NODE_ENV === 'production', (config) => {
- config
- .plugin('fileManager')
- .use(FileManagerPlugin, [
- {
- onEnd: {
- delete: [`./${outputDir}/video`, `./${outputDir}/data`],
- archive: [
- {
- source: `./${outputDir}`,
- destination: `./${outputDir}/${abbreviation}_${outputDir}_${date}.7z`,
- },
- ],
- },
- },
- ])
- .end()
- })
- }
},
runtimeCompiler: true,
productionSourceMap: false,
@@ -163,21 +104,17 @@ module.exports = {
sourceMap: true,
loaderOptions: {
scss: {
- /*sass-loader 8.0语法 */
- //prependData: '@import "~@/styles/variables.scss";',
-
- /*sass-loader 9.0写法,感谢github用户 shaonialife*/
- additionalData(content, loaderContext) {
+ additionalData (content, loaderContext) {
const { resourcePath, rootContext } = loaderContext
const relativePath = path.relative(rootContext, resourcePath)
if (
relativePath.replace(/\\/g, '/') !== 'src/styles/variables.scss'
) {
- return '@import "~@/styles/variables.scss";' + content
+ return '@import "~styles/variables.scss";' + content
}
return content
- },
- },
- },
- },
+ }
+ }
+ }
+ }
}
diff --git a/webstorm.config.js b/webstorm.config.js
deleted file mode 100644
index 22d53e99a..000000000
--- a/webstorm.config.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
-
- * @description webstorm.config
- */
-const webpackConfig = require('@vue/cli-service/webpack.config.js')
-module.exports = webpackConfig