diff --git a/frame.js b/frame.js index 17f20117..573a8f9b 100644 --- a/frame.js +++ b/frame.js @@ -342,7 +342,7 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { met item.value == "auto" && (item.value = "") item.action == "auto" && (input.dataset.action = "auto") - var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}]).last + var target = can.page.Append(can, option, [{view: ["item "+item.type], list: [item.position && {text: item.name+": "}, input]}])[item.name] item.figure && item.figure.indexOf("@") == 0 && (item.figure = item.figure.slice(1)) && can.require(["/plugin/input/"+item.figure], function() { target.type != "button" && (target.value = "") }) @@ -403,13 +403,14 @@ Volcanos("onappend", { _init: function(can, meta, list, cb, target, field) { met msg.result && can.page.AppendBoard(can, target, can.page.Display(msg.Result())) }, - carte: function(can, meta, list, cb) { list = list && list.length > 0? list: meta.list; if (list.length == 0) { return } + carte: function(can, meta, list, cb) { meta = meta || can.ondetail, list = list && list.length > 0? list: meta.list; if (list.length == 0) { return } can._carte = can._carte || can.page.Append(can, can._target, [{view: "carte", onmouseleave: function(event) { can.page.Modify(can, can._carte, {style: {display: "none"}}) }}]).last meta = meta||can.ondetail||{}, cb = cb||function(ev, item, meta) { - (can.ondetail[item]||can.onaction[item]||can.onkeymap&&can.onkeymap._remote)(event, can, item) + var cb = can.ondetail[item] || can.onaction[item] || can.onkeymap&&can.onkeymap._remote + cb && cb(event, can, item) } can.page.Appends(can, can._carte, can.core.List(list, function(item) { diff --git a/lib/base.js b/lib/base.js index d3c28711..e3e06014 100644 --- a/lib/base.js +++ b/lib/base.js @@ -10,7 +10,7 @@ var base = Volcanos("base", {help: "基础模块", return res }, Int: function(value) {return parseInt(value)||0}, - Obj: function(value, def) {return typeof value == "string"? JSON.parse(value): value || def || {}}, + Obj: function(value, def) {return typeof value == "string" && value != ""? JSON.parse(value): value || def || {}}, Args: function(obj) {var res = []; for (var k in obj) { diff --git a/pane/Action.js b/pane/Action.js index 7d9533c2..5845453a 100644 --- a/pane/Action.js +++ b/pane/Action.js @@ -29,7 +29,7 @@ Volcanos("onexport", {help: "导出数据", list: [], _init: function(can, msg, if (position) { can._output.scrollTo(0, position-1); return } msg.Clear("option"), can.run(msg._event, [river, storm], function(sup) { can._output.innerHTML = ""; sup.Table(function(value, index, array) { - value.inputs = can.base.Obj(value.inputs, []), value.inputs.length == 0 && (value.inputs = [ + value.inputs = can.base.Obj(value.inputs||"[]", []), value.inputs.length == 0 && (value.inputs = [ {type: "text", name: "name", action: "auto"}, {type: "button", name: "查看", action: "auto"}, {type: "button", name: "返回"}, diff --git a/plugin/input.js b/plugin/input.js index 548b6817..aff68da2 100644 --- a/plugin/input.js +++ b/plugin/input.js @@ -1,8 +1,11 @@ Volcanos("onimport", {help: "导入数据", list: [], - _init: function(can, meta, list, cb, output, action, option, field) { output.innerHTML = ""; + _init: function(can, meta, list, cb, output, action, option, field) { }, }) Volcanos("onaction", {help: "控件交互", list: [], + onchange: function(event, can) { + console.log(can.Conf()) + }, onclick: function(event, can) { switch (can.Conf("type")) { case "button": diff --git a/plugin/local/team/miss.css b/plugin/local/team/miss.css new file mode 100644 index 00000000..d7a534f5 --- /dev/null +++ b/plugin/local/team/miss.css @@ -0,0 +1,22 @@ +fieldset.plan>div.output table.content { + float:left; +} +fieldset.plan>div.output table.display { + float:left; +} + +fieldset.plan>div.output table.content div.prepare { + background-color:blue; +} +fieldset.plan>div.output table.content div.process { + /* background-color:yellow; */ +} +fieldset.plan>div.output table.content div.finish { + background-color:green; +} +fieldset.plan>div.output table.content div.cancel { + background-color:red; +} +fieldset.plan>div.output table.content td.over { + border:solid 2px red; +} diff --git a/plugin/local/team/miss.js b/plugin/local/team/miss.js new file mode 100644 index 00000000..ec8b41d4 --- /dev/null +++ b/plugin/local/team/miss.js @@ -0,0 +1,101 @@ +Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._target.innerHTML = "" + can.ui = can.page.Append(can, can._target, [ + {view: ["content", "table"]}, + {view: ["display", "table"]}, + ]) + + can.onimport[can.Option("scale")](can, msg) + }, + _task: function(can, msg, time, values) { + return {text: ["", "td"], + ondragover: function(event) { event.preventDefault() + can.page.Select(can, can.ui.content, "td", function(item) { + can.page.ClassList.del(can, item, "over") + }), can.page.ClassList.add(can, event.target, "over") + }, + ondrop: function(event) { event.preventDefault() + can.run(event, ["action", "modify", "begin_time", time, ""], function(msg) { + value.begin_time = begin_time + can.onimport._display(can, msg, value) + can.onappend.toast(can, "修改成功") + }, true) + + event.target.append(can.task) + }, + list: can.core.List(values, function(value) { + return {view: [value.status, "div", value.name], draggable: true, + ondragstart: function(event) { can.task = event.target }, + ondragover: function(event) { event.preventDefault() }, + ondrop: function(event) { event.preventDefault() }, + onclick: function(event) { + can.onimport._display(can, msg, value) + }, oncontextmenu: function(event) { var target = event.target + can.onappend.carte(can, can.ondetail, can.ondetail.list, function(event, item) { + var msg = can.request(event); msg.Option(value) + can.run(event, ["action", "modify", "status", item, value.status], function(msg) { + target.className = value.status = item + can.onimport._display(can, msg, value) + can.onappend.toast(can, "修改成功") + }, true) + }) + }} + + }) } + + }, + _display: function(can, msg, value) { can.ui.display.innerHTML = "" + can.page.Append(can, can.ui.display, [{type: "tr", list: [{text: ["key", "th"]}, {text: ["value", "th"]}]}]) + can.core.Item(value, function(key, value) { + can.page.Append(can, can.ui.display, [{type: "tr", list: [{text: [key, "td"]}, {text: [value, "td"]}]}]) + }) + }, + day: function(can, msg) { + var hash = {}; msg.Table(function(value) { var time = new Date(value.time) + var key = time.getHours(); hash[key] = (hash[key]||[]).concat([value]) + }) + + var list = [0]; for (var i = 6; i < 24; i++) { list.push(i) } + + var table = can.page.Append(can, can.ui.content, [{type: "table", list: + can.core.List(list, function(hour, index) { + if (index == 0) { return {type: "tr", list: [{text: ["time", "th"]}, {text: ["text", "th"]}]} } + return {type: "tr", list: [{text: [can.base.Number(hour), "td"]}, can.onimport._task(can, msg, "2020-06-08 "+hour+":00:00", hash[hour])]} + }) + }]).table + }, + week: function(can, msg) { + var hash = {}; msg.Table(function(value) { var time = new Date(value.time) + var key = time.getDay()+" "+time.getHours() + hash[key] = (hash[key]||[]).concat([value]) + }) + + var head = ["time"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]); + var list = [0]; for (var i = 6; i < 24; i++) { list.push(i) } + + var table = can.page.Append(can, can.ui.content, [{type: "table", list: + can.core.List(list, function(hour, index) { + if (index == 0) { return {type: "tr", list: can.core.List(head, function(head) { return {text: [head, "th"]} })} } + return {type: "tr", list: can.core.List(head, function(head, index) { if (index == 0) { return {text: [hour, "td"]} } + return {text: ["", "td"], list: can.core.List(hash[index-1+" "+hour], function(value) { + return can.onimport._task(can, msg, value) + })} + })} + }) + }]).table + }, + month: function(can, msg) { + }, + months: function(can, msg) { + }, + year: function(can, msg) { + }, + long: function(can, msg) { + }, +}, ["/plugin/local/team/miss.css"]) +Volcanos("onaction", {help: "组件交互", list: [], +}) +Volcanos("ondetail", {help: "菜单交互", list: ["prepare", "process", "finish", "cancel"], +}) +Volcanos("onexport", {help: "导出数据", list: [], +}) + diff --git a/plugin/local/team/plan.js b/plugin/local/team/plan.js index 8a75c027..c347c409 100644 --- a/plugin/local/team/plan.js +++ b/plugin/local/team/plan.js @@ -51,7 +51,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, item.setAttribute("draggable", true) item.ondragstart = function(event) {can.drag = event.target} item.ondragover = function(event) {event.preventDefault()} - item.ondrop = function(event) {event.preventDefault() + item.ondrop = function(event) { + event.preventDefault() can.preview.insertBefore(can.drag, item) } })