该问题原因为 com.genersoft.iot.vmp.conf.GlobalResponseAdvice 类改变了 sse 响应体的数据结构,导致前端无法正确解析 sse 数据,调试后未发现 GlobalResponseAdvice 如何修改的 sse 数据结构,故根据 sse 消息体结构自定义实现了 sse 连接
81 lines
2.3 KiB
JavaScript
Executable File
81 lines
2.3 KiB
JavaScript
Executable File
import Vue from 'vue';
|
|
import App from './App.vue';
|
|
import ElementUI, {Notification} from 'element-ui';
|
|
import 'element-ui/lib/theme-chalk/index.css';
|
|
import router from './router/index.js';
|
|
import axios from 'axios';
|
|
import VueCookies from 'vue-cookies';
|
|
import VCharts from 'v-charts';
|
|
|
|
import VueClipboard from 'vue-clipboard2';
|
|
import Fingerprint2 from 'fingerprintjs2';
|
|
import VueClipboards from 'vue-clipboards';
|
|
import Contextmenu from "vue-contextmenujs"
|
|
import userService from "./components/service/UserService"
|
|
|
|
Vue.config.productionTip = false;
|
|
|
|
|
|
// 生成唯一ID
|
|
Fingerprint2.get(function (components) {
|
|
const values = components.map(function (component, index) {
|
|
if (index === 0) { //把微信浏览器里UA的wifi或4G等网络替换成空,不然切换网络会ID不一样
|
|
return component.value.replace(/\bNetType\/\w+\b/, '');
|
|
}
|
|
return component.value;
|
|
})
|
|
//console.log(values) //使用的浏览器信息npm
|
|
// 生成最终id
|
|
let port = window.location.port;
|
|
const fingerPrint = Fingerprint2.x64hash128(values.join(port), 31)
|
|
Vue.prototype.$browserId = fingerPrint;
|
|
console.log("浏览器 ID: " + fingerPrint);
|
|
});
|
|
|
|
Vue.use(VueClipboard);
|
|
Vue.use(ElementUI);
|
|
Vue.use(VueCookies);
|
|
Vue.use(VueClipboards);
|
|
|
|
Vue.prototype.$notify = Notification;
|
|
Vue.use(Contextmenu);
|
|
Vue.use(VCharts);
|
|
|
|
axios.defaults.baseURL = (process.env.NODE_ENV === 'development') ? process.env.BASE_API : (window.baseUrl ? window.baseUrl : "");
|
|
axios.defaults.withCredentials = true;
|
|
// api 返回401自动回登陆页面
|
|
axios.interceptors.response.use((response) => {
|
|
// 对响应数据做点什么
|
|
let token = response.headers["access-token"];
|
|
if (token) {
|
|
userService.setToken(token)
|
|
}
|
|
return response;
|
|
}, (error) => {
|
|
// 对响应错误做点什么
|
|
if (error.response.status === 401) {
|
|
console.log("Received 401 Response")
|
|
router.push('/login');
|
|
}
|
|
return Promise.reject(error);
|
|
});
|
|
axios.interceptors.request.use(
|
|
config => {
|
|
if (userService.getToken() != null && config.url !== "/api/user/login") {
|
|
config.headers['access-token'] = `${userService.getToken()}`;
|
|
}
|
|
return config;
|
|
},
|
|
error => {
|
|
return Promise.reject(error);
|
|
}
|
|
);
|
|
|
|
Vue.prototype.$axios = axios;
|
|
Vue.prototype.$cookies.config(60 * 30);
|
|
|
|
new Vue({
|
|
router: router,
|
|
render: h => h(App),
|
|
}).$mount('#app')
|