升级:1、增加界面夜间模式

2、qtask 功能交互升级
     3、mysql连接管理增加心跳保活
     4、其他修改
This commit is contained in:
2024-03-31 00:34:26 +08:00
parent 8cc55c2c4b
commit 4dcebf32de
37 changed files with 1136 additions and 301 deletions

View File

@@ -1,6 +1,6 @@
var red = {
showMsg: function(option) {
var defOption = {msg: "操作成功", type:"info", placement: "top"};
var defOption = {msg: "操作成功", /*type:"success",*/ placement: "top"};
option = option || defOption;
for (var k in defOption) {
@@ -63,6 +63,66 @@ var red = {
callback(data)
})
},
get2(url, params = {}) {
return new Promise(resolve => {
// 创建一个包含自定义 headers 的配置对象
const config = {
method: 'get', // 指定请求方法为 GET
url: url, // 指定请求的 URL
headers: { // 设置 Header 参数
//'Authorization': 'Bearer your-token', // 假设添加一个 Bearer 认证 token
//'Content-Type': 'application/json', // 或者指定 Content-Type 等其他 Header
//'Custom-Header': 'Some value' // 自定义 Header 参数
'token': red.getData("token"),
'plattoken': red.getPlatToken(),
},
params: params,
};
axios.request(config).then(res => {
// 未登录,前往登录
if (res.data.retcode === -2) {
location.href = "/user/login.html"
}
resolve(res.data.result)
}).catch(error => {
console.error(error); // 处理错误
});
})
},
post2(url, params = {}) {
return new Promise(resolve => {
// 创建一个包含自定义 headers 的配置对象
const config = {
method: 'post', // 指定请求方法为 GET
url: url, // 指定请求的 URL
data: params,
headers: { // 设置 Header 参数
//'Authorization': 'Bearer your-token', // 假设添加一个 Bearer 认证 token
//'Content-Type': 'application/json', // 或者指定 Content-Type 等其他 Header
//'Custom-Header': 'Some value' // 自定义 Header 参数
'token': red.getData("token"),
'plattoken': red.getPlatToken(),
}
};
axios.request(config).then(res => {
// 未登录,前往登录
if (res.data.retcode === -2) {
location.href = "/user/login.html"
}
if (res.data.retcode !== 0) {
//console.log(res)
red.showError(res.data.retinfo)
return
}
resolve(res.data.result)
}).catch(error => {
console.error(error); // 处理错误
});
})
},
getX(url, params = {}) {
if (!params['platToken'])
params['platToken'] = red.getPlatToken()
@@ -80,7 +140,7 @@ var red = {
resolve(data)
}).catch(res => {
console.log(res)
//console.log(res)
red.showMsg({type:"error", msg:'操作失败!'})
})
})
@@ -118,19 +178,21 @@ var red = {
})
},
post: function(url, params = {}, callback) {
params['platToken'] = red.getPlatToken()
//params['platToken'] = red.getPlatToken()
axios.post(url, params).then(res => {
let data = red.loginCheck(res.data)
/*let data = red.loginCheck(res.data)
if (data && data.code == -1) {
red.showMsg({msg: data.message, type: "error"})
return;
}
}*/
if (callback) {
callback(data.code == 0 ? data.body : data)
console.log("xx", res.data.body)
callback(res.data.code === 0 ? res.data.body : data)
} else {
red.showMsg()
}
return res
})
},
@@ -194,6 +256,7 @@ var red = {
location.href = "/user/login.html";
}, 2000);
}
return json.data
},
replaceAll: function (d, s, t) {
let reg=new RegExp(s,"g"); //创建正则RegExp对象
@@ -206,6 +269,23 @@ var red = {
},
replace$: function (d) {
return red.replaceAll(d, "[$]", ".");
},
wait(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
},
deepClone: function (obj) {
if (obj === null) return obj;
if (obj instanceof Date) return new Date(obj);
if (obj instanceof RegExp) return new RegExp(obj);
if (typeof obj !== 'object') return obj;
let cloneObj = new obj.constructor();
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
cloneObj[key] = this.deepClone(obj[key]);
}
}
return cloneObj;
}
}