From 66821cf3a4e453da78f7fc23e92b3c445863e1e8 Mon Sep 17 00:00:00 2001 From: 3136352472 <3136352472> Date: Wed, 22 Apr 2020 15:16:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/main.js | 2 +- lib/tray.js | 20 ++++++++++++++++---- lib/web/data.js | 31 +++++++++++++++++++++++++++++++ lib/web/main.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 94 insertions(+), 7 deletions(-) diff --git a/lib/main.js b/lib/main.js index 17b36b9..0a5410a 100644 --- a/lib/main.js +++ b/lib/main.js @@ -22,7 +22,7 @@ exports.createMainWindow = function () { exports.MainWindow.hide(); }); - exports.MainWindow.isClose = false; + exports.MainWindow.isClose = true; exports.MainWindow.on("close", function (event) { if (!exports.MainWindow.isClose) { event.preventDefault(); diff --git a/lib/tray.js b/lib/tray.js index 24d95cf..b63177c 100644 --- a/lib/tray.js +++ b/lib/tray.js @@ -10,11 +10,19 @@ const git = require(path.join(__dirname, 'git.js')); const mainwin = require(path.join(__dirname, 'main.js')); let tray = null -ipcMain.on('new-notification', (event, title, body) => { - (new Notification({ +ipcMain.on('new-notification', (event, title, body, url) => { + let n = new Notification({ title: title, - body: body - })).show() + body: body, + }) + n.on('click', function () { + console.log(url); + if (url) { + mainwin.MainWindow.loadURL(url) + mainwin.MainWindow.show(); + } + }) + n.show() }); ipcMain.on('new-task-notification', (event) => { @@ -31,6 +39,10 @@ ipcMain.on('test', (event, a, b, c) => { let isUpdate = false; ipcMain.on('put-in-tray', (event) => { if (!tray) { + + mainwin.MainWindow.isClose = false; + + tray = new Tray(path.join(__dirname, '../windows-icon.png')) tray.on("double-click", function () { diff --git a/lib/web/data.js b/lib/web/data.js index a6bce76..00a075b 100644 --- a/lib/web/data.js +++ b/lib/web/data.js @@ -105,3 +105,34 @@ exports.getTask = function () { 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; +} \ No newline at end of file diff --git a/lib/web/main.js b/lib/web/main.js index f34a914..a0b8bdd 100644 --- a/lib/web/main.js +++ b/lib/web/main.js @@ -13,20 +13,64 @@ function get(name) { +var config = libdata2.GetConfig(); +var lastTime = config["loadhit-lastTime"]; +if (!lastTime) { + lastTime = config["loadhit-lastTime"] = Date.parse(new Date()) / 1000; + libdata2.SyncConfig(config); +} + + window.addEventListener('DOMContentLoaded', () => { libdata.syncTaskToFile(function () { ipc.send('put-in-tray') }) + setInterval(function () { if (libdata.syncDaibanCount()) { - ipc.send('new-task-notification') - console.log("通知中...") libdata.syncTaskToFile(); } }, 5 * 1000) + function Loadhit() { + setTimeout(() => { + + let url = `http://oa.ouxuan.net/api.php?m=indexreim&a=loadhit&cfrom=mweb&time=${lastTime}`; + $.get(url, function (data) { + data = JSON.parse(data); + console.log(data); + if (data.code == 200) { + data = data.data; + if (data.rows.length > 0) { + lastTime = data.loadtime; + + config = libdata2.GetConfig(); + libdata2.SyncConfig(config); + config["loadhit-lastTime"] = lastTime; + + + for (var i = 0; i < data.rows.length; i++) { + var xgurlSplice = data.rows[i].xgurl.split("|") + if (xgurlSplice[0] == "work") { + let id = xgurlSplice[1]; + let taskData = libdata.getTaskById(id); + let taskUrl = `http://oa.ouxuan.net/task.php?a=x&num=work&show=mweb&mid=${id}`; + ipc.send('new-notification' + , `${taskData["标题"]}` + , `${taskData["创建人"]} ${taskData["所属项目"]} ${taskData["创建时间"]}\n说明:${taskData["说明"]}` + , taskUrl) + } + } + Loadhit() + } + } + }) + }, 5000); + } + Loadhit(); + function CommitByQueue() { setTimeout(() => { let item = libdata2.PopCommitByQueue();