mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt plan.js
This commit is contained in:
parent
a8f5216791
commit
49a94f1596
46
frame.js
46
frame.js
@ -390,10 +390,12 @@ Volcanos("onappend", {help: "渲染引擎", list: [], _init: function(can, meta,
|
||||
return target
|
||||
},
|
||||
table: function(can, msg, target, type, cb) {
|
||||
return can.page.AppendTable(can, msg, target, msg.append, cb)
|
||||
var table = can.page.AppendTable(can, msg, target, msg.append, cb)
|
||||
table && can.page.Modify(can, table, {className: type||"content"})
|
||||
return table
|
||||
},
|
||||
board: function(can, msg, target, type, text) { text = text || can.page.Display(msg.Result())
|
||||
return text && can.page.Append(can, target, [{view: ["code", "div", text]}]).code
|
||||
return text && can.page.Append(can, target, [{view: ["code "+(type||""), "div", text]}]).code
|
||||
},
|
||||
|
||||
figure: function(can, meta, key, target) {
|
||||
@ -462,7 +464,7 @@ Volcanos("onlayout", {help: "页面布局", list: [], _init: function(can, targe
|
||||
can.page.Remove(can, ui.legend)
|
||||
},
|
||||
|
||||
profile: function(can, target) {
|
||||
profile: function(can, target) { target = target || can._target
|
||||
return can.page.Append(can, target, [{view: ["void", "table"], list: [{type: "tr", list: [
|
||||
{type: "td", list: [{view: ["project"]}]},
|
||||
{type: "td", list: [
|
||||
@ -677,11 +679,30 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
typeof cb == "function" && cb
|
||||
})
|
||||
},
|
||||
|
||||
clear: function(can, target) {
|
||||
can.page.Modify(can, target||can._output, "")
|
||||
},
|
||||
hidden: function(can, target) {
|
||||
can.page.Modify(can, target, {style: {display: "none"}})
|
||||
},
|
||||
toggle: function(can, target) {
|
||||
can.page.Toggle(can, target)
|
||||
},
|
||||
select: function(can, target, name, which) {
|
||||
can.page.Select(can, target, name, function(item, index) {
|
||||
if (item == which || which == index) {
|
||||
can.page.ClassList.add(can, item, "select")
|
||||
} else {
|
||||
can.page.ClassList.del(can, item, "select")
|
||||
}
|
||||
})
|
||||
},
|
||||
modify: function(can, target, cb) { var back = target.innerHTML
|
||||
var ui = can.page.Appends(can, target, [{type: "input", value: back, onkeydown: function(event) {
|
||||
if (back.length > 120 || back.indexOf("\n") > -1) {
|
||||
return can.onmotion.modifys(can, target, cb)
|
||||
}
|
||||
var ui = can.page.Appends(can, target, [{type: "input", value: back, style: {width: target.offsetWidth > 400? 400: target.offsetWidth-20}, onkeydown: function(event) {
|
||||
switch (event.key) {
|
||||
case "Enter":
|
||||
target.innerHTML = event.target.value
|
||||
@ -698,7 +719,7 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
}}]); ui.first.focus(), ui.first.setSelectionRange(0, -1)
|
||||
},
|
||||
modifys: function(can, target, cb) { var back = target.innerHTML
|
||||
var ui = can.page.Appends(can, target, [{type: "textarea", value: back, style: {height: "80px"}, onkeydown: function(event) {
|
||||
var ui = can.page.Appends(can, target, [{type: "textarea", value: back, style: {height: "80px", width: target.offsetWidth > 400? 400: target.offsetWidth-20}, onkeydown: function(event) {
|
||||
switch (event.key) {
|
||||
case "Enter":
|
||||
if (event.ctrlKey) {
|
||||
@ -723,12 +744,6 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
|
||||
hidden: function(can, msg, list, cb, target) {
|
||||
can.page.Modify(can, target, {style: {display: "none"}})
|
||||
},
|
||||
toggle: function(can, msg, list, cb, target) {
|
||||
can.page.Toggle(can, target)
|
||||
},
|
||||
move: function(can, target, layout) { var begin
|
||||
target.onmousedown = function(event) {
|
||||
begin = {x: event.x, y: event.y, left: layout.left, top: layout.top, width: layout.width, height: layout.height}
|
||||
@ -746,14 +761,5 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
||||
}
|
||||
}
|
||||
},
|
||||
select: function(can, target, name, which) {
|
||||
can.page.Select(can, target, name, function(item, index) {
|
||||
if (item == which || which == index) {
|
||||
can.page.ClassList.add(can, item, "select")
|
||||
} else {
|
||||
can.page.ClassList.del(can, item, "select")
|
||||
}
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
|
24
lib/base.js
24
lib/base.js
@ -65,12 +65,11 @@ Volcanos("base", {help: "基础模块",
|
||||
}
|
||||
return size + "B"
|
||||
},
|
||||
Time: shy("时间格式化", function(t, fmt) {
|
||||
var now = new Date()
|
||||
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.setMonth(parseInt(vs[1])-1)
|
||||
now.setDate(parseInt(vs[2]))
|
||||
|
||||
var vs = ls[1].split(":")
|
||||
@ -80,7 +79,24 @@ Volcanos("base", {help: "基础模块",
|
||||
} else if (t) {
|
||||
now = t
|
||||
}
|
||||
// var now = t? new Date(t): new Date()
|
||||
return now
|
||||
},
|
||||
Time: shy("时间格式化", function(time, fmt) {
|
||||
var now = new Date()
|
||||
if (time && typeof time == "string") { var ls = time.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 (time) {
|
||||
now = time
|
||||
}
|
||||
// var now = time? new Date(time): new Date()
|
||||
|
||||
var list = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
|
||||
fmt = fmt || "%y-%m-%d %H:%M:%S"
|
||||
|
108
page/index.css
108
page/index.css
@ -50,6 +50,7 @@ fieldset.plugin {
|
||||
}
|
||||
legend {
|
||||
box-shadow:4px 4px 20px 4px #626bd0;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
input[type=button] {
|
||||
@ -76,6 +77,9 @@ select {
|
||||
background-color:black; color:cyan;
|
||||
padding:0 10px;
|
||||
}
|
||||
option {
|
||||
font-family:monospace;
|
||||
}
|
||||
|
||||
table.void>tr {
|
||||
margin:0;border:0;padding:0;
|
||||
@ -86,48 +90,53 @@ table.void>tr>th {
|
||||
table.void>tr>td {
|
||||
margin:0;border:0;padding:0;
|
||||
}
|
||||
table.void>tr:hover {
|
||||
background-color:#0fbd4500;
|
||||
}
|
||||
table.void>tr>th:hover {
|
||||
background-color:#0fbd4500;
|
||||
}
|
||||
table.void>tr>td:hover {
|
||||
background-color:#0fbd4500;
|
||||
}
|
||||
|
||||
table {
|
||||
border:0; white-space:pre;
|
||||
font-size:14px; font-family:monospace;
|
||||
cursor:pointer; overflow: auto;
|
||||
width:-webkit-fill-available;
|
||||
}
|
||||
table tr {
|
||||
background:#04272f85;
|
||||
}
|
||||
table tr:hover {
|
||||
background-color:#0fbd45;
|
||||
}
|
||||
table th {
|
||||
background-color:#0fbd45;
|
||||
padding:2px 6px;
|
||||
}
|
||||
table th:hover {
|
||||
background-color:red;
|
||||
}
|
||||
table td {
|
||||
max-width:1200px; overflow:auto;
|
||||
padding:2px 6px;
|
||||
}
|
||||
table td:hover {
|
||||
background-color:red;
|
||||
}
|
||||
table td.select {
|
||||
background-color:red;
|
||||
}
|
||||
|
||||
table.content tr:hover {
|
||||
background-color:green;
|
||||
}
|
||||
table.content th:hover {
|
||||
background-color:red;
|
||||
}
|
||||
table.content td:hover {
|
||||
background-color:red;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin:0;
|
||||
}
|
||||
h1:hover {
|
||||
background:green;
|
||||
cursor:pointer;
|
||||
}
|
||||
h2:hover {
|
||||
background:green;
|
||||
cursor:pointer;
|
||||
}
|
||||
h3:hover {
|
||||
background:green;
|
||||
cursor:pointer;
|
||||
}
|
||||
div.code {
|
||||
background-color:#343a34c4; color:white;
|
||||
font-size:14px; font-family:monospace;
|
||||
@ -306,6 +315,32 @@ body.white select {
|
||||
border:2px solid #99CC66;
|
||||
}
|
||||
|
||||
body.white table {
|
||||
color:black;
|
||||
}
|
||||
body.white table tr {
|
||||
background-color:#e1f1ff6b;
|
||||
}
|
||||
body.white table th {
|
||||
background-color:#99CCFF;
|
||||
}
|
||||
body.white table.content tr:hover {
|
||||
background-color:green;
|
||||
}
|
||||
body.white table input[type=button][value=结束] {
|
||||
background:red;
|
||||
}
|
||||
body.white table input[type=button][value=停止] {
|
||||
background:red;
|
||||
}
|
||||
body.white table input[type=button][value=启动] {
|
||||
background:#52ce78;
|
||||
}
|
||||
|
||||
body.white fieldset.story {
|
||||
background-color:#7c8ea5ab;
|
||||
}
|
||||
|
||||
body.white fieldset.Action {
|
||||
background-color:#a2dceab3;
|
||||
color:black;
|
||||
@ -321,43 +356,6 @@ body.white fieldset.Action fieldset.plugin legend:hover {
|
||||
background-color:#6ee4e4;
|
||||
}
|
||||
|
||||
body.white fieldset.plugin {
|
||||
background-color:#d0dfe49e;
|
||||
}
|
||||
body.white fieldset.plugin table {
|
||||
color:black;
|
||||
}
|
||||
body.white fieldset.plugin table tr {
|
||||
background-color:#e1f1ff6b;
|
||||
}
|
||||
body.white fieldset.plugin table tr:hover {
|
||||
background-color:#99CCFF;
|
||||
}
|
||||
body.white fieldset.plugin table th {
|
||||
background-color:#99CCFF;
|
||||
}
|
||||
body.white fieldset.plugin table th:hover {
|
||||
background-color:#98ecd4;
|
||||
}
|
||||
body.white fieldset.plugin table td {
|
||||
}
|
||||
body.white fieldset.plugin table td:hover {
|
||||
background-color:#98ecd4;
|
||||
}
|
||||
body.white fieldset.story {
|
||||
background-color:#7c8ea5ab;
|
||||
}
|
||||
|
||||
body.white table input[type=button][value=结束] {
|
||||
background:red;
|
||||
}
|
||||
body.white table input[type=button][value=停止] {
|
||||
background:red;
|
||||
}
|
||||
body.white table input[type=button][value=启动] {
|
||||
background:#52ce78;
|
||||
}
|
||||
|
||||
body.print {
|
||||
background-color:white;
|
||||
color:black;
|
||||
|
@ -13,7 +13,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
_table: function(can, msg, fields) { can.onmotion.clear(can, can.ui.content)
|
||||
var table = can.onappend.table(can, msg, can.ui.content, "table", function(value, key, index, line) {
|
||||
var table = can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line) {
|
||||
can.Status("count", index+1)
|
||||
return {text: [key == "text" && typeof line.text == "function" && line.text.help || value, "td"], onclick: function(event) {
|
||||
if (event.shiftKey) { var msg = can.request(event, line)
|
||||
|
@ -54,6 +54,7 @@ Volcanos("onaction", {help: "控件交互", list: [], _init: function(can, meta,
|
||||
var feature = can.sup.Conf("feature")
|
||||
var input = feature && feature[name]; if (input) {
|
||||
return can.sup.onaction.input(event, can.sup, name, function(msg) {
|
||||
can.user.toast(can, can.Conf("value")+"成功")
|
||||
if (can.sup._outputs && can.sup._outputs.length > 0) { var i = can.sup._outputs.length - 1
|
||||
can.sup._outputs[i].onimport._process && can.sup._outputs[i].onimport._process(can.sup._outputs[i], msg)
|
||||
return
|
||||
|
@ -12,7 +12,7 @@ Volcanos("onfigure", {help: "控件详情", list: [], key: {onclick: function(ev
|
||||
{button: ["关闭", function(event) { can.page.Remove(can, can._figure.fieldset) }]},
|
||||
], can._figure.action)
|
||||
|
||||
can.onappend.table(can, msg, can._figure.output, "table", function(value, key, index, line) {
|
||||
can.onappend.table(can, msg, can._figure.output, "content", function(value, key, index, line) {
|
||||
return {type: "td", inner: value, onclick: function() {
|
||||
target.value = value; msg.Option("_refresh") && run()
|
||||
can.page.Remove(can, can._figure.fieldset)
|
||||
|
@ -2,7 +2,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui = can.onlayout.display(can, target)
|
||||
can.ui.canvas = can.page.Append(can, can.ui.display, [{type: "canvas", width: 320, height: 240, style: {display: "none"}}]).first
|
||||
|
||||
can.onappend.table(can, msg, can.ui.content, "table", function(value, key, index, line, array) {
|
||||
can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line, array) {
|
||||
return {text: [value, "td"], onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
@ -10,7 +10,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}}
|
||||
})
|
||||
|
||||
can.onappend.board(can, msg, can.ui.display, "board")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
typeof cb == "function" && cb(msg)
|
||||
},
|
||||
})
|
||||
|
@ -269,7 +269,7 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
||||
toast.Close()
|
||||
|
||||
can.ui.tags.innerHTML = ""
|
||||
can.onappend.table(can, msg, can.ui.tags, "table", function(value, key, index, line) { can.Status("标签数", index+1)
|
||||
can.onappend.table(can, msg, can.ui.tags, "content", function(value, key, index, line) { can.Status("标签数", index+1)
|
||||
value = value.replace("<", "<").replace(">", ">"), value = value.replace("./", "")
|
||||
return {text: ["", "td"], list: [{text: [value, "div"]}], onclick: function(event) {
|
||||
line.line && can.onimport.tabview(can, can.Option("path"), line.file.replace("./", ""), parseInt(line.line), function() {
|
||||
|
@ -98,10 +98,10 @@ Volcanos("onkeymap", {help: "键盘交互", list: ["command", "normal", "insert"
|
||||
toast.Close()
|
||||
|
||||
can.ui.output.innerHTML = ""
|
||||
can.onappend.table(can, msg, can.ui.output, "table", function(value, key, index) {
|
||||
can.onappend.table(can, msg, can.ui.output, "content", function(value, key, index) {
|
||||
return {text: [value, "td"]}
|
||||
})
|
||||
can.onappend.board(can, msg, can.ui.output, "board")
|
||||
can.onappend.board(can, msg, can.ui.output, "content")
|
||||
}, true)
|
||||
},
|
||||
_engine: {
|
||||
|
@ -1,35 +1,26 @@
|
||||
fieldset.plan>div.output table.project {
|
||||
float:left;
|
||||
}
|
||||
fieldset.plan>div.output table.content {
|
||||
float:left;
|
||||
}
|
||||
fieldset.plan>div.output table.profile {
|
||||
float:left;
|
||||
}
|
||||
fieldset.plan>div.output table.content div.prepare {
|
||||
fieldset.plan>div.output div.prepare {
|
||||
background-color:blue;
|
||||
color:white;
|
||||
}
|
||||
fieldset.plan>div.output table.content div.process {
|
||||
fieldset.plan>div.output div.process {
|
||||
background-color:green;
|
||||
color:white;
|
||||
}
|
||||
fieldset.plan>div.output table.content div.finish {
|
||||
fieldset.plan>div.output div.finish {
|
||||
background-color:red;
|
||||
color:white;
|
||||
}
|
||||
fieldset.plan>div.output table.content div.cancel {
|
||||
fieldset.plan>div.output div.cancel {
|
||||
background-color:yellow;
|
||||
color:white;
|
||||
}
|
||||
|
||||
fieldset.plan>div.output table.content td {
|
||||
fieldset.plan>div.output td {
|
||||
vertical-align:top;
|
||||
}
|
||||
fieldset.plan>div.output table.content td.over {
|
||||
fieldset.plan>div.output td.over {
|
||||
border:solid 2px red;
|
||||
}
|
||||
fieldset.plan>div.output table.content td div.date {
|
||||
fieldset.plan>div.output td div.date {
|
||||
color:gray;
|
||||
}
|
||||
|
@ -1,49 +1,24 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.ui = can.page.Appends(can, can._target, [
|
||||
{view: ["project", "table"]},
|
||||
{view: ["content", "table"]},
|
||||
{view: ["profile", "table"]},
|
||||
{view: ["display", "pre"]},
|
||||
])
|
||||
|
||||
can.onmotion.clear(can, target)
|
||||
can.ui = can.onlayout.profile(can)
|
||||
typeof cb == "function" && cb(msg)
|
||||
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")
|
||||
can.onmotion.hidden(can, can._action)
|
||||
can.onimport[can.Option("scale")||"week"](can, msg)
|
||||
},
|
||||
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])-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 = can.onimport.date(can.base.Time(can.Option("begin_time")))
|
||||
_show: function(can, msg, head, list, key, get, set) {
|
||||
var begin_time = can.base.Date(can.base.Time(can.Option("begin_time")))
|
||||
var hash = {}; msg.Table(function(value, index) {
|
||||
var k = key(can.onimport.date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value])
|
||||
var k = key(can.base.Date(value.begin_time)); hash[k] = (hash[k]||[]).concat([value])
|
||||
can.Status("count", index+1)
|
||||
})
|
||||
|
||||
var table = can.page.Append(can, can.ui.content, [{type: "table", list:
|
||||
can.core.List(list, function(hour, row) {
|
||||
can.page.Append(can, can.ui.content, [{view: ["content", "table"], list: can.core.List(list, function(hour, row) {
|
||||
if (row == 0) { return {type: "tr", list: can.core.List(head, function(week) { return {text: [week, "th"]} })} }
|
||||
return {type: "tr", list: can.core.List(head, function(week, col) {
|
||||
if (col == 0) { return {text: [hour, "td"]} }
|
||||
return can.onimport._task(can, msg, set(begin_time, col, row), get(begin_time, col, row, hash))
|
||||
})}
|
||||
})
|
||||
}]).table
|
||||
}) }])
|
||||
},
|
||||
_task: function(can, msg, time, list, view) { return {text: ["", "td"],
|
||||
ondrop: function(event) {
|
||||
@ -56,7 +31,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(can.onimport.date(time+now.slice(time.length))))
|
||||
can.onaction.insertTask(event, can, can.base.Time(can.base.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)],
|
||||
@ -89,8 +64,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
}
|
||||
}, can.ui.display)
|
||||
|
||||
can.page.Appends(can, can.ui.profile, [{th: ["key", "value"]}])
|
||||
can.core.Item(task, function(key, value) { can.page.Append(can, can.ui.profile, [{td: [key, key == "pod"? ('<a href="'+can.user.MergeURL(can, {pod: value})+'" target="_blank">'+value+'</a>'): value],
|
||||
var table = can.page.Appends(can, can.ui.profile, [{view: ["content", "table"], list: [{th: ["key", "value"]}]}]).first
|
||||
can.core.Item(task, function(key, value) { can.page.Append(can, table, [{td: [key, key == "pod"? ('<a href="'+can.user.MergeURL(can, {pod: value})+'" target="_blank">'+value+'</a>'): value],
|
||||
onclick: function(event) { if (event.target.type == "button") { var name = event.target.name
|
||||
var cb = can.onaction[name]; if (typeof cb == "function") { return cb(event, can, name) }
|
||||
|
||||
@ -108,68 +83,73 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
day: function(can, msg) {
|
||||
var head = ["hour", "task"]
|
||||
var list = [0]; for (var i = 7; i < 24; i++) { list.push(can.base.Number(i, 2)) }
|
||||
function key(time) { return can.base.Number(time.getHours(), 2) }
|
||||
|
||||
function set(begin_time, col, row) { return can.base.Time(begin_time, "%y-%m-%d ")+list[row] }
|
||||
function key(time) { return can.base.Number(time.getHours(), 2) }
|
||||
function get(begin_time, col, row, hash) { return hash[list[row]] }
|
||||
can.onimport._show(can, msg, head, list, key, set, get)
|
||||
function set(begin_time, col, row) { return can.base.Time(begin_time, "%y-%m-%d ")+list[row] }
|
||||
|
||||
can.onimport._show(can, msg, head, list, key, get, set)
|
||||
},
|
||||
week: function(can, msg) {
|
||||
var head = ["hour"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"])
|
||||
var list = [0]; for (var i = 7; i < 24; i++) { list.push(can.base.Number(i, 2)) }
|
||||
function key(time) { return time.getDay()+" "+can.base.Number(time.getHours(), 2) }
|
||||
|
||||
function set(begin_time, col, row) { return can.base.Time(can.base.TimeAdd(begin_time, -begin_time.getDay()+col-1), "%y-%m-%d ")+list[row] }
|
||||
function key(time) { return time.getDay()+" "+can.base.Number(time.getHours(), 2) }
|
||||
function get(begin_time, col, row, hash) { return hash[col-1+" "+list[row]] }
|
||||
can.onimport._show(can, msg, head, list, key, set, get)
|
||||
function set(begin_time, col, row) { return can.base.Time(can.base.TimeAdd(begin_time, -begin_time.getDay()+col-1), "%y-%m-%d ")+list[row] }
|
||||
|
||||
can.onimport._show(can, msg, head, list, key, get, set)
|
||||
},
|
||||
month: function(can, msg) {
|
||||
var head = ["order"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"])
|
||||
var list = [0]; for (var i = 1; i < 6; i++) { list.push(i) }
|
||||
function key(time) { return can.base.Time(time, "%y-%m-%d") }
|
||||
|
||||
function set(begin_time, col, row) {
|
||||
var begin = can.base.TimeAdd(begin_time, -(begin_time.getDate()-1))
|
||||
var last = can.base.TimeAdd(begin_time, -(begin_time.getDate()-1)-begin.getDay())
|
||||
var day = can.base.TimeAdd(last, (row-1)*7+col)
|
||||
return key(day)
|
||||
}
|
||||
function key(time) { return can.base.Time(time, "%y-%m-%d") }
|
||||
function get(begin_time, col, row, hash) {
|
||||
var begin = can.base.TimeAdd(begin_time, -(begin_time.getDate()-1))
|
||||
var last = can.base.TimeAdd(begin_time, -(begin_time.getDate()-1)-begin.getDay())
|
||||
var day = can.base.TimeAdd(last, (row-1)*7+col)
|
||||
return [day.getDate()+""].concat(hash[key(day)]||[])
|
||||
}
|
||||
can.onimport._show(can, msg, head, list, key, set, get)
|
||||
function set(begin_time, col, row) {
|
||||
var begin = can.base.TimeAdd(begin_time, -(begin_time.getDate()-1))
|
||||
var last = can.base.TimeAdd(begin_time, -(begin_time.getDate()-1)-begin.getDay())
|
||||
var day = can.base.TimeAdd(last, (row-1)*7+col)
|
||||
return key(day)
|
||||
}
|
||||
|
||||
can.onimport._show(can, msg, head, list, key, get, set)
|
||||
},
|
||||
year: function(can, msg) {
|
||||
var head = ["month"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]);
|
||||
var list = [0]; for (var i = 1; i < 13; i++) { list.push(i) }
|
||||
function key(time) { return can.base.Time(time, "%y-%m ")+time.getDay() }
|
||||
|
||||
function set(begin_time, col, row) {
|
||||
return begin_time.getFullYear()+"-"+can.base.Number(list[row], 2)
|
||||
}
|
||||
function key(time) { return can.base.Time(time, "%y-%m ")+time.getDay() }
|
||||
function get(begin_time, col, row, hash) {
|
||||
return hash[begin_time.getFullYear()+"-"+can.base.Number(row, 2)+" "+(col-1)]
|
||||
}
|
||||
can.onimport._show(can, msg, head, list, key, set, get)
|
||||
function set(begin_time, col, row) {
|
||||
return begin_time.getFullYear()+"-"+can.base.Number(list[row], 2)
|
||||
}
|
||||
|
||||
can.onimport._show(can, msg, head, list, key, get, set)
|
||||
},
|
||||
long: function(can, msg) {
|
||||
var begin_time = can.onimport.date(can.base.Time(can.Option("begin_time")))
|
||||
var begin_time = can.base.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) }
|
||||
var list = [0]; for (var i = 1; i < 13; i++) { list.push(i) }
|
||||
function key(time) { return can.base.Time(time, "%y-%m") }
|
||||
|
||||
function set(begin_time, col, row) {
|
||||
return begin+col-1+"-"+can.base.Number(row, 2)
|
||||
}
|
||||
function key(time) { return can.base.Time(time, "%y-%m") }
|
||||
function get(begin_time, col, row, hash) {
|
||||
return hash[begin+col-1+"-"+can.base.Number(row, 2)]
|
||||
}
|
||||
can.onimport._show(can, msg, head, list, key, set, get)
|
||||
function set(begin_time, col, row) {
|
||||
return begin+col-1+"-"+can.base.Number(row, 2)
|
||||
}
|
||||
|
||||
can.onimport._show(can, msg, head, list, key, get, set)
|
||||
},
|
||||
}, ["/plugin/local/team/plan.css"])
|
||||
Volcanos("onaction", {help: "组件交互", list: [
|
||||
|
@ -1,7 +1,7 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
|
||||
can.ui = can.page.Appends(can, can._target, [{view: "content"}, {view: "display"}])
|
||||
|
||||
can.table = can.onappend.table(can, msg, can.ui.content, "table", function(value, key, index, line) {
|
||||
can.table = can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line) {
|
||||
return {text: [value, "td"], oncontextmenu: function(event) {
|
||||
can.user.carte(event, can, can.ondetail, can.ondetail.list, function(ev, cmd, meta) {
|
||||
var cb = meta[cmd]; cb && cb(event, can, cmd, value, key, index, line)
|
||||
|
@ -1,5 +1,5 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._output.innerHTML = ""
|
||||
can.onappend.table(can, msg, target, "table"), can.ui = can.page.Append(can, target, [
|
||||
can.onappend.table(can, msg, target, "content"), can.ui = can.page.Append(can, target, [
|
||||
{view: "project", style: {display: "none"}},
|
||||
{view: "content", onmouseenter: function(event) {
|
||||
can.onkeypop.action = can
|
||||
@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.current = null
|
||||
|
||||
// 加载绘图
|
||||
var code = can.onappend.board(can, msg, can.ui.content, "board", msg.Result()||can.onexport.content(can))
|
||||
var code = can.onappend.board(can, msg, can.ui.content, "content", msg.Result()||can.onexport.content(can))
|
||||
can.page.Select(can, can.ui.content, "svg", function(svg) { can.svg = can.group = svg
|
||||
can.onimport.block(can, svg), can.onimport.group(can, svg).click()
|
||||
can.page.Select(can, svg, "*", function(item, index) {
|
||||
@ -603,8 +603,8 @@ Volcanos("onaction", {help: "组件菜单", list: [
|
||||
_mode: {
|
||||
run: function(event, can) { var target = event.target
|
||||
event.type == "click" && target.Value("type") && can.run(event, ["action", "run", target.Value("zone"), target.Value("type"), target.Value("name"), target.Value("text")], function(msg) {
|
||||
can.onappend.table(can, msg, can.ui.display, "table")
|
||||
can.onappend.board(can, msg, can.ui.display, "board")
|
||||
can.onappend.table(can, msg, can.ui.display, "content")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
}, true)
|
||||
},
|
||||
translate: function(event, can, point) {
|
||||
|
@ -5,7 +5,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
|
||||
can.ui = can.onlayout.display(can, target)
|
||||
can.onappend.table(can, can.path, can.ui.content, "table", function(value, key) {
|
||||
can.onappend.table(can, can.path, can.ui.content, "content", function(value, key) {
|
||||
return {type: "td", inner: value, onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.onimport._init(can, msg, list, cb, target)
|
||||
|
@ -23,7 +23,7 @@ body fieldset div.story[data-type=spark] {
|
||||
background-color:#2169a9; color:white;
|
||||
box-shadow: 4px 4px 10px 1px #626bd0;
|
||||
border-left:solid 4px blue;
|
||||
padding:4px; margin:8px 0;
|
||||
padding:4px 10px; margin:10px;
|
||||
}
|
||||
body fieldset div.story[data-type=spark] span:hover {
|
||||
background-color:#c10c8a;
|
||||
@ -56,12 +56,6 @@ fieldset fieldset.story {
|
||||
border:0;
|
||||
box-shadow: 4px 4px 10px 1px #626bd0;
|
||||
}
|
||||
fieldset fieldset.story:hover {
|
||||
/* border:solid 1px red; */
|
||||
}
|
||||
fieldset fieldset.story div.output{
|
||||
padding:10px
|
||||
}
|
||||
|
||||
fieldset h1.story {
|
||||
clear:both;
|
||||
|
@ -7,7 +7,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.page.Modify(can, can._target, {style: {"max-width": can.Conf("width")}})
|
||||
|
||||
if (msg.Option("_display") == "table") {
|
||||
return can.onappend.table(can, msg, target, "table", function(value, key) {
|
||||
return can.onappend.table(can, msg, target, "content", function(value, key) {
|
||||
return {text: [value, "td"], onclick: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
|
@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui = can.page.Append(can, can._target, [
|
||||
{view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
])
|
||||
can.onappend.table(can, msg, can.ui.content, "table")
|
||||
can.onappend.board(can, msg, can.ui.display, "board")
|
||||
can.onappend.table(can, msg, can.ui.content, "content")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
return typeof cb == "function" && cb(msg)
|
||||
},
|
||||
})
|
||||
|
@ -1,7 +1,7 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, msg, list, cb, target) { can._output.innerHTML = ""
|
||||
if (msg.Option("_display") == "table") {
|
||||
can.onappend.table(can, msg, can._target, "table", function(value, key) {
|
||||
can.onappend.table(can, msg, can._target, "content", function(value, key) {
|
||||
return {text: [value, "td"], click: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
|
@ -6,7 +6,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
})
|
||||
|
||||
if (msg.Option("_display") == "table") {
|
||||
can.onappend.table(can, msg, can._target, "table", function(value, key) {
|
||||
can.onappend.table(can, msg, can._target, "content", function(value, key) {
|
||||
return {text: [value, "td"], click: function(event) {
|
||||
can.sup.onaction.change(event, can.sup, key, value, function(msg) {
|
||||
can.run(event)
|
||||
@ -194,7 +194,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view",
|
||||
},
|
||||
"数据源": function(event, can) {
|
||||
can.ui.display.innerHTML = ""
|
||||
can.onappend.table(can, can._msg, can.ui.display, "table")
|
||||
can.onappend.table(can, can._msg, can.ui.display, "content")
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: ["from", "commit", "total", "date", "begin", "add", "del", "close", "note"]})
|
||||
|
@ -1,15 +1,16 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
if (can.onimport._process(can, msg)) { return typeof cb == "function" && cb(can, msg) }
|
||||
|
||||
can.ui = can.page.Appends(can, target, [can.onimport._control(can, msg)].concat([
|
||||
{view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
]))
|
||||
can.ui = can.onlayout.display(can)
|
||||
// can.ui = can.page.Appends(can, target, [can.onimport._control(can, msg)].concat([
|
||||
// {view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
// ]))
|
||||
|
||||
can.onappend.table(can, msg, can.ui.content, "table", function(value, key, index, line, array) {
|
||||
can.onappend.table(can, msg, can.ui.content, "content", function(value, key, index, line, array) {
|
||||
return can.onimport._table(can, value, key, index, line, array)
|
||||
})
|
||||
|
||||
can.onappend.board(can, msg, can.ui.display, "board")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
can.onimport._board(can, msg)
|
||||
|
||||
typeof cb == "function" && cb(msg)
|
||||
@ -136,11 +137,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
return true
|
||||
},
|
||||
_inner: function(can, msg) {
|
||||
can.onappend.table(can, msg, can._output, "table", function(value, key, index, line, array) {
|
||||
can.onappend.table(can, msg, can._output, "content", function(value, key, index, line, array) {
|
||||
return can.onimport._table(can, value, key, index, line, array)
|
||||
})
|
||||
|
||||
can.onappend.board(can, msg, can._output, "board")
|
||||
can.onappend.board(can, msg, can._output, "content")
|
||||
// can.onimport._board(can, msg)
|
||||
return true
|
||||
},
|
||||
|
@ -2,8 +2,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.ui = can.page.Append(can, can._target, [
|
||||
{view: ["content", "div"]}, {view: ["display", "pre"]},
|
||||
])
|
||||
can.onappend.table(can, msg, can.ui.content, "table")
|
||||
can.onappend.board(can, msg,can.ui.display, "board")
|
||||
can.onappend.table(can, msg, can.ui.content, "content")
|
||||
can.onappend.board(can, msg, can.ui.display, "content")
|
||||
var refresh = msg.Option("_refresh") || can.Conf("feature")["_refresh"]
|
||||
refresh && can.core.Timer(refresh, function() {
|
||||
can.run({})
|
||||
|
Loading…
x
Reference in New Issue
Block a user