mirror of
https://shylinux.com/x/volcanos
synced 2025-04-25 16:58:06 +08:00
opt feel
This commit is contained in:
parent
23a8cf4962
commit
a7f4b4c654
@ -9,10 +9,8 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
||||
},
|
||||
onclick: function(event, can) {
|
||||
var feature = can.sup.Conf("feature")
|
||||
var input = feature && feature[can.Conf("name")]
|
||||
|
||||
if (input) {
|
||||
can.user.input(event, can, input,function(event, button, data, list) {
|
||||
var input = feature && feature[can.Conf("name")]; if (input) {
|
||||
return can.user.input(event, can, input,function(event, button, data, list) {
|
||||
var args = ["action", can.Conf("name")]; can.core.Item(data, function(key, value) {
|
||||
key && value && args.push(key, value)
|
||||
})
|
||||
@ -22,22 +20,16 @@ Volcanos("onaction", {help: "控件交互", list: [],
|
||||
}, true)
|
||||
return true
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
var sub = can.sup && can.sup._outputs && can.sup._outputs[0]
|
||||
var cb = sub && sub.onaction[can.Conf("name")]
|
||||
if (typeof cb == "function") {
|
||||
cb(event, sub, can.Conf("name"))
|
||||
return
|
||||
}
|
||||
var cb = sub && sub.onaction && sub.onaction[can.Conf("name")]
|
||||
if (typeof cb == "function") { return cb(event, sub, can.Conf("name")) }
|
||||
|
||||
switch (can.Conf("type")) {
|
||||
case "button":
|
||||
var toast = can.user.toast(can, "执行中...", can.sup._help, 100000)
|
||||
can.run(event, [], function(msg) {
|
||||
toast.Close()
|
||||
})
|
||||
can.run(event, [], function(msg) { toast.Close() })
|
||||
break
|
||||
}
|
||||
},
|
||||
|
@ -1,39 +0,0 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [],
|
||||
_init: function(can, feature, output, action, option) {
|
||||
function passcode(event) {
|
||||
can.Run(event, [], function(msg) {
|
||||
can.page.Appends(can, output, [{type: "img", src: "data:image/jpg;base64,"+msg.image[0], onclick: function(event) {
|
||||
var p = can.page.Append(can, output, [{view: ["what", "div"], dataset: {meta: ""+(event.offsetX+1)+","+(event.offsetY-30+1)+""}, style: {
|
||||
background: "red", position: "absolute", width: "20px", height: "20px",
|
||||
left: event.offsetX+1+"px", top: event.offsetY+30+1+"px",
|
||||
}, onclick: function(event) {
|
||||
p.parentNode.removeChild(p)
|
||||
}}]).what
|
||||
}}])
|
||||
}, true)
|
||||
}
|
||||
|
||||
can.page.Append(can, option, [
|
||||
{button: ["刷新", passcode]},
|
||||
{username: ["账号", "args"]}, {password: ["密码", "args"]},
|
||||
{button: ["登录", function(event) {
|
||||
var point = can.page.Select(can, output, "div.what", function(item) {return item.dataset.meta}).join(",")
|
||||
point == ""? can.page.toast("请点击图片"): can.Run(event, ["check", point], function(msg) {
|
||||
if (msg.result_code == "4") {
|
||||
var input = can.page.Select(can, option, "input.args", function(item) {return item.value})
|
||||
can.Run(event, ["login"].concat(input).concat([msg.cmds[4]]), function(msg) {
|
||||
can.page.toast(msg.result_message[0])
|
||||
})
|
||||
} else {
|
||||
passcode(event)
|
||||
}
|
||||
}, true)
|
||||
}]},
|
||||
])
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: []})
|
||||
Volcanos("onchoice", {help: "控件菜单", list: []})
|
||||
Volcanos("ondetail", {help: "控件详情", list: []})
|
||||
Volcanos("onexport", {help: "导出数据", list: []})
|
||||
|
@ -1,19 +1,18 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
if (!msg.append || !msg.append[0] || !msg[msg.append[0]]) { return }
|
||||
can._name = "plan", can.ui = can.page.Appends(can, can._target, [
|
||||
can.ui = can.page.Appends(can, can._target, [
|
||||
{view: ["project", "table"], style: {display: can.user.Searchs(can, "project")||"none"}},
|
||||
{view: ["content", "table"]},
|
||||
{view: ["profile", "table"]},
|
||||
{view: ["display", "pre"]},
|
||||
])
|
||||
|
||||
can.onimport[can.Option("scale")](can, msg), can.Timer(10, function() { can.onimport._stat(can, msg)
|
||||
can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) {
|
||||
item.click()
|
||||
})
|
||||
can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text")
|
||||
can.page.Modify(can, can._action, {style: {display: "none"}})
|
||||
})
|
||||
can.onimport[can.Option("scale")](can, msg)
|
||||
typeof cb == "function" && cb()
|
||||
|
||||
can.onaction.view({}, can, "view", can.user.Searchs(can, "view")||"text")
|
||||
can.page.Select(can, can.ui.content, "div.item.id"+can.user.Searchs(can, "id"), function(item) {
|
||||
item.click()
|
||||
}), can.page.Modify(can, can._action, {style: {display: "none"}})
|
||||
},
|
||||
_stat: function(can, msg) {
|
||||
var stat = {
|
||||
@ -154,7 +153,6 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
|
||||
var head = ["hour"].concat(["周日", "周一", "周二", "周三", "周四", "周五", "周六"]);
|
||||
var list = [0]; for (var i = 7; i < 24; i++) { list.push(can.base.Number(i, 2)) }
|
||||
for (var i = 0; i < 7; i++) { list.push(can.base.Number(i, 2)) }
|
||||
|
||||
function set(week, hour) { return can.base.Time(can.base.TimeAdd(begin_time, week-begin_time.getDay()+hour/24)) }
|
||||
var table = can.page.Append(can, can.ui.content, [{type: "table", list:
|
||||
@ -233,9 +231,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
},
|
||||
}, ["/plugin/local/team/plan.css"])
|
||||
Volcanos("onaction", {help: "组件交互", list: [
|
||||
// ["level", "all", "l1", "l2", "l3", "l4", "l5"],
|
||||
// ["status", "all", "prepare", "process", "cancel", "finish"],
|
||||
// ["score", "all", "s1", "s2", "s3", "s4", "s5"],
|
||||
["level", "all", "l1", "l2", "l3", "l4", "l5"],
|
||||
["status", "all", "prepare", "process", "cancel", "finish"],
|
||||
["score", "all", "s1", "s2", "s3", "s4", "s5"],
|
||||
["view", "", "name", "text", "level", "score"],
|
||||
],
|
||||
insertTask: function(event, can, time) {
|
||||
@ -294,13 +292,13 @@ Volcanos("onaction", {help: "组件交互", list: [
|
||||
level: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
|
||||
status: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
|
||||
score: function(event, can, key, value) { can.onaction._filter(event, can, key, value) },
|
||||
|
||||
view: function(event, can, key, value) { can.ui.content.innerHTML = ""
|
||||
can.Action(key, value), can.onimport[can.Option("scale")](can, can._msg)
|
||||
},
|
||||
|
||||
"统计": function(event, can, key) {
|
||||
can.page.Modify(can, can.ui.project, {style: {display: can.ui.project.style.display=="none"? "table": "none"}})
|
||||
can.onimport._stat(can, msg)
|
||||
},
|
||||
"详情": function(event, can, key) {
|
||||
can.page.Modify(can, can.ui.profile, {style: {display: can.ui.profile.style.display=="none"? "table": "none"}})
|
||||
@ -308,6 +306,9 @@ Volcanos("onaction", {help: "组件交互", list: [
|
||||
"启动": function(event, can, key) {
|
||||
can.onaction.modifyTask(event, can, can.task, "status", "process", can.task.status)
|
||||
},
|
||||
"筛选": function(event, can, key) {
|
||||
can.page.Modify(can, can._action, {style: {display: can._action.style.display=="none"? "block": "none"}})
|
||||
},
|
||||
"运行": function(event, can, key) {
|
||||
can.onaction.pluginTask(event, can, can.task)
|
||||
},
|
||||
|
@ -14,7 +14,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
can.current = null
|
||||
|
||||
// 加载绘图
|
||||
var code = can.page.AppendBoard(can, can.ui.content, msg.Result()||can.onexport.file(can))
|
||||
var code = can.page.AppendBoard(can, can.ui.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) {
|
||||
@ -108,6 +108,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
return list.reverse().join(".")
|
||||
}
|
||||
target.ondblclick = function(event) {
|
||||
if (can.Action("go") == "run") { return }
|
||||
can.ondetail["标签"](event, can)
|
||||
event.stopPropagation()
|
||||
event.preventDefault()
|
||||
@ -765,26 +766,8 @@ Volcanos("onaction", {help: "组件菜单", list: [
|
||||
},
|
||||
})
|
||||
Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑", "删除"],
|
||||
"删除": function(event, can) { if (event.target == can.svg) { return }
|
||||
can.core.List(event.target.Value("ship"), function(value) {
|
||||
can.page.Select(can, can.svg, "."+value.pid, function(item) {
|
||||
can.page.Remove(can, item)
|
||||
})
|
||||
})
|
||||
can.page.Select(can, can.svg, "."+event.target.Value("text"), function(item) {
|
||||
can.page.Remove(can, item)
|
||||
})
|
||||
can.page.Remove(can, event.target)
|
||||
},
|
||||
"编辑": function(event, can) { var target = event.target
|
||||
var figure = can.onfigure._get(can, target)
|
||||
can.user.input(event, can, can.core.List(["x", "y", "transform", "translate_x", "translate_y"].concat(figure.data.copy||[]), function(item) {
|
||||
return {_input: "text", name: item, value: target.Value(item)}
|
||||
}), function(event, cmd, meta, list) {
|
||||
can.core.Item(meta, function(key, value) {
|
||||
target.Value(key, value)
|
||||
})
|
||||
})
|
||||
"复制": function(event, can) {
|
||||
can.onfigure._copy(event, can, event.target)
|
||||
},
|
||||
"标签": function(event, can) { var target = event.target
|
||||
var def = target.Value("text"); can.page.Select(can, can.svg, "."+target.Value("text"), function(item) {
|
||||
@ -805,8 +788,26 @@ Volcanos("ondetail", {help: "组件详情", list: ["复制", "标签", "编辑",
|
||||
target.Value("text", obj.Value("pid"))
|
||||
}, def)
|
||||
},
|
||||
"复制": function(event, can) {
|
||||
can.onfigure._copy(event, can, event.target)
|
||||
"编辑": function(event, can) { var target = event.target
|
||||
var figure = can.onfigure._get(can, target)
|
||||
can.user.input(event, can, can.core.List(["x", "y", "transform", "translate_x", "translate_y"].concat(figure.data.copy||[]), function(item) {
|
||||
return {_input: "text", name: item, value: target.Value(item)}
|
||||
}), function(event, cmd, meta, list) {
|
||||
can.core.Item(meta, function(key, value) {
|
||||
target.Value(key, value)
|
||||
})
|
||||
})
|
||||
},
|
||||
"删除": function(event, can) { if (event.target == can.svg) { return }
|
||||
can.core.List(event.target.Value("ship"), function(value) {
|
||||
can.page.Select(can, can.svg, "."+value.pid, function(item) {
|
||||
can.page.Remove(can, item)
|
||||
})
|
||||
})
|
||||
can.page.Select(can, can.svg, "."+event.target.Value("text"), function(item) {
|
||||
can.page.Remove(can, item)
|
||||
})
|
||||
can.page.Remove(can, event.target)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: ["坐标", "分组", "图形", "按键"],
|
||||
|
@ -1,71 +1,39 @@
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb) {
|
||||
can._target.innerHTML = "", can.ui = can.page.Append(can, can._target, [
|
||||
{view: "content"}, {view: "control"}, {view: "display"},
|
||||
])
|
||||
Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg, list, cb, target) {
|
||||
can.page.Modify(can, can._action, {style: {display: "none"}})
|
||||
typeof cb == "function" && cb()
|
||||
can.list = msg.Table()||[]
|
||||
|
||||
can.table = can.onappend.table(can, can.ui.content, "table", msg, function(value, key, index, line) {
|
||||
return {text: [value, "td"], onclick: function(event) {
|
||||
if (line.path.endsWith("/")) {
|
||||
can.run(event, [can.Option("path", line.path)])
|
||||
} else {
|
||||
can.onimport.file(can, line.path)
|
||||
}
|
||||
}}
|
||||
})
|
||||
|
||||
var list = msg.Table()||[], begin = 0, limit = 3; function page() {
|
||||
can.ctrl.offset.innerHTML = begin+"-"+(begin+limit)
|
||||
can.onimport.page(can, list, begin, limit)
|
||||
}
|
||||
can.ctrl = can.page.Append(can, can.ui.control, [
|
||||
{button: ["clear", function() {
|
||||
can.ui.display.innerHTML = ""
|
||||
}]},
|
||||
{select: [["height", 100, 200, 400, 600, 800], function(event, value) {
|
||||
can.height = parseInt(value), page()
|
||||
}]},
|
||||
{select: [["rate", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10], function(event, value) {
|
||||
can.rate = value, page()
|
||||
}]},
|
||||
{button: ["prev", function() {
|
||||
begin > 0 && (begin -= limit, can.onimport.page(can, list, begin, limit))
|
||||
}]},
|
||||
{text: [begin+"-"+(begin+limit)], name: "offset"},
|
||||
{button: ["next", function() {
|
||||
begin < msg[msg.append[0]].length && (begin += limit, page())
|
||||
}]},
|
||||
{select: [["limit", 1, 3, 6, 9, 12, 15], function(event, value) {
|
||||
limit = parseInt(value), page()
|
||||
}]},
|
||||
{text: [list.length]},
|
||||
])
|
||||
|
||||
can.rate = can.ctrl.rate.value = 1
|
||||
limit = can.ctrl.limit.value = parseInt(msg.Option("limit"))||1
|
||||
can.height = can.ctrl.height.value = parseInt(msg.Option("height"))||200
|
||||
can.Option("path") != "最近/" && can.onimport.page(can, list, begin, limit)
|
||||
can.begin = 0
|
||||
can.Action("倍速", 1)
|
||||
can.Action("数量", can.limit = parseInt(msg.Option("limit"))||3)
|
||||
can.Action("高度", can.height = parseInt(msg.Option("height"))||200)
|
||||
can.Option("path") != "最近/" && can.onimport.page(can, can.list, can.begin, can.limit)
|
||||
},
|
||||
page: function(can, list, begin, limit) { can.ui.display.innerHTML = ""
|
||||
page: function(can, list, begin, limit) { can._target.innerHTML = ""
|
||||
for (var i = begin; i < begin+limit; i++) { list[i] && can.onimport.file(can, list[i].path) }
|
||||
can.Status("begin", begin), can.Status("limit", limit), can.Status("total", can.list.length)
|
||||
},
|
||||
file: function(can, item) {
|
||||
file: function(can, path) { can.Status("文件", path)
|
||||
var p = location.href.startsWith("http")? "": "http://localhost:9020"
|
||||
item = item.startsWith("http")? item: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), item)
|
||||
path = path.startsWith("http")? path: p+can.base.Path("/share/local", " "+(can._msg.Option("prefix")||""), path)
|
||||
|
||||
var ls = item.split("/")
|
||||
var ls = path.split("/")
|
||||
var ls = ls[ls.length-1].split(".")
|
||||
var ext = ls[ls.length-1].toLowerCase()
|
||||
ext && can.page.Append(can, can.ui.display, [can.onfigure[ext](can, item)])
|
||||
ext && can.page.Append(can, can._target, [can.onfigure[ext](can, path)])
|
||||
},
|
||||
}, ["/plugin/local/wiki/feel.css"])
|
||||
Volcanos("onfigure", {help: "组件菜单", list: [],
|
||||
image: function(can, path) {
|
||||
return {img: path, height: can.height}
|
||||
},
|
||||
jpeg: function(can, path) { return can.onfigure.image(can, path) },
|
||||
jpg: function(can, path) { return can.onfigure.image(can, path) },
|
||||
png: function(can, path) { return can.onfigure.image(can, path) },
|
||||
qrc: function(can, path) { return can.onfigure.image(can, path) },
|
||||
png: function(can, path) { return can.onfigure.image(can, path) },
|
||||
jpg: function(can, path) { return can.onfigure.image(can, path) },
|
||||
jpeg: function(can, path) { return can.onfigure.image(can, path) },
|
||||
image: function(can, path) { return {img: path, height: can.height, onclick: function(event) {
|
||||
can.Status("文件", path)
|
||||
}, _init: function(target) {
|
||||
can.Status("文件", path)
|
||||
}
|
||||
} },
|
||||
|
||||
video: function(can, path) { var auto = true, loop = true, total = 0
|
||||
function cb(event) { console.log(event) }
|
||||
@ -75,7 +43,7 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
|
||||
onloadedmetadata: function(event) { total = event.timeStamp
|
||||
event.target.currentTime = can._msg.currentTime || 0
|
||||
}, onloadeddata: cb, ontimeupdate: function(event) {
|
||||
can.Status("当前行", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration))
|
||||
can.Status("position", can.onexport.position(can, (can._msg.currentTime=event.target.currentTime)-1, event.target.duration))
|
||||
},
|
||||
}
|
||||
},
|
||||
@ -83,8 +51,11 @@ Volcanos("onfigure", {help: "组件菜单", list: [],
|
||||
mp4: function(can, path) { return can.onfigure.video(can, path) },
|
||||
mov: function(can, path) { return can.onfigure.video(can, path) },
|
||||
})
|
||||
|
||||
Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"],
|
||||
Volcanos("onaction", {help: "组件菜单", list: [
|
||||
["数量", 1, 3, 6, 9, 12, 15],
|
||||
["高度", 100, 200, 400, 600, 800],
|
||||
["倍速", 0.1, 0.2, 0.5, 1, 2, 3, 5, 10],
|
||||
],
|
||||
"上传": function(event, can) { can.user.upload(event, can) },
|
||||
"收藏": function(event, can) {
|
||||
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
|
||||
@ -97,8 +68,29 @@ Volcanos("onaction", {help: "组件菜单", list: ["", "上传", "收藏"],
|
||||
})
|
||||
})
|
||||
},
|
||||
"清空": 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) {
|
||||
can.begin > 0 && (can.begin -= can.limit, can.onimport.page(can, can.list, can.begin, can.limit))
|
||||
},
|
||||
"下一页": 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))
|
||||
},
|
||||
"数量": function(event, can, key, value) {
|
||||
can.limit = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
|
||||
},
|
||||
"高度": function(event, can, key, value) {
|
||||
can.height = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
|
||||
},
|
||||
"倍速": function(event, can, key, value) {
|
||||
can.rate = parseInt(value), can.onimport.page(can, can.list, can.begin, can.limit)
|
||||
},
|
||||
})
|
||||
Volcanos("onexport", {help: "导出数据", list: ["当前行"],
|
||||
Volcanos("onexport", {help: "导出数据", list: ["begin", "limit", "total", "position", "文件"],
|
||||
position: function(can, index, total) { total = total || can.max
|
||||
return parseInt((index+1)*100/total)+"%"+" = "+(parseInt(index)+1)+"/"+parseInt(total)
|
||||
},
|
||||
|
@ -8,8 +8,7 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "控件交互", list: [],
|
||||
onclick: function(event, can) {
|
||||
can.run(event, [], function() {})
|
||||
"添加": function(event, can) {
|
||||
},
|
||||
})
|
||||
Volcanos("ondetail", {help: "控件交互", list: ["编辑", "删除"],
|
||||
|
@ -27,6 +27,7 @@ Volcanos("onimport", {help: "导入数据", list: [],
|
||||
})
|
||||
}
|
||||
}, can.ui.content)
|
||||
return typeof cb == "function" && cb(msg)
|
||||
},
|
||||
})
|
||||
Volcanos("onaction", {help: "组件菜单", list: ["编辑", "清空", ["view", "股价图", "趋势图", "数据源"], ["height", "100", "200", "400", "600"], ["speed", "10", "20", "50", "100"]],
|
||||
|
Loading…
x
Reference in New Issue
Block a user