mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
127 lines
5.7 KiB
JavaScript
127 lines
5.7 KiB
JavaScript
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._target.innerHTML = ""
|
|
var table = can.onappend.table(can, target, "table", msg)
|
|
table.onclick = function(event) {switch (event.target.tagName) {
|
|
case "SPAN":
|
|
case "TD":
|
|
var input = can.user.input(event, can, ["zone", "type", "name", "text"], function(event, value, data) {
|
|
switch (value) {
|
|
case "提交":
|
|
// 创建任务
|
|
can.run(event, ["action", "insert", data.zone, data.type, data.name, data.text, "begin_time", can.base.Time()], function(msg) {
|
|
can.page.Remove(can, input.first)
|
|
can.user.toast("添加成功")
|
|
can.Runs(event)
|
|
return true
|
|
}, true)
|
|
break
|
|
case "关闭": return true;
|
|
}
|
|
})
|
|
break
|
|
case "TH":
|
|
break
|
|
case "TR":
|
|
case "TABLE":
|
|
}}
|
|
|
|
table.oncontextmenu = function(event) {var target = event.target;
|
|
switch (event.target.tagName) {
|
|
case "DIV":
|
|
// 任务操作
|
|
var data = target.dataset;
|
|
can.user.carte(event, shy("", can.ondetail, can.feature.detail || can.ondetail.list, function(event, cmd, meta) {var cb = meta[cmd];
|
|
typeof cb == "function"? cb(event, can, msg, data.id, data.zone, cmd, target):
|
|
can.run(event, ["action", typeof cb == "string"? cb: cmd, data.id, data.zone], function(msg) {
|
|
can.user.toast("修改成功")
|
|
}, true)
|
|
}))
|
|
event.stopPropagation()
|
|
event.preventDefault()
|
|
break
|
|
case "TD":
|
|
break
|
|
case "TH":
|
|
case "TR":
|
|
case "TABLE":
|
|
}
|
|
}
|
|
|
|
can.page.Select(can, table, "div.task", function(item) {
|
|
// 拖动排期
|
|
item.setAttribute("draggable", true)
|
|
item.ondragstart = function(event) {can.drag = event.target}
|
|
item.ondragover = function(event) {event.preventDefault()}
|
|
item.ondrop = function(event) {event.preventDefault()
|
|
can.preview.insertBefore(can.drag, item)
|
|
}
|
|
})
|
|
|
|
can.page.Select(can, table, "tr", function(tr) {tr.list = [];
|
|
can.page.Select(can, tr, "td", function(item, index) {tr.list.push(item);
|
|
item.ondragover = function(event) {event.preventDefault(), can.page.Select(can, table, "td.over", function(item) {
|
|
can.page.ClassList.del(can, item, "over")
|
|
}), can.page.ClassList.add(can, item, "over")}
|
|
|
|
item.ondrop = function(event) {event.preventDefault()
|
|
item.append(can.drag)
|
|
|
|
// 任务排期
|
|
var data = can.drag.dataset;
|
|
var begin_time = new Date(data.begin_time);
|
|
|
|
switch (can.Option("scale")) {
|
|
case "long":
|
|
begin_time.setYear(parseInt(tr.list[0].innerText));
|
|
break
|
|
case "year":
|
|
begin_time.setMonth(parseInt(tr.list[0].innerText)-1);
|
|
break
|
|
case "month":
|
|
can.page.Select(can, item, "span", function(item) {var data = item.dataset
|
|
begin_time.setYear(parseInt(data.year))
|
|
begin_time.setMonth(parseInt(data.month)-1)
|
|
begin_time.setDate(parseInt(data.day))
|
|
})
|
|
break
|
|
case "week":
|
|
begin_time.setDate(begin_time.getDate() - (begin_time.getDay() - index + 1))
|
|
case "day":
|
|
begin_time.setHours(parseInt(tr.list[0].innerText));
|
|
begin_time.setMinutes(0);
|
|
begin_time.setSeconds(0);
|
|
}
|
|
|
|
can.run(event, ["action", "modify", "begin_time", can.base.Time(begin_time), data.begin_time, data.id, data.zone], function(msg) {
|
|
can.user.toast("修改成功")
|
|
}, true);
|
|
}
|
|
})
|
|
})
|
|
|
|
return typeof cb == "function" && cb(msg), table;
|
|
},
|
|
which: function(event, table, list, cb) {if (event.target == table) {return cb(-1, "")}
|
|
can.page.Select(can, table, "tr", function(tr, index) {if (event.target == tr) {return cb(index-1, "")}
|
|
can.page.Select(can, tr, "th,td", function(td, order) {
|
|
if (event.target == td) {return cb(index-1, list[order])}
|
|
})
|
|
})
|
|
},
|
|
}, ["plugin/local/team/plan.css"])
|
|
Volcanos("onaction", {help: "组件交互", list: []})
|
|
Volcanos("onchoice", {help: "组件菜单", list: ["返回", "清空"],
|
|
"返回": function(event, can, msg, cmd, target) {
|
|
can.run(event, ["", "Last"])
|
|
},
|
|
"清空": function(event, can, msg, cmd, target) {
|
|
can.target.innerHTML = "";
|
|
},
|
|
})
|
|
Volcanos("ondetail", {help: "组件详情", list: ["开始", "完成", "取消"],
|
|
"开始": "process",
|
|
"完成": "finish",
|
|
"取消": "cancel",
|
|
})
|
|
Volcanos("onexport", {help: "导出数据", list: []})
|
|
|