diff --git a/.eslintrc.js b/.eslintrc.js index c9775054..0a4f968c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,198 +1,38 @@ module.exports = { root: true, - parserOptions: { - parser: 'babel-eslint', - sourceType: 'module' - }, + env: { browser: true, node: true, - es6: true, + es6: true + }, + parser: "vue-eslint-parser", + parserOptions: { + parser: "@typescript-eslint/parser", + sourceType: "module" }, - extends: ['plugin:vue/recommended', 'eslint:recommended'], - // add your custom rules here - //it is base on https://github.com/vuejs/eslint-config-vue + plugins: [ + "vue", + "@typescript-eslint", + "jsdoc", + "eslint-comments", + "prettier" + ], + rules: { - "vue/max-attributes-per-line": [2, { - "singleline": 10, - "multiline": { - "max": 1, - "allowFirstLine": false - } - }], - "vue/singleline-html-element-content-newline": "off", - "vue/multiline-html-element-content-newline":"off", - "vue/name-property-casing": ["error", "PascalCase"], - "vue/no-v-html": "off", - 'accessor-pairs': 2, - 'arrow-spacing': [2, { - 'before': true, - 'after': true - }], - 'block-spacing': [2, 'always'], - 'brace-style': [2, '1tbs', { - 'allowSingleLine': true - }], - 'camelcase': [0, { - 'properties': 'always' - }], - 'comma-dangle': [2, 'never'], - 'comma-spacing': [2, { - 'before': false, - 'after': true - }], - 'comma-style': [2, 'last'], - 'constructor-super': 2, - 'curly': [2, 'multi-line'], - 'dot-location': [2, 'property'], - 'eol-last': 2, - 'eqeqeq': ["error", "always", {"null": "ignore"}], - 'generator-star-spacing': [2, { - 'before': true, - 'after': true - }], - 'handle-callback-err': [2, '^(err|error)$'], - 'indent': [2, 2, { - 'SwitchCase': 1 - }], - 'jsx-quotes': [2, 'prefer-single'], - 'key-spacing': [2, { - 'beforeColon': false, - 'afterColon': true - }], - 'keyword-spacing': [2, { - 'before': true, - 'after': true - }], - 'new-cap': [2, { - 'newIsCap': true, - 'capIsNew': false - }], - 'new-parens': 2, - 'no-array-constructor': 2, - 'no-caller': 2, - 'no-console': 'off', - 'no-class-assign': 2, - 'no-cond-assign': 2, - 'no-const-assign': 2, - 'no-control-regex': 0, - 'no-delete-var': 2, - 'no-dupe-args': 2, - 'no-dupe-class-members': 2, - 'no-dupe-keys': 2, - 'no-duplicate-case': 2, - 'no-empty-character-class': 2, - 'no-empty-pattern': 2, - 'no-eval': 2, - 'no-ex-assign': 2, - 'no-extend-native': 2, - 'no-extra-bind': 2, - 'no-extra-boolean-cast': 2, - 'no-extra-parens': [2, 'functions'], - 'no-fallthrough': 2, - 'no-floating-decimal': 2, - 'no-func-assign': 2, - 'no-implied-eval': 2, - 'no-inner-declarations': [2, 'functions'], - 'no-invalid-regexp': 2, - 'no-irregular-whitespace': 2, - 'no-iterator': 2, - 'no-label-var': 2, - 'no-labels': [2, { - 'allowLoop': false, - 'allowSwitch': false - }], - 'no-lone-blocks': 2, - 'no-mixed-spaces-and-tabs': 2, - 'no-multi-spaces': 2, - 'no-multi-str': 2, - 'no-multiple-empty-lines': [2, { - 'max': 1 - }], - 'no-native-reassign': 2, - 'no-negated-in-lhs': 2, - 'no-new-object': 2, - 'no-new-require': 2, - 'no-new-symbol': 2, - 'no-new-wrappers': 2, - 'no-obj-calls': 2, - 'no-octal': 2, - 'no-octal-escape': 2, - 'no-path-concat': 2, - 'no-proto': 2, - 'no-redeclare': 2, - 'no-regex-spaces': 2, - 'no-return-assign': [2, 'except-parens'], - 'no-self-assign': 2, - 'no-self-compare': 2, - 'no-sequences': 2, - 'no-shadow-restricted-names': 2, - 'no-spaced-func': 2, - 'no-sparse-arrays': 2, - 'no-this-before-super': 2, - 'no-throw-literal': 2, - 'no-trailing-spaces': 2, - 'no-undef': 2, - 'no-undef-init': 2, - 'no-unexpected-multiline': 2, - 'no-unmodified-loop-condition': 2, - 'no-unneeded-ternary': [2, { - 'defaultAssignment': false - }], - 'no-unreachable': 2, - 'no-unsafe-finally': 2, - 'no-unused-vars': [2, { - 'vars': 'all', - 'args': 'none' - }], - 'no-useless-call': 2, - 'no-useless-computed-key': 2, - 'no-useless-constructor': 2, - 'no-useless-escape': 0, - 'no-whitespace-before-property': 2, - 'no-with': 2, - 'one-var': [2, { - 'initialized': 'never' - }], - 'operator-linebreak': [2, 'after', { - 'overrides': { - '?': 'before', - ':': 'before' - } - }], - 'padded-blocks': [2, 'never'], - 'quotes': [2, 'single', { - 'avoidEscape': true, - 'allowTemplateLiterals': true - }], - 'semi': [2, 'never'], - 'semi-spacing': [2, { - 'before': false, - 'after': true - }], - 'space-before-blocks': [2, 'always'], - 'space-before-function-paren': [2, 'never'], - 'space-in-parens': [2, 'never'], - 'space-infix-ops': 2, - 'space-unary-ops': [2, { - 'words': true, - 'nonwords': false - }], - 'spaced-comment': [2, 'always', { - 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] - }], - 'template-curly-spacing': [2, 'never'], - 'use-isnan': 2, - 'valid-typeof': 2, - 'wrap-iife': [2, 'any'], - 'yield-star-spacing': [2, 'both'], - 'yoda': [2, 'never'], - 'prefer-const': 2, - 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, - 'object-curly-spacing': [2, 'always', { - objectsInObjects: false - }], - 'array-bracket-spacing': [2, 'never'] - } -} + "no-console": process.env.NODE_ENV === "production" ? "error" : "off", + "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", + + "prettier/prettier": ["error"] + }, + extends: ["plugin:vue/essential", "prettier"] // activate vue related rules + // extends: [ + // "eslint:recommended", + // "plugin:vue/recommended", + // "plugin:vue/base", + // "@vue/standard", + // "@vue/typescript", + // "plugin:prettier/recommended" + // ] +}; diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..71b5e4e2 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +.prettierrc.js +.eslintrc.js +jest.config.js +vue.config.js +postcss.config.js +settings.js diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000..d3299328 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,8 @@ +/** eslint-disable */ +module.exports = +{ + + "endOfLine":"auto" + + +} diff --git a/mock/article.js b/mock/article.js index bc236eb9..c22778c3 100644 --- a/mock/article.js +++ b/mock/article.js @@ -1,51 +1,64 @@ -import Mock from 'mockjs' +import Mock from "mockjs"; -const List = [] -const count = 100 +const List = []; +const count = 100; -const baseContent = '

I am testing data, I am testing data.

' -const image_uri = 'https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3' +const baseContent = + '

I am testing data, I am testing data.

'; +const image_uri = + "https://wpimg.wallstcn.com/e4558086-631c-425c-9430-56ffb46e70b3"; for (let i = 0; i < count; i++) { - List.push(Mock.mock({ - id: '@increment', - timestamp: +Mock.Random.date('T'), - author: '@first', - reviewer: '@first', - title: '@title(5, 10)', - content_short: 'mock data', - content: baseContent, - forecast: '@float(0, 100, 2, 2)', - importance: '@integer(1, 3)', - 'type|1': ['CN', 'US', 'JP', 'EU'], - 'status|1': ['published', 'draft', 'deleted'], - display_time: '@datetime', - comment_disabled: true, - pageviews: '@integer(300, 5000)', - image_uri, - platforms: ['a-platform'] - })) + List.push( + Mock.mock({ + id: "@increment", + timestamp: +Mock.Random.date("T"), + author: "@first", + reviewer: "@first", + title: "@title(5, 10)", + content_short: "mock data", + content: baseContent, + forecast: "@float(0, 100, 2, 2)", + importance: "@integer(1, 3)", + "type|1": ["CN", "US", "JP", "EU"], + "status|1": ["published", "draft", "deleted"], + display_time: "@datetime", + comment_disabled: true, + pageviews: "@integer(300, 5000)", + image_uri, + platforms: ["a-platform"] + }) + ); } export default [ { - url: '/article/list', - type: 'get', + url: "/article/list", + type: "get", response: config => { - const { importance, type, title, page = 1, limit = 20, sort } = config.query + const { + importance, + type, + title, + page = 1, + limit = 20, + sort + } = config.query; let mockList = List.filter(item => { - if (importance && item.importance !== +importance) return false - if (type && item.type !== type) return false - if (title && item.title.indexOf(title) < 0) return false - return true - }) + if (importance && item.importance !== +importance) return false; + if (type && item.type !== type) return false; + if (title && item.title.indexOf(title) < 0) return false; + return true; + }); - if (sort === '-id') { - mockList = mockList.reverse() + if (sort === "-id") { + mockList = mockList.reverse(); } - const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1)) + const pageList = mockList.filter( + (item, index) => index < limit * page && index >= limit * (page - 1) + ); return { code: 20000, @@ -53,64 +66,63 @@ export default [ total: mockList.length, items: pageList } - } + }; } }, { - url: '/article/detail', - type: 'get', + url: "/article/detail", + type: "get", response: config => { - const { id } = config.query + const { id } = config.query; for (const article of List) { if (article.id === +id) { return { code: 20000, data: article - } + }; } } } }, { - url: '/article/pv', - type: 'get', + url: "/article/pv", + type: "get", response: _ => { return { code: 20000, data: { pvData: [ - { key: 'PC', pv: 1024 }, - { key: 'mobile', pv: 1024 }, - { key: 'ios', pv: 1024 }, - { key: 'android', pv: 1024 } + { key: "PC", pv: 1024 }, + { key: "mobile", pv: 1024 }, + { key: "ios", pv: 1024 }, + { key: "android", pv: 1024 } ] } - } + }; } }, { - url: '/article/create', - type: 'post', + url: "/article/create", + type: "post", response: _ => { return { code: 20000, - data: 'success' - } + data: "success" + }; } }, { - url: '/article/update', - type: 'post', + url: "/article/update", + type: "post", response: _ => { return { code: 20000, - data: 'success' - } + data: "success" + }; } } -] - +]; diff --git a/mock/index.js b/mock/index.js index 6907e861..356e1115 100644 --- a/mock/index.js +++ b/mock/index.js @@ -1,17 +1,12 @@ -import Mock from 'mockjs' -import { param2Obj } from '../src/utils' +import Mock from "mockjs"; +import { param2Obj } from "../src/utils"; -import user from './user' -import role from './role' -import article from './article' -import search from './remote-search' +import user from "./user"; +import role from "./role"; +import article from "./article"; +import search from "./remote-search"; -const mocks = [ - ...user, - ...role, - ...article, - ...search -] +const mocks = [...user, ...role, ...article, ...search]; // for front mock // please use it cautiously, it will redefine XMLHttpRequest, @@ -19,38 +14,42 @@ const mocks = [ export function mockXHR() { // mock patch // https://github.com/nuysoft/Mock/issues/300 - Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send + Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send; Mock.XHR.prototype.send = function() { if (this.custom.xhr) { - this.custom.xhr.withCredentials = this.withCredentials || false + this.custom.xhr.withCredentials = this.withCredentials || false; if (this.responseType) { - this.custom.xhr.responseType = this.responseType + this.custom.xhr.responseType = this.responseType; } } - this.proxy_send(...arguments) - } + this.proxy_send(...arguments); + }; function XHR2ExpressReqWrap(respond) { return function(options) { - let result = null + let result = null; if (respond instanceof Function) { - const { body, type, url } = options + const { body, type, url } = options; // https://expressjs.com/en/4x/api.html#req result = respond({ method: type, body: JSON.parse(body), query: param2Obj(url) - }) + }); } else { - result = respond + result = respond; } - return Mock.mock(result) - } + return Mock.mock(result); + }; } for (const i of mocks) { - Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response)) + Mock.mock( + new RegExp(i.url), + i.type || "get", + XHR2ExpressReqWrap(i.response) + ); } } @@ -58,13 +57,15 @@ export function mockXHR() { const responseFake = (url, type, respond) => { return { url: new RegExp(`/mock${url}`), - type: type || 'get', + type: type || "get", response(req, res) { - res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond)) + res.json( + Mock.mock(respond instanceof Function ? respond(req, res) : respond) + ); } - } -} + }; +}; export default mocks.map(route => { - return responseFake(route.url, route.type, route.response) -}) + return responseFake(route.url, route.type, route.response); +}); diff --git a/mock/mock-server.js b/mock/mock-server.js index 4c4cb2af..d159f8da 100644 --- a/mock/mock-server.js +++ b/mock/mock-server.js @@ -1,68 +1,76 @@ -const chokidar = require('chokidar') -const bodyParser = require('body-parser') -const chalk = require('chalk') -const path = require('path') +const chokidar = require("chokidar"); +const bodyParser = require("body-parser"); +const chalk = require("chalk"); +const path = require("path"); -const mockDir = path.join(process.cwd(), 'mock') +const mockDir = path.join(process.cwd(), "mock"); function registerRoutes(app) { - let mockLastIndex - const { default: mocks } = require('./index.js') + let mockLastIndex; + const { default: mocks } = require("./index.js"); for (const mock of mocks) { - app[mock.type](mock.url, mock.response) - mockLastIndex = app._router.stack.length + app[mock.type](mock.url, mock.response); + mockLastIndex = app._router.stack.length; } - const mockRoutesLength = Object.keys(mocks).length + const mockRoutesLength = Object.keys(mocks).length; return { mockRoutesLength: mockRoutesLength, mockStartIndex: mockLastIndex - mockRoutesLength - } + }; } function unregisterRoutes() { Object.keys(require.cache).forEach(i => { if (i.includes(mockDir)) { - delete require.cache[require.resolve(i)] + delete require.cache[require.resolve(i)]; } - }) + }); } module.exports = app => { // es6 polyfill - require('@babel/register') + require("@babel/register"); // parse app.body // https://expressjs.com/en/4x/api.html#req.body - app.use(bodyParser.json()) - app.use(bodyParser.urlencoded({ - extended: true - })) + app.use(bodyParser.json()); + app.use( + bodyParser.urlencoded({ + extended: true + }) + ); - const mockRoutes = registerRoutes(app) - var mockRoutesLength = mockRoutes.mockRoutesLength - var mockStartIndex = mockRoutes.mockStartIndex + const mockRoutes = registerRoutes(app); + var mockRoutesLength = mockRoutes.mockRoutesLength; + var mockStartIndex = mockRoutes.mockStartIndex; // watch files, hot reload mock server - chokidar.watch(mockDir, { - ignored: /mock-server/, - ignoreInitial: true - }).on('all', (event, path) => { - if (event === 'change' || event === 'add') { - try { - // remove mock routes stack - app._router.stack.splice(mockStartIndex, mockRoutesLength) + chokidar + .watch(mockDir, { + ignored: /mock-server/, + ignoreInitial: true + }) + .on("all", (event, path) => { + if (event === "change" || event === "add") { + try { + // remove mock routes stack + app._router.stack.splice(mockStartIndex, mockRoutesLength); - // clear routes cache - unregisterRoutes() + // clear routes cache + unregisterRoutes(); - const mockRoutes = registerRoutes(app) - mockRoutesLength = mockRoutes.mockRoutesLength - mockStartIndex = mockRoutes.mockStartIndex + const mockRoutes = registerRoutes(app); + mockRoutesLength = mockRoutes.mockRoutesLength; + mockStartIndex = mockRoutes.mockStartIndex; - console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`)) - } catch (error) { - console.log(chalk.redBright(error)) + console.log( + chalk.magentaBright( + `\n > Mock Server hot reload success! changed ${path}` + ) + ); + } catch (error) { + console.log(chalk.redBright(error)); + } } - } - }) -} + }); +}; diff --git a/mock/remote-search.js b/mock/remote-search.js index bb33c2f4..42cfeabe 100644 --- a/mock/remote-search.js +++ b/mock/remote-search.js @@ -1,51 +1,55 @@ -import Mock from 'mockjs' +import Mock from "mockjs"; -const NameList = [] -const count = 100 +const NameList = []; +const count = 100; for (let i = 0; i < count; i++) { - NameList.push(Mock.mock({ - name: '@first' - })) + NameList.push( + Mock.mock({ + name: "@first" + }) + ); } -NameList.push({ name: 'mock-Pan' }) +NameList.push({ name: "mock-Pan" }); export default [ // username search { - url: '/search/user', - type: 'get', + url: "/search/user", + type: "get", response: config => { - const { name } = config.query + const { name } = config.query; const mockNameList = NameList.filter(item => { - const lowerCaseName = item.name.toLowerCase() - return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0) - }) + const lowerCaseName = item.name.toLowerCase(); + return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0); + }); return { code: 20000, data: { items: mockNameList } - } + }; } }, // transaction list { - url: '/transaction/list', - type: 'get', + url: "/transaction/list", + type: "get", response: _ => { return { code: 20000, data: { total: 20, - 'items|20': [{ - order_no: '@guid()', - timestamp: +Mock.Random.date('T'), - username: '@name()', - price: '@float(1000, 15000, 0, 2)', - 'status|1': ['success', 'pending'] - }] + "items|20": [ + { + order_no: "@guid()", + timestamp: +Mock.Random.date("T"), + username: "@name()", + price: "@float(1000, 15000, 0, 2)", + "status|1": ["success", "pending"] + } + ] } - } + }; } } -] +]; diff --git a/mock/role/index.js b/mock/role/index.js index 39148076..fb5ee55b 100644 --- a/mock/role/index.js +++ b/mock/role/index.js @@ -1,98 +1,101 @@ -import Mock from 'mockjs' -import { deepClone } from '../../src/utils/index.js' -import { asyncRoutes, constantRoutes } from './routes.js' +import Mock from "mockjs"; +import { deepClone } from "../../src/utils/index.js"; +import { asyncRoutes, constantRoutes } from "./routes.js"; -const routes = deepClone([...constantRoutes, ...asyncRoutes]) +const routes = deepClone([...constantRoutes, ...asyncRoutes]); const roles = [ { - key: 'admin', - name: 'admin', - description: 'Super Administrator. Have access to view all pages.', + key: "admin", + name: "admin", + description: "Super Administrator. Have access to view all pages.", routes: routes }, { - key: 'editor', - name: 'editor', - description: 'Normal Editor. Can see all pages except permission page', - routes: routes.filter(i => i.path !== '/permission')// just a mock + key: "editor", + name: "editor", + description: "Normal Editor. Can see all pages except permission page", + routes: routes.filter(i => i.path !== "/permission") // just a mock }, { - key: 'visitor', - name: 'visitor', - description: 'Just a visitor. Can only see the home page and the document page', - routes: [{ - path: '', - redirect: 'dashboard', - children: [ - { - path: 'dashboard', - name: 'Dashboard', - meta: { title: 'dashboard', icon: 'dashboard' } - } - ] - }] + key: "visitor", + name: "visitor", + description: + "Just a visitor. Can only see the home page and the document page", + routes: [ + { + path: "", + redirect: "dashboard", + children: [ + { + path: "dashboard", + name: "Dashboard", + meta: { title: "dashboard", icon: "dashboard" } + } + ] + } + ] } -] +]; export default [ // mock get all routes form server { - url: '/routes', - type: 'get', + url: "/routes", + type: "get", response: _ => { return { code: 20000, data: routes - } + }; } }, // mock get all roles form server { - url: '/roles', - type: 'get', + url: "/roles", + type: "get", response: _ => { return { code: 20000, data: roles - } + }; } }, // add role { - url: '/role', - type: 'post', + url: "/role", + type: "post", response: { code: 20000, data: { - key: Mock.mock('@integer(300, 5000)') + key: Mock.mock("@integer(300, 5000)") } } }, // update role { - url: '/role/[A-Za-z0-9]', - type: 'put', + url: "/role/[A-Za-z0-9]", + type: "put", response: { code: 20000, data: { - status: 'success' + status: "success" } } }, // delete role { - url: '/role/[A-Za-z0-9]', - type: 'delete', + url: "/role/[A-Za-z0-9]", + type: "delete", response: { code: 20000, data: { - status: 'success' + status: "success" } } } -] +]; diff --git a/mock/role/routes.js b/mock/role/routes.js index d718919c..2eec336f 100644 --- a/mock/role/routes.js +++ b/mock/role/routes.js @@ -2,524 +2,524 @@ export const constantRoutes = [ { - path: '/redirect', - component: 'layout/Layout', + path: "/redirect", + component: "layout/Layout", hidden: true, children: [ { - path: '/redirect/:path*', - component: 'views/redirect/index' + path: "/redirect/:path*", + component: "views/redirect/index" } ] }, { - path: '/login', - component: 'views/login/index', + path: "/login", + component: "views/login/index", hidden: true }, { - path: '/auth-redirect', - component: 'views/login/auth-redirect', + path: "/auth-redirect", + component: "views/login/auth-redirect", hidden: true }, { - path: '/404', - component: 'views/error-page/404', + path: "/404", + component: "views/error-page/404", hidden: true }, { - path: '/401', - component: 'views/error-page/401', + path: "/401", + component: "views/error-page/401", hidden: true }, { - path: '', - component: 'layout/Layout', - redirect: 'dashboard', + path: "", + component: "layout/Layout", + redirect: "dashboard", children: [ { - path: 'dashboard', - component: 'views/dashboard/index', - name: 'Dashboard', - meta: { title: 'Dashboard', icon: 'dashboard', affix: true } + path: "dashboard", + component: "views/dashboard/index", + name: "Dashboard", + meta: { title: "Dashboard", icon: "dashboard", affix: true } } ] }, { - path: '/documentation', - component: 'layout/Layout', + path: "/documentation", + component: "layout/Layout", children: [ { - path: 'index', - component: 'views/documentation/index', - name: 'Documentation', - meta: { title: 'Documentation', icon: 'documentation', affix: true } + path: "index", + component: "views/documentation/index", + name: "Documentation", + meta: { title: "Documentation", icon: "documentation", affix: true } } ] }, { - path: '/guide', - component: 'layout/Layout', - redirect: '/guide/index', + path: "/guide", + component: "layout/Layout", + redirect: "/guide/index", children: [ { - path: 'index', - component: 'views/guide/index', - name: 'Guide', - meta: { title: 'Guide', icon: 'guide', noCache: true } + path: "index", + component: "views/guide/index", + name: "Guide", + meta: { title: "Guide", icon: "guide", noCache: true } } ] } -] +]; export const asyncRoutes = [ { - path: '/permission', - component: 'layout/Layout', - redirect: '/permission/index', + path: "/permission", + component: "layout/Layout", + redirect: "/permission/index", alwaysShow: true, meta: { - title: 'Permission', - icon: 'lock', - roles: ['admin', 'editor'] + title: "Permission", + icon: "lock", + roles: ["admin", "editor"] }, children: [ { - path: 'page', - component: 'views/permission/page', - name: 'PagePermission', + path: "page", + component: "views/permission/page", + name: "PagePermission", meta: { - title: 'Page Permission', - roles: ['admin'] + title: "Page Permission", + roles: ["admin"] } }, { - path: 'directive', - component: 'views/permission/directive', - name: 'DirectivePermission', + path: "directive", + component: "views/permission/directive", + name: "DirectivePermission", meta: { - title: 'Directive Permission' + title: "Directive Permission" } }, { - path: 'role', - component: 'views/permission/role', - name: 'RolePermission', + path: "role", + component: "views/permission/role", + name: "RolePermission", meta: { - title: 'Role Permission', - roles: ['admin'] + title: "Role Permission", + roles: ["admin"] } } ] }, { - path: '/icon', - component: 'layout/Layout', + path: "/icon", + component: "layout/Layout", children: [ { - path: 'index', - component: 'views/icons/index', - name: 'Icons', - meta: { title: 'Icons', icon: 'icon', noCache: true } + path: "index", + component: "views/icons/index", + name: "Icons", + meta: { title: "Icons", icon: "icon", noCache: true } } ] }, { - path: '/components', - component: 'layout/Layout', - redirect: 'noRedirect', - name: 'ComponentDemo', + path: "/components", + component: "layout/Layout", + redirect: "noRedirect", + name: "ComponentDemo", meta: { - title: 'Components', - icon: 'component' + title: "Components", + icon: "component" }, children: [ { - path: 'tinymce', - component: 'views/components-demo/tinymce', - name: 'TinymceDemo', - meta: { title: 'Tinymce' } + path: "tinymce", + component: "views/components-demo/tinymce", + name: "TinymceDemo", + meta: { title: "Tinymce" } }, { - path: 'markdown', - component: 'views/components-demo/markdown', - name: 'MarkdownDemo', - meta: { title: 'Markdown' } + path: "markdown", + component: "views/components-demo/markdown", + name: "MarkdownDemo", + meta: { title: "Markdown" } }, { - path: 'json-editor', - component: 'views/components-demo/json-editor', - name: 'JsonEditorDemo', - meta: { title: 'Json Editor' } + path: "json-editor", + component: "views/components-demo/json-editor", + name: "JsonEditorDemo", + meta: { title: "Json Editor" } }, { - path: 'split-pane', - component: 'views/components-demo/split-pane', - name: 'SplitpaneDemo', - meta: { title: 'SplitPane' } + path: "split-pane", + component: "views/components-demo/split-pane", + name: "SplitpaneDemo", + meta: { title: "SplitPane" } }, { - path: 'avatar-upload', - component: 'views/components-demo/avatar-upload', - name: 'AvatarUploadDemo', - meta: { title: 'Avatar Upload' } + path: "avatar-upload", + component: "views/components-demo/avatar-upload", + name: "AvatarUploadDemo", + meta: { title: "Avatar Upload" } }, { - path: 'dropzone', - component: 'views/components-demo/dropzone', - name: 'DropzoneDemo', - meta: { title: 'Dropzone' } + path: "dropzone", + component: "views/components-demo/dropzone", + name: "DropzoneDemo", + meta: { title: "Dropzone" } }, { - path: 'sticky', - component: 'views/components-demo/sticky', - name: 'StickyDemo', - meta: { title: 'Sticky' } + path: "sticky", + component: "views/components-demo/sticky", + name: "StickyDemo", + meta: { title: "Sticky" } }, { - path: 'count-to', - component: 'views/components-demo/count-to', - name: 'CountToDemo', - meta: { title: 'Count To' } + path: "count-to", + component: "views/components-demo/count-to", + name: "CountToDemo", + meta: { title: "Count To" } }, { - path: 'mixin', - component: 'views/components-demo/mixin', - name: 'ComponentMixinDemo', - meta: { title: 'componentMixin' } + path: "mixin", + component: "views/components-demo/mixin", + name: "ComponentMixinDemo", + meta: { title: "componentMixin" } }, { - path: 'back-to-top', - component: 'views/components-demo/back-to-top', - name: 'BackToTopDemo', - meta: { title: 'Back To Top' } + path: "back-to-top", + component: "views/components-demo/back-to-top", + name: "BackToTopDemo", + meta: { title: "Back To Top" } }, { - path: 'drag-dialog', - component: 'views/components-demo/drag-dialog', - name: 'DragDialogDemo', - meta: { title: 'Drag Dialog' } + path: "drag-dialog", + component: "views/components-demo/drag-dialog", + name: "DragDialogDemo", + meta: { title: "Drag Dialog" } }, { - path: 'drag-select', - component: 'views/components-demo/drag-select', - name: 'DragSelectDemo', - meta: { title: 'Drag Select' } + path: "drag-select", + component: "views/components-demo/drag-select", + name: "DragSelectDemo", + meta: { title: "Drag Select" } }, { - path: 'dnd-list', - component: 'views/components-demo/dnd-list', - name: 'DndListDemo', - meta: { title: 'Dnd List' } + path: "dnd-list", + component: "views/components-demo/dnd-list", + name: "DndListDemo", + meta: { title: "Dnd List" } }, { - path: 'drag-kanban', - component: 'views/components-demo/drag-kanban', - name: 'DragKanbanDemo', - meta: { title: 'Drag Kanban' } + path: "drag-kanban", + component: "views/components-demo/drag-kanban", + name: "DragKanbanDemo", + meta: { title: "Drag Kanban" } } ] }, { - path: '/charts', - component: 'layout/Layout', - redirect: 'noRedirect', - name: 'Charts', + path: "/charts", + component: "layout/Layout", + redirect: "noRedirect", + name: "Charts", meta: { - title: 'Charts', - icon: 'chart' + title: "Charts", + icon: "chart" }, children: [ { - path: 'keyboard', - component: 'views/charts/keyboard', - name: 'KeyboardChart', - meta: { title: 'Keyboard Chart', noCache: true } + path: "keyboard", + component: "views/charts/keyboard", + name: "KeyboardChart", + meta: { title: "Keyboard Chart", noCache: true } }, { - path: 'line', - component: 'views/charts/line', - name: 'LineChart', - meta: { title: 'Line Chart', noCache: true } + path: "line", + component: "views/charts/line", + name: "LineChart", + meta: { title: "Line Chart", noCache: true } }, { - path: 'mixchart', - component: 'views/charts/mixChart', - name: 'MixChart', - meta: { title: 'Mix Chart', noCache: true } + path: "mixchart", + component: "views/charts/mixChart", + name: "MixChart", + meta: { title: "Mix Chart", noCache: true } } ] }, { - path: '/nested', - component: 'layout/Layout', - redirect: '/nested/menu1/menu1-1', - name: 'Nested', + path: "/nested", + component: "layout/Layout", + redirect: "/nested/menu1/menu1-1", + name: "Nested", meta: { - title: 'Nested', - icon: 'nested' + title: "Nested", + icon: "nested" }, children: [ { - path: 'menu1', - component: 'views/nested/menu1/index', - name: 'Menu1', - meta: { title: 'Menu1' }, - redirect: '/nested/menu1/menu1-1', + path: "menu1", + component: "views/nested/menu1/index", + name: "Menu1", + meta: { title: "Menu1" }, + redirect: "/nested/menu1/menu1-1", children: [ { - path: 'menu1-1', - component: 'views/nested/menu1/menu1-1', - name: 'Menu1-1', - meta: { title: 'Menu1-1' } + path: "menu1-1", + component: "views/nested/menu1/menu1-1", + name: "Menu1-1", + meta: { title: "Menu1-1" } }, { - path: 'menu1-2', - component: 'views/nested/menu1/menu1-2', - name: 'Menu1-2', - redirect: '/nested/menu1/menu1-2/menu1-2-1', - meta: { title: 'Menu1-2' }, + path: "menu1-2", + component: "views/nested/menu1/menu1-2", + name: "Menu1-2", + redirect: "/nested/menu1/menu1-2/menu1-2-1", + meta: { title: "Menu1-2" }, children: [ { - path: 'menu1-2-1', - component: 'views/nested/menu1/menu1-2/menu1-2-1', - name: 'Menu1-2-1', - meta: { title: 'Menu1-2-1' } + path: "menu1-2-1", + component: "views/nested/menu1/menu1-2/menu1-2-1", + name: "Menu1-2-1", + meta: { title: "Menu1-2-1" } }, { - path: 'menu1-2-2', - component: 'views/nested/menu1/menu1-2/menu1-2-2', - name: 'Menu1-2-2', - meta: { title: 'Menu1-2-2' } + path: "menu1-2-2", + component: "views/nested/menu1/menu1-2/menu1-2-2", + name: "Menu1-2-2", + meta: { title: "Menu1-2-2" } } ] }, { - path: 'menu1-3', - component: 'views/nested/menu1/menu1-3', - name: 'Menu1-3', - meta: { title: 'Menu1-3' } + path: "menu1-3", + component: "views/nested/menu1/menu1-3", + name: "Menu1-3", + meta: { title: "Menu1-3" } } ] }, { - path: 'menu2', - name: 'Menu2', - component: 'views/nested/menu2/index', - meta: { title: 'Menu2' } + path: "menu2", + name: "Menu2", + component: "views/nested/menu2/index", + meta: { title: "Menu2" } } ] }, { - path: '/example', - component: 'layout/Layout', - redirect: '/example/list', - name: 'Example', + path: "/example", + component: "layout/Layout", + redirect: "/example/list", + name: "Example", meta: { - title: 'Example', - icon: 'example' + title: "Example", + icon: "example" }, children: [ { - path: 'create', - component: 'views/example/create', - name: 'CreateArticle', - meta: { title: 'Create Article', icon: 'edit' } + path: "create", + component: "views/example/create", + name: "CreateArticle", + meta: { title: "Create Article", icon: "edit" } }, { - path: 'edit/:id(\\d+)', - component: 'views/example/edit', - name: 'EditArticle', - meta: { title: 'Edit Article', noCache: true }, + path: "edit/:id(\\d+)", + component: "views/example/edit", + name: "EditArticle", + meta: { title: "Edit Article", noCache: true }, hidden: true }, { - path: 'list', - component: 'views/example/list', - name: 'ArticleList', - meta: { title: 'Article List', icon: 'list' } + path: "list", + component: "views/example/list", + name: "ArticleList", + meta: { title: "Article List", icon: "list" } } ] }, { - path: '/tab', - component: 'layout/Layout', + path: "/tab", + component: "layout/Layout", children: [ { - path: 'index', - component: 'views/tab/index', - name: 'Tab', - meta: { title: 'Tab', icon: 'tab' } + path: "index", + component: "views/tab/index", + name: "Tab", + meta: { title: "Tab", icon: "tab" } } ] }, { - path: '/error', - component: 'layout/Layout', - redirect: 'noRedirect', - name: 'ErrorPages', + path: "/error", + component: "layout/Layout", + redirect: "noRedirect", + name: "ErrorPages", meta: { - title: 'Error Pages', - icon: '404' + title: "Error Pages", + icon: "404" }, children: [ { - path: '401', - component: 'views/error-page/401', - name: 'Page401', - meta: { title: 'Page 401', noCache: true } + path: "401", + component: "views/error-page/401", + name: "Page401", + meta: { title: "Page 401", noCache: true } }, { - path: '404', - component: 'views/error-page/404', - name: 'Page404', - meta: { title: 'Page 404', noCache: true } + path: "404", + component: "views/error-page/404", + name: "Page404", + meta: { title: "Page 404", noCache: true } } ] }, { - path: '/error-log', - component: 'layout/Layout', - redirect: 'noRedirect', + path: "/error-log", + component: "layout/Layout", + redirect: "noRedirect", children: [ { - path: 'log', - component: 'views/error-log/index', - name: 'ErrorLog', - meta: { title: 'Error Log', icon: 'bug' } + path: "log", + component: "views/error-log/index", + name: "ErrorLog", + meta: { title: "Error Log", icon: "bug" } } ] }, { - path: '/excel', - component: 'layout/Layout', - redirect: '/excel/export-excel', - name: 'Excel', + path: "/excel", + component: "layout/Layout", + redirect: "/excel/export-excel", + name: "Excel", meta: { - title: 'Excel', - icon: 'excel' + title: "Excel", + icon: "excel" }, children: [ { - path: 'export-excel', - component: 'views/excel/export-excel', - name: 'ExportExcel', - meta: { title: 'Export Excel' } + path: "export-excel", + component: "views/excel/export-excel", + name: "ExportExcel", + meta: { title: "Export Excel" } }, { - path: 'export-selected-excel', - component: 'views/excel/select-excel', - name: 'SelectExcel', - meta: { title: 'Select Excel' } + path: "export-selected-excel", + component: "views/excel/select-excel", + name: "SelectExcel", + meta: { title: "Select Excel" } }, { - path: 'export-merge-header', - component: 'views/excel/merge-header', - name: 'MergeHeader', - meta: { title: 'Merge Header' } + path: "export-merge-header", + component: "views/excel/merge-header", + name: "MergeHeader", + meta: { title: "Merge Header" } }, { - path: 'upload-excel', - component: 'views/excel/upload-excel', - name: 'UploadExcel', - meta: { title: 'Upload Excel' } + path: "upload-excel", + component: "views/excel/upload-excel", + name: "UploadExcel", + meta: { title: "Upload Excel" } } ] }, { - path: '/zip', - component: 'layout/Layout', - redirect: '/zip/download', + path: "/zip", + component: "layout/Layout", + redirect: "/zip/download", alwaysShow: true, - meta: { title: 'Zip', icon: 'zip' }, + meta: { title: "Zip", icon: "zip" }, children: [ { - path: 'download', - component: 'views/zip/index', - name: 'ExportZip', - meta: { title: 'Export Zip' } + path: "download", + component: "views/zip/index", + name: "ExportZip", + meta: { title: "Export Zip" } } ] }, { - path: '/pdf', - component: 'layout/Layout', - redirect: '/pdf/index', + path: "/pdf", + component: "layout/Layout", + redirect: "/pdf/index", children: [ { - path: 'index', - component: 'views/pdf/index', - name: 'PDF', - meta: { title: 'PDF', icon: 'pdf' } + path: "index", + component: "views/pdf/index", + name: "PDF", + meta: { title: "PDF", icon: "pdf" } } ] }, { - path: '/pdf/download', - component: 'views/pdf/download', + path: "/pdf/download", + component: "views/pdf/download", hidden: true }, { - path: '/theme', - component: 'layout/Layout', - redirect: 'noRedirect', + path: "/theme", + component: "layout/Layout", + redirect: "noRedirect", children: [ { - path: 'index', - component: 'views/theme/index', - name: 'Theme', - meta: { title: 'Theme', icon: 'theme' } + path: "index", + component: "views/theme/index", + name: "Theme", + meta: { title: "Theme", icon: "theme" } } ] }, { - path: '/clipboard', - component: 'layout/Layout', - redirect: 'noRedirect', + path: "/clipboard", + component: "layout/Layout", + redirect: "noRedirect", children: [ { - path: 'index', - component: 'views/clipboard/index', - name: 'ClipboardDemo', - meta: { title: 'Clipboard Demo', icon: 'clipboard' } + path: "index", + component: "views/clipboard/index", + name: "ClipboardDemo", + meta: { title: "Clipboard Demo", icon: "clipboard" } } ] }, { - path: '/i18n', - component: 'layout/Layout', + path: "/i18n", + component: "layout/Layout", children: [ { - path: 'index', - component: 'views/i18n-demo/index', - name: 'I18n', - meta: { title: 'I18n', icon: 'international' } + path: "index", + component: "views/i18n-demo/index", + name: "I18n", + meta: { title: "I18n", icon: "international" } } ] }, { - path: 'external-link', - component: 'layout/Layout', + path: "external-link", + component: "layout/Layout", children: [ { - path: 'https://github.com/PanJiaChen/vue-element-admin', - meta: { title: 'External Link', icon: 'link' } + path: "https://github.com/PanJiaChen/vue-element-admin", + meta: { title: "External Link", icon: "link" } } ] }, - { path: '*', redirect: '/404', hidden: true } -] + { path: "*", redirect: "/404", hidden: true } +]; diff --git a/mock/user.js b/mock/user.js index 43f93a04..c5760a05 100644 --- a/mock/user.js +++ b/mock/user.js @@ -1,84 +1,85 @@ - const tokens = { admin: { - token: 'admin-token' + token: "admin-token" }, editor: { - token: 'editor-token' + token: "editor-token" } -} +}; const users = { - 'admin-token': { - roles: ['admin'], - introduction: 'I am a super administrator', - avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', - name: 'Super Admin' + "admin-token": { + roles: ["admin"], + introduction: "I am a super administrator", + avatar: + "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", + name: "Super Admin" }, - 'editor-token': { - roles: ['editor'], - introduction: 'I am an editor', - avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif', - name: 'Normal Editor' + "editor-token": { + roles: ["editor"], + introduction: "I am an editor", + avatar: + "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif", + name: "Normal Editor" } -} +}; export default [ // user login { - url: '/user/login', - type: 'post', + url: "/user/login", + type: "post", response: config => { - const { username } = config.body - const token = tokens[username] + const { username } = config.body; + const token = tokens[username]; // mock error if (!token) { return { code: 60204, - message: 'Account and password are incorrect.' - } + message: "Account and password are incorrect." + }; } return { code: 20000, data: token - } + }; } }, // get user info { - url: '/user/info\.*', - type: 'get', + url: "/user/info.*", + type: "get", response: config => { - const { token } = config.query - const info = users[token] + const { token } = config.query; + const info = users[token]; // mock error if (!info) { return { code: 50008, - message: 'Login failed, unable to get user details.' - } + message: "Login failed, unable to get user details." + }; } return { code: 20000, data: info - } + }; } }, // user logout { - url: '/user/logout', - type: 'post', + url: "/user/logout", + type: "post", response: _ => { return { code: 20000, - data: 'success' - } + data: "success" + }; } } -] +]; diff --git a/package.json b/package.json index 8fbbf88e..e076e502 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "test:unit": "jest --clearCache && vue-cli-service test:unit", "test:ci": "npm run lint && npm run test:unit", "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml", + "format": "prettier \"./{src,tests,mock}/{**/*,*}.{ts,spec.ts,vue,js,spec.js}\" --write", "new": "plop" }, "husky": { @@ -86,7 +87,8 @@ "chokidar": "2.1.5", "connect": "3.6.6", "eslint": "5.15.3", - "eslint-plugin-vue": "5.2.2", + "eslint-config-prettier": "^4.3.0", + "eslint-plugin-vue": "^5.2.2", "html-webpack-plugin": "3.2.0", "husky": "1.3.1", "lint-staged": "8.1.5", diff --git a/src/App.vue b/src/App.vue index ec9032c1..ac6b216b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -6,6 +6,6 @@ diff --git a/src/api/article.js b/src/api/article.js index f54b8af6..57a97be8 100644 --- a/src/api/article.js +++ b/src/api/article.js @@ -1,41 +1,41 @@ -import request from '@/utils/request' +import request from "@/utils/request"; export function fetchList(query) { return request({ - url: '/article/list', - method: 'get', + url: "/article/list", + method: "get", params: query - }) + }); } export function fetchArticle(id) { return request({ - url: '/article/detail', - method: 'get', + url: "/article/detail", + method: "get", params: { id } - }) + }); } export function fetchPv(pv) { return request({ - url: '/article/pv', - method: 'get', + url: "/article/pv", + method: "get", params: { pv } - }) + }); } export function createArticle(data) { return request({ - url: '/article/create', - method: 'post', + url: "/article/create", + method: "post", data - }) + }); } export function updateArticle(data) { return request({ - url: '/article/update', - method: 'post', + url: "/article/update", + method: "post", data - }) + }); } diff --git a/src/api/qiniu.js b/src/api/qiniu.js index a0375844..c8431009 100644 --- a/src/api/qiniu.js +++ b/src/api/qiniu.js @@ -1,8 +1,8 @@ -import request from '@/utils/request' +import request from "@/utils/request"; export function getToken() { return request({ - url: '/qiniu/upload/token', // 假地址 自行替换 - method: 'get' - }) + url: "/qiniu/upload/token", // 假地址 自行替换 + method: "get" + }); } diff --git a/src/api/remote-search.js b/src/api/remote-search.js index c7e19117..2e9eb806 100644 --- a/src/api/remote-search.js +++ b/src/api/remote-search.js @@ -1,17 +1,17 @@ -import request from '@/utils/request' +import request from "@/utils/request"; export function searchUser(name) { return request({ - url: '/search/user', - method: 'get', + url: "/search/user", + method: "get", params: { name } - }) + }); } export function transactionList(query) { return request({ - url: '/transaction/list', - method: 'get', + url: "/transaction/list", + method: "get", params: query - }) + }); } diff --git a/src/api/role.js b/src/api/role.js index f6a983f1..f865263b 100644 --- a/src/api/role.js +++ b/src/api/role.js @@ -1,38 +1,38 @@ -import request from '@/utils/request' +import request from "@/utils/request"; export function getRoutes() { return request({ - url: '/routes', - method: 'get' - }) + url: "/routes", + method: "get" + }); } export function getRoles() { return request({ - url: '/roles', - method: 'get' - }) + url: "/roles", + method: "get" + }); } export function addRole(data) { return request({ - url: '/role', - method: 'post', + url: "/role", + method: "post", data - }) + }); } export function updateRole(id, data) { return request({ url: `/role/${id}`, - method: 'put', + method: "put", data - }) + }); } export function deleteRole(id) { return request({ url: `/role/${id}`, - method: 'delete' - }) + method: "delete" + }); } diff --git a/src/api/user.js b/src/api/user.js index de69f707..4a1b593d 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -1,24 +1,24 @@ -import request from '@/utils/request' +import request from "@/utils/request"; export function login(data) { return request({ - url: '/user/login', - method: 'post', + url: "/user/login", + method: "post", data - }) + }); } export function getInfo(token) { return request({ - url: '/user/info', - method: 'get', + url: "/user/info", + method: "get", params: { token } - }) + }); } export function logout() { return request({ - url: '/user/logout', - method: 'post' - }) + url: "/user/logout", + method: "post" + }); } diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue index 36522f4a..eb313d5d 100644 --- a/src/components/BackToTop/index.vue +++ b/src/components/BackToTop/index.vue @@ -1,14 +1,31 @@ diff --git a/src/components/ErrorLog/index.vue b/src/components/ErrorLog/index.vue index 6119c037..5cf626b9 100644 --- a/src/components/ErrorLog/index.vue +++ b/src/components/ErrorLog/index.vue @@ -1,6 +1,10 @@ - diff --git a/src/views/clipboard/index.vue b/src/views/clipboard/index.vue index e78c6359..b40ec0c9 100644 --- a/src/views/clipboard/index.vue +++ b/src/views/clipboard/index.vue @@ -2,14 +2,31 @@
- - + + copy - - + + copy @@ -18,32 +35,31 @@ - diff --git a/src/views/components-demo/avatar-upload.vue b/src/views/components-demo/avatar-upload.vue index 41bb9bc7..41e167e2 100644 --- a/src/views/components-demo/avatar-upload.vue +++ b/src/views/components-demo/avatar-upload.vue @@ -1,13 +1,22 @@ - diff --git a/src/views/components-demo/back-to-top.vue b/src/views/components-demo/back-to-top.vue index df5370be..9ab1057a 100644 --- a/src/views/components-demo/back-to-top.vue +++ b/src/views/components-demo/back-to-top.vue @@ -1,10 +1,13 @@ - diff --git a/src/views/components-demo/dnd-list.vue b/src/views/components-demo/dnd-list.vue index e299fa68..61cfa114 100644 --- a/src/views/components-demo/dnd-list.vue +++ b/src/views/components-demo/dnd-list.vue @@ -1,39 +1,46 @@ - diff --git a/src/views/components-demo/drag-dialog.vue b/src/views/components-demo/drag-dialog.vue index c815b282..698239c8 100644 --- a/src/views/components-demo/drag-dialog.vue +++ b/src/views/components-demo/drag-dialog.vue @@ -3,9 +3,19 @@ open a Drag Dialog - + - + @@ -17,45 +27,50 @@ diff --git a/src/views/components-demo/drag-kanban.vue b/src/views/components-demo/drag-kanban.vue index 943be455..7d732148 100644 --- a/src/views/components-demo/drag-kanban.vue +++ b/src/views/components-demo/drag-kanban.vue @@ -1,40 +1,58 @@ - diff --git a/src/views/components-demo/drag-select.vue b/src/views/components-demo/drag-select.vue index 905ecb94..6caa5ba9 100644 --- a/src/views/components-demo/drag-select.vue +++ b/src/views/components-demo/drag-select.vue @@ -1,7 +1,17 @@ diff --git a/src/views/components-demo/dropzone.vue b/src/views/components-demo/dropzone.vue index a8c10400..e70d78e4 100644 --- a/src/views/components-demo/dropzone.vue +++ b/src/views/components-demo/dropzone.vue @@ -1,31 +1,39 @@ - diff --git a/src/views/components-demo/json-editor.vue b/src/views/components-demo/json-editor.vue index 85bf3834..e9d21ec6 100644 --- a/src/views/components-demo/json-editor.vue +++ b/src/views/components-demo/json-editor.vue @@ -1,10 +1,16 @@ - diff --git a/src/views/components-demo/markdown.vue b/src/views/components-demo/markdown.vue index 25cf3e37..4ad7f9a7 100644 --- a/src/views/components-demo/markdown.vue +++ b/src/views/components-demo/markdown.vue @@ -1,12 +1,17 @@ diff --git a/src/views/components-demo/mixin.vue b/src/views/components-demo/mixin.vue index c64a073a..4d3ca773 100644 --- a/src/views/components-demo/mixin.vue +++ b/src/views/components-demo/mixin.vue @@ -49,7 +49,12 @@
- + 标题 @@ -64,7 +69,11 @@ 图片hover效果
- + vue-element-admin
@@ -103,7 +112,11 @@ Share
- +
@@ -112,14 +125,14 @@ diff --git a/src/views/components-demo/split-pane.vue b/src/views/components-demo/split-pane.vue index 7dba353f..59ba5995 100644 --- a/src/views/components-demo/split-pane.vue +++ b/src/views/components-demo/split-pane.vue @@ -1,9 +1,13 @@ diff --git a/src/views/dashboard/admin/components/TransactionTable.vue b/src/views/dashboard/admin/components/TransactionTable.vue index d07b0edf..aa6a95c9 100644 --- a/src/views/dashboard/admin/components/TransactionTable.vue +++ b/src/views/dashboard/admin/components/TransactionTable.vue @@ -11,7 +11,7 @@ - diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 1720ea8f..5e950769 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -5,27 +5,25 @@ diff --git a/src/views/documentation/index.vue b/src/views/documentation/index.vue index 0f4c4d92..102e632d 100644 --- a/src/views/documentation/index.vue +++ b/src/views/documentation/index.vue @@ -4,43 +4,77 @@ class="document-btn" target="_blank" href="https://panjiachen.github.io/vue-element-admin-site/" - >Documentation + >Documentation Github Repository + >Github Repository 国内文档 - + >国内文档 + diff --git a/src/views/error-page/401.vue b/src/views/error-page/401.vue index 032e808f..cc7f676b 100644 --- a/src/views/error-page/401.vue +++ b/src/views/error-page/401.vue @@ -21,79 +21,87 @@ -
  • 点我看图
  • +
  • + 点我看图 +
  • - Girl has dropped her ice cream. + Girl has dropped her ice cream. - + + + diff --git a/src/views/error-page/404.vue b/src/views/error-page/404.vue index 1791f55a..cb5c47ce 100644 --- a/src/views/error-page/404.vue +++ b/src/views/error-page/404.vue @@ -2,18 +2,43 @@
    - 404 - 404 - 404 - 404 + 404 + 404 + 404 + 404
    OOPS!
    -
    All rights reserved - wallstreetcn +
    + All rights reserved + wallstreetcn
    {{ message }}
    -
    Please check that the URL you entered is correct, or click the button below to return to the homepage.
    +
    + Please check that the URL you entered is correct, or click the button + below to return to the homepage. +
    Back to home
    @@ -21,20 +46,19 @@ diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 5fb3f6e3..cc8e0655 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -1,7 +1,13 @@ - diff --git a/src/views/permission/page.vue b/src/views/permission/page.vue index 5291a782..07271722 100644 --- a/src/views/permission/page.vue +++ b/src/views/permission/page.vue @@ -5,15 +5,15 @@ diff --git a/src/views/permission/role.vue b/src/views/permission/role.vue index 38e085e5..bfa27070 100644 --- a/src/views/permission/role.vue +++ b/src/views/permission/role.vue @@ -20,13 +20,20 @@ - + @@ -34,7 +41,7 @@ @@ -52,7 +59,9 @@
    - Cancel + Cancel Confirm
    @@ -60,16 +69,22 @@ diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue index 87e4f94f..326985f8 100644 --- a/src/views/profile/index.vue +++ b/src/views/profile/index.vue @@ -2,7 +2,6 @@
    - @@ -22,47 +21,42 @@ -
    diff --git a/src/views/qiniu/upload.vue b/src/views/qiniu/upload.vue index 9dc9aeda..8b195c88 100644 --- a/src/views/qiniu/upload.vue +++ b/src/views/qiniu/upload.vue @@ -1,41 +1,47 @@ diff --git a/src/views/redirect/index.vue b/src/views/redirect/index.vue index db4c1d66..9357ce21 100644 --- a/src/views/redirect/index.vue +++ b/src/views/redirect/index.vue @@ -1,12 +1,12 @@ diff --git a/src/views/tab/components/TabPane.vue b/src/views/tab/components/TabPane.vue index 3fb1439e..1d61e65d 100644 --- a/src/views/tab/components/TabPane.vue +++ b/src/views/tab/components/TabPane.vue @@ -14,12 +14,14 @@ -