mirror of
https://shylinux.com/x/volcanos
synced 2025-04-27 01:28:28 +08:00
opt header
This commit is contained in:
parent
ada341c213
commit
9285c9a171
18
frame.js
18
frame.js
@ -152,6 +152,9 @@ Volcanos("onengine", {help: "解析引擎", list: [], _init: function(can, meta,
|
|||||||
"nfs": {name: "文件 nfs", index: [
|
"nfs": {name: "文件 nfs", index: [
|
||||||
"nfs.cat", "nfs.dir", "nfs.tail", "nfs.trash",
|
"nfs.cat", "nfs.dir", "nfs.tail", "nfs.trash",
|
||||||
]},
|
]},
|
||||||
|
"aaa": {name: "权限 aaa", index: [
|
||||||
|
"user", "sess", "role",
|
||||||
|
]},
|
||||||
}},
|
}},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -892,5 +895,20 @@ Volcanos("onmotion", {help: "动态交互", list: [], _init: function(can, targe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
downward: function(can, target, top, speed) {
|
||||||
|
var begin = target.offsetTop
|
||||||
|
var space = (top - begin) / 30
|
||||||
|
can.core.Timer({interval: speed||10, length: 30}, function() {
|
||||||
|
can.page.Modify(can, target, {style: {top: begin+=space}})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
resize: function(can, target, width, speed) {
|
||||||
|
var begin = target.offsetWidth
|
||||||
|
var space = (width - begin) / 30
|
||||||
|
can.core.Timer({interval: speed||10, length: 30}, function() {
|
||||||
|
can.page.Modify(can, target, {style: {width: begin+=space}})
|
||||||
|
})
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ Volcanos("core", {help: "数据结构",
|
|||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}),
|
}),
|
||||||
Timer: shy("定时器, value, [1,2,3,4], {value, length}", function(interval, cb, cbs) {
|
Timer: shy("定时器, value, [1,2,3,4], {interval, length}", function(interval, cb, cbs) {
|
||||||
interval = typeof interval == "object"? interval || []: [interval]
|
interval = typeof interval == "object"? interval || []: [interval]
|
||||||
var timer = {stop: false}; function loop(timer, i) {
|
var timer = {stop: false}; function loop(timer, i) {
|
||||||
if (timer.stop || i >= interval.length && interval.length >= 0) {
|
if (timer.stop || i >= interval.length && interval.length >= 0) {
|
||||||
|
@ -133,7 +133,7 @@ Volcanos("user", {help: "用户模块", agent: {
|
|||||||
var ui = can.page.Append(can, document.body, [{view: "carte", style: {left: x, top: y}, onmouseleave: function(event) {
|
var ui = can.page.Append(can, document.body, [{view: "carte", style: {left: x, top: y}, onmouseleave: function(event) {
|
||||||
can.page.Remove(can, ui.first)
|
can.page.Remove(can, ui.first)
|
||||||
}, list: can.core.List(list, function(item) {
|
}, list: can.core.List(list, function(item) {
|
||||||
return {view: "item", list: [typeof item == "string"? /* button */ {text: item, click: function(event) {
|
return {view: "item", list: [typeof item == "string"? /* button */ {text: can.user.trans(can, item), click: function(event) {
|
||||||
can.user.isMobile && can.page.Remove(can, ui.first)
|
can.user.isMobile && can.page.Remove(can, ui.first)
|
||||||
typeof cb == "function" && cb(event, item, meta)
|
typeof cb == "function" && cb(event, item, meta)
|
||||||
}}: item.args? /* input */ {text: item.name, click: function(event) {
|
}}: item.args? /* input */ {text: item.name, click: function(event) {
|
||||||
|
@ -228,7 +228,7 @@ div.carte {
|
|||||||
background:#295b61;
|
background:#295b61;
|
||||||
color:white;
|
color:white;
|
||||||
padding:4px;
|
padding:4px;
|
||||||
z-index:100;
|
z-index:10;
|
||||||
}
|
}
|
||||||
div.carte div.item {
|
div.carte div.item {
|
||||||
padding:3px 12px;
|
padding:3px 12px;
|
||||||
@ -306,7 +306,8 @@ fieldset>form.option>div.item.textarea {
|
|||||||
|
|
||||||
fieldset div.action>div.item {
|
fieldset div.action>div.item {
|
||||||
float:left; margin-right:3px;
|
float:left; margin-right:3px;
|
||||||
height:28px; vertical-align:middle;
|
/* height:28px; */
|
||||||
|
vertical-align:middle;
|
||||||
}
|
}
|
||||||
fieldset div.action>div.item.space {
|
fieldset div.action>div.item.space {
|
||||||
width:10px;
|
width:10px;
|
||||||
|
@ -11,6 +11,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg)
|
|||||||
sub._option.dataset = sub._option.dataset || {}
|
sub._option.dataset = sub._option.dataset || {}
|
||||||
item.id && (sub._option.dataset.id = item.id)
|
item.id && (sub._option.dataset.id = item.id)
|
||||||
})
|
})
|
||||||
|
}, function() {
|
||||||
|
can.onaction._layout(can, can.Conf("layout")||can.user.Search(can, "layout"))
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
_plugin: function(can, river, storm, sub, item) {
|
_plugin: function(can, river, storm, sub, item) {
|
||||||
@ -91,7 +93,6 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
|||||||
!can.user.isMobile && can.run({}, ["search", "Header.onimport.menu", "action",
|
!can.user.isMobile && can.run({}, ["search", "Header.onimport.menu", "action",
|
||||||
["布局", "默认布局", "流动布局", "网格布局", "标签布局", "自由布局"],
|
["布局", "默认布局", "流动布局", "网格布局", "标签布局", "自由布局"],
|
||||||
], function(event, key) { can.onaction._layout(can, key) })
|
], function(event, key) { can.onaction._layout(can, key) })
|
||||||
can.onaction._layout(can, can.user.Search(can, "layout"))
|
|
||||||
},
|
},
|
||||||
_layout: function(can, key) { if (!key) { return }
|
_layout: function(can, key) { if (!key) { return }
|
||||||
var trans = {
|
var trans = {
|
||||||
@ -106,7 +107,7 @@ Volcanos("onaction", {help: "交互操作", list: [], _init: function(can, msg,
|
|||||||
can.page.Modify(can, can._action, {className: "action "+key})
|
can.page.Modify(can, can._action, {className: "action "+key})
|
||||||
can.page.Modify(can, can._output, {className: "output "+key})
|
can.page.Modify(can, can._output, {className: "output "+key})
|
||||||
|
|
||||||
if (key == "标签布局") {
|
if (key == "tabs") {
|
||||||
can.onmotion.select(can, can._output, "fieldset.plugin", 0)
|
can.onmotion.select(can, can._output, "fieldset.plugin", 0)
|
||||||
can.onmotion.select(can, can._action, "div.item", 0)
|
can.onmotion.select(can, can._action, "div.item", 0)
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
fieldset.Header {
|
fieldset.Header {
|
||||||
height:32px; padding:0 5px;
|
height:32px; padding:0 5px;
|
||||||
z-index:1;
|
z-index:1000;
|
||||||
|
}
|
||||||
|
fieldset.Header>div.output {
|
||||||
|
z-index:1000;
|
||||||
}
|
}
|
||||||
fieldset.Header>div.output>div {
|
fieldset.Header>div.output>div {
|
||||||
height:22px; padding:5px;
|
height:22px; padding:5px;
|
||||||
@ -20,8 +23,8 @@ fieldset.Header>div.output>div.search {
|
|||||||
fieldset.Header>div.output>div.search>input {
|
fieldset.Header>div.output>div.search>input {
|
||||||
width:120px;
|
width:120px;
|
||||||
}
|
}
|
||||||
fieldset.Header>div.output>div.search>input:focus {
|
fieldset.Header>div.output>div.search>input:hover {
|
||||||
width:240px;
|
/* width:240px; */
|
||||||
}
|
}
|
||||||
fieldset.Header>div.output>div.menus {
|
fieldset.Header>div.output>div.menus {
|
||||||
float:left; margin-left:5px;
|
float:left; margin-left:5px;
|
||||||
|
@ -2,14 +2,16 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can._trans = {
|
can._trans = {
|
||||||
"river": "菜单",
|
"river": "菜单",
|
||||||
"search": "搜索",
|
"search": "搜索",
|
||||||
|
|
||||||
"setting": "设置",
|
"setting": "设置",
|
||||||
"black": "黑色主题",
|
"black": "黑色主题",
|
||||||
"white": "白色主题",
|
"white": "白色主题",
|
||||||
"print": "打印主题",
|
"print": "打印主题",
|
||||||
"clear": "清除背景",
|
"clear": "清除背景",
|
||||||
"pack": "打包页面",
|
"pack": "打包页面",
|
||||||
"usernick": "昵称",
|
|
||||||
"logout": "退出",
|
"usernick": "修改昵称",
|
||||||
|
"logout": "退出登录",
|
||||||
}
|
}
|
||||||
can.onmotion.clear(can)
|
can.onmotion.clear(can)
|
||||||
can.onimport._title(can, msg, target)
|
can.onimport._title(can, msg, target)
|
||||||
@ -19,6 +21,9 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.onimport._agent(can, msg, target)
|
can.onimport._agent(can, msg, target)
|
||||||
can.onimport._menu(can, msg, target)
|
can.onimport._menu(can, msg, target)
|
||||||
typeof cb == "function" && cb(msg)
|
typeof cb == "function" && cb(msg)
|
||||||
|
can.page.Modify(can, can._output, {onmouseover: function(event) {
|
||||||
|
can.menu && can.page.Remove(can, can.menu.first)
|
||||||
|
}})
|
||||||
},
|
},
|
||||||
_title: function(can, msg, target) {
|
_title: function(can, msg, target) {
|
||||||
can.user.title(can.user.Search(can, "title")||can.user.Search(can, "pod"))
|
can.user.title(can.user.Search(can, "title")||can.user.Search(can, "pod"))
|
||||||
@ -30,29 +35,31 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
},
|
},
|
||||||
_state: function(can, msg, target) {
|
_state: function(can, msg, target) {
|
||||||
can.core.List(can.Conf("state")||["time", "username"], function(item) {
|
can.core.List(can.Conf("state")||["time", "username"], function(item) {
|
||||||
can.page.Append(can, target, [{view: ["state "+item, "div", (can.Conf(item)||"").slice(0, 10)], onclick: function(event) {
|
can.page.Append(can, target, [{view: ["state "+item, "div", (can.Conf(item)||"").slice(0, 10)], onmouseenter: function(event) {
|
||||||
can.core.CallFunc([can.onaction, item], [event, can, item])
|
can.core.CallFunc([can.onaction, item], [event, can, item])
|
||||||
}, _init: function(target) {
|
}, _init: function(target) {
|
||||||
item == "time" && can.onimport._time(can, target)
|
item == "time" && can.onimport._time(can, target)
|
||||||
}}])
|
}}])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
_background: function(can, msg) {
|
||||||
|
!can.user.isLocalFile && can.onlayout.background(can, msg.Option("background"), document.body)
|
||||||
|
},
|
||||||
_search: function(can, msg, target) {
|
_search: function(can, msg, target) {
|
||||||
can.user.isMobile || (can.search = can.page.Append(can, target, [{view: "search", list: [{type: "input", data: {placeholder: "search"}, onkeydown: function(event) {
|
!can.user.isMobile && (can.search = can.page.Append(can, target, [{view: "search", list: [{type: "input", data: {placeholder: "search"}, onkeydown: function(event) {
|
||||||
can.onkeypop.input(event, can); switch (event.key) {
|
can.onkeypop.input(event, can); switch (event.key) {
|
||||||
case "Enter": can.run(event, ["search", "Search.onimport.select", "*", event.target.value]); break
|
case "Enter": can.run(event, ["search", "Search.onimport.select", "*", event.target.value]); break
|
||||||
}
|
}
|
||||||
}, }], }]).input)
|
}, onfocus: function(event) {
|
||||||
},
|
can.onmotion.resize(can, event.target, 240, 10)
|
||||||
_daemon: function(can, name, cb) {
|
}, onmouseenter: function(event) {
|
||||||
can.misc.WSS(can, {type: "chrome", name: name}, cb||function(event, msg, cmd, arg) {
|
can.onmotion.resize(can, event.target, 240, 10)
|
||||||
msg && can.run(event, ["search"].concat(msg["detail"]||[]), function(msg) {
|
}, onmouseleave: function(event) {
|
||||||
msg.Reply()
|
can.onmotion.resize(can, event.target, 120, 5)
|
||||||
})
|
}, onblur: function(event) {
|
||||||
})
|
can.onmotion.resize(can, event.target, 120, 5)
|
||||||
},
|
},
|
||||||
_background: function(can, msg) {
|
}] }]).input)
|
||||||
can.user.isLocalFile || can.onlayout.background(can, msg.Option("background"), document.body)
|
|
||||||
},
|
},
|
||||||
_agent: function(can, msg, target) {
|
_agent: function(can, msg, target) {
|
||||||
if (can.user.isMobile) {
|
if (can.user.isMobile) {
|
||||||
@ -67,14 +74,20 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
can.user.isWeiXin && can.onimport._weixin(can)
|
can.user.isWeiXin && can.onimport._weixin(can)
|
||||||
},
|
},
|
||||||
_menu: function(can, msg, target) {
|
_menu: function(can, msg, target) {
|
||||||
can.page.Append(can, target, can.core.List(can.user.isMobile || can.user.isExtension || can.user.Search(can, "pod")? ["river"]: ["setting"], function(item) {
|
can.onimport.menu(can, can.user.isMobile||can.user.isExtension||can.user.Search(can, "pod")? ["header", "river"]:
|
||||||
return {view: ["menus", "div", item], onclick: function(event) {
|
["header", ["setting", "black", "white", "print", "clear", "pack"]], function(event, item) {
|
||||||
can.core.CallFunc([can.onaction, item], [event, can, item])
|
can.core.CallFunc([can.onaction, item], [event, can, item])
|
||||||
}}
|
})
|
||||||
}))
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_weixin: function(can, msg) { can.run({}, ["action", "wx"], function(msg) {
|
_daemon: function(can, name, cb) {
|
||||||
|
can.misc.WSS(can, {type: "chrome", name: name}, cb||function(event, msg, cmd, arg) {
|
||||||
|
msg && can.run(event, ["search"].concat(msg["detail"]||[]), function(msg) {
|
||||||
|
msg.Reply()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
_weixin: function(can, msg) { can.run({}, ["action", "agent"], function(msg) {
|
||||||
can.require(["https://res.wx.qq.com/open/js/jweixin-1.6.0.js"], function(can) {
|
can.require(["https://res.wx.qq.com/open/js/jweixin-1.6.0.js"], function(can) {
|
||||||
wx.config({debug: msg.Option("debug") == "true", jsApiList: can.core.Item({
|
wx.config({debug: msg.Option("debug") == "true", jsApiList: can.core.Item({
|
||||||
scanQRCode: function(cb) { wx.scanQRCode({needResult: cb? 1: 0, scanType: ["qrCode","barCode"], success: function (res) {
|
scanQRCode: function(cb) { wx.scanQRCode({needResult: cb? 1: 0, scanType: ["qrCode","barCode"], success: function (res) {
|
||||||
@ -98,11 +111,11 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
}) })
|
}) })
|
||||||
},
|
},
|
||||||
|
|
||||||
_time: function(can, target) {
|
_time: function(can, target) {
|
||||||
can.core.Timer({interval: 1000}, function() { can.onimport.time(can, target) })
|
can.core.Timer({interval: 1000}, function() { can.onimport.time(can, target) })
|
||||||
can.onappend.figure(can, {style: {left: "", right: "0", top: can._target.offsetHeight, "min-width": 310}}, "@date", target)
|
can.onappend.figure(can, {style: {left: "", right: "0", top: can._target.offsetHeight, "min-width": 310}}, "@date", target)
|
||||||
},
|
},
|
||||||
|
|
||||||
time: function(can, target) { can.onlayout.topic(can)
|
time: function(can, target) { can.onlayout.topic(can)
|
||||||
target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
|
target.innerHTML = can.base.Time(null, "%w %H:%M:%S")
|
||||||
},
|
},
|
||||||
@ -121,9 +134,8 @@ Volcanos("onimport", {help: "导入数据", list: [], _init: function(can, msg,
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
} else if (item.length > 0) {
|
} else if (item.length > 0) {
|
||||||
return {view: ["menu", "div", item[0]], onclick: function(event) {
|
return {view: ["menu", "div", item[0]], onmouseenter: function(event) {
|
||||||
var ui = can.user.carte(event, can, can.onaction, item.slice(1), cb)
|
can.onaction.carte(event, can, item.slice(1), cb)
|
||||||
can.page.Modify(can, ui.first, {style: {top: can._target.offsetHeight}})
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
} else if (typeof item == "object") {
|
} else if (typeof item == "object") {
|
||||||
@ -136,12 +148,17 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
function init() { can.run({}, [], function(msg) {
|
function init() { can.run({}, [], function(msg) {
|
||||||
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
can.Conf("username", msg.Option("user.nick")||msg.Option("user.name"))
|
||||||
can.onimport._init(can, msg, list, function(msg) {
|
can.onimport._init(can, msg, list, function(msg) {
|
||||||
|
can.onengine.listen(can, "storm.select", function(msg, river, storm) {
|
||||||
|
can.Conf("river", river), can.Conf("storm", storm)
|
||||||
|
})
|
||||||
|
|
||||||
can.run(msg._event, ["search", "Search.onaction._init"])
|
can.run(msg._event, ["search", "Search.onaction._init"])
|
||||||
can.run(msg._event, ["search", "Action.onaction._init"])
|
can.run(msg._event, ["search", "Action.onaction._init"])
|
||||||
can.run(msg._event, ["search", "River.onaction._init"])
|
can.run(msg._event, ["search", "River.onaction._init"])
|
||||||
can.run(msg._event, ["search", "Footer.onaction._init"])
|
can.run(msg._event, ["search", "Footer.onaction._init"])
|
||||||
typeof cb == "function" && cb(msg)
|
typeof cb == "function" && cb(msg)
|
||||||
}, can._output)
|
}, can._output)
|
||||||
|
|
||||||
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
can.page.Select(can, document.body, "fieldset.River", function(item) {
|
||||||
can.onmotion.toggle(can, item)
|
can.onmotion.toggle(can, item)
|
||||||
})
|
})
|
||||||
@ -150,11 +167,6 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
can.onmotion.hidden(can, item)
|
can.onmotion.hidden(can, item)
|
||||||
})
|
})
|
||||||
|
|
||||||
can.onengine.listen(can, "storm.select", function(msg, river, storm) {
|
|
||||||
can.Conf("river", river), can.Conf("storm", storm)
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
can.onlayout.topic(can)
|
can.onlayout.topic(can)
|
||||||
can.user.isLocalFile? init(): can.run({}, ["check"], function(msg) {
|
can.user.isLocalFile? init(): can.run({}, ["check"], function(msg) {
|
||||||
msg.Result()? init(): msg.Option("sso")? can.user.jumps(msg.Option("sso")): can.user.login(can, init)
|
msg.Result()? init(): msg.Option("sso")? can.user.jumps(msg.Option("sso")): can.user.login(can, init)
|
||||||
@ -168,8 +180,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
can.user.jumps(can.user.MergeURL(can, args, true))
|
can.user.jumps(can.user.MergeURL(can, args, true))
|
||||||
},
|
},
|
||||||
username: function(event, can) {
|
username: function(event, can) {
|
||||||
var ui = can.user.carte(event, can, can.onaction, ["usernick", "logout"])
|
can.onaction.carte(event, can, ["usernick", "logout"])
|
||||||
can.page.Modify(can, ui.first, {style: {top: can._target.offsetHeight}})
|
|
||||||
},
|
},
|
||||||
usernick: function(event, can) {
|
usernick: function(event, can) {
|
||||||
can.user.input(event, can, [{_input: "text", name: "usernick", value: can.Conf("username")}], function(ev, button, data, list, args) {
|
can.user.input(event, can, [{_input: "text", name: "usernick", value: can.Conf("username")}], function(ev, button, data, list, args) {
|
||||||
@ -182,11 +193,7 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
},
|
},
|
||||||
logout: function(event, can) { can.user.logout(can) },
|
logout: function(event, can) { can.user.logout(can) },
|
||||||
|
|
||||||
river: function(event, can) { can.run(event, ["search", "River.onmotion.toggle"]) },
|
river: function(event, can) { can.onaction.River(can) },
|
||||||
setting: function(event, can) {
|
|
||||||
var ui = can.user.carte(event, can, can.onaction, ["black", "white", "print", "clear", "pack"])
|
|
||||||
can.page.Modify(can, ui.first, {style: {top: can._target.offsetHeight}})
|
|
||||||
},
|
|
||||||
black: function(event, can, button) { can.onlayout.topic(can, button) },
|
black: function(event, can, button) { can.onlayout.topic(can, button) },
|
||||||
white: function(event, can, button) { can.onlayout.topic(can, button) },
|
white: function(event, can, button) { can.onlayout.topic(can, button) },
|
||||||
print: function(event, can, button) { can.onlayout.topic(can, "white print") },
|
print: function(event, can, button) { can.onlayout.topic(can, "white print") },
|
||||||
@ -209,6 +216,12 @@ Volcanos("onaction", {help: "交互数据", list: [], _init: function(can, msg,
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
carte: function(event, can, list, cb) {
|
||||||
|
can.menu && can.page.Remove(can, can.menu.first)
|
||||||
|
can.menu = can.user.carte(event, can, can.onaction, list, cb)
|
||||||
|
can.page.Modify(can, can.menu.first, {style: {top: -list.length*15, left: event.target.offsetLeft}})
|
||||||
|
can.onmotion.downward(can, can.menu.first, can._target.offsetHeight, 10-list.length)
|
||||||
|
},
|
||||||
|
|
||||||
River: function(can) { can.run({}, ["search", "River.onmotion.toggle"]) },
|
River: function(can) { can.run({}, ["search", "River.onmotion.toggle"]) },
|
||||||
Footer: function(can) { can.run({}, ["search", "River.onmotion.autosize"]) },
|
Footer: function(can) { can.run({}, ["search", "River.onmotion.autosize"]) },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user