1
0
forked from x/volcanos
This commit is contained in:
shaoying 2020-09-25 19:49:09 +08:00
parent 57894d2ed3
commit f421970515
5 changed files with 45 additions and 53 deletions

View File

@ -182,7 +182,7 @@ div.code {
div.toast { div.toast {
color:yellow; color:yellow;
background:black; background:#0e3369b3;
border:solid 2px red; border:solid 2px red;
position:fixed; position:fixed;
padding:5px; padding:5px;
@ -190,7 +190,7 @@ div.toast {
} }
div.toast div.title { div.toast div.title {
font-size:14px; font-size:14px;
color:gray; color:#cae850;
} }
div.toast div.content { div.toast div.content {
text-align:center; text-align:center;
@ -407,6 +407,9 @@ body.white fieldset.plugin table tr {
body.white fieldset.plugin table tr:hover { body.white fieldset.plugin table tr:hover {
background-color:#99CCFF; background-color:#99CCFF;
} }
body.white fieldset.plugin table tr.select {
background-color:#0fbd45;
}
body.white fieldset.plugin table th { body.white fieldset.plugin table th {
padding:4px; padding:4px;
background-color:#99CCFF; background-color:#99CCFF;

View File

@ -32,9 +32,9 @@ var user = Volcanos("user", {help: "用户模块",
// TODO // TODO
}) })
}, },
toast: function(can, text, title, duration) { toast: function(can, text, title, duration, progress) {
var meta = typeof text == "object"? text: {text: text, title: title||can._help, duration: duration, progress: 0} var meta = typeof text == "object"? text: {text: text, title: title||can._help, duration: duration, progress: progress}
var width = meta.width||200, height = meta.height||100 var width = meta.width||400, height = meta.height||100
var ui = can.page.Append(can, document.body, [{view: "toast", style: { var ui = can.page.Append(can, document.body, [{view: "toast", style: {
width: width, bottom: 100, left: document.body.clientWidth/2-width/2, width: width, bottom: 100, left: document.body.clientWidth/2-width/2,
@ -46,7 +46,7 @@ var user = Volcanos("user", {help: "用户模块",
meta.progress > 0 && {text: ["", "div", "progress"], style: {width: width}, list: [ meta.progress > 0 && {text: ["", "div", "progress"], style: {width: width}, list: [
{text: ["", "div", "current"], style: {width: meta.progress/100*width}}, {text: ["", "div", "current"], style: {width: meta.progress/100*width}},
]}, ]},
]}]) ], ondblclick: function(event) { ui.Close() }}])
var timer = can.Timer({value: 100, length: (meta.duration||1000)/100}, function(event, interval, index) { var timer = can.Timer({value: 100, length: (meta.duration||1000)/100}, function(event, interval, index) {
if (index > 20) { ui.duration.innerHTML = parseInt(index/10)+"."+(index%10)+"s..." } if (index > 20) { ui.duration.innerHTML = parseInt(index/10)+"."+(index%10)+"s..." }
@ -176,6 +176,7 @@ var user = Volcanos("user", {help: "用户模块",
begin = new Date() begin = new Date()
msg._progress = show msg._progress = show
msg.upload = action.upload.files[0] msg.upload = action.upload.files[0]
msg.Option("_upload", "file")
can.run(event, ["action", "upload"], function(msg) { can.run(event, ["action", "upload"], function(msg) {
can.user.toast(can, "上传成功") can.user.toast(can, "上传成功")
}, true) }, true)

4
plugin/input/scan.js Normal file
View File

@ -0,0 +1,4 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, conf, list, cb, target) {
},
})

View File

@ -1,5 +1,5 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) { Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
can._target.innerHTML = "", can.ui = can.page.Append(can, can._target, [ can.ui = can.page.Appends(can, can._target, [
{view: "content"}, {view: "display"}, {view: "content"}, {view: "display"},
]) ])
can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) { can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) {
@ -15,6 +15,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
} }
}} }}
}) })
can.onexport.list = msg.append
typeof cb == "function" && cb()
}, },
}) })
Volcanos("onfigure", {help: "组件菜单", list: [], Volcanos("onfigure", {help: "组件菜单", list: [],
@ -36,11 +38,10 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
} }
}, },
}) })
Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "正常", "块选", "反选", "多选", "拖动", "编辑"], "求和", "最大", "最小", "平均"], Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "全选", "块选", "反选", "多选", "拖动", "编辑"], "求和", "最大", "最小", "平均"],
_engine: function(event, can, cmd) { _engine: function(event, can, cmd) {
var mul = "tr" + (can.Action("mode") == "正常"? "": ".select") var mul = "tr" + (can.Action("mode") == "全选"? "": ".select")
var method = can.onfigure[cmd] var method = can.onfigure[cmd], res = {}
var res = {}
can.page.Select(can, can.ui.content, mul, function(tr, nrow, rows) { can.page.Select(can, can.ui.content, mul, function(tr, nrow, rows) {
@ -48,9 +49,10 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "正常",
method && method(event, can, res, td, ncol, cols, rows, nrow) method && method(event, can, res, td, ncol, cols, rows, nrow)
}) })
}) })
can.page.Append(can, can.ui.display, [{type: "table", list: [{type: "tr", list: can.core.Item(res, function(key, value) {
return {text: [value, "td"]} can.core.Item(res, function(key, value) {
}).concat([{text: [cmd, "td"]}]) }] }]) can.Status(can._msg.append[key], value||"")
})
}, },
"保存": function(event, can, cmd) { "保存": function(event, can, cmd) {
@ -58,7 +60,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "正常",
can.user.toast(can, "保存成功") can.user.toast(can, "保存成功")
}, true) }, true)
}, },
"正常": function(event, can, cmd) { "全选": function(event, can, cmd) {
cmd && can.Action("mode", cmd) cmd && can.Action("mode", cmd)
can.page.Select(can, can.ui.content, "tr", function(item) { can.page.Select(can, can.ui.content, "tr", function(item) {
can.page.ClassList.del(can, item, "over") can.page.ClassList.del(can, item, "over")
@ -94,7 +96,7 @@ Volcanos("onaction", {help: "组件菜单", list: ["保存", ["mode", "正常",
}) })
}, },
"拖动": function(event, can, cmd) { "拖动": function(event, can, cmd) {
can.onaction["正常"](event, can, cmd) can.onaction["全选"](event, can, cmd)
can.page.Select(can, can.ui.content, "tr", function(item) { can.page.Select(can, can.ui.content, "tr", function(item) {
item.setAttribute("draggable", true) item.setAttribute("draggable", true)
item.ondragstart = function(event) { can.drag = item } item.ondragstart = function(event) { can.drag = item }

View File

@ -1,34 +1,29 @@
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) { can._target.innerHTML = "" Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
can.ui = can.page.Append(can, can._target, [ can.ui = can.page.Appends(can, can._target, [
{view: "project"}, {view: "project"}, {view: "profile", style: {clear: "both"}},
{view: "profile", style: {clear: "both"}},
]) ])
can._msg = msg
can.path = can.request({}), can.list = [] can.path = can.request({}), can.list = []
msg.Table(function(value) { msg.Table(function(value) { if (value.path.startsWith("/local")) { return }
if (value.path.startsWith("/local")) { return }
value.path.endsWith("/")? can.path.Push(value): can.list.push(value) value.path.endsWith("/")? can.path.Push(value): can.list.push(value)
}) })
can.onappend.table(can, can.ui.project, "table", can.path, function(value, key, index, line, array) { can.onappend.table(can, can.ui.project, "table", can.path, function(value, key, index, line, array) {
return {type: "td", inner: value, click: function(event) { return {type: "td", inner: value, click: function(event) {
// can.Option(key, value) && can.run(event)
can.sup.onaction.change(event, can.sup, key, value, function(msg) { can.sup.onaction.change(event, can.sup, key, value, function(msg) {
can.run(event) can.run(event)
}) })
}} }}
}) })
var feature = can.Conf("feature") || {}
can.page.Modify(can, can._action, {style: {display: "none"}}) can.page.Modify(can, can._action, {style: {display: "none"}})
typeof cb == "function" && cb() typeof cb == "function" && cb()
var feature = can.Conf("feature") || {}
can.begin = 0
can.Action("倍速", can.rate = 1) can.Action("倍速", can.rate = 1)
can.Action("数量", can.limit = parseInt(feature["limit"]||msg.Option("limit"))||6) can.Action("数量", can.limit = parseInt(msg.Option("limit"))||feature["limit"]||6)
can.Action("高度", can.height = parseInt(feature["height"]||msg.Option("height"))||100) can.Action("高度", can.height = parseInt(msg.Option("height"))||feature["height"]||100)
can.Option("path") != "最近/" && can.onimport.page(can, can.list, can.begin, can.limit) can.Option("path") != "最近/" && can.onimport.page(can, can.list, can.begin = 0, can.limit)
}, },
page: function(can, list, begin, limit) { can.ui.profile.innerHTML = "" page: function(can, list, begin, limit) { can.ui.profile.innerHTML = ""
if (!list || list.length == 0) { return } if (!list || list.length == 0) { return }
@ -59,7 +54,7 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
can.page.Remove(can, event.target) can.page.Remove(can, event.target)
}, }]) }, }])
}, onmouseover: function(event) { }, onmouseover: function(event) {
// can.Status("文件", path) can.user.toast(can, path, "image")
}, _init: function(target) { }, _init: function(target) {
can.Status("文件", path) can.Status("文件", path)
} }
@ -90,30 +85,17 @@ Volcanos("onaction", {help: "组件菜单", list: [
["倍速", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10], ["倍速", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10],
], ],
"上传": function(event, can) { can.user.upload(event, can) }, "上传": function(event, can) { can.user.upload(event, can) },
"下载": function(event, can) { can.user.download(can, can.Status("文件")) },
"收藏": function(event, can) {
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, { action: "copy" }, function (response) {
can.onimport.file(can, response.src)
var msg = can.request(event); msg.Option(can.Option())
can.run(event, ["action", "spide", "mp4", response.title, response.src, "poster", response.poster], function(msg) {
}, true)
})
})
},
"清空": function(event, can) {
can._target.innerHTML = ""
},
"参数": function(event, can) {
can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}})
},
"上一页": function(event, can, key, value) { "上一页": function(event, can, key, value) {
can.begin > 0 && (can.begin -= can.limit, can.onimport.page(can, can.list, can.begin, can.limit)) can.begin > 0 && (can.begin -= can.limit, can.onimport.page(can, can.list, can.begin, can.limit))
}, },
"下一页": function(event, can, key, value) { "下一页": function(event, can, key, value) {
can.begin + can.limit < can.list.length && (can.begin += can.limit, can.onimport.page(can, can.list, can.begin, can.limit)) can.begin + can.limit < can.list.length && (can.begin += can.limit, can.onimport.page(can, can.list, can.begin, can.limit))
}, },
"下载": function(event, can) { can.user.download(can, can.Status("文件")) },
"参数": function(event, can) {
can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}})
},
"数量": function(event, can, key, value) { "数量": function(event, can, key, value) {
can.limit = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit) can.limit = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
}, },
@ -124,7 +106,7 @@ Volcanos("onaction", {help: "组件菜单", list: [
can.rate = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit) can.rate = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
}, },
}) })
Volcanos("onexport", {help: "导出数据", list: ["total", "begin", "limit", "position", "文件"], Volcanos("onexport", {help: "导出数据", list: ["begin", "limit", "total", "position", "文件"],
position: function(can, index, total) { total = total || can.max position: function(can, index, total) { total = total || can.max
return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total) return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total)
}, },