chao 3 anni fa
parent
commit
0fa95c6f3f

+ 50 - 50
.eslintrc.js

@@ -2,12 +2,12 @@ module.exports = {
   root: true,
   parserOptions: {
     parser: 'babel-eslint',
-    sourceType: 'module'
+    sourceType: 'module',
   },
   env: {
     browser: true,
     node: true,
-    es6: true
+    es6: true,
   },
   extends: ['plugin:vue/recommended', 'eslint:recommended'],
 
@@ -22,9 +22,9 @@ module.exports = {
         singleline: 100,
         multiline: {
           max: 80,
-          allowFirstLine: true
-        }
-      }
+          allowFirstLine: true,
+        },
+      },
     ],
     'vue/singleline-html-element-content-newline': 'off',
     'vue/multiline-html-element-content-newline': 'off',
@@ -35,30 +35,30 @@ module.exports = {
       2,
       {
         before: true,
-        after: true
-      }
+        after: true,
+      },
     ],
     'block-spacing': [2, 'always'],
     'brace-style': [
       2,
       '1tbs',
       {
-        allowSingleLine: true
-      }
+        allowSingleLine: true,
+      },
     ],
     camelcase: [
       0,
       {
-        properties: 'always'
-      }
+        properties: 'always',
+      },
     ],
     'comma-dangle': [2, 'never'],
     'comma-spacing': [
       2,
       {
         before: false,
-        after: true
-      }
+        after: true,
+      },
     ],
     'comma-style': [2, 'last'],
     'constructor-super': 2,
@@ -70,38 +70,38 @@ module.exports = {
       2,
       {
         before: true,
-        after: true
-      }
+        after: true,
+      },
     ],
     'handle-callback-err': [2, '^(err|error)$'],
     indent: [
       2,
       2,
       {
-        SwitchCase: 1
-      }
+        SwitchCase: 1,
+      },
     ],
     'jsx-quotes': [2, 'prefer-single'],
     'key-spacing': [
       2,
       {
         beforeColon: false,
-        afterColon: true
-      }
+        afterColon: true,
+      },
     ],
     'keyword-spacing': [
       2,
       {
         before: true,
-        after: true
-      }
+        after: true,
+      },
     ],
     'new-cap': [
       2,
       {
         newIsCap: true,
-        capIsNew: false
-      }
+        capIsNew: false,
+      },
     ],
     'new-parens': 2,
     'no-array-constructor': 2,
@@ -137,8 +137,8 @@ module.exports = {
       2,
       {
         allowLoop: false,
-        allowSwitch: false
-      }
+        allowSwitch: false,
+      },
     ],
     'no-lone-blocks': 2,
     'no-mixed-spaces-and-tabs': 2,
@@ -147,8 +147,8 @@ module.exports = {
     'no-multiple-empty-lines': [
       2,
       {
-        max: 1
-      }
+        max: 1,
+      },
     ],
     'no-native-reassign': 2,
     'no-negated-in-lhs': 2,
@@ -180,8 +180,8 @@ module.exports = {
     'no-unneeded-ternary': [
       2,
       {
-        defaultAssignment: false
-      }
+        defaultAssignment: false,
+      },
     ],
     'no-unreachable': 2,
     'no-unsafe-finally': 2,
@@ -189,8 +189,8 @@ module.exports = {
       2,
       {
         vars: 'all',
-        args: 'none'
-      }
+        args: 'none',
+      },
     ],
     'no-useless-call': 2,
     'no-useless-computed-key': 2,
@@ -201,8 +201,8 @@ module.exports = {
     'one-var': [
       2,
       {
-        initialized: 'never'
-      }
+        initialized: 'never',
+      },
     ],
     'operator-linebreak': [
       2,
@@ -210,9 +210,9 @@ module.exports = {
       {
         overrides: {
           '?': 'before',
-          ':': 'before'
-        }
-      }
+          ':': 'before',
+        },
+      },
     ],
     'padded-blocks': [2, 'never'],
     quotes: [
@@ -220,34 +220,34 @@ module.exports = {
       'single',
       {
         avoidEscape: true,
-        allowTemplateLiterals: true
-      }
+        allowTemplateLiterals: true,
+      },
     ],
     semi: [2, 'never'],
     'semi-spacing': [
       2,
       {
         before: false,
-        after: true
-      }
+        after: true,
+      },
     ],
     'space-before-blocks': [2, 'always'],
-    'space-before-function-paren': [2, 'never'],
+    'space-before-function-paren': [0, 'never'],
     'space-in-parens': [2, 'never'],
     'space-infix-ops': 2,
     'space-unary-ops': [
       2,
       {
         words: true,
-        nonwords: false
-      }
+        nonwords: false,
+      },
     ],
     'spaced-comment': [
       2,
       'always',
       {
-        markers: ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
-      }
+        markers: ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','],
+      },
     ],
     'template-curly-spacing': [2, 'never'],
     'use-isnan': 2,
@@ -261,9 +261,9 @@ module.exports = {
       2,
       'always',
       {
-        objectsInObjects: false
-      }
+        objectsInObjects: false,
+      },
     ],
-    'array-bracket-spacing': [2, 'never']
-  }
-};
+    'array-bracket-spacing': [2, 'never'],
+  },
+}

+ 8 - 0
src/api/qiniu.js

@@ -0,0 +1,8 @@
+import request from '@/utils/request'
+
+export function getToken() {
+  return request({
+    url: '/qiniu/upload/token', // 假地址 自行替换
+    method: 'get'
+  })
+}

+ 0 - 0
src/api/menu.js → src/api/sys/menu.js


+ 0 - 0
src/api/role.js → src/api/sys/role.js


+ 0 - 0
src/api/user.js → src/api/sys/user.js


+ 17 - 23
src/components/Upload/SingleImage3.vue

@@ -1,14 +1,6 @@
 <template>
   <div class="upload-container">
-    <el-upload
-      :data="dataObj"
-      :multiple="false"
-      :show-file-list="false"
-      :on-success="handleImageSuccess"
-      class="image-uploader"
-      drag
-      action="https://httpbin.org/post"
-    >
+    <el-upload :data="dataObj" :multiple="false" :show-file-list="false" :on-success="handleImageSuccess" class="image-uploader" drag action="https://httpbin.org/post">
       <i class="el-icon-upload" />
       <div class="el-upload__text">
         将文件拖到此处,或<em>点击上传</em>
@@ -68,17 +60,19 @@ export default {
     beforeUpload() {
       const _self = this
       return new Promise((resolve, reject) => {
-        getToken().then(response => {
-          const key = response.data.qiniu_key
-          const token = response.data.qiniu_token
-          _self._data.dataObj.token = token
-          _self._data.dataObj.key = key
-          this.tempUrl = response.data.qiniu_url
-          resolve(true)
-        }).catch(err => {
-          console.log(err)
-          reject(false)
-        })
+        getToken()
+          .then(response => {
+            const key = response.data.qiniu_key
+            const token = response.data.qiniu_token
+            _self._data.dataObj.token = token
+            _self._data.dataObj.key = key
+            this.tempUrl = response.data.qiniu_url
+            resolve(true)
+          })
+          .catch(err => {
+            console.log(err)
+            reject(false)
+          })
       })
     }
   }
@@ -86,7 +80,7 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-@import "~@/styles/mixin.scss";
+@import '~@/styles/mixin.scss';
 .upload-container {
   width: 100%;
   position: relative;
@@ -122,8 +116,8 @@ export default {
       color: #fff;
       opacity: 0;
       font-size: 20px;
-      background-color: rgba(0, 0, 0, .5);
-      transition: opacity .3s;
+      background-color: rgba(0, 0, 0, 0.5);
+      transition: opacity 0.3s;
       cursor: pointer;
       text-align: center;
       line-height: 200px;

+ 2 - 2
src/components/Upload/singleUpload.vue

@@ -55,10 +55,10 @@ export default {
       ]
     },
     showFileList: {
-      get: function() {
+      get: function () {
         return this.value !== null && this.value !== '' && this.value !== undefined
       },
-      set: function(newValue) {}
+      set: function (newValue) {}
     }
   },
   methods: {

+ 2 - 2
src/permission.js

@@ -8,9 +8,9 @@ import getPageTitle from '@/utils/get-page-title'
 
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
-const whiteList = ['/login', '/auth-redirect'] // no redirect whitelist
+const whiteList = ['/login', '/auth-redirect', '/401', '/404'] // no redirect whitelist
 
-router.beforeEach(async(to, from, next) => {
+router.beforeEach(async (to, from, next) => {
   // start progress bar
   NProgress.start()
 

+ 26 - 26
src/router/index.js

@@ -40,44 +40,34 @@ import wechatRouter from './modules/wechat'
  */
 export const constantRoutes = [
   {
-    path: '/redirect',
+    path: '/',
     component: Layout,
-    hidden: true,
+    redirect: '/dashboard',
     children: [
       {
-        path: '/redirect/:path(.*)',
-        component: () => import('@/views/redirect/index')
+        path: 'dashboard',
+        component: () => import('@/views/dashboard/index'),
+        name: 'Dashboard',
+        meta: { title: '采美后台', icon: 'dashboard', affix: true }
       }
     ]
   },
   {
-    path: '/login',
-    component: () => import('@/views/login/index'),
-    hidden: true
-  },
-  {
-    path: '/404',
-    component: () => import('@/views/error-page/404'),
-    hidden: true
-  },
-  {
-    path: '/401',
-    component: () => import('@/views/error-page/401'),
-    hidden: true
-  },
-  {
-    path: '/',
+    path: '/redirect',
     component: Layout,
-    redirect: '/dashboard',
+    hidden: true,
     children: [
       {
-        path: 'dashboard',
-        component: () => import('@/views/dashboard/index'),
-        name: 'Dashboard',
-        meta: { title: '采美后台', icon: 'dashboard', affix: true }
+        path: '/redirect/:path(.*)',
+        component: () => import('@/views/sys/redirect/index')
       }
     ]
   },
+  {
+    path: '/login',
+    component: () => import('@/views/sys/login/index'),
+    hidden: true
+  },
   {
     path: '/profile',
     component: Layout,
@@ -86,7 +76,7 @@ export const constantRoutes = [
     children: [
       {
         path: 'index',
-        component: () => import('@/views/profile/index'),
+        component: () => import('@/views/sys/profile/index'),
         name: 'Profile',
         meta: { title: '个人中心', icon: 'user', noCache: true }
       }
@@ -124,6 +114,16 @@ export const afterRoutes = [
       }
     ]
   },
+  {
+    path: '/404',
+    component: () => import('@/views/sys/error/404'),
+    hidden: true
+  },
+  {
+    path: '/401',
+    component: () => import('@/views/sys/error/401'),
+    hidden: true
+  },
   // 404 page must be placed at the end !!!
   { path: '*', redirect: '/404', hidden: true }
 ]

+ 1 - 1
src/store/modules/user.js

@@ -1,4 +1,4 @@
-import { login, logout, getInfo } from '@/api/user'
+import { login, logout, getInfo } from '@/api/sys/user'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import router, { resetRouter } from '@/router'
 

+ 0 - 0
src/views/error-page/401.vue → src/views/sys/error/401.vue


+ 0 - 0
src/views/error-page/404.vue → src/views/sys/error/404.vue


+ 0 - 0
src/views/login/index.vue → src/views/sys/login/index.vue


+ 1 - 1
src/views/sys/menus/form.vue

@@ -44,7 +44,7 @@
   </div>
 </template>
 <script>
-import { getMenu, updateMenu, createMenu } from '@/api/menu'
+import { getMenu, updateMenu, createMenu } from '@/api/sys/menu'
 const defaultMenu = {
   id: '',
   title: '',

+ 1 - 1
src/views/sys/menus/list.vue

@@ -62,7 +62,7 @@
 </template>
 
 <script>
-import { fetchList, deleteMenu, updateSelective } from '@/api/menu'
+import { fetchList, deleteMenu, updateSelective } from '@/api/sys/menu'
 import Pagination from '@/components/Pagination'
 
 export default {

+ 1 - 1
src/views/profile/components/Account.vue → src/views/sys/profile/components/Account.vue

@@ -19,7 +19,7 @@
 </template>
 
 <script>
-import { updateProfile } from '@/api/user'
+import { updateProfile } from '@/api/sys/user'
 import SingleUpload from '@/components/Upload/singleUpload'
 export default {
   components: { SingleUpload },

+ 1 - 1
src/views/profile/components/Password.vue → src/views/sys/profile/components/Password.vue

@@ -16,7 +16,7 @@
 </template>
 
 <script>
-import { updatePassword } from '@/api/user'
+import { updatePassword } from '@/api/sys/user'
 export default {
   props: {
     user: {

+ 0 - 0
src/views/profile/components/UserCard.vue → src/views/sys/profile/components/UserCard.vue


+ 0 - 0
src/views/profile/index.vue → src/views/sys/profile/index.vue


+ 0 - 0
src/views/redirect/index.vue → src/views/sys/redirect/index.vue


+ 2 - 2
src/views/sys/roles/form.vue

@@ -22,8 +22,8 @@
 </template>
 
 <script>
-import { getRole, updateRole, createRole } from '@/api/role'
-import { sysMenuTree } from '@/api/menu'
+import { getRole, updateRole, createRole } from '@/api/sys/role'
+import { sysMenuTree } from '@/api/sys/menu'
 
 const defaultRole = {
   id: '',

+ 2 - 2
src/views/sys/roles/list.vue

@@ -37,7 +37,7 @@
 </template>
 
 <script>
-import { fetchList, deleteRole } from '@/api/role'
+import { fetchList, deleteRole } from '@/api/sys/role'
 import Pagination from '@/components/Pagination'
 
 export default {
@@ -81,7 +81,7 @@ export default {
       this.$router.push({ path: '/sys/roles/add' })
     },
     handleUpdate(row) {
-      this.$router.push({ path: '/sys/roles/edit', query: { id: row.id }})
+      this.$router.push({ path: '/sys/roles/edit', query: { id: row.id } })
     },
     handleDelete(row) {
       this.$confirm('是否要删除该角色', '提示', {

+ 2 - 2
src/views/sys/users/form.vue

@@ -39,8 +39,8 @@
 </template>
 <script>
 import SingleUpload from '@/components/Upload/singleUpload'
-import { getUser, updateUser, createUser } from '@/api/user'
-import { fetchList as fetchRoleList } from '@/api/role'
+import { getUser, updateUser, createUser } from '@/api/sys/user'
+import { fetchList as fetchRoleList } from '@/api/sys/role'
 
 const defaultSysUser = {
   id: 0,

+ 1 - 1
src/views/sys/users/list.vue

@@ -39,7 +39,7 @@
 </template>
 
 <script>
-import { fetchList, deleteUser } from '@/api/user'
+import { fetchList, deleteUser } from '@/api/sys/user'
 import Pagination from '@/components/Pagination'
 
 export default {