Authored by 王涛

优化,删除多余文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="public/shui.png"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>智能综合监控平台</title>
<script src="public/lib/vue/vue.global.prod.js"></script>
<script src="public/lib/vue/vue-router.global.prod.js"></script>
<script src="public/lib/vue/vuex.global.prod.js"></script>
<link href="public/lib/element-plus/index.css" rel="stylesheet">
<script src="public/lib/element-plus/index.full.js"></script>
<script src="public/lib/element-plus/zh-cn.js"></script>
<link href="public/lib/vant/index.css" rel="stylesheet">
<script src="public/lib/vant/vant.min.js"></script>
<script src="public/lib/axios/axios.min.js"></script>
<!-- <script src="public/lib/dayjs/dayjs.min.js"></script> -->
<script src="public/lib/jquery/jquery.min.js"></script>
<script src="public/lib/echarts/echarts.min.js"></script>
<script type="text/javascript">
let version = (new Date()).getTime();
let basrUrl = '/vue3/src/';
window.__ver = '?v=' + version;
window.__basrUrl = basrUrl
</script>
<!-- 全局样式 -->
<link href="public/common/common.css" rel="stylesheet">
<script type="module" src="src/script/appImport.js"></script>
<!-- <script type="module" src="public/utils/mic.js"></script> -->
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
}
</style>
</head>
<body>
<div id="app">
<router-view></router-view>
<!-- <div id="nav">
<p>
<router-link to="/vue3/test/">首页</router-link>&nbsp;&nbsp;&nbsp;
<router-link to="/vue3/test/About">关于</router-link>&nbsp;&nbsp;&nbsp;
<router-link to="/vue3/test/component">异步组件</router-link>&nbsp;&nbsp;&nbsp;
<router-link to="/vue3/test/store">状态管理</router-link>&nbsp;&nbsp;&nbsp;
</p>
<hr>
<div style="text-align: left;margin-left: 100px;height: 450px;">
<router-view></router-view>
</div>
</div>
<hr>
<div style="text-align: left;">
vuex状态演示<br>
$store.state :{{$store.state}} <br>
<el-button type="primary" @click="setCount">更改状态</el-button>
<br>
</div> -->
</div>
<script type="module" src="src/main.js"></script>
</body>
</html>
const ver = window.__ver || '';
Promise.all([
import('./store/index.js' + ver),
import('./router/index.js' + ver),
import('./app.js' + ver),
import('./script/global.js' + ver),
import('./script/http.js' + ver),
]).then((res) => {
// 创建vue3的实例
const app = Vue.createApp(res[2].default)
.use(res[0].default) // 挂载vuex
.use(res[1].default) // 挂载路由
.use(ElementPlus, {
locale: ElementPlus.lang.zhCn
})
.use(ElementPlus) // 加载ElementPlus
.use(vant) // 加载vant
.use(vant.Lazyload) // 加载vant
// 全局注册公共组件
.component('res-type-tree', Vue.defineAsyncComponent(() => myImport('components/common/restypetree/index')))
.component('machine-room',Vue.defineAsyncComponent(() => myImport('components/common/machineroom/index')));
app.config.globalProperties.$global = res[3].default
app.config.globalProperties.$http = res[4].default
app.mount('#app'); // 挂载Vue的app实例
})
// 直接放在Window里面好了。。。
window.myImport = (url) => {
return new Promise((resolve, reject) => {
const ver = window.__ver || ''
const baseUrl = window.__basrUrl || '/src/'
console.log("加载组件===>"+baseUrl + url)
// 先加载js
import(baseUrl + url + '.js' + ver).then((resjs) => {
const js = resjs.default
if (js.template === '') {
// 如果模板是空的,表示需要加载html作为模板
axios.get(baseUrl + url + '.html' + ver).then((resHTML) => {
js.template = resHTML.data
//console.log(js);
resolve(js)
})
} else {
// 否则直接使用js注册组件
//console.log(js);
resolve(js)
}
})
})
}
/**
* 系统公共配置项
*/
/*设置全局请求地址*/
const domainName = "http://127.0.0.1:8183";
var global = {};
global.common = {
domainName: domainName,
tokenKey: 'access_token', // 存放token的key
refreshToken: 'refresh_token', // 存放token的key
hasEnter: false // 登陆状态
};
global.showLoading = (callback) => {
const loading = ElementPlus.ElLoading.service({
lock: true,
text: '加载中...',
spinner: 'icon-mj',
background: 'rgba(0, 0, 0, 0.7)',
});
if (callback) {
callback(loading);
}
return loading;
}
global.showMsg = (msg, type = 'success') => {
ElementPlus.ElMessage.success({
message: msg,
type: type,
})
}
export default global
let http = {
proxy: null,
isJson: function(obj) {
var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() ==
"[object object]" &&
!obj.length;
return isjson;
},
reqErr : function(status){
if(status && status == '401'){
// 登录超时,刷新当前页面===>跳转到登录页面
window.location.reload();
}
},
post: function(requestUrl, data, callback) {
if(http.proxy == null){
const { proxy } = Vue.getCurrentInstance()
http.proxy = proxy;
}
const loading = http.proxy.$global.showLoading();
var access_token = 'access_token=' + http.getToken();
if (requestUrl.indexOf('?') == -1) {
requestUrl += '?' + access_token;
} else {
requestUrl += '&' + access_token;
}
$.ajax({
url: sessionStorage.getItem('domainName') + requestUrl,
method: "post",
processData: false,
contentType: "application/json;charset=UTF-8",
dataType: "JSON",
async: true,
data: JSON.stringify(data),
error: function(xhr, textStatus) {
loading.close();
console.log("==>",requestUrl, xhr, textStatus)
http.reqErr(textStatus.status);
},
success: function(data, textStatus, jqXHR) {
if (callback) {
callback(data);
}
loading.close()
//console.log("==>", requestUrl, jqXHR, textStatus)
}
});
},
get: function(requestUrl, data, callback,errFunc) {
if(http.proxy == null){
const { proxy } = Vue.getCurrentInstance()
http.proxy = proxy;
}
const loading = http.proxy.$global.showLoading();
var access_token = 'access_token=' + http.getToken();
if (requestUrl.indexOf('?') == -1) {
requestUrl += '?' + access_token;
} else {
requestUrl += '&' + access_token;
}
$.ajax({
url: sessionStorage.getItem('domainName') + requestUrl,
method: "get",
headers: {
"Authorization": "Bearer " + http.getToken() + ""
},
data: data,
error: function(xhr, textStatus) {
loading.close();
console.log("==>",requestUrl, xhr, textStatus)
http.reqErr(textStatus.status);
if(errFunc){
errFunc();
}
},
success: function(data, textStatus, jqXHR) {
if (callback) {
callback(data);
}
loading.close();
//console.log("==>", requestUrl, jqXHR, textStatus)
}
});
},
downloadFile(fileName, content) {
var filename = fileName;
var a = document.createElement('a')
var blob = new Blob([content])
a.download = filename
a.href = URL.createObjectURL(blob)
a.click()
URL.revokeObjectURL(blob)
},
getToken() {
return localStorage.getItem('access_token');
},
// showMsg(msg, type = 'success') {
// ElementPlus.ElMessage.success({
// message: msg,
// type: type,
// })
// },
// showLoading(callback) {
// const loading = ElementPlus.ElLoading.service({
// lock: true,
// text: '加载中...',
// spinner: 'el-icon-loading',
// background: 'rgba(0, 0, 0, 0.7)',
// });
// if (callback) {
// callback(loading);
// }
// return loading;
// }
}
export default http