From 1cc0e77715ae9db429f50dbcfde90ae642d568b4 Mon Sep 17 00:00:00 2001 From: shylinux Date: Sat, 17 Oct 2020 12:26:40 +0800 Subject: [PATCH] opt some --- frame.js | 1 + lib/base.js | 36 +++++++++++++++++++++++++++++++++++- pane/Header.js | 13 ++----------- pane/River.js | 16 +++++++--------- plugin/local/team/plan.js | 26 ++++++++++++++++++++++---- plugin/local/wiki/data.js | 22 ++++++++++++---------- 6 files changed, 79 insertions(+), 35 deletions(-) diff --git a/frame.js b/frame.js index de9ba1b2..f49629ef 100644 --- a/frame.js +++ b/frame.js @@ -231,6 +231,7 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta, var action = can.page.Select(can, field, "div.action")[0] var output = can.page.Select(can, field, "div.output")[0] var status = can.page.Select(can, field, "div.status")[0] + option.dataset.id = meta.id // 添加插件 var sub = Volcanos(meta.name, { _help: meta.name, _follow: can._follow+"."+meta.name, diff --git a/lib/base.js b/lib/base.js index 5bb65daa..384fd0e3 100644 --- a/lib/base.js +++ b/lib/base.js @@ -51,7 +51,41 @@ var base = Volcanos("base", {help: "基础模块", } return size + "B" }, - Time: shy("时间格式化", function(t, fmt) { var now = t? new Date(t): new Date() + date: shy("时间格式化", function(t) { + var now = new Date() + if (t) { return now } + if (typeof t == "string") { var ls = t.split(" ") + var vs = ls[0].split("-") + now.setFullYear(parseInt(vs[0])) + now.setMonth(parseInt(vs[1])) + now.setDate(parseInt(vs[2])) + + var vs = ls[1].split(":") + now.setHours(parseInt(vs[0])) + now.setMinutes(parseInt(vs[1])) + now.setSeconds(parseInt(vs[2])) + } else { + now = t + } + return now + }), + Time: shy("时间格式化", function(t, fmt) { + var now = new Date() + if (t && typeof t == "string") { var ls = t.split(" ") + var vs = ls[0].split("-") + now.setFullYear(parseInt(vs[0])) + now.setMonth(parseInt(vs[1])) + now.setDate(parseInt(vs[2])) + + var vs = ls[1].split(":") + now.setHours(parseInt(vs[0])) + now.setMinutes(parseInt(vs[1])) + now.setSeconds(parseInt(vs[2])) + } else if (t) { + now = t + } + // var now = t? new Date(t): new Date() + var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"] fmt = fmt || "%y-%m-%d %H:%M:%S" fmt = fmt.replace("%y", now.getFullYear()) diff --git a/pane/Header.js b/pane/Header.js index 4b3810c2..03ce9310 100644 --- a/pane/Header.js +++ b/pane/Header.js @@ -56,18 +56,9 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg, }, Footer: function(event, can, key) { can.page.Select(can, document.body, "fieldset.Action", function(item) { - if (item.style.height) { - height = document.body.offsetHeight - can.page.Select(can, item, "div.output")[0].style.height = "" - item.style.height = "" - } else { - can.page.Select(can, item, "div.output")[0].style.height = height-100+"px" - item.style.height = height-88+"px" - } + can.page.Select(can, item, "div.output")[0].style.height = "" + item.style.height = "" }) - can.page.Select(can, document.body, "fieldset."+key, function(item) { - can.page.Modify(can, item, {style: {display: item.style.display == "none"? "block": "none"}}) - }) }, }) Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, list, cb, target) { diff --git a/pane/River.js b/pane/River.js index f975ebf7..5fb675a1 100644 --- a/pane/River.js +++ b/pane/River.js @@ -98,16 +98,14 @@ Volcanos("ondetail", {help: "菜单交互", list: ["添加应用", "添加设备 }) }, "保存参数": function(event, can, button, storm) { - var list = can.page.Select(can, document.body, "fieldset.Action>div.output>fieldset.plugin>form.option", function(item) { - return JSON.stringify(can.page.Select(can, item, 'args', function(item) { - return item.value||"" - })) - can.run(event, [can.Conf(RIVER), "tool", "action", "modify", storm.hash, STORM].concat(list), function(msg) { - can.user.toast(can, "保存成功", STORM) - }) - }) + can.core.Next(can.page.Select(can, document.body, "fieldset.Action>div.output>fieldset.plugin>form.option"), function(item, next) { + var list = can.page.Select(can, item, '.args', function(item) { return item.value||"" }) - can.run(event, [can.Conf(RIVER), storm.hash, STORM, "action", "save"].concat(list), function(msg) { + var msg = can.request({}); msg.Option("hash", storm.hash), msg.Option("id", item.dataset.id) + can.run(msg._event, [can.Conf(RIVER), "tool", "action", "modify", "arg", JSON.stringify(list)], function(msg) { + next() + }) + }, function() { can.user.toast(can, "保存成功", STORM) }) }, diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index a82e60ba..9e3376ee 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -9,11 +9,29 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, typeof cb == "function" && cb() can.onimport[can.Option("scale")](can, msg) can.page.Modify(can, can._action, {style: {display: "none"}}) + + var begin = can.onimport.date("2020-10-10 10:10:10") + }, + date: function(t) { var now = new Date() + if (t && typeof t == "string") { var ls = t.split(" ") + var vs = ls[0].split("-") + now.setFullYear(parseInt(vs[0])) + now.setMonth(parseInt(vs[1])) + now.setDate(parseInt(vs[2])) + + var vs = ls[1].split(":") + now.setHours(parseInt(vs[0])) + now.setMinutes(parseInt(vs[1])) + now.setSeconds(parseInt(vs[2])) + } else if (t) { + now = t + } + return now }, _show: function(can, msg, head, list, key, set, get) { - var begin_time = new Date(can.base.Time(can.Option("begin_time"))) + var begin_time = can.onimport.date(can.base.Time(can.Option("begin_time"))) var hash = {}; msg.Table(function(value, index) { - var k = key(new Date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value]) + var k = key(can.onimport.date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value]) can.Status("count", index+1) }) @@ -38,7 +56,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, event.preventDefault() }, ondblclick: function(event) { var now = can.base.Time() - can.onaction.insertTask(event, can, can.base.Time(new Date(time+now.slice(time.length)))) + can.onaction.insertTask(event, can, can.base.Time(can.onimport.date(time+now.slice(time.length)))) }, list: can.core.List(list, function(task) { return typeof task == "string"? {view: ["date", "div", task]}: {view: [can.onexport.style(can, task), "div", can.onexport[view||can.Action("view")||"text"](can, task)], @@ -136,7 +154,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, can.onimport._show(can, msg, head, list, key, set, get) }, long: function(can, msg) { - var begin_time = new Date(can.base.Time(can.Option("begin_time"))) + var begin_time = can.onimport.date(can.base.Time(can.Option("begin_time"))) var begin = begin_time.getFullYear() - 5 var head = ["month"]; for (var i = 0; i < 10; i++) { head.push(begin+i) } diff --git a/plugin/local/wiki/data.js b/plugin/local/wiki/data.js index 6754916c..c137c3d5 100644 --- a/plugin/local/wiki/data.js +++ b/plugin/local/wiki/data.js @@ -1,7 +1,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) { - can.ui = can.page.Appends(can, can._target, [ - {view: "content"}, {view: "display"}, - ]) + can.ui = can.page.Appends(can, can._target, [{view: "content"}, {view: "display"}]) + can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) { return {text: [value, "td"], oncontextmenu: function(event) { can.user.carte(can, can.ondetail, can.ondetail.list, function(ev, cmd, meta) { @@ -10,13 +9,13 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, }, ondblclick: function(event) { can.page.Modify(can, event.target, {contenteditable: true}) }, onclick: function(event) { - if (key == "path") { - can.run(event, [can.Option("path", value)]) - } + if (key == "path") { can.run(event, [can.Option("path", value)]) } }} }) + can.onexport.list = msg.append typeof cb == "function" && cb() + can.onaction._compute(event, can) }, }) Volcanos("onfigure", {help: "组件菜单", list: [], @@ -38,11 +37,10 @@ Volcanos("onfigure", {help: "组件菜单", list: [], } }, }) -Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", "块选", "反选", "多选", "拖动", "编辑"], "求和", "最大", "最小", "平均"], - _engine: function(event, can, cmd) { +Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", "块选", "反选", "多选", "拖动", "编辑"], ["some", "求和", "最大", "最小", "平均"]], + _compute: function(event, can) { var mul = "tr" + (can.Action("mode") == "全选"? "": ".select") - var method = can.onfigure[cmd], res = {} - + var method = can.onfigure[can.Action("some")], res = {} can.page.Select(can, can.ui.content, mul, function(tr, nrow, rows) { (mul != "tr" || nrow > 0) && can.page.Select(can, tr, "td", function(td, ncol, cols) { @@ -70,12 +68,14 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", item.onmouseenter = null item.onclick = null }) + can.onaction._compute(event, can) }, "块选": function(event, can, cmd) { cmd && can.Action("mode", cmd) can.page.Select(can, can.ui.content, "tr", function(item) { item.onmouseenter = function() { can.page.ClassList.add(can, item, "select") + can.onaction._compute(event, can) } }) }, @@ -84,6 +84,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", can.page.Select(can, can.ui.content, "tr", function(item) { item.onmouseenter = function() { can.page.ClassList.del(can, item, "select") + can.onaction._compute(event, can) } }) }, @@ -92,6 +93,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", can.page.Select(can, can.ui.content, "tr", function(item) { item.onclick = function() { can.page.ClassList.neg(can, item, "select") + can.onaction._compute(event, can) } }) },