From f69dbe5d98cee443e82a8bd468e3609607b9cc52 Mon Sep 17 00:00:00 2001 From: pixel <303176530@qq.com> Date: Mon, 12 Oct 2020 12:06:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=80=E9=83=A8=E6=9B=B4=E6=96=B0=E5=92=8C?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=89=93=E5=BC=80=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/openDocument.js | 23 +++++++++++++++++++++++ web/package.json | 2 +- web/src/main.js | 2 +- web/src/utils/request.js | 9 ++++----- web/src/view/layout/index.vue | 11 +++++++++-- web/src/view/system/state.vue | 7 ++++++- 6 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 web/openDocument.js diff --git a/web/openDocument.js b/web/openDocument.js new file mode 100644 index 00000000..0999755f --- /dev/null +++ b/web/openDocument.js @@ -0,0 +1,23 @@ +/* + 商用代码公司自用产品无需授权 + 若作为代码出售的产品(任何涉及代码交付第三方作为后续开发)必须保留此脚本 + 或标注原作者信息 + 否则将依法维权 +*/ + +var child_process = require("child_process"); + +var url = "https://www.gin-vue-admin.com", + cmd = ''; +console.log(process.platform) +switch (process.platform) { + case 'win32': + cmd = 'start'; + child_process.exec(cmd + ' ' + url); + break; + + case 'darwin': + cmd = 'open'; + child_process.exec(cmd + ' ' + url); + break; +} \ No newline at end of file diff --git a/web/package.json b/web/package.json index 2120187b..aa0ad1d9 100644 --- a/web/package.json +++ b/web/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "scripts": { - "serve": "vue-cli-service serve", + "serve": "node openDocument.js && vue-cli-service serve", "build": "vue-cli-service build", "lint": "vue-cli-service lint" }, diff --git a/web/src/main.js b/web/src/main.js index 085b2493..fd5b1f81 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -54,7 +54,7 @@ auth(Vue) import uploader from 'vue-simple-uploader' Vue.use(uploader) -new Vue({ +export default new Vue({ render: h => h(App), router, store diff --git a/web/src/utils/request.js b/web/src/utils/request.js index 8821cd61..b97abfbb 100644 --- a/web/src/utils/request.js +++ b/web/src/utils/request.js @@ -1,12 +1,12 @@ import axios from 'axios'; // 引入axios -import { Message, Loading } from 'element-ui'; +import { Message } from 'element-ui'; import { store } from '@/store/index' +import context from '@/main.js' const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, timeout: 99999 }) let acitveAxios = 0 -let loadingInstance let timer const showLoading = () => { acitveAxios++ @@ -15,7 +15,7 @@ const showLoading = () => { } timer = setTimeout(() => { if (acitveAxios > 0) { - loadingInstance = Loading.service({ fullscreen: true }) + context.$bus.emit("showLoading") } }, 400); } @@ -24,13 +24,12 @@ const closeLoading = () => { acitveAxios-- if (acitveAxios <= 0) { clearTimeout(timer) - loadingInstance && loadingInstance.close() + context.$bus.emit("closeLoading") } } //http request 拦截器 service.interceptors.request.use( config => { - console.log(config) if (!config.donNotShowLoading) { showLoading() } diff --git a/web/src/view/layout/index.vue b/web/src/view/layout/index.vue index bc9d9ba7..1e5fcf58 100644 --- a/web/src/view/layout/index.vue +++ b/web/src/view/layout/index.vue @@ -58,11 +58,11 @@ - + - + @@ -106,6 +106,7 @@ export default { isMobile: false, isShadowBg: false, showPassword: false, + loadingFlag:false, pwdModify: {}, rules: { password: [ @@ -209,6 +210,12 @@ export default { } this.$bus.emit('collapse', this.isCollapse) this.$bus.emit('mobile', this.isMobile) + this.$bus.on("showLoading",()=>{ + this.loadingFlag = true + }) + this.$bus.on("closeLoading",()=>{ + this.loadingFlag = false + }) window.onresize = () => { return (() => { let screenWidth = document.body.clientWidth diff --git a/web/src/view/system/state.vue b/web/src/view/system/state.vue index db920ef5..1cdba1b7 100644 --- a/web/src/view/system/state.vue +++ b/web/src/view/system/state.vue @@ -138,6 +138,7 @@ export default { name: "State", data() { return { + timer:null, state: {}, colors: [ { color: "#5cb87a", percentage: 20 }, @@ -148,10 +149,14 @@ export default { }, created() { this.reload(); - setInterval(() => { + this.timer = setInterval(() => { this.reload(); }, 1000*10); }, + beforeDestroy(){ + clearInterval(this.timer) + this.timer = null + }, methods: { async reload() { const { data } = await getSystemState(); -- GitLab