DPS_Manage/MyGlobals/GlobalVars.qml

374 lines
12 KiB
QML

pragma Singleton
import QtQuick 2.15
import QmlTool 1.0
QtObject {
//是否处于开发模式
property bool devModel : false
property string tool_version:"2.0"
property var all_Version : null
//请求的服务器url
// property string server_url: "http://192.168.200.20:8651"
property string server_url: "https://dpsm.senzo.online"
// property string server_url: "http://43.160.206.158:8651"
//界面对象
property var main_Window : null
property var page_home : null
property var tab_shop : null
property var tab_server : null
property var tab_personal:null
property var downlad_quest_window:null
//全局消息提示对象
property var msg_control : null
//服务器控制台输出窗口
property var serverConsoleWindow: null
//客户端Token
property string token: ""
//活跃人数
property string active_count : "666"
//服务器插件项目
property var serverPluginList : null
//服务器插件项目Map
property var serverPluginMap : null
//服务器双端插件项目Map
property var serverPluginexMap : null
//服务器所有广告
property var serverAdvertisement : null
//账号下的所有服务器
property var accServerList : null
//账号信息
property var accInfo : null
//当前ssh连接的服务器
property string sshConnectServer:""
//当前选择的要操作的服务器
property int selectServer : 0
//我的服务器插件项目
property var myServerPluginList : null
//我的服务器插件项目Map
property var myServerPluginMap : null
//我的服务器双端插件项目Map
property var myServerExPluginMap : null
//公共方法
function sendPostRequest(url, jsonData, callback) {
// 创建请求对象
var xhr = new XMLHttpRequest()
xhr.open("POST", server_url + url)
// 设置请求头,表明发送的数据是 JSON 格式
xhr.setRequestHeader("Content-Type", "application/json")
if (token.length > 0) {
xhr.setRequestHeader("Authorization", token);
}
// 定义回调函数
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
callback(null, JSON.parse(xhr.responseText))
} else {
console.log(xhr.status)
callback(new Error("请求失败,状态码: " + xhr.status), xhr.responseText)
}
}
}
// 将 JSON 对象转换为字符串
var jsonString = JSON.stringify(jsonData)
// 发送包含 JSON 数据的请求
xhr.send(jsonString)
}
//公共方法
function sendPostRequestByIp(ip, url, jsonData, callback) {
// 创建请求对象
var xhr = new XMLHttpRequest()
xhr.open("POST", ip + url)
// 设置请求头,表明发送的数据是 JSON 格式
xhr.setRequestHeader("Content-Type", "application/json")
// 定义回调函数
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// console.log(xhr.responseText)
callback(null, JSON.parse(xhr.responseText))
} else {
callback(new Error("请求失败,状态码: " + xhr.status), xhr.responseText)
}
}
}
if(jsonData){
// 将 JSON 对象转换为字符串
var jsonString = JSON.stringify(jsonData)
// 发送包含 JSON 数据的请求
xhr.send(jsonString)
}
else{
xhr.send()
}
}
//获取版本信息
function getAllVersion(){
sendPostRequest("/rindro/getversion",{},function(error, response) {
if (error) {
msg_control.error("获取版本失败!");
} else {
all_Version = response;
//先判断一下工具版本
if(parseFloat(all_Version.toolVer) > parseFloat(tool_version)){
QmlTool.runExe("DelUpdate.exe " + server_url)
}
}
})
}
//获取市场所有插件信息
function getShopAllProject(){
sendPostRequest("/dps/getlist",{},function(error, response) {
if (error) {
msg_control.error("获取服务器插件列表失败!");
serverPluginList = null
serverPluginMap = null
} else {
serverPluginList = response.list;
serverPluginMap = {}
// 遍历对象的属性
for (var key in serverPluginList) {
var obj = serverPluginList[key];
serverPluginMap[obj.ProjectName] = obj
}
}
})
}
//获取市场所有插件信息
function getShopAllProjectex(){
sendPostRequest("/rindro/getProjectInfoList",{},function(error, response) {
if (error) {
msg_control.error("获取服务器双端插件列表失败!");
serverPluginexMap = null
} else {
serverPluginexMap = response.data;
// 遍历对象的属性
for (var key in serverPluginexMap) {
var obj = serverPluginexMap[key]
obj.ProjectName = key
}
}
})
}
//获取市场所有广告信息
function getAllAdvertisement(callBack){
sendPostRequest("/dps/getadvertisement",{},function(error, response) {
if (error) {
msg_control.error("获取服务器广告列表失败!");
} else {
callBack(response)
}
})
}
//购买双端插件
function buyExPlugin(Name,Ip){
sendPostRequest("/rindro/buy",{projectName : Name,ip: Ip},function(error, response) {
if (error) {
msg_control.error("购买失败!");
} else {
if(response.code !== 200){
msg_control.error("购买失败!\t" + response.message);
}
else{
msg_control.success("购买成功!\t到期时间: " + response.data.endTime);
}
}
})
}
//获取账号下的所有服务器
function getAccServerList(){
sendPostRequest("/rindro/getServerList",{},function(error, response) {
if (error) {
msg_control.error("获取账号服务器列表失败!");
} else {
accServerList = response.data;
}
})
}
//获取账号个人信息
function getAccInfo(){
sendPostRequest("/rindro/getInfo",{},function(error, response) {
if (error) {
msg_control.error("获取账号信息失败!");
} else {
accInfo = response.data;
}
})
}
//删除账号下的服务器
function removeServer(remove_ip){
sendPostRequest("/rindro/deleteServer",{ip : remove_ip},function(error, response) {
if (error) {
msg_control.error("删除服务器失败!");
} else {
msg_control.success("删除服务器成功!");
getAccServerList();
}
})
}
//新增或修改服务器
function addServer(obj){
sendPostRequest("/rindro/addServer",obj,function(error, response) {
if (error) {
msg_control.error("操作服务器失败!");
} else {
msg_control.success("操作服务器成功!");
getAccServerList();
}
})
}
//向网关获取版本
function getServerInfo(ip,callback){
sendPostRequestByIp(ip , "/getdpsinfo",{},function(error, response) {
if (error) {
callback(false,0,0);
} else {
if(response.info !== null)
callback(true,0,response.info);
else
callback(false,0,0);
}
})
sendPostRequestByIp(ip , "/getjavapinfo",{},function(error, response) {
if (error) {
callback(false,1,0);
} else {
if(response.info !== null)
callback(true,1,response.info);
else
callback(false,1,0);
}
})
sendPostRequestByIp(ip , "/getjavainfo",{},function(error, response) {
if (error) {
callback(false,2,0);
} else {
if(response.info !== null)
callback(true,2,response.info);
else
callback(false,2,0);
}
})
sendPostRequestByIp(ip , "/api/hello",{},function(error, response) {
if (error) {
msg_control.error("服务器dps管理网关未启动,请前往'个人中心'重新添加服务器 或 询问管理员!")
} else {
callback(false,3,true);
}
})
}
//获取自己服务器的全部插件
function getServerPlugins(ip){
sendPostRequestByIp("http://" + ip + ":65170", "/api/getallplugins",{},function(error, response) {
if (!error) {
myServerPluginList = response
myServerPluginMap = {}
// 遍历对象的属性
for (var key in myServerPluginList) {
var obj = myServerPluginList[key];
myServerPluginMap[obj.ProjectName] = obj
}
} else {
myServerPluginList = null;
myServerPluginMap = null;
}
})
}
//获取自己服务器的全部双端插件
function getServerExPlugins(ipk){
sendPostRequest("/rindro/getUserProList",{ip:ipk},function(error, response) {
if (!error) {
myServerExPluginMap = response.data
} else {
myServerExPluginMap = null;
}
})
}
//设置双端插件是否启用
function setServerExPluginsEnable(ipk,projectname,cstate){
sendPostRequest("/rindro/setproopen",{ip:ipk,projectName:projectname,open:cstate},function(error, response) {
if (!error) {
} else {
if(cstate === 1)msg_control.success("开启成功");
}
})
}
//请求某个项目的配置
function getServerPluginConfig(ip,filename,callback){
sendPostRequestByIp("http://" + ip + ":65170", "/api/getpluginconfig",{filename:filename},function(error, response) {
if (!error) {
callback(response)
} else {
callback(null)
}
})
}
//保存某个项目的配置
function setServerPluginConfig(ip,filename,config){
sendPostRequestByIp("http://" + ip + ":65170", "/api/setpluginconfig",{filename:filename,config:config},function(error, response) {
if (!error) {
msg_control.success("配置修改成功!")
} else {
msg_control.error("配置修改失败!")
}
})
}
//备份某个项目的配置
function backupServerPluginConfig(ip,filename,callback){
sendPostRequestByIp("http://" + ip + ":65170", "/api/backuppluginconfig",{filename:filename},function(error, response) {
if (!error) {
callback(response)
} else {
callback(null)
}
})
}
}