From 737d9fc9ee40ba0c8e8c51a5e687ac1a4b95285a Mon Sep 17 00:00:00 2001 From: Pan Date: Tue, 28 May 2019 11:07:36 +0800 Subject: [PATCH 01/12] perf: default not set withCredentials --- src/utils/request.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/request.js b/src/utils/request.js index 71d5ea4..2fb95ac 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -6,7 +6,7 @@ import { getToken } from '@/utils/auth' // create an axios instance const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url - withCredentials: true, // send cookies when cross-domain requests + // withCredentials: true, // send cookies when cross-domain requests timeout: 5000 // request timeout }) From b9202ade9b913a2333fd86d622d4326f9c7698ba Mon Sep 17 00:00:00 2001 From: Stephy Cat Date: Mon, 1 Jul 2019 23:38:18 +0800 Subject: [PATCH 02/12] chore: allow dynamic set port (#389) --- vue.config.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vue.config.js b/vue.config.js index 18610d7..4244cfc 100644 --- a/vue.config.js +++ b/vue.config.js @@ -7,10 +7,13 @@ function resolve(dir) { } const name = defaultSettings.title || 'vue Admin Template' // page title + // If your port is set to 80, // use administrator privileges to execute the command line. // For example, Mac: sudo npm run -const port = 9528 // dev port +// You can change the port by the following methods: +// port = 9528 npm run dev OR npm run dev --port = 9528 +const port = process.env.port || process.env.npm_config_port || 9528 // dev port // All configuration item explanations can be find in https://cli.vuejs.org/config/ module.exports = { From 44c0d705c595df21bb04a6c39c77c1a4eecd66c2 Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 4 Jul 2019 16:34:24 +0800 Subject: [PATCH 03/12] bump: update @vue/cli-plugin-eslint version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 817a244..6b8a33f 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@babel/core": "7.0.0", "@babel/register": "7.0.0", "@vue/cli-plugin-babel": "3.6.0", - "@vue/cli-plugin-eslint": "3.6.0", + "@vue/cli-plugin-eslint": "^3.9.1", "@vue/cli-plugin-unit-jest": "3.6.3", "@vue/cli-service": "3.6.0", "@vue/test-utils": "1.0.0-beta.29", From 00bfe07dc72b5cf3feee5ffe3874a29ed9cd71dc Mon Sep 17 00:00:00 2001 From: Pan Date: Thu, 4 Jul 2019 16:36:52 +0800 Subject: [PATCH 04/12] bump: update axios for security vulnerability --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6b8a33f..9403908 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml" }, "dependencies": { - "axios": "0.18.0", + "axios": "0.18.1", "element-ui": "2.7.2", "js-cookie": "2.2.0", "normalize.css": "7.0.0", From 65730989c489a2ec03948952ace74197aed50ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Tue, 22 Oct 2019 20:26:47 +0800 Subject: [PATCH 05/12] docs: add awesome-project --- README-zh.md | 8 +++++--- README.md | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README-zh.md b/README-zh.md index 32243a4..d248632 100644 --- a/README-zh.md +++ b/README-zh.md @@ -14,11 +14,13 @@ ## 相关项目 -[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) +- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) -[electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) +- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) -[vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) +- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) + +- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) 写了一个系列的教程配套文章,如何从零构建后一个完整的后台项目: diff --git a/README.md b/README.md index f15c935..b99f942 100644 --- a/README.md +++ b/README.md @@ -68,11 +68,13 @@ For `typescript` version, you can use [vue-typescript-admin-template](https://gi ## Related Project -[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) +- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin) -[electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) +- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin) -[vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) +- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) + +- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312) ## Browsers support From 0e8fa655684f0929785d0c99d3e87210613dafbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Tue, 22 Oct 2019 20:27:25 +0800 Subject: [PATCH 06/12] perf: VS Code support webpack alias file jump --- jsconfig.json | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 jsconfig.json diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..ed079e2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "paths": { + "@/*": ["src/*"] + } + }, + "exclude": ["node_modules", "dist"] +} From f32b49e6621029c434b4f3bf0139fb014e58594e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Tue, 22 Oct 2019 20:29:20 +0800 Subject: [PATCH 07/12] perf[utils.js]: perf parseTime function --- src/utils/index.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/utils/index.js b/src/utils/index.js index cd14bd5..7e3fc1a 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -6,7 +6,7 @@ * Parse the time to string * @param {(Object|string|number)} time * @param {string} cFormat - * @returns {string} + * @returns {string | null} */ export function parseTime(time, cFormat) { if (arguments.length === 0) { @@ -34,14 +34,11 @@ export function parseTime(time, cFormat) { 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] + const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => { + const value = formatObj[key] // Note: getDay() returns 0 on Sunday if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] } - if (result.length > 0 && value < 10) { - value = '0' + value - } - return value || 0 + return value.toString().padStart(2, '0') }) return time_str } From 5afac23d2fecfe6cfab14ec8efa273d02269adb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Tue, 22 Oct 2019 20:29:58 +0800 Subject: [PATCH 08/12] perf[SvgIcon]: change xlink:href to href --- src/components/SvgIcon/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue index b07ded2..9a3318e 100644 --- a/src/components/SvgIcon/index.vue +++ b/src/components/SvgIcon/index.vue @@ -1,7 +1,7 @@ From 35ea50deea84fb0b42c0246810ea08c3c5c70023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Fri, 25 Oct 2019 18:23:53 +0800 Subject: [PATCH 09/12] doc: perf zh docs --- src/main.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main.js b/src/main.js index 1175231..369623e 100644 --- a/src/main.js +++ b/src/main.js @@ -30,6 +30,8 @@ if (process.env.NODE_ENV === 'production') { // set ElementUI lang to EN Vue.use(ElementUI, { locale }) +// 如果想要中文版 element-ui,按如下方式声明 +// Vue.use(ElementUI) Vue.config.productionTip = false From dc5aa51577c4e432ff59fd711c1d2de99220993e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Fri, 25 Oct 2019 19:44:44 +0800 Subject: [PATCH 10/12] style: fix el-date-picker css style --- src/styles/element-ui.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/styles/element-ui.scss b/src/styles/element-ui.scss index 6af3bfd..0062411 100644 --- a/src/styles/element-ui.scss +++ b/src/styles/element-ui.scss @@ -42,3 +42,8 @@ display: block } } + +// to fix el-date-picker css style +.el-range-separator { + box-sizing: content-box; +} From 616957799001d5b161ea8bb9cd0846e6255863f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Sun, 29 Dec 2019 14:24:11 +0800 Subject: [PATCH 11/12] fix: logout reset state --- src/store/modules/user.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index cbb75a0..100da14 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -2,13 +2,20 @@ import { login, logout, getInfo } from '@/api/user' import { getToken, setToken, removeToken } from '@/utils/auth' import { resetRouter } from '@/router' -const state = { - token: getToken(), - name: '', - avatar: '' +const getDefaultState = () => { + return { + token: getToken(), + name: '', + avatar: '' + } } +const state = getDefaultState() + const mutations = { + RESET_STATE: (state) => { + Object.assign(state, getDefaultState()) + }, SET_TOKEN: (state, token) => { state.token = token }, @@ -61,7 +68,7 @@ const actions = { logout({ commit, state }) { return new Promise((resolve, reject) => { logout(state.token).then(() => { - commit('SET_TOKEN', '') + commit('RESET_STATE', '') removeToken() resetRouter() resolve() From f70f0675ba309fc2f33c06c0610d5a50bd1db00e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8A=B1=E8=A3=A4=E8=A1=A9?= Date: Sun, 29 Dec 2019 14:35:13 +0800 Subject: [PATCH 12/12] perf: refine code --- src/store/modules/user.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 100da14..8d86b68 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -68,9 +68,9 @@ const actions = { logout({ commit, state }) { return new Promise((resolve, reject) => { logout(state.token).then(() => { - commit('RESET_STATE', '') - removeToken() + removeToken() // must remove token first resetRouter() + commit('RESET_STATE') resolve() }).catch(error => { reject(error) @@ -81,8 +81,8 @@ const actions = { // remove token resetToken({ commit }) { return new Promise(resolve => { - commit('SET_TOKEN', '') - removeToken() + removeToken() // must remove token first + commit('RESET_STATE') resolve() }) }