oa助手类工具
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

141 lines
4.7 KiB

const fs = require('fs');
const path = require('path');
const libdata2 = require(path.join(__dirname, "../data.js"));
console.log("libdata2")
console.log(libdata2)
function syncTask(page, cb) {
$.get(`http://oa.ouxuan.net/api.php?m=index&a=getyydata&adminid=${adminid}&cfrom=mweb&event=${libdata2.GetConfig().TaskType}&num=work&key=&loadci=1&page=${page}`, function (data) {
var data = JSON.parse(data);
if (data.code == 200) {
if (page < data["data"]["maxpage"]) {
syncTask(page + 1, function (rows) {
cb(data["data"]["rows"].concat(rows))
})
} else {
for (var i in data["data"]["rows"]) {
$.ajax({
url: "http://oa.ouxuan.net/task.php?a=x&num=work&show=we&mid=" + data["data"]["rows"][i]["id"],
async: false,
success: function (html) {
var last = ""
$(html).find("div").each(function (item) {
if (last == "所属项目") {
a = ($(this).text()).split("(")
a.pop()
a = a.join("(")
data["data"]["rows"][i]["project"] = a;
}
last = $(this).text()
})
if (!data["data"]["rows"][i]["project"] || data["data"]["rows"][i]["project"] == "") {
data["data"]["rows"][i]["project"] = "未归属项目"
}
}
});
}
cb(data["data"]["rows"], data["data"]["count"])
}
}
})
}
function syncTaskConfig(url, key, apikey) {
var isNew = false;
var config = libdata2.GetConfig()
$.ajax({
url: url,
async: false,
success: function (data) {
data = JSON.parse(data)
console.log(data)
if (data.code == 200) {
if (config[key] != data["data"][apikey]) {
isNew = true
}
config[key] = data["data"][apikey]
libdata2.SyncConfig(config)
}
}, error: function (err) {
console.log(err)
}
})
console.log("isNew", isNew)
return isNew;
}
exports.syncDaibanCount = function () {
return syncTaskConfig(`http://oa.ouxuan.net/api.php?m=index&a=getyydata&adminid=${adminid}&cfrom=mweb&page=1&event=daib&num=daiban&key=&loadci=1`, "DaibanCount", "count")
}
exports.syncTaskCount = function () {
return syncTaskConfig(`http://oa.ouxuan.net/api.php?m=index&a=getyydata&adminid=${adminid}&cfrom=mweb&event=my&num=work&key=&loadci=1&page=1`, "TaskCount", "count")
}
exports.syncTaskToFile = function (cb) {
if (!fs.existsSync(libdata2.ProjectMapPath)) fs.writeFileSync(libdata2.ProjectMapPath, JSON.stringify({}))
syncTask(1, function (data, count) {
result = {};
for (let i in data) {
if (!result[data[i]["project"]]) {
result[data[i]["project"]] = [];
}
result[data[i]["project"]].push(data[i])
}
fs.writeFileSync(libdata2.TaskPath, JSON.stringify(result))
for (var i in result) {
var project_map = JSON.parse(fs.readFileSync(libdata2.ProjectMapPath));
if (!project_map[i]) {
project_map[i] = "";
}
}
if (!project_map){
project_map = {};
}
fs.writeFileSync(libdata2.ProjectMapPath, JSON.stringify(project_map))
if (cb) cb();
})
}
exports.getTask = function () {
return JSON.parse(fs.readFileSync(libdata2.TaskPath));
}
exports.getProjectMap = function () {
return JSON.parse(fs.readFileSync(libdata2.ProjectMapPath));
}
exports.getTaskById = function (id) {
var result = {
"单号": "-",
"标题": "-",
"类型": "-",
"等级": "-",
"分配给": "-",
"所属项目": "-",
"说明": "-",
"开始时间": "-",
"创建人": "-",
"创建时间": "-",
}
$.ajax({
url: `http://oa.ouxuan.net/task.php?a=x&num=work&show=we&mid=${id}`,
async: false,
success: function (html) {
var last = "";
$(html).find("div").each(function (item) {
if (result[last]) {
result[last] = $(this).text();
}
last = $(this).text()
})
}
});
return result;
}