优化 使用 Prettier 格式

This commit is contained in:
Suwings 2020-10-08 18:29:35 +08:00
parent bdb9a89437
commit 80629936bd
13 changed files with 298 additions and 301 deletions

View File

@ -1,37 +1,36 @@
module.exports = {
"env": {
"browser": true,
"commonjs": true,
"es6": true
},
"extends": "eslint:recommended",
"globals": {
"Atomics": "readonly",
"SharedArrayBuffer": "readonly",
"MCSERVER": "writeable",
"__dirname": "writeable",
"Buffer": "writeable",
"Vue": "readonly",
"MI": "writeable",
"MS": "writeable",
"TOOLS": "writeable",
"VIEW_MODEL": "writeable",
"RES": "readonly",
"PAGE": "writeable",
"$": "writeable",
"WS": "readonly",
"hex_md5": "readonly",
"process": "readonly"
},
"parserOptions": {
"ecmaVersion": 2018
},
"rules": {
"no-unused-vars": "warn",
"no-use-before-define": "warn",
"no-undef": "warn",
"no-use-before-define": "off",
"no-prototype-builtins": "off",
}
};
env: {
browser: true,
commonjs: true,
es6: true
},
extends: "eslint:recommended",
globals: {
Atomics: "readonly",
SharedArrayBuffer: "readonly",
MCSERVER: "writeable",
__dirname: "writeable",
Buffer: "writeable",
Vue: "readonly",
MI: "writeable",
MS: "writeable",
TOOLS: "writeable",
VIEW_MODEL: "writeable",
RES: "readonly",
PAGE: "writeable",
$: "writeable",
WS: "readonly",
hex_md5: "readonly",
process: "readonly"
},
parserOptions: {
ecmaVersion: 2018
},
rules: {
"no-unused-vars": "warn",
"no-use-before-define": "warn",
"no-undef": "warn",
"no-use-before-define": "off",
"no-prototype-builtins": "off"
}
};

4
.gitignore vendored
View File

@ -1,4 +1,4 @@
# mineself files
# myself files
server/
users/
.vscode/
@ -6,7 +6,7 @@ testServer/
*.exe
*.zip
docker_temp/
toprettier.bat
# config files
users/*.json

View File

@ -9,7 +9,6 @@ const path = require("path");
const fs = require("fs");
const Docker = require("dockerode");
class ServerProcess extends EventEmitter {
constructor(args) {
super(args);

View File

@ -5,7 +5,6 @@ const mcPingProtocol = require("../../helper/MCPingProtocol");
const BASE_SERVER_DIR = "./server/";
class ServerManager extends EventEmitter {
constructor(args) {
super(args);

View File

@ -31,7 +31,7 @@ class RecordCommand {
else fs.writeFileSync(this.path, new Buffer(HISTORY_SIZE_LINE * 2).toString() + data);
}
readRecord(pstart = 0, length = 32, callback = () => { }) {
readRecord(pstart = 0, length = 32, callback = () => {}) {
if (!fs.existsSync(this.path)) return;
const fsstat = fs.statSync(this.path);
@ -54,7 +54,7 @@ class RecordCommand {
callback(resStr);
// 关闭文件
fs.close(fd, () => { });
fs.close(fd, () => {});
});
});
}

View File

@ -1,4 +1,3 @@
function send(res, info, value) {
let str = JSON.stringify({
ResponseKey: info,

View File

@ -171,7 +171,7 @@ router.post("/upload", (req, res) => {
let readStream = fs.createReadStream(uploadedPath);
let writeStream = fs.createWriteStream(dstPath);
readStream.pipe(writeStream);
fs.unlink(uploadedPath, () => { });
fs.unlink(uploadedPath, () => {});
res.send("Done");
} catch (err) {
res.status(500).send("上传虽然成功,但是处理文件出错: " + err);
@ -200,7 +200,7 @@ router.get("/download/:name", (req, res) => {
filename: encodeURIComponent(req.params.name.trim())
}
},
() => { }
() => {}
);
});

View File

@ -97,7 +97,7 @@
};
//设置头上显示什么 已舍弃
TOOLS.setHeaderTitle = function () { };
TOOLS.setHeaderTitle = function () {};
//Minecraft 服务器输出删除双S
TOOLS.deletDoubleS = function (text) {
@ -282,7 +282,7 @@
var _popWindCallback = null;
TOOLS.popWind = function (config) {
var popWinContext = $("#PopWinContext");
_popWindCallback = config.callback || function () { }; //全局的callback变量
_popWindCallback = config.callback || function () {}; //全局的callback变量
var css = config.style || {
display: "block"
};

View File

@ -1,33 +1,32 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no" />
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no" />
<title>MCSM 管理面板</title>
<link href="./common/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<title>MCSM 管理面板</title>
<link href="./common/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="common/css/action.css" rel="stylesheet" />
<link href="./common/css/common.css" rel="stylesheet" />
<link href="./common/css/block.css" rel="stylesheet" />
<link href="common/css/unit.css" rel="stylesheet" />
<link href="common/css/action.css" rel="stylesheet" />
<link href="./common/css/common.css" rel="stylesheet" />
<link href="./common/css/block.css" rel="stylesheet" />
<link href="common/css/unit.css" rel="stylesheet" />
<link href="common/xterm.css" rel="stylesheet" />
<script type="text/javascript" src="common/xterm.js"></script>
<link href="common/xterm.css" rel="stylesheet" />
<script type="text/javascript" src="common/xterm.js"></script>
<link href="./favicon.ico" rel="shortcut icon" />
<!--[if lt IE 9]>
<link href="./favicon.ico" rel="shortcut icon" />
<!--[if lt IE 9]>
<div id="Not_" class="show-ui" style="height: 40px; background-color: rgb(221, 79, 67); text-align: center; line-height: 40px; color: white">
<b>无法访问! 您的浏览器版本过低或是兼容模式,请使用最新/更高版本的浏览器: IE10+ chrome FireFox 等如果是国内浏览器请打开极速浏览模式webkit内核</b>
</div>
<![endif]-->
</head>
<!--
</head>
<!--
__ ___ __ ___
/ |/ /____________ ______ _____ _____ / |/ /___ _____ ____ _____ ____ _____
/ /|_/ / ___/ ___/ _ \/ ___/ | / / _ \/ ___/ / /|_/ / __ `/ __ \/ __ `/ __ `/ _ \/ ___/
@ -36,269 +35,276 @@
/____/
-->
<body>
<div id="MainContainer">
<div id="SideCol">
<div id="SideColMenu">
<div id="MasterLogo" class="HeaderItem" style="cursor: pointer">
<img src="common/logo.png" width="160px" height="100%" />
</div>
<div id="SideColMenuInfo">
Mcserver Manager
<br />
<div id="websocket2">
<div v-if="is"><span class="color-green">在线: </span>{{ MCSERVER.username }}</div>
<div v-else>offline (离线)</div>
<body>
<div id="MainContainer">
<div id="SideCol">
<div id="SideColMenu">
<div id="MasterLogo" class="HeaderItem" style="cursor: pointer">
<img src="common/logo.png" width="160px" height="100%" />
</div>
</div>
<div id="SideColFor">
<!--如果您想更改菜单名或功能,请查看 common/js/meum.js 文件-->
<a href="javascript:void(0);" v-for="item of items" :class="{ MeumSelect: item.select }"
v-on:click="onRedirect(item.link,item.api,item)">
<span class="glyphicon" :class="item.class" aria-hidden="true"></span>
<span v-text="item.name"></span>
<div id="SideColMenuInfo">
Mcserver Manager
<br />
<div id="websocket2">
<div v-if="is"><span class="color-green">在线: </span>{{ MCSERVER.username }}</div>
<div v-else>offline (离线)</div>
</div>
</div>
<div id="SideColFor">
<!--如果您想更改菜单名或功能,请查看 common/js/meum.js 文件-->
<a href="javascript:void(0);" v-for="item of items" :class="{ MeumSelect: item.select }" v-on:click="onRedirect(item.link,item.api,item)">
<span class="glyphicon" :class="item.class" aria-hidden="true"></span>
<span v-text="item.name"></span>
</a>
</div>
<a href="javascript:void(0);" onclick="PAGE.refresh()">
<span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
<span>刷新</span>
</a>
<a id="loginOut" href="javascript:void(0);" v-on:click="loginOut()">
<span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>
<span>退出</span>
</a>
</div>
<a href="javascript:void(0);" onclick="PAGE.refresh()">
<span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>
<span>刷新</span>
</a>
<a id="loginOut" href="javascript:void(0);" v-on:click="loginOut()">
<span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>
<span>退出</span>
</a>
</div>
</div>
<div id="Container">
<div id="ConsoleMain">
<!--可变动内嵌html区域开始-->
<div class="OneContainer">
<div class="row">
<div class="col-xs-12">
<h3 id="_TMP_LOADING">请稍等,正在加载...</h3>
<div id="Container">
<div id="ConsoleMain">
<!--可变动内嵌html区域开始-->
<div class="OneContainer">
<div class="row">
<div class="col-xs-12">
<h3 id="_TMP_LOADING">请稍等,正在加载...</h3>
</div>
</div>
</div>
</div>
<!--可变动内嵌html区域结束-->
</div>
</div>
</div>
<!--信息框HTML-->
<div id="ToolsInfo">
<transition name="fade">
<div class="ToolsInfo tools-info text-center show-ui" v-if="show" v-text="msg"></div>
</transition>
</div>
<!--页面加载进度条-->
<div class="Toolscon" id="ToolsPageLoading">
<div class="progress" style="height: 4px; line-height: 4px; background-color: inherit; border: 0px">
<div id="ToolsLoading" class="progress-bar progress-bar-success progress-bar-striped active"
style="width: 0%; height: 4px"></div>
</div>
</div>
<!-- 弹窗HTML -->
<div class="PopWin">
<div class="Panel">
<div id="PopWinTitle" class="PanelTitle">信息框</div>
<div class="PanelBody">
<div id="PopWinContext">
<!-- 动态 HTML -->
<p>正在加载信息框,请稍等...</p>
<!--可变动内嵌html区域结束-->
</div>
</div>
</div>
</div>
<!-- 黑屏 HTML -->
<div id="balckWarp" onclick="TOOLS.popWindClose(null);"></div>
<!-- 手机端导航球 -->
<div id="SidebarButton" v-on:click="operate()">
<div class="SidebarButtonWapper">
<!-- <span class="glyphicon " :class="!isExpand?'glyphicon-th-list':'glyphicon-list'" aria-hidden="true"></span> -->
<svg t="1583817080960" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="941" width="24" height="46">
<path
d="M393 475.7H176.5c-44.9 0-81.5-36.6-81.5-81.5V182.5c0-44.9 36.6-81.5 81.5-81.5H393c44.9 0 81.5 36.6 81.5 81.5v211.7c0 45-36.5 81.5-81.5 81.5zM176.5 155.4c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2H393c15 0 27.2-12.2 27.2-27.2V182.5c0-15-12.2-27.2-27.2-27.2l-216.5 0.1zM846.5 469.9H629.9c-44.9 0-81.5-36.6-81.5-81.5V176.7c0-44.9 36.6-81.5 81.5-81.5h216.6c44.9 0 81.5 36.6 81.5 81.5v211.7c0 44.9-36.6 81.5-81.5 81.5zM629.9 149.5c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2h216.6c15 0 27.2-12.2 27.2-27.2V176.7c0-15-12.2-27.2-27.2-27.2H629.9zM393 928.2H176.5c-44.9 0-81.5-36.6-81.5-81.5V635c0-44.9 36.6-81.5 81.5-81.5H393c44.9 0 81.5 36.6 81.5 81.5v211.7c0 45-36.5 81.5-81.5 81.5zM176.5 607.9c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2H393c15 0 27.2-12.2 27.2-27.2V635c0-15-12.2-27.2-27.2-27.2H176.5v0.1zM846.5 922.4H629.9c-44.9 0-81.5-36.6-81.5-81.5V629.2c0-44.9 36.6-81.5 81.5-81.5h216.6c44.9 0 81.5 36.6 81.5 81.5v211.7c0 44.9-36.6 81.5-81.5 81.5zM629.9 602c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2h216.6c15 0 27.2-12.2 27.2-27.2V629.2c0-15-12.2-27.2-27.2-27.2H629.9z"
fill="#ffffff" p-id="942"></path>
</svg>
<!--信息框HTML-->
<div id="ToolsInfo">
<transition name="fade">
<div class="ToolsInfo tools-info text-center show-ui" v-if="show" v-text="msg"></div>
</transition>
</div>
</div>
<!-- 弹出型终端控制台 -->
<div id="WebTerminalScreenWapper" style="top: 9999px">
<div class="Panel WebTerminalScreen">
<div class="PanelTitle">控制终端</div>
<div class="PanelBody">
<!-- 终端 -->
<div id="WebTerminal" class="WebTerminalScreen" style="display: block"></div>
<div id="WebTerminalControl">
<div class="input-group input-group-sm">
<span class="input-group-addon">/</span>
<input type="text" id="" class="form-control" @keyup.enter="toCommand" v-model="command" type="text"
autocomplete="off" placeholder="[命令输入框] 请输入您要执行的命令..." aria-describedby="sizing-addon3" />
<!--页面加载进度条-->
<div class="Toolscon" id="ToolsPageLoading">
<div class="progress" style="height: 4px; line-height: 4px; background-color: inherit; border: 0px">
<div id="ToolsLoading" class="progress-bar progress-bar-success progress-bar-striped active" style="width: 0%; height: 4px"></div>
</div>
</div>
<!-- 弹窗HTML -->
<div class="PopWin">
<div class="Panel">
<div id="PopWinTitle" class="PanelTitle">信息框</div>
<div class="PanelBody">
<div id="PopWinContext">
<!-- 动态 HTML -->
<p>正在加载信息框,请稍等...</p>
</div>
<div class="PanelItemF" style="text-align: right">
<div class="PanelItem mb0" v-on:click="toCommand">
<span class="glyphicon glyphicon-console" aria-hidden="true"></span>
执行命令
</div>
</div>
</div>
<!-- 黑屏 HTML -->
<div id="balckWarp" onclick="TOOLS.popWindClose(null);"></div>
<!-- 手机端导航球 -->
<div id="SidebarButton" v-on:click="operate()">
<div class="SidebarButtonWapper">
<!-- <span class="glyphicon " :class="!isExpand?'glyphicon-th-list':'glyphicon-list'" aria-hidden="true"></span> -->
<svg t="1583817080960" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="941" width="24" height="46">
<path
d="M393 475.7H176.5c-44.9 0-81.5-36.6-81.5-81.5V182.5c0-44.9 36.6-81.5 81.5-81.5H393c44.9 0 81.5 36.6 81.5 81.5v211.7c0 45-36.5 81.5-81.5 81.5zM176.5 155.4c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2H393c15 0 27.2-12.2 27.2-27.2V182.5c0-15-12.2-27.2-27.2-27.2l-216.5 0.1zM846.5 469.9H629.9c-44.9 0-81.5-36.6-81.5-81.5V176.7c0-44.9 36.6-81.5 81.5-81.5h216.6c44.9 0 81.5 36.6 81.5 81.5v211.7c0 44.9-36.6 81.5-81.5 81.5zM629.9 149.5c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2h216.6c15 0 27.2-12.2 27.2-27.2V176.7c0-15-12.2-27.2-27.2-27.2H629.9zM393 928.2H176.5c-44.9 0-81.5-36.6-81.5-81.5V635c0-44.9 36.6-81.5 81.5-81.5H393c44.9 0 81.5 36.6 81.5 81.5v211.7c0 45-36.5 81.5-81.5 81.5zM176.5 607.9c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2H393c15 0 27.2-12.2 27.2-27.2V635c0-15-12.2-27.2-27.2-27.2H176.5v0.1zM846.5 922.4H629.9c-44.9 0-81.5-36.6-81.5-81.5V629.2c0-44.9 36.6-81.5 81.5-81.5h216.6c44.9 0 81.5 36.6 81.5 81.5v211.7c0 44.9-36.6 81.5-81.5 81.5zM629.9 602c-15 0-27.2 12.2-27.2 27.2v211.7c0 15 12.2 27.2 27.2 27.2h216.6c15 0 27.2-12.2 27.2-27.2V629.2c0-15-12.2-27.2-27.2-27.2H629.9z"
fill="#ffffff"
p-id="942"
></path>
</svg>
</div>
</div>
<!-- 弹出型终端控制台 -->
<div id="WebTerminalScreenWapper" style="top: 9999px">
<div class="Panel WebTerminalScreen">
<div class="PanelTitle">控制终端</div>
<div class="PanelBody">
<!-- 终端 -->
<div id="WebTerminal" class="WebTerminalScreen" style="display: block"></div>
<div id="WebTerminalControl">
<div class="input-group input-group-sm">
<span class="input-group-addon">/</span>
<input
type="text"
id=""
class="form-control"
@keyup.enter="toCommand"
v-model="command"
type="text"
autocomplete="off"
placeholder="[命令输入框] 请输入您要执行的命令..."
aria-describedby="sizing-addon3"
/>
</div>
<div class="PanelItem mb0" v-on:click="stopServer()">
<span class="glyphicon glyphicon-pause" aria-hidden="true"></span>
关闭
</div>
<div class="PanelItem mb0" v-on:click="toOpenServer()">
<span class="glyphicon glyphicon-play" aria-hidden="true"></span>
开启
</div>
<div class="PanelItem mb0" v-on:click="TOOLS.CloseTerminal()">
<span class="glyphicon glyphicon-modal-window" aria-hidden="true"></span>
关闭窗口
<div class="PanelItemF" style="text-align: right">
<div class="PanelItem mb0" v-on:click="toCommand">
<span class="glyphicon glyphicon-console" aria-hidden="true"></span>
执行命令
</div>
<div class="PanelItem mb0" v-on:click="stopServer()">
<span class="glyphicon glyphicon-pause" aria-hidden="true"></span>
关闭
</div>
<div class="PanelItem mb0" v-on:click="toOpenServer()">
<span class="glyphicon glyphicon-play" aria-hidden="true"></span>
开启
</div>
<div class="PanelItem mb0" v-on:click="TOOLS.CloseTerminal()">
<span class="glyphicon glyphicon-modal-window" aria-hidden="true"></span>
关闭窗口
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--JavaScript 文件引用,顺序不能乱,大部分 js 都是依赖于前 js 的-->
<script type="text/javascript" src="common/jquery-3.2.1.min.js"></script>
<!--Vue -->
<script type="text/javascript" src="common/vue/vue.min.js"></script>
<!--公用的js方法公用的函数模式-->
<!-- 全局变量 MI(中介者) MS(保留) MCSERVER(全局寄生器)-->
<script type="text/javascript" src="common/js/common.js"></script>
<!--URL 处理函数 MCSERVER.URL URL 定位器-->
<script type="text/javascript" src="common/URL.js"></script>
<!--请求类相关方法 全局变量 RES(请求) PAGE(单页应用临时全局存储变量)-->
<script type="text/javascript" src="common/js/response.js"></script>
<!--Websocket 封装类 全局变量 WS -->
<script type="text/javascript" src="common/js/websocket.js"></script>
<!--工具类 全局变量 TOOLS(工具箱)-->
<script type="text/javascript" src="common/js/tools.js"></script>
<!--首页菜单获取 虚拟的后端菜单数据-->
<script type="text/javascript" src="common/js/meum.js"></script>
<!--echarts 库 统计图-->
<script type="text/javascript" src="common/echarts.js"></script>
<!--Vue.data 数据模型处理 全局变量 VIEW_MODEL-->
<script type="text/javascript" src="common/js/viewmodel.js"></script>
<!--图像统计表格封装 附属于 TOOLS 变量-->
<script type="text/javascript" src="common/js/chart.js"></script>
<!--JavaScript 文件引用,顺序不能乱,大部分 js 都是依赖于前 js 的-->
<script type="text/javascript" src="common/jquery-3.2.1.min.js"></script>
<!--Vue -->
<script type="text/javascript" src="common/vue/vue.min.js"></script>
<!--公用的js方法公用的函数模式-->
<!-- 全局变量 MI(中介者) MS(保留) MCSERVER(全局寄生器)-->
<script type="text/javascript" src="common/js/common.js"></script>
<!--URL 处理函数 MCSERVER.URL URL 定位器-->
<script type="text/javascript" src="common/URL.js"></script>
<!--请求类相关方法 全局变量 RES(请求) PAGE(单页应用临时全局存储变量)-->
<script type="text/javascript" src="common/js/response.js"></script>
<!--Websocket 封装类 全局变量 WS -->
<script type="text/javascript" src="common/js/websocket.js"></script>
<!--工具类 全局变量 TOOLS(工具箱)-->
<script type="text/javascript" src="common/js/tools.js"></script>
<!--首页菜单获取 虚拟的后端菜单数据-->
<script type="text/javascript" src="common/js/meum.js"></script>
<!--echarts 库 统计图-->
<script type="text/javascript" src="common/echarts.js"></script>
<!--Vue.data 数据模型处理 全局变量 VIEW_MODEL-->
<script type="text/javascript" src="common/js/viewmodel.js"></script>
<!--图像统计表格封装 附属于 TOOLS 变量-->
<script type="text/javascript" src="common/js/chart.js"></script>
<script>
// 网络加载判断
if (!window.$) alert("[文件加载失败] 网络不通畅,请检查您的网络状态!");
<script>
// 网络加载判断
if (!window.$) alert("[文件加载失败] 网络不通畅,请检查您的网络状态!");
// // 动态背景色,稍后会继续改变
// $('body').css('background-color', 'rgb(243, 243, 243);');
// // 动态背景色,稍后会继续改变
// $('body').css('background-color', 'rgb(243, 243, 243);');
MCSERVER.website = {};
MCSERVER.website = {};
$(function () {
//事件
window.onresize = function () {
MI.on("resize", null);
};
//防止页面后退
history.pushState(null, null, document.URL);
window.addEventListener("popstate", function () {
$(function () {
//事件
window.onresize = function () {
MI.on("resize", null);
};
//防止页面后退
history.pushState(null, null, document.URL);
});
window.addEventListener("popstate", function () {
history.pushState(null, null, document.URL);
});
// 一般制约能力的防止被 iframe 嵌入另外HTTP返回了 X-Frame-Options: DENY
// window.top.location !== window.location && (window.top.location = window.location); //已弃用
// 一般制约能力的防止被 iframe 嵌入另外HTTP返回了 X-Frame-Options: DENY
// window.top.location !== window.location && (window.top.location = window.location); //已弃用
// echart 路径配置
window.require.config({
paths: {
echarts: "./common/echarts-dist"
}
});
//抗CSRF攻击
//身份验证,令牌获取
RES.getToken(function (token) {
RES.TOKEN = token;
//初始化 Websocket
WS.init(function () {
//获取菜单
WS.sendMsg("menu", "");
//异步自动获取单页
//是否登陆
if (!MCSERVER.username) {
window.location.href = MCSERVER.URL("login");
return;
// echart 路径配置
window.require.config({
paths: {
echarts: "./common/echarts-dist"
}
});
// 判断是否需要进行页面转移
if (!TOOLS.page(true)) {
// 初始化终端
//判断是否是#权限用户,请放心,后端也会给予判断并不只是前端
if (MCSERVER.username.substr(0, 1) == "#") {
RES.redirectPage("./template/center.html", "center/show", "--- 更新页面 ---");
} else {
RES.redirectPage("./template/gen_home.html", "genuser/home", "--- 更新页面 ---");
//抗CSRF攻击
//身份验证,令牌获取
RES.getToken(function (token) {
RES.TOKEN = token;
//初始化 Websocket
WS.init(function () {
//获取菜单
WS.sendMsg("menu", "");
//异步自动获取单页
//是否登陆
if (!MCSERVER.username) {
window.location.href = MCSERVER.URL("login");
return;
}
// 判断是否需要进行页面转移
if (!TOOLS.page(true)) {
// 初始化终端
//判断是否是#权限用户,请放心,后端也会给予判断并不只是前端
if (MCSERVER.username.substr(0, 1) == "#") {
RES.redirectPage("./template/center.html", "center/show", "--- 更新页面 ---");
} else {
RES.redirectPage("./template/gen_home.html", "genuser/home", "--- 更新页面 ---");
}
}
});
});
//建立 退出按钮 Vue
var vueLoginOut = new Vue({
el: "#loginOut",
methods: {
loginOut: function () {
RES.ajax({
type: "POST",
url: "./user/loginout",
success: function () {
WS.close();
TOOLS.pushMsgWindow("您已退出,现在即将跳转网页");
setTimeout(function () {
window.location.href = MCSERVER.URL("login");
}, 2000);
},
error: function () {
TOOLS.pushMsgWindow("退出失败,您网络正常且是否登陆?");
}
});
}
}
});
});
//建立 退出按钮 Vue
var vueLoginOut = new Vue({
el: "#loginOut",
methods: {
loginOut: function () {
RES.ajax({
type: "POST",
url: "./user/loginout",
success: function () {
WS.close();
TOOLS.pushMsgWindow("您已退出,现在即将跳转网页");
setTimeout(function () {
window.location.href = MCSERVER.URL("login");
}, 2000);
},
error: function () {
TOOLS.pushMsgWindow("退出失败,您网络正常且是否登陆?");
}
});
//工具信息栏
VIEW_MODEL.newVueOnce("ToolsInfo", {
el: "#ToolsInfo",
data: {
show: false,
msg: ""
}
}
});
});
//工具信息栏
VIEW_MODEL.newVueOnce("ToolsInfo", {
el: "#ToolsInfo",
data: {
show: false,
msg: ""
}
});
// 手机端导航球
var SidebarButton = new Vue({
el: "#SidebarButton",
data: {
isExpand: false
},
methods: {
operate: function () {
MCSERVER.colmSet(!MCSERVER.getColmStatus());
// TOOLS.blackJumbotron(!this.isExpand)
this.isExpand = !MCSERVER.getColmStatus();
// 手机端导航球
var SidebarButton = new Vue({
el: "#SidebarButton",
data: {
isExpand: false
},
methods: {
operate: function () {
MCSERVER.colmSet(!MCSERVER.getColmStatus());
// TOOLS.blackJumbotron(!this.isExpand)
this.isExpand = !MCSERVER.getColmStatus();
}
}
}
});
VIEW_MODEL.COMMON = {};
});
VIEW_MODEL.COMMON = {};
});
</script>
</body>
</html>
</script>
</body>
</html>

View File

@ -7,8 +7,6 @@ const keyManager = require("../helper/KeyManager");
const requestLimit = require("../helper/RequestLimit");
const tools = require("../core/tools");
// 服务端实例状态获取 | 公共性 API 接口
// 无需任何权限判定
router.all("/status/:name", function (req, res) {

View File

@ -8,7 +8,6 @@ const userModel = require("../../model/UserModel");
const os = require("os");
const mversion = require("../../helper/version");
const MB_SIZE = 1024 * 1024;
let serverM = serverModel.ServerManager();
let userM = userModel.userCenter();

View File

@ -4,7 +4,6 @@ const serverModel = require("../../model/ServerModel");
const response = require("../../helper/Response");
const permssion = require("../../helper/Permission");
WebSocketObserver().listener("genuser/home", (data) => {
try {
let username = data.WsSession.username.trim();

View File

@ -4,7 +4,6 @@ const response = require("../../helper/Response");
const permssion = require("../../helper/Permission");
const tools = require("../../core/tools");
WebSocketObserver().listener("userset/update", (data) => {
if (!permssion.isMaster(data.WsSession)) return;