From 51b6c1086ec6ff56a08c663b300ba10d882991ee 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 000000000..0999755fa
--- /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 2120187bc..aa0ad1d96 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 085b24934..fd5b1f81e 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 8821cd61e..b97abfbbf 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 bc9d9ba79..1e5fcf586 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 db920ef52..1cdba1b7a 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();