1
0
mirror of https://shylinux.com/x/volcanos synced 2025-04-25 08:48:06 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2024-09-24 13:10:58 +08:00
parent 15e9e790be
commit ff1a17fcdf
6 changed files with 64 additions and 46 deletions

View File

@ -320,7 +320,10 @@ Volcanos(chat.ONAPPEND, {
var p = can._history[can._history.length-1]; p && p._opts && can.request(event, p._opts)
return can.onengine._plugin(event, can, msg, can, cmds, cb) || can.run(event, cmds, function(msg) { var _can = can._fields? can.sup: can
if (can.base.isFunc(cb) && !cb(msg)) { return } if (silent) { return }
if (_can == (msg._can._fields? msg._can.sup: msg._can)) { if (can.core.CallFunc([_can, chat.ONIMPORT, ice.MSG_PROCESS], {can: _can, msg: msg})) { return } }
if (_can == (msg._can._fields? msg._can.sup: msg._can)) { if (can.core.CallFunc([_can, chat.ONIMPORT, ice.MSG_PROCESS], {can: _can, msg: msg})) {
can.onmotion.delay(can, function() { can.page.style(can, can._target, "visibility", ""), can.page.style(can, can._output, "visibility", "") }, 300)
return
} }
if (cmds && cmds[0] == ctx.ACTION) { if (can.base.isIn(cmds[1], mdb.CREATE, mdb.INSERT, mdb.PRUNES, mdb.EXPORT, mdb.IMPORT, "exports", "imports", nfs.TRASH) || msg.Length() == 0 && !msg.Result()) {
if (can.base.isIn(cmds[1], ctx.COMMAND)) { return }
return can._toast || can.user.isMobile || can.user.toastSuccess(can, can.user.trans(can, cmds[1]), ice.SUCCESS), can.Update()
@ -348,20 +351,21 @@ Volcanos(chat.ONAPPEND, {
can.onmotion.clear(can, can._option), can.onappend._option(can, {inputs: can.page.inputs(can, sub.onimport.list, html.TEXT) })
} can.onmotion.toggle(can, can._action, true), delete(can._status._cache), delete(can._status._cache_key)
var output_old = can._output; sub._target = sub._output = can._output = output = can.page.insertBefore(can, [html.OUTPUT], can._status)
can.page.ClassList.add(can, can._output, "_prepare")
if (sub.Mode() == ice.MSG_RESULT) { can._output.innerHTML = output_old.innerHTML }
if (can.page.tagis(can._target, "fieldset.cmd.form.output")) {
can.page.ClassList.del(can, can._target, html.FORM), can.page.ClassList.del(can, can._target, html.OUTPUT)
}
} can.page.ClassList.add(can, can._output, "_prepare")
can.onexport._output(sub, msg)
can.core.CallFunc([sub, chat.ONIMPORT, chat._INIT], {can: sub, msg: msg, cb: function(msg) {
can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onmotion.story.auto(can, can._output), sub.onmotion.touchAction(sub)
if (action !== false) { can.onkeymap._build(sub)
var list = can.base.Obj(msg.Option(ice.MSG_ACTION)||can.Conf(ice.MSG_ACTION), [])||[]
can.onmotion.clear(can, can._action), sub.onappend._action(sub, [{view: "_space"}].concat(list), action||can._action)
sub.onappend._status(sub, sub.onexport&&sub.onexport.list||msg.Option(ice.MSG_STATUS), null, msg), can.user.isMobile || sub.onappend.tools(sub, msg)
if (msg.Option("sess.online") == ice.TRUE) { can.ondaemon._online(can) }
// if (msg.Option("sess.online") == ice.TRUE) { can.ondaemon._online(can) }
if (msg.Length() > 9 && !sub.ui.project && !can.user.isMobile) { can.onmotion.delay(can, function() { can.onappend._filter(can) }, 300) }
} can.onappend.style(sub, sub.Conf(ctx.STYLE)), can.onmotion.story.auto(can, can._output)
}
if (can.onimport.size) {
can.page.ClassList.has(can, can._target, html.FLOAT) && !can.page.ClassList.has(can, can._target, html.PLUG)?
can.onimport.size(can, can.ConfHeight(), can.base.Min(can.ConfWidth(), can._target.offsetWidth), can.Conf("_auto"), can.Mode()):
@ -369,31 +373,12 @@ Volcanos(chat.ONAPPEND, {
can.isCmdMode() && can.page.style(can, can._output, html.HEIGHT, sub.ConfHeight())
can.onexport.output(sub, msg); if (can.Conf("_output")) { can.Conf("_output")(sub, msg) }
} msg.Defer(), can.base.isFunc(cb) && cb(msg)
// can.isCmdMode() && can.user.agent.init(can, can.user.info.titles)
can._output.scrollTop = output_old.scrollTop, can._output.scrollLeft = output_old.scrollLeft
can.isCmdMode() && can.user.agent.init(can, can.user.info.titles)
sub.onmotion.touchAction(sub)
can.page.style(can, can._target, "visibility", ""), can.page.style(can, can._output, "visibility", "")
if (!can.page.ClassList.has(can, can._target, "_back") && !can.page.ClassList.has(can, can._target, "_goto")) {
can.page.ClassList.del(can, can._output, "_prepare"), can.page.style(can, can._output, html.LEFT, 0)
can.page.Remove(can, output_old)
return
}
can.page.ClassList.del(can, can._output, "_prepare"), can.page.style(can, can._output, html.LEFT, 0)
can.page.Remove(can, output_old)
return
var width = can.ConfWidth(), begin = width-200; can.page.ClassList.add(can, output_old, "_unload")
can.core.Timer({length: (width-begin)/10, interval: 10}, function(timer, interval, index, list) {
if (can.page.ClassList.has(can, can._target, "_back")) {
can.page.style(can, can._output, html.LEFT, -width+(width-begin)/list.length*(index+1)+begin)
can.page.style(can, output_old, html.LEFT, (width-begin)/list.length*(index+1)+begin)
} else {
can.page.style(can, can._output, html.LEFT, width-(width-begin)/list.length*(index+1)-begin)
can.page.style(can, output_old, html.LEFT, -(width-begin)/list.length*(index+1)-begin)
}
}, function() {
can.page.ClassList.del(can, can._output, "_prepare"), can.page.style(can, can._output, html.LEFT, 0)
can.page.Remove(can, output_old)
})
}, target: output}), msg.Defer()
})
},
@ -672,6 +657,7 @@ Volcanos(chat.ONAPPEND, {
if (key == mdb.ICON && value) { _value = can.base.contains(value, ".ico", ".png", ".jpg")? img(can.misc.Resource(can, data[key], data.pod||data.space||data.nodename)): "<i class='"+value+"'></i>" }
if (key == mdb.ICONS && value) { _value = img(can.misc.Resource(can, data[key])) }
if (key == aaa.AVATAR && value) { _value = img(can.misc.Resource(can, data[key])) }
if (key == aaa.BACKGROUND && value) { _value = img(can.misc.Resource(can, data[key])) }
if (key == "user_avatar" && value) { _value = img(can.misc.Resource(can, data[key])) }
if (key == nfs.IMAGE && value) { _value = can.core.List(can.core.Split(data[key]), function(item) { return img(can.misc.ShareCache(can, item, data.space)) }).join("") }
// if (key == web.SPACE && value) { _value = can.page.Format(html.A, can.misc.MergePodCmd(can, {pod: value}), value) }

View File

@ -158,8 +158,8 @@ fieldset.plugin.cmd.output>div.output {
top:0;
}
fieldset.plugin.cmd>div.output {
position:absolute;
top:32px;
// position:absolute;
// top:32px;
}
div.output._prepare {
position:absolute;

View File

@ -107,6 +107,7 @@ Volcanos("page", {
}
can.core.List(["className", "placeholder", "title"], function(key) { data[key] || delete(data[key]) })
name && (data.name = name); var node = can.page.Create(can, type, data)
value[data.type] = node
value[type] = value[name] = value[can.core.Split(data.className)[0]] = node, value._target = value._target||node, value.first = value.first||node, value.last = node
item.list && can.page.Append(can, node, item.list, value), target && target.appendChild && target.appendChild(node), can.base.isFunc(item._init) && item._init(node, value)
}); return value },

View File

@ -257,7 +257,7 @@ Volcanos("user", {
{text: [can.user.trans(can, item.name||"", item._trans, html.INPUT), html.LABEL]},
item.need == "must" && {text: ["*", "", "must"]},
]}, {type: html.TD, list: []},
{type: html.TD, _init: function(target) { can.onappend.input(can, item, msg.Option(item.name), target) }},
{type: html.TD, _init: function(target) { can.onappend.input(can, item, msg.Option(item.name)||(can._msg? can._msg.Option(item.name): ""), target) }},
], onclick: function(event) {
can.page.Select(can, event.currentTarget, "input", function(target) { target.focus() })
}}
@ -316,10 +316,10 @@ Volcanos("user", {
can.user.isMobile && can.page.style(can, ui._target, html.LEFT, 0, html.WIDTH, window.innerWidth)
can.onlayout.figure(event, can, ui._target)
var action = can.onappend._action(can, [{type: html.UPLOAD, onchange: function(event) { action.show(event, 0, event.target.files[0].size, 0) }}, {type: html.BUTTON, name: cli.CLOSE}], ui.action, {
begin: function() { begin = new Date()
begin: function() { begin = new Date(), can.user.toastProcess(can, "upload")
var upload = can.page.Select(can, ui.action, html.INPUT_FILE)[0]; if (upload.files.length == 0) { return upload.focus() }
var msg = can.request(event, can.Option(), {_handle: ice.TRUE}); msg._upload = upload.files[0], msg._progress = action.show
can.runAction(event, html.UPLOAD, [], function(msg) { can.base.isFunc(cb)? cb(msg): can.Update(), action.close(), can.user.toastSuccess(can) })
can.runAction(event, html.UPLOAD, [], function(msg) { can.base.isFunc(cb)? cb(msg): can.Update(), action.close(), can.user.toastSuccess(can, "upload") })
}, close: function(event) { can.page.Remove(can, ui._target) },
show: function (event, value, total, loaded) {
ui.cost.innerHTML = can.base.Duration(new Date() - begin)

View File

@ -281,10 +281,11 @@ Volcanos(chat.ONIMPORT, {
}
}
sub._stacks_root.onexport.title(sub._stacks_root, current._name, can.ConfHelp(),
can._msg && can._msg.IsDetail()? can._msg.Append(html.TITLE)||can._msg.Append(mdb.NAME)||(can._msg.Append(UID)||"").slice(0, 6): ""
can._msg.Option("_share_title")||(can._msg && can._msg.IsDetail()? can._msg.Append(html.TITLE)||can._msg.Append(mdb.NAME)||(can._msg.Append(UID)||"").slice(0, 6): "")
)
can.user.agent.init(can, (can._msg && can._msg.IsDetail()? can._msg.Append(html.CONTENT)||can._msg.Append(mdb.INFO)||"": "")||current.city_name+" "+current._street,
can.Conf(mdb.ICONS)? can.misc.Resource(can, can.Conf(mdb.ICONS)): can.user.info.nodetype == web.WORKER? can.misc.Resource(can, can.user.info.favicon, can.user.info.nodename): "",
can.user.agent.init(can,
can._msg.Option("_share_content")||(can._msg && can._msg.IsDetail()? can._msg.Append(html.CONTENT)||can._msg.Append(mdb.INFO)||"": "")||current.city_name+" "+current._street,
can._msg.Option("share_icons")||(can.Conf(mdb.ICONS)? can.misc.Resource(can, can.Conf(mdb.ICONS)): can.user.info.nodetype == web.WORKER? can.misc.Resource(can, can.user.info.favicon, can.user.info.nodename): ""),
)
},
myField: function(can, sub) {
@ -334,8 +335,7 @@ Volcanos(chat.ONIMPORT, {
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.onimport._field = function(msg) { can.onmotion.clear(can, sub._output)
var sup = sub
sub.onimport._field = function(msg) { var sup = sub; can.onmotion.clear(can, sub._output)
msg.Table(function(value) {
can.onappend.plugin(can, value, function(sub) {
var run = sub.run; sub.run = function(event, cmds, cb) {
@ -349,13 +349,9 @@ Volcanos(chat.ONIMPORT, {
})
}
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)
}
if (sub._history.length > 1) { sub.request(event, {_toast: "reload"}); return sub.onimport.back(event, sub) }
var _last = can._stacks_current.pop()
can.onmotion.slideOut(_last, function() {
var last = can._stacks_current[can._stacks_current.length-1]; last._select()
can.onmotion.slideOut(_last, function() { var last = can._stacks_current[can._stacks_current.length-1]; last._select()
last.request(event, {_toast: "reload"})
if (last.ConfIndex().split(".").pop() == "message") { last.Update(event) }
can._stacks_current.length == 1 && last._output.innerHTML == "" && last.Update(event)
@ -408,7 +404,7 @@ Volcanos(chat.ONIMPORT, {
can.core.List(list, function(item) { if (!item || !item.list) { return }
for (var i = 0; i < item.list.length; i++) { if (item.list[i] && typeof item.list[i] == code.STRING) { item.list[i] = {text: item.list[i]} } }
})
cb = cb|| function(event) { can.Option(UID, value.uid), can.Update() }
cb = cb|| function(event) { if (value.uid) { can.Option(UID, value.uid), can.Update() } }
return {view: [[html.ITEM_CARD, value._uid? "uid-"+value._uid: ""].concat(value._style||[])], list: [
{view: html.ACTION, _init: function(target) { can.page.appendAction(can, value, target) }},
{view: html.OUTPUT, list: [
@ -416,9 +412,15 @@ Volcanos(chat.ONIMPORT, {
value.icons||value.icon||value.command_icon||value.service_icon||
value.avatar||value.user_avatar||can.Conf(mdb.ICONS), value.nodename,
), onclick: function(event) { can.onkeymap.prevent(event)
value.user_uid && can.onappend.plugin(can, {index: "web.team.gonganxitong.profile", args: [value.user_uid]})
if (value.auth_uid) {
can.onimport.myStory(can, {index: "web.team.renzhengshouquan.profile", args: [value.auth_uid]})
} else if (value.user_uid) {
can.onimport.myStory(can, {index: "web.team.gonganxitong.user", args: [value.user_uid]})
} else {
can.onaction.updateAvatar && can.onaction.updateAvatar(event, can)
}
}},
{view: html.INFO, list: list},
{view: html.CONTAINER, list: list},
], _init: function(target) {
value.action && can.onmotion.slideAction(can, target)
}},
@ -430,6 +432,29 @@ Volcanos(chat.ONIMPORT, {
key || can.core.Item(value, function(k, v) { if (k == "status" || can.base.endWith(k, "_status")) { key = k } }); if (!type) { type = key.split("_").pop() }
return value[key] && value[key] != "finish" && {text: [can.user.transValue(can, value, key), "", [type, value[key], can.Conf("_trans.value."+key+".style."+value[key])||""]]}
},
cityView: function(can, value) {
return {text: value.city_name, onclick: function(event) {
can.run(event, [ctx.RUN, "web.team.gonganxitong.city", value.city_name], function(msg) {
if (msg.Append("auth_uid")) {
can.onimport.myStory(can, {index: "web.team.renzhengshouquan.profile", args: [msg.Append("auth_uid")]})
} else {
can.onimport.myStory(can, {index: "web.team.gonganxitong.city", args: [value.city_name]})
}
})
}}
},
streetView: function(can, value) {
return {text: value._street, onclick: function(event) {
var cmd = value.company_name? "web.team.guanlixitong.company": value.school_name? "web.team.jiaowuxitong.school": value.street_name? "web.team.gonganxitong.street": ""
can.run(event, [ctx.RUN, cmd, value.city_name, value._street], function(msg) {
if (msg.Append("auth_uid")) {
can.onimport.myStory(can, {index: "web.team.renzhengshouquan.profile", args: [msg.Append("auth_uid")]})
} else {
can.onimport.myStory(can, {index: cmd, args: [value.city_name, value._street]})
}
})
}}
},
authView: function(can, value) { return can.base.isIn(value.auth_status, "issued", "2") && {view: [aaa.AUTH, html.SPAN], list: [{icon: "bi bi-patch-check-fill", style: {color: "var(--notice-bg-color)"}}]} },
timeView: function(can, value, key) {
if (key) { return {text: [can.user.trans(can, key, null, html.INPUT)+": "+can.base.TimeTrim(value[key]), "", mdb.TIME]} }
@ -444,7 +469,12 @@ Volcanos(chat.ONIMPORT, {
msg.Option("_share_title", (value[title]||value.name||value.uid).slice(0, 6)), msg.Option("_share_content", value[content]||value.info)
} },
titleAction: function(can, value, filter) { var filter = can.core.List(arguments).slice(2)
return can.user.isMobile && {view: html.ACTION, _init: function(target) { can.page.appendAction(can, value, target)
return {view: html.ACTION, _init: function(target) {
if (value.Option) {
can.onappend._action(can, value.Option(ice.MSG_ACTION), target)
return
}
can.page.appendAction(can, value, target)
can.page.Select(can, target, html.INPUT_BUTTON, function(target) {
if (filter.length > 0) {
filter.indexOf(target.name) == -1 && can.page.Remove(can, target)

View File

@ -150,6 +150,7 @@ try { if (typeof(window) == code.OBJECT) { var meta = Volcanos.meta
meta.target = document.body, meta._height = window.innerHeight, meta._width = window.innerWidth
meta._init = function(can) { var last = can.page.width() < can.page.height()
window.onresize = function(event) { can.misc.Event(event, can, function(msg) {
can.user.toast(can, window.innerHeight)
if (can.user.isMobile && last === can.page.width() < can.page.height()) { return } last = can.page.width() < can.page.height()
can.onmotion.delayOnce(can, function() { can.onengine.signal(can, chat.ONRESIZE, can.request(event, kit.Dict(html.HEIGHT, window.innerHeight, html.WIDTH, window.innerWidth))) }, 100, can._delay_resize = can._delay_resize||[])
}) }