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
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;
|
|
}
|