1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 16:58:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-09-19 20:58:58 +08:00
parent 5f3ccc5c65
commit 8ba9cefd0f
3 changed files with 50 additions and 31 deletions

View File

@ -1298,6 +1298,22 @@ Volcanos(chat.ONMOTION, {
can.page.style(can, target, html.HEIGHT, begin += height/list.length) can.page.style(can, target, html.HEIGHT, begin += height/list.length)
}, function() { can.page.style(can, target, html.HEIGHT, "") }) }, function() { can.page.style(can, target, html.HEIGHT, "") })
}, },
slideIn: function(can) { var margin = 100
var target = can._target
can.page.style(can, target, html.LEFT, margin)
can.core.Timer({interval: 10, length: 30}, function(timer, interval, index, list) {
can.page.style(can, target, html.LEFT, margin-(index+1)*(margin/list.length))
}, function() {})
},
slideOut: function(can, cb) { var margin = 100
var target = can._target
if (can._output.innerHTML == "") { return can.page.Remove(can, target), cb && cb() }
can.core.Timer({interval: 10, length: 30}, function(timer, interval, index, list) {
can.page.style(can, target, html.LEFT, (index+1)*(margin/list.length))
}, function() {
can.page.Remove(can, target), cb && cb()
})
},
slideAction: function(can, target) { slideAction: function(can, target) {
var action = can.page.Select(can, target.parentNode, html.DIV_ACTION)[0] var action = can.page.Select(can, target.parentNode, html.DIV_ACTION)[0]
var beginY, beginX, beginLeft, max = can.base.Max(action.offsetWidth, 240, 60) var beginY, beginX, beginLeft, max = can.base.Max(action.offsetWidth, 240, 60)
@ -1332,7 +1348,7 @@ Volcanos(chat.ONMOTION, {
var beginY = 0, beginX = 0, spanY = 0, spanX = 0, data var beginY = 0, beginX = 0, spanY = 0, spanX = 0, data
function direction() { function direction() {
if (Math.abs(spanX) > Math.abs(spanY)) { if (Math.abs(spanX) > Math.abs(spanY)) {
if (Math.abs(spanX) < 50) { if (Math.abs(spanX) < 100) {
return "move" return "move"
} else if (spanX > 0) { } else if (spanX > 0) {
return "right" return "right"
@ -1340,7 +1356,7 @@ Volcanos(chat.ONMOTION, {
return "left" return "left"
} }
} else { } else {
if (Math.abs(spanY) < 50) { if (Math.abs(spanY) < 150) {
return "move" return "move"
} else if (spanY > 0) { } else if (spanY > 0) {
return "down" return "down"
@ -1355,6 +1371,7 @@ Volcanos(chat.ONMOTION, {
target.ontouchmove = function(event) { var msg = can.request(event) target.ontouchmove = function(event) { var msg = can.request(event)
if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return } msg.Option(ice.MSG_HANDLE, ice.TRUE) if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return } msg.Option(ice.MSG_HANDLE, ice.TRUE)
spanY = event.touches[0].clientY-beginY, spanX = event.touches[0].clientX-beginX spanY = event.touches[0].clientY-beginY, spanX = event.touches[0].clientX-beginX
if (Math.abs(spanX) > Math.abs(spanY)) { can.onkeymap.prevent(event) }
can.onaction.onslidemove(event, can, data = {beginX: beginX, beginY: beginY, spanX: spanX, spanY: spanY}, direction()) can.onaction.onslidemove(event, can, data = {beginX: beginX, beginY: beginY, spanX: spanX, spanY: spanY}, direction())
} }
target.ontouchend = function(event) { var msg = can.request(event) target.ontouchend = function(event) { var msg = can.request(event)

View File

@ -90,6 +90,7 @@ Volcanos("base", {
if (item == arg[i]) { return true } if (item == arg[i]) { return true }
} }, } },
TimeTrim: function(value) { var prefix = "" TimeTrim: function(value) { var prefix = ""
if (!value) { return }
var now = new Date(), year = now.getFullYear()+"-", pre = this.Time(now, "%y-%m-%d ") var now = new Date(), year = now.getFullYear()+"-", pre = this.Time(now, "%y-%m-%d ")
if (value.indexOf(pre) == -1) { var list = ["昨天", "前天", "", "", "", "", ""] if (value.indexOf(pre) == -1) { var list = ["昨天", "前天", "", "", "", "", ""]
for (var i = 0; i < list.length; i++) { for (var i = 0; i < list.length; i++) {

View File

@ -272,8 +272,7 @@ Volcanos(chat.ONIMPORT, {
can.user.isMobile? can.user.jumps(can.misc.MergePodCmd(can, {cmd: index+"/"+args.join("/")})): can.onappend._float(can, index, args) can.user.isMobile? can.user.jumps(can.misc.MergePodCmd(can, {cmd: index+"/"+args.join("/")})): can.onappend._float(can, index, args)
}, },
myOption: function(can) { var sub = can.sub; if (!sub) { return } var plugin = sub._stacks_current[0] myOption: function(can) { var sub = can.sub; if (!sub) { return } var plugin = sub._stacks_current[0]; current = plugin.current||{}
current = plugin.current||{}
if (plugin == sub._stacks_root) { var PLACE_UID = can.core.Item(can.Option())[0] if (plugin == sub._stacks_root) { var PLACE_UID = can.core.Item(can.Option())[0]
if (sub._stacks_current.length == 1) { if (sub._stacks_current.length == 1) {
plugin.sub.onexport.hash(plugin.sub, can.Option(PLACE_UID)) plugin.sub.onexport.hash(plugin.sub, can.Option(PLACE_UID))
@ -311,13 +310,12 @@ Volcanos(chat.ONIMPORT, {
sub._select = function() { can.onimport.myPluginSelect(can, sub, _output) }, sub._select(), cb && cb(sub) sub._select = function() { can.onimport.myPluginSelect(can, sub, _output) }, sub._select(), cb && cb(sub)
}, _output) }, _output)
}, },
myStory: function(can, value) { myStory: function(can, value) { var ACTION_HEIGHT = 48
if (!can._stacks_current) { var sup = can.sup; can._stacks_root = sup, sup._stacks = {} if (!can._stacks_current) { var sup = can.sup; can._stacks_root = sup, sup._stacks = {}
var key = [can.ConfSpace(), can.ConfIndex()].concat(can.base.trim(can.core.Item(can.Option(), function(key, value) { return value }))).join(",") var key = [can.ConfSpace(), can.ConfIndex()].concat(can.base.trim(can.core.Item(can.Option(), function(key, value) { return value }))).join(",")
can._stacks_current = sup._stacks[key] = [can.sup] can._stacks_current = sup._stacks[key] = [can.sup]
sup._select = function() { can.onimport.myPluginSelect(can, sup, sup._target.parentNode) } sup._select = function() { can.onimport.myPluginSelect(can, sup, sup._target.parentNode) }
} var plugin = can._stacks_current[0], _action = plugin._action, _output = plugin._output; current = plugin.current||{} } var plugin = can._stacks_current[0], _action = plugin._action, _output = plugin._output; current = plugin.current||{}
var ACTION_HEIGHT = 48
value.type = html.STORY, value.style = html.OUTPUT, value.height = (can.user.isMobile? window.innerHeight: can.ConfHeight())-ACTION_HEIGHT value.type = html.STORY, value.style = html.OUTPUT, value.height = (can.user.isMobile? window.innerHeight: can.ConfHeight())-ACTION_HEIGHT
can.onappend.plugin(can, value, function(sub) { can._stacks_current.push(sub) can.onappend.plugin(can, value, function(sub) { can._stacks_current.push(sub)
can.core.List(["_trans", "_style", "_icons", "_trans.input", "_trans.value"], function(key) { can.core.List(["_trans", "_style", "_icons", "_trans.input", "_trans.value"], function(key) {
@ -325,43 +323,46 @@ Volcanos(chat.ONIMPORT, {
}) })
var STREET_NAME = plugin.sub.Conf("_street_name"), PLACE_NAME = plugin.sub.Conf("_place_name") var STREET_NAME = plugin.sub.Conf("_street_name"), PLACE_NAME = plugin.sub.Conf("_place_name")
var run = sub.run; sub.run = function(event, cmds, cb) { var run = sub.run; sub.run = function(event, cmds, cb) {
run(can.request(event, { run(sub.request(event, {
city_name: current[CITY_NAME], street_name: current[STREET_NAME], place_name: current[PLACE_NAME], city_name: current[CITY_NAME], street_name: current[STREET_NAME], place_name: current[PLACE_NAME],
dashboard_uid: current["dashboard_uid"], storage_uid: current["storage_uid"], dashboard_uid: current["dashboard_uid"], storage_uid: current["storage_uid"],
command_uid: sub.Conf("command_uid"), portal_name: can.ConfHelp(), command_uid: sub.Conf("command_uid"), portal_name: can.ConfHelp(),
}, can.base.Obj(sub.Conf("field.option"))), cmds, cb) }, can.base.Obj(sub.Conf("field.option"))), cmds, cb)
} }
sub.onimport._field = function(sub, msg, cb) { can.onimport.myField(can, sub), can.onmotion.slideIn(sub)
msg.Table(function(value) { value._goback = function(event) { goback(event, true) }, can.onimport.myStory(can, value) })
}
can.onimport.myField(can, sub)
var margin = 100; can.page.style(can, sub._target, html.LEFT, margin)
can.core.Timer({interval: 10, length: 50}, function(timer, interval, index, list) {
can.page.style(can, sub._target, html.LEFT, margin-(index+1)*(margin/list.length))
}, function() {})
sub.onexport.output = function(_sub, msg) { _sub._stacks_current = can._stacks_current, _sub._stacks_root = can._stacks_root sub.onexport.output = function(_sub, msg) { _sub._stacks_current = can._stacks_current, _sub._stacks_root = can._stacks_root
sub._select(), msg.Option(ice.MSG_ACTION) && can.onappend._action(sub, msg.Option(ice.MSG_ACTION), _action, null, true) sub._select(), msg.Option(ice.MSG_ACTION) && can.onappend._action(sub, msg.Option(ice.MSG_ACTION), _action, null, true)
sub.sub.onaction._goback = goback sub.sub.onaction._goback = goback
} }
function goback(event, clear) { sub.onimport._field = function(msg) { can.onmotion.clear(can, sub._output)
if (can._stacks_current.length == 1) { return } var sup = sub
if (value._goback) { return value._goback(event) } msg.Table(function(value) {
sub.request(event, {_toast: can.user.trans(can, "reload", "刷新")}) can.onappend.plugin(can, value, function(sub) {
if (clear) { if (sub.Option(UID)) { sub.Option(UID, "") } } var run = sub.run; sub.run = function(event, cmds, cb) {
if (sub.Option(UID)) { return sub.Option(UID, ""), sub.Update(event) } run(sub.request(event, {
city_name: current[CITY_NAME], street_name: current[STREET_NAME], place_name: current[PLACE_NAME],
dashboard_uid: current["dashboard_uid"], storage_uid: current["storage_uid"],
command_uid: sub.Conf("command_uid"), portal_name: can.ConfHelp(),
}, can.base.Obj(sub.Conf("field.option")), sup.Option()), cmds, cb)
}
}, sub._output)
})
}
function goback(event) { if (can._stacks_current.length == 1) { return }
if (sub._history.length > 1) {
sub.request(event, {_toast: "reload"})
return sub.onimport.back(event, sub)
}
var _last = can._stacks_current.pop() var _last = can._stacks_current.pop()
can.core.Timer({interval: 10, length: 50}, function(timer, interval, index, list) { can.onmotion.slideOut(_last, function() {
can.page.style(can, _last._target, html.LEFT, (index+1)*(margin/list.length)) var last = can._stacks_current[can._stacks_current.length-1]; last._select()
}, function() { can.page.Remove(can, _last._target) last.request(event, {_toast: "reload"})
var last = can._stacks_current[can._stacks_current.length-1]; if (last._select) {
if (last.ConfIndex().split(".").pop() == "message") { last.Update(event) } if (last.ConfIndex().split(".").pop() == "message") { last.Update(event) }
can._stacks_current.length == 1 && last._output.innerHTML == "" && last.Update(event) can._stacks_current.length == 1 && last._output.innerHTML == "" && last.Update(event)
return last._select()
}
}) })
} }
function reload(event) { function reload(event) {
sub.Update(sub.request(event, {_toast: can.user.trans(can, "reload", "刷新")})) sub.Update(sub.request(event, {_toast: "reload"}))
} }
sub._select = function() { can.onimport.myOption(sub) sub._select = function() { can.onimport.myOption(sub)
can.page.SelectChild(can, _output, "*", function(target) { can.onmotion.toggle(can, target, target == sub._target) }) can.page.SelectChild(can, _output, "*", function(target) { can.onmotion.toggle(can, target, target == sub._target) })
@ -489,7 +490,7 @@ Volcanos(chat.ONACTION, {
}, },
onslideleft: function(event, can, data, direction) { onslideleft: function(event, can, data, direction) {
var button = can.base.Obj(can._msg.Option("_action"), [])[0] var button = can.base.Obj(can._msg.Option("_action"), [])[0]
button && can.run({}, [ctx.ACTION, button]) button && can.run({}, [ctx.ACTION, button].concat(can.base.trim(can.core.Item(can.Option(), function(key, value) { return value }))))
}, },
onslidedown: function(event, can, data, direction) { onslidedown: function(event, can, data, direction) {
var target = can.ui.list||can.ui.output||can._output var target = can.ui.list||can.ui.output||can._output