mirror of
https://shylinux.com/x/volcanos
synced 2025-07-01 03:54:43 +08:00
add some
This commit is contained in:
parent
bb60f2ae2e
commit
11573fdc39
14
frame.js
14
frame.js
@ -172,6 +172,7 @@ Volcanos(chat.ONAPPEND, {
|
||||
Update: function(event, cmds, cb, silent) { event = event||{}, sub.request(event)._caller(), event.metaKey && sub.request(event, {metaKey: ice.TRUE})
|
||||
var msg = sub.request(event), list = can.core.Value(sub, "sub.db._checkbox"); can.core.Item(list, function(key, value) { msg.Option(key, value) })
|
||||
sub.request(event, sub.Option())
|
||||
sub.request(event, sub.Conf("option"))
|
||||
if (event.isTrusted && cmds && cmds.length > 0 && cmds[0] == ctx.ACTION) {
|
||||
can.onengine.signal(can, "onrecord", can.request({}, {cmds: [sub.ConfSpace(), sub.ConfIndex()].concat(cmds||[])}))
|
||||
} can.onengine.signal(can, "onevent", can.request(event))
|
||||
@ -345,7 +346,8 @@ Volcanos(chat.ONAPPEND, {
|
||||
_legend: can._legend, _option: can._option, _action: action||can._action, _output: output, _status: status||can._status,
|
||||
Update: can.Update, Option: can.Option, Action: can.Action, Status: can.Status, db: {hash: [""], value: {}}, ui: {layout: function() {}},
|
||||
}, display.split(",").concat([msg.Option(ice.MSG_DISPLAY_CSS)||can.Conf("display_css")||undefined, chat.PLUGIN_TABLE_JS]), function(sub) { sub.Conf(can.Conf())
|
||||
sub.db.hash = can.base.getValid(can.isCmdMode()? can.misc.SearchHash(can): [], can.onexport.storage(can, "hash"))||[]
|
||||
// sub.db.hash = can.base.getValid(can.isCmdMode()? can.misc.SearchHash(can): [], can.onexport.storage(can, "hash"))||[]
|
||||
sub.db.hash = can.base.getValid(can.isCmdMode()? can.misc.SearchHash(can): [])||[]
|
||||
var last = can.sub; last && can.core.CallFunc([last, "onaction.hidden"], {can: last})
|
||||
sub.run = function(event, cmds, cb, silent) { var msg = sub.request(event)._caller()
|
||||
msg.RunAction(event, sub, cmds) || can.Update(event, cmds||can.Input(cmds, !silent), cb, silent)
|
||||
@ -675,7 +677,9 @@ Volcanos(chat.ONAPPEND, {
|
||||
function run(event, cmd, arg) { can.misc.Event(event, can, function(msg) { can.run(request(event), [ctx.ACTION, cmd].concat(arg)) }) }
|
||||
function img(p) { return !msg.IsDetail()? can.page.Format(html.IMG, p, 48, 48): can.user.isMobile? can.page.Format(html.IMG, p, null, 320): can.page.Format(html.IMG, p, 320, null) }
|
||||
if ((key == mdb.ICON || can.base.endWith(key, "_icon")) && value) { _value = can.base.contains(value, ".ico", ".png", ".jpg", "jpeg")? img(can.misc.Resource(can, data[key], data.pod||data.space||data.nodename)): "<i class='"+value+"'></i>" }
|
||||
if ((key == mdb.ICONS || can.base.endWith(key, "_icons")) && value) { _value = img(can.misc.Resource(can, data[key])) }
|
||||
if ((key == mdb.ICONS || can.base.endWith(key, "_icons")) && value) {
|
||||
_value = can.base.contains(value, "bi ")? "<i class='"+value+"'></i>": img(can.misc.Resource(can, data[key]))
|
||||
}
|
||||
if ((key == aaa.AVATAR || can.base.endWith(key, "_avatar")) && value) { _value = img(can.misc.Resource(can, data[key])) }
|
||||
if ((key == aaa.BACKGROUND || can.base.endWith(key, "_background")) && 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("") }
|
||||
@ -1327,7 +1331,8 @@ Volcanos(chat.ONMOTION, {
|
||||
can.onmotion.delay(can, function() { can._root.Action.onlayout._init(can) })
|
||||
})
|
||||
},
|
||||
slideOut: function(can, cb) { var margin = 100
|
||||
slideOut: function(can, cb, skip) { var margin = 100
|
||||
if (skip) { return cb() }
|
||||
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) {
|
||||
@ -1395,6 +1400,9 @@ Volcanos(chat.ONMOTION, {
|
||||
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)
|
||||
spanY = event.touches[0].clientY-beginY, spanX = event.touches[0].clientX-beginX
|
||||
if (can.page.tagis(event.target, "table.content")) { return }
|
||||
if (can.page.tagis(event.target, "th")) { return }
|
||||
if (can.page.tagis(event.target, "td")) { return }
|
||||
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())
|
||||
}
|
||||
|
24
index.css
24
index.css
@ -2,7 +2,8 @@
|
||||
body {
|
||||
--code-bg-color:black; --code-fg-color:silver;
|
||||
--disable-fg-color:gray; --notice-color:blue; --danger-color:red;
|
||||
--shadow-color:var(--disable-fg-color); --border-color:var(--disable-fg-color);
|
||||
// --shadow-color:var(--disable-fg-color); --border-color:var(--disable-fg-color);
|
||||
--shadow-color:transparent; --border-color:var(--disable-fg-color);
|
||||
--notice-bg-color:var(--notice-color); --notice-fg-color:white;
|
||||
--danger-bg-color:var(--danger-color); --danger-fg-color:var(--notice-fg-color);
|
||||
--progress-bg-color:var(--danger-bg-color);
|
||||
@ -137,7 +138,7 @@ table.content.action td:last-child input.danger:hover { background-color:var(--h
|
||||
table.content.detail td:first-child { word-break:keep-all; white-space:pre; }
|
||||
table.content.detail td:first-child { text-align:center; }
|
||||
table.content.detail td:first-child { position:sticky; left:0; }
|
||||
table.content.option td.option { position:sticky; left:2px; z-index:1; box-shadow:var(--box-shadow); background-color:var(--th-bg-color); }
|
||||
table.content.option td.option { position:sticky; left:2px; z-index:1; background-color:var(--th-bg-color); }
|
||||
table.content.option th.option { position:sticky; left:2px; z-index:2; }
|
||||
table.content.option.checkbox td.option { left:50px; }
|
||||
table.content.option.checkbox th.option { left:50px; }
|
||||
@ -185,7 +186,7 @@ div.output.card>div.item>div.title>div.title { white-space:pre; overflow:auto }
|
||||
div.output.card>div.item>div.title>div.title>span { padding:0 var(--input-padding); white-space:pre; }
|
||||
div.output.card>div.item>div.title>div.title>span.exists { color:var(--notice-bg-color); }
|
||||
div.output.card>div.item>div.title>img { height:var(--header-height); width:var(--header-height); margin:0; float:left; }
|
||||
div.output.card>div.item>div.title>img.jpg { padding:var(--input-padding); }
|
||||
div.output.card>div.item>div.title>img.jpg { border-radius:10px; padding:var(--input-padding); }
|
||||
div.item.card:not(.hide) { position:relative; display:flex; align-items:center; padding:0; }
|
||||
div.item.card img { height:60px; width:60px; margin:5px; }
|
||||
div.item.card div.info { width:100%; }
|
||||
@ -208,7 +209,7 @@ div.item.card div.action input[type=button].notice:not(:hover) { background-colo
|
||||
div.item.card div.action input[type=button]:last-child { margin-right:5px; }
|
||||
div.item.card div.output { padding:10px 0; display:flex; transition:left .2s; }
|
||||
body.width1 div.item.card div.output { width:100%; }
|
||||
body.width1 div.item.card div.output { background-color:var(--output-bg-color); }
|
||||
body.width1 div.item.card>div.output { background-color:var(--output-bg-color); }
|
||||
div.item.card.select div.title { font-weight:bold; }
|
||||
div.item.card.select div.output { transition:left .5s; }
|
||||
div.item img[src*=".ico"] { padding:3px; }
|
||||
@ -633,7 +634,7 @@ div.float { box-shadow:var(--float-box-shadow); }
|
||||
// div.float { box-shadow:var(--float-box-shadow); border:var(--plugin-border); }
|
||||
div.float:hover { box-shadow:var(--notice-box-shadow); }
|
||||
fieldset.plugin { box-shadow:var(--plugin-box-shadow); border-radius:var(--plugin-radius); }
|
||||
fieldset.story { box-shadow:var(--plugin-box-shadow); border-radius:var(--plugin-radius); }
|
||||
// fieldset.story { box-shadow:var(--plugin-box-shadow); border-radius:var(--plugin-radius); }
|
||||
fieldset.float { box-shadow:var(--float-box-shadow); border:var(--plugin-border); border-radius:var(--plugin-radius); }
|
||||
fieldset.plugin:hover { box-shadow:var(--notice-box-shadow); }
|
||||
body.light fieldset.plugin>legend { box-shadow:var(--legend-box-shadow); margin-right:var(--legend-margin); }
|
||||
@ -650,7 +651,7 @@ fieldset>div.action div.item:not(.state) { box-shadow:var(--input-box-shadow); }
|
||||
fieldset>div.action>div.tabs:not(.state).select { box-shadow:var(--legend-box-shadow); }
|
||||
fieldset>div.action>div.tabs:not(.state) span.exists { color:var(--notice-bg-color); }
|
||||
fieldset>div.action>div.cmds:not(.state) { box-shadow:var(--legend-box-shadow); }
|
||||
div.output.card>div.item { box-shadow:var(--th-box-shadow); border:var(--plugin-border); border-radius:var(--plugin-radius); }
|
||||
div.output.card>div.item { border:var(--plugin-border); border-radius:var(--plugin-radius); }
|
||||
div.output.card>div.item:hover { box-shadow:var(--notice-box-shadow); }
|
||||
fieldset>div.output.card>div.item>div.title { border-bottom:var(--box-border); }
|
||||
fieldset>div.output.card>div.item>div.action>input { box-shadow:var(--input-box-shadow); }
|
||||
@ -658,12 +659,12 @@ fieldset>div.status { border-top:var(--status-border); }
|
||||
fieldset>div.status>legend.select { box-shadow:var(--legend-box-shadow); }
|
||||
fieldset>div.status>legend:hover { box-shadow:var(--legend-box-shadow); }
|
||||
fieldset.Action>div.toast>div.toast:hover { box-shadow:var(--notice-box-shadow); }
|
||||
table.content th { box-shadow:var(--th-box-shadow); }
|
||||
// table.content th { box-shadow:var(--th-box-shadow); }
|
||||
fieldset.input.key table.content th { box-shadow:none; }
|
||||
fieldset.input.key table.content.checkbox td:first-child { box-shadow:none; }
|
||||
table.content.checkbox td:first-child { box-shadow:var(--th-box-shadow); }
|
||||
table.content.action td:last-child { box-shadow:var(--th-box-shadow); }
|
||||
table.content.detail tr.action td { box-shadow:var(--th-box-shadow); position:sticky; bottom:2px; }
|
||||
// table.content.checkbox td:first-child { box-shadow:var(--th-box-shadow); }
|
||||
// table.content.action td:last-child { box-shadow:var(--th-box-shadow); }
|
||||
// table.content.detail tr.action td { box-shadow:var(--th-box-shadow); position:sticky; bottom:2px; }
|
||||
div.project:not(.toggle) { border-right:var(--box-border); overflow-x:hidden; }
|
||||
div.layout>div.profile:not(.toggle) { border-left:var(--box-border); }
|
||||
div.layout>div.display:not(.toggle) { border-top:var(--box-border); }
|
||||
@ -695,7 +696,8 @@ textarea { font-family:var(--input-font-family); font-size:var(--body-font-size)
|
||||
table.content.full { width:100%; }
|
||||
table.content col.time { width:180px; }
|
||||
table.content col.action { width:var(--project); }
|
||||
table.content.detail td:first-child { width:var(--input-width); box-shadow:var(--th-box-shadow); }
|
||||
table.content.detail td:first-child { width:var(--input-width); }
|
||||
// table.content.detail td:first-child { width:var(--input-width); box-shadow:var(--th-box-shadow); }
|
||||
body.mobile table.content.detail td:first-child { max-width:150px; word-break:break-all; white-space:break-spaces; }
|
||||
table.content.detail td { min-width:90px; }
|
||||
table.content.detail tr.option td { top:34px; z-index:2; }
|
||||
|
@ -212,8 +212,14 @@ Volcanos(chat.ONPLUGIN, {
|
||||
modify: shy(function(can, msg, arg) { if (arg[0] == mdb.VALUE) { can.misc.sessionStorage(can, msg.Option(mdb.NAME), arg[1]) } else {
|
||||
can.misc.sessionStorage(can, arg[1], msg.Option(mdb.VALUE)), can.misc.sessionStorage(can, msg.Option(mdb.NAME), "")
|
||||
} }),
|
||||
}, [web.FILTER, ice.LIST, mdb.CREATE, mdb.PRUNES], function(can, msg, arg) { msg.Defer(function() { msg.PushAction(mdb.REMOVE).StatusTimeCount() })
|
||||
can.core.Item(can.misc.sessionStorage(can), function(name, value) { can.base.contains(name, arg[0]) && msg.Push(mdb.NAME, name).Push(mdb.VALUE, value) })
|
||||
}, [web.FILTER, ice.LIST, mdb.CREATE, mdb.PRUNES], function(can, msg, arg) {
|
||||
// msg.Defer(function() { msg.PushAction(mdb.REMOVE).StatusTimeCount() })
|
||||
can.core.Item(can.misc.sessionStorage(can), function(name, value) {
|
||||
if (name == "can.daemon") { return }
|
||||
can.base.contains(name, arg[0]) && msg.Push(mdb.NAME, name).Push(mdb.VALUE, value)
|
||||
msg.PushButton(mdb.REMOVE)
|
||||
})
|
||||
msg.Sort(mdb.NAME)
|
||||
}),
|
||||
localStorage: shy("本地存储", {
|
||||
create: shy([mdb.NAME, mdb.VALUE], function(can, name, value) { can.misc.localStorage(can, name, value) }),
|
||||
@ -221,8 +227,13 @@ Volcanos(chat.ONPLUGIN, {
|
||||
modify: shy(function(can, msg, arg) { if (arg[0] == mdb.VALUE) { can.misc.localStorage(can, msg.Option(mdb.NAME), arg[1]) } else {
|
||||
can.misc.localStorage(can, arg[1], msg.Option(mdb.VALUE)), can.misc.localStorage(can, msg.Option(mdb.NAME), "")
|
||||
} }),
|
||||
}, [web.FILTER, ice.LIST, mdb.CREATE], function(can, msg, arg) { msg.Defer(function() { msg.PushAction(mdb.REMOVE).StatusTimeCount() })
|
||||
can.core.Item(can.misc.localStorage(can), function(name, value) { can.base.contains(name, arg[0]) && msg.Push(mdb.NAME, name).Push(mdb.VALUE, value) })
|
||||
}, [web.FILTER, ice.LIST, mdb.CREATE], function(can, msg, arg) {
|
||||
// msg.Defer(function() { msg.PushAction(mdb.REMOVE).StatusTimeCount() })
|
||||
can.core.Item(can.misc.localStorage(can), function(name, value) {
|
||||
can.base.contains(name, arg[0]) && msg.Push(mdb.NAME, name).Push(mdb.VALUE, value)
|
||||
can.base.beginWith(name, "sessid_")? msg.PushButton(): msg.PushButton(mdb.REMOVE)
|
||||
})
|
||||
msg.Sort(mdb.NAME)
|
||||
}),
|
||||
cookie: shy("会话参数", {
|
||||
create: shy([mdb.NAME, mdb.VALUE], function(can, name, value) { can.misc.Cookie(can, name, value) }),
|
||||
@ -230,8 +241,14 @@ Volcanos(chat.ONPLUGIN, {
|
||||
modify: shy(function(can, msg, arg) { if (arg[0] == mdb.VALUE) { can.misc.Cookie(can, msg.Option(mdb.NAME), arg[1]) } else {
|
||||
can.misc.Cookie(can, arg[1], msg.Option(mdb.VALUE)), can.misc.Cookie(can, msg.Option(mdb.NAME), "")
|
||||
} }),
|
||||
}, [web.FILTER, ice.LIST, mdb.CREATE], function(can, msg, arg) { msg.Defer(function() { msg.PushAction(mdb.REMOVE).StatusTimeCount() })
|
||||
can.core.Item(can.misc.Cookie(can), function(name, value) { can.base.contains(name, arg[0]) && msg.Push(mdb.NAME, name).Push(mdb.VALUE, value) })
|
||||
}, [web.FILTER, ice.LIST, mdb.CREATE], function(can, msg, arg) {
|
||||
// msg.Defer(function() { msg.PushAction(mdb.REMOVE).StatusTimeCount() })
|
||||
can.core.Item(can.misc.Cookie(can), function(name, value) {
|
||||
if (can.base.beginWith(name, "sessid_")) { return }
|
||||
can.base.contains(name, arg[0]) && msg.Push(mdb.NAME, name).Push(mdb.VALUE, value)
|
||||
can.base.beginWith(name, "sessid_")? msg.PushButton(): msg.PushButton(mdb.REMOVE)
|
||||
})
|
||||
msg.Sort(mdb.NAME)
|
||||
}),
|
||||
language: shy("语言地区", {_init: function(can) { can.Option(aaa.LANGUAGE, can.user.info.language||ice.AUTO) }}, ["language:select=auto,zh,en", ctx.RUN], function(can, msg, arg) { can.onimport.language(can, arg[0]) }),
|
||||
avatar: shy("用户头像", function(can, sub, cb) { can.page.Append(can, sub._output, [{img: can.user.info.avatar, style: kit.Dict(html.MAX_HEIGHT, sub.ConfHeight(), html.MAX_WIDTH, sub.ConfWidth())}]) }),
|
||||
|
@ -359,7 +359,7 @@ Volcanos(chat.ONEXPORT, {
|
||||
return can.misc.localStorage(can, [can.ConfSpace()||can.misc.Search(can, ice.POD), can.ConfIndex(), key], value)
|
||||
},
|
||||
hash: function(can, hash) {
|
||||
if (can.user.isMobile) { return }
|
||||
if (can.user.isWeiXin) { return }
|
||||
can.misc.SearchHash(can, hash)
|
||||
// can.onexport.storage(can, "hash", hash)
|
||||
return hash
|
||||
|
193
plugin/table.js
193
plugin/table.js
@ -307,10 +307,11 @@ Volcanos(chat.ONIMPORT, {
|
||||
if (sub._stacks_current) { var plugin = sub._stacks_current[0], current = plugin.current||{}
|
||||
can.core.List(sub._stacks_current, function(p) { current = p.current||current, p.current && (plugin = p) })
|
||||
if (plugin == sub._stacks_root) { var PLACE_UID = can.core.Item(can.Option())[0]
|
||||
var place_uid = can.Option(PLACE_UID) == can.misc.Search(can, PLACE_UID)? "": can.Option(PLACE_UID)
|
||||
if (sub._stacks_current.length == 1) {
|
||||
plugin.sub.onexport.hash(plugin.sub, can.Option(PLACE_UID))
|
||||
plugin.sub.onexport.hash(plugin.sub, place_uid)
|
||||
} else {
|
||||
plugin.sub.onexport.hash(plugin.sub, can.Option(PLACE_UID), can.ConfIndex(), can.Option(UID))
|
||||
plugin.sub.onexport.hash(plugin.sub, place_uid, can.ConfIndex(), can.Option(UID))
|
||||
}
|
||||
}
|
||||
sub._stacks_root.onexport.title(sub._stacks_root, current._name, can.ConfHelp(),
|
||||
@ -360,13 +361,12 @@ Volcanos(chat.ONIMPORT, {
|
||||
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(",")
|
||||
can._stacks_current = sup._stacks[key] = [can.sup], 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||{}
|
||||
// value.index.split(".").pop() == "credit" && (ACTION_HEIGHT = 0), value.index == "web.team.renzhengshouquan.profile" && (ACTION_HEIGHT = 0)
|
||||
value.type = html.STORY, value.style = html.OUTPUT, value.height = can._stacks_root.ConfHeight()-ACTION_HEIGHT
|
||||
// value.height = (can.user.isMobile? window.innerHeight: can.ConfHeight())-ACTION_HEIGHT
|
||||
}
|
||||
var portal = can._stacks_root
|
||||
can.core.List(can._stacks_current, function(sub) { if (can.base.endWith(sub.ConfIndex(), ".portal")) { portal = sub } })
|
||||
var plugin = can._stacks_current[0], _action = plugin._action, _output = plugin._output; current = plugin.current||{}
|
||||
can.core.List(can._stacks_current, function(p) { current = p.current||current, p.current && (plugin = p, portal = p) })
|
||||
if (value.space && can.base.endWith(value.index, ".portal")) { portal = can._root.Action }
|
||||
value.type = html.STORY, value.style = html.OUTPUT, value.height = can._stacks_root.ConfHeight()-ACTION_HEIGHT
|
||||
can.onappend.plugin(portal, value, function(sub) { can.onimport.myField(can, sub), can.onmotion.slideIn(sub)
|
||||
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) {
|
||||
@ -376,21 +376,22 @@ Volcanos(chat.ONIMPORT, {
|
||||
command_uid: sub.Conf("command_uid"), portal_name: can.ConfHelp(),
|
||||
}, can.base.Obj(sub.Conf("field.option"))), cmds, cb)
|
||||
}
|
||||
function goback(event, cb) { if (can._stacks_current.length == 1) { return cb && cb()}
|
||||
if (sub._history.length > 1) { sub.request(event, {_toast: "reload"}); return sub.onimport.back(event, sub), cb && cb() }
|
||||
function goback(event, cb) { if (can._stacks_current.length == 1) { return cb && cb() }
|
||||
if (sub._history.length > 1 && sub.ConfIndex().split(".").pop() != "market") {
|
||||
sub.request(event, {_toast: "reload"}); return sub.onimport.back(event, sub), cb && cb()
|
||||
}
|
||||
var _last = can._stacks_current.pop()
|
||||
can.onmotion.slideOut(_last, function() { var last = can._stacks_current[can._stacks_current.length-1]
|
||||
if (_last._index == "web.team.renzhengshouquan.profile") {
|
||||
if (last._index.split(".").pop() == "credit") {
|
||||
can._stacks_current.pop(), last = can._stacks_current[can._stacks_current.length-1]
|
||||
}
|
||||
if (_last._index == "web.team.renzhengshouquan.profile" && last._index.split(".").pop() == "credit") {
|
||||
can._stacks_current.pop(), last = can._stacks_current[can._stacks_current.length-1]
|
||||
}
|
||||
last._select(), can.onmotion.delay(can, function() { can._root.Action.onlayout._init(can) })
|
||||
last.request(event, {_toast: "reload"})
|
||||
if (last.ConfIndex().split(".").pop() == "market" && last.Option("uid")) { last.Option("uid", "") }
|
||||
if (last.ConfIndex().split(".").pop() == "message") { last._history.pop(), last.Option("uid", ""), last.Update(event) }
|
||||
// can._stacks_current.length == 1 && last._output.innerHTML == "" && last.Update(event)
|
||||
if (can._stacks_current.length == 1) {
|
||||
var hash = can.base.Obj(can.misc.SearchHash(can), can.db.hash)
|
||||
// var hash = can.base.Obj(can.misc.SearchHash(can), can.db.hash)
|
||||
var hash = can.misc.SearchHash(can)||[]
|
||||
if (hash.length > 1) { last._goback = true
|
||||
last.Option(can.core.Item(last.Option())[0], hash[0])
|
||||
last.Option("index", ""), last.Option("uid", "")
|
||||
@ -405,20 +406,16 @@ Volcanos(chat.ONIMPORT, {
|
||||
msg.IsDetail() === false && can.onappend.filter(can, _action, sub._output)
|
||||
if (can.base.endWith(sub.ConfIndex(), ".portal")) { return }
|
||||
msg.Option(ice.MSG_ACTION) && can.onappend._action(sub, msg.Option(ice.MSG_ACTION), _action, null, true)
|
||||
can.user.isMobile || can.page.Append(can, _action, [{view: html.ITM, list: [
|
||||
{text: can._msg.Option("user_name")},
|
||||
]}])
|
||||
}
|
||||
sub._select = function() { can.onimport.myOption(sub)
|
||||
sub._select = function() { can.onimport.myOption(sub), can.user.trans(can, {goback: "返回"})
|
||||
can.page.SelectChild(can, _output, "*", function(target) { can.onmotion.toggle(can, target, target == sub._target) })
|
||||
var list = [
|
||||
can.user.isMobile || can._msg.IsTech() && can.page.button(can, can.user.trans(can, sub.ConfIndex(), sub.ConfHelp()), function(event) {
|
||||
sub._legend.onclick(event)
|
||||
}),
|
||||
can.page.button(can, can.user.trans(can, "goback", "返回"), function(event) { goback(event) }),
|
||||
can.page.button(can, can.user.trans(can, "reload", "刷新"), function(event) { reload(event) }),
|
||||
can.page.button(can, "goback", function(event) { goback(event) }),
|
||||
can.page.button(can, "reload", function(event) { reload(event) }),
|
||||
]
|
||||
// var list = [can.page.button(can, can.user.trans(can, "goback", "返回"), function(event) { goback(event) })]
|
||||
can.page.Appends(can, _action, list)
|
||||
sub._msg && sub._msg.IsDetail() === false && can.onappend.filter(can, _action, sub._output)
|
||||
can.page.style(can, _action, html.DISPLAY, html.FLEX)
|
||||
@ -427,39 +424,16 @@ Volcanos(chat.ONIMPORT, {
|
||||
can._stacks_current.push(sub), sub._select()
|
||||
}, _output)
|
||||
},
|
||||
myTabs: function(can, key, list, target) { var last = can.misc.Cookie(can, key)
|
||||
myTabs: function(can, key, list, target) { var last = can.sup.Conf("option."+key)||""
|
||||
if (!target && !can.ui.tabs) { can.ui = can.page.Append(can, can._output, [html.TABS, html.LIST]) } target = target||can.ui.tabs
|
||||
can.page.Append(can, target, can.core.List(list, function(value) {
|
||||
return {text: [can.user.trans(can, value, "", "value."+key), "", [value, value == "all" && last == "" || value == last? html.SELECT: ""]], onclick: function(event) {
|
||||
can.onmotion.select(can, target, "*", event.target), can.misc.Cookie(can, key, value == "all"? "": value), can.Update()
|
||||
can.onmotion.select(can, target, "*", event.currentTarget)
|
||||
can.sup.Conf("option."+key, value == "all"? "": value)
|
||||
can.Update()
|
||||
}}
|
||||
}))
|
||||
},
|
||||
myPlaceInfo: function(can, msg, action) { if (!can.user.isMobile) { return }
|
||||
can.core.List(can._stacks_current.concat([]).reverse(), function(sub) {
|
||||
if (sub._output == can._target) { can.onappend.style(can, "market_uid", can._fields)
|
||||
can.page.Append(can, can._output, [{view: "place_info", _init: function(target) {
|
||||
can.run({}, [ctx.ACTION, action], function(msg) {
|
||||
can.onimport.itemcards(can, msg, function(value) { return [
|
||||
{view: html.TITLE, list: [value.user_name, can.onimport.titleAction(can, value)]},
|
||||
{view: html.STATUS, list: [value.city_name, value.street_name, value.place_name, value.service_name]},
|
||||
] }, function(event, value) {
|
||||
can.onimport.myStory(can, {
|
||||
index: can.ConfIndex().split(".").slice(0, 3).concat("portal").join("."), args: [value.place_uid],
|
||||
})
|
||||
}, target)
|
||||
can.page.Select(can, target, html.INPUT_BUTTON, function(target) {
|
||||
target.onclick = function(event) {
|
||||
can.onimport.myStory(can, {
|
||||
index: can.ConfIndex().split(".").slice(0, 3).concat("portal").join("."), args: [msg.Append("place_uid")],
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}}])
|
||||
}
|
||||
})
|
||||
},
|
||||
myViewTabs: function(can, status, msg, cb, cbs, target) {
|
||||
var trans = can.Conf("feature._trans.value."+status)
|
||||
var stat = {}; msg.Table(function(value) { stat[value[status]] = (stat[value[status]]||0)+1 })
|
||||
@ -470,12 +444,14 @@ Volcanos(chat.ONIMPORT, {
|
||||
msg.Table(function(value) { can.base.AddUniq(_list, value[status]), stat[value[status]] = (stat[value[status]]||0)+1 })
|
||||
can.core.List(_list, function(status) { list.push({name: status, value: status+"("+stat[status]+")"}) })
|
||||
}
|
||||
var last = can.sup.Conf("option."+status)
|
||||
if (!msg.IsDetail() && msg.Length() > 3 && list.length > 1) {
|
||||
can.ui.tabs = can.page.Append(can, can._output, [{view: "tabs", list: can.core.List([
|
||||
{name: "all", value: "全部"+"("+msg.Length()+")", style: "select"},
|
||||
{name: "all", value: "全部"+"("+msg.Length()+")", style: last == undefined? "select": ""},
|
||||
].concat(list), function(value) {
|
||||
return {view: [[html.ITEM].concat([value.name, value.style]), "", can.user.trans(can, value.name, value.value)], onclick: function(event) { var target = event.currentTarget
|
||||
return {view: [[html.ITEM].concat([value.name, value.style, value.name == last? "select": ""]), "", can.user.trans(can, value.name, value.value)], onclick: function(event) { var target = event.currentTarget
|
||||
can.onmotion.select(can, target.parentNode, html.DIV_ITEM, target)
|
||||
// can.sup.Conf("option."+status, value.name == "all"? "": value.name)
|
||||
can.page.Select(can, can._output, "div.item.card", function(target) {
|
||||
can.onmotion.hidden(can, target, value.name == "all" || can.page.ClassList.has(can, target, value.name))
|
||||
})
|
||||
@ -552,34 +528,47 @@ Volcanos(chat.ONIMPORT, {
|
||||
can.onmotion.select(can, event.currentTarget.parentNode, html.DIV_ITEM, event.currentTarget)
|
||||
}}
|
||||
},
|
||||
uidView: function(can, value) { return value.uid.slice(0, 6) },
|
||||
metaView: function(can, value) {
|
||||
return {view: html.STATUS, list: [can.onimport.uidView(can, value), can.onimport.timeView(can, value), value.user_name]}
|
||||
myPlaceInfo: function(can, msg, action) { if (!can.user.isMobile) { return }
|
||||
can.core.List(can._stacks_current.concat([]).reverse(), function(sub) {
|
||||
if (sub._output == can._target) { can.onappend.style(can, "market_uid", can._fields)
|
||||
can.page.Append(can, can._output, [{view: "place_info", _init: function(target) {
|
||||
can.run({}, [ctx.ACTION, action], function(msg) {
|
||||
can.onimport.itemcards(can, msg, function(value) { return [
|
||||
{view: html.TITLE, list: [value.user_name, can.onimport.titleAction(can, value)]},
|
||||
{view: html.STATUS, list: [value.city_name, value.street_name, value.place_name, value.service_name]},
|
||||
] }, function(event, value) {
|
||||
can.onimport.myStory(can, {
|
||||
index: can.ConfIndex().split(".").slice(0, 3).concat("portal").join("."), args: [value.place_uid],
|
||||
})
|
||||
}, target)
|
||||
can.page.Select(can, target, html.INPUT_BUTTON, function(target) {
|
||||
target.onclick = function(event) {
|
||||
can.onimport.myStory(can, {
|
||||
index: can.ConfIndex().split(".").slice(0, 3).concat("portal").join("."), args: [msg.Append("place_uid")],
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}}])
|
||||
}
|
||||
})
|
||||
},
|
||||
shipView: function(can, value) {
|
||||
return {view: html.STATUS, list: [value.city_name, value.city_name? "|": "", value.street_name, value.street_name? "|": "", value.service_name.replace(" ", " | ")]}
|
||||
otherList: function(can, msg, action) { if (!msg.IsDetail()) { return } typeof action == "string" && (action = [action])
|
||||
can.core.Next(action, function(action, next) {
|
||||
can.run(can.request({}, {uid: msg.Append(UID)}, msg.TableDetail()), action, function(msg) { if (msg.Length() == 0) { return next() }
|
||||
can.page.Append(can, can._output, [{view: [[html.ITEM, html.TITLE, action], "", can.user.trans(can, action)]}])
|
||||
can.onappend.plugin(can, {index: can.ConfIndex()}, function(sub) { can.onimport.myField(can, sub), can.onappend.style(sub, "otherList")
|
||||
sub.run = function(event, cmds, cb) { if (!cmds || cmds.length == 0) { cb(msg) } else { can.run(event, cmds, cb) } }, next()
|
||||
sub.onexport.output = function(_sub, msg) {
|
||||
_sub.onaction.carddetail = function(event, _sub, value) {
|
||||
can.onimport.myStory(can, {index: msg.Option("_other_cmd"), args: [value.place_uid||msg.Option("place_uid"), value.uid]})
|
||||
return true
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
spaceView: function(can, value) {
|
||||
return {view: "space"}
|
||||
},
|
||||
timeView: function(can, value, key) {
|
||||
if (key) { return {text: [can.user.trans(can, key, null, html.INPUT)+": "+can.base.TimeTrim(value[key]), "", mdb.TIME]} }
|
||||
return {text: [can.base.TimeTrim(value[key]||value.browse_time||value.updated_at||value.created_at||value.time), "", mdb.TIME]}
|
||||
},
|
||||
unitView: function(can, value, key, unit) { if (!value[key] || value[key] == "0") { return }
|
||||
return {text: [[can.user.trans(can, key, null, html.INPUT)+":", value[key]].concat(unit? [unit]: []).join(" "), "", key]}
|
||||
},
|
||||
textView: function(can, value, key, type) {
|
||||
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] && !can.base.isIn(value[key], "finish", "done") && {text: [can.user.transValue(can, value, key), "", [type, value[key], can.Conf("_trans.value."+key+".style."+value[key])||""]]}
|
||||
},
|
||||
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)"}}]} },
|
||||
moneyView: function(can, value, key) { return {text: ["¥ "+(value[key]||value.price||value.amount)+" 元", "", "price"]} },
|
||||
beginTime: function(can, value) {
|
||||
return (value.process_time||value.begin_time).split(" ")[0]+" ~ "+(value.finish_time||value.end_time).split(" ")[0]
|
||||
},
|
||||
typeStyle: function(can, value, key) { return can.Conf("_trans.value."+key+".style."+value[key])||"" },
|
||||
roleStyle: function(can, value, key) { return can.Conf("_trans.value."+key+".style."+value[key])||"" },
|
||||
shareTitle: function(can, msg, icons, title, content) { if (msg.IsDetail()) { var value = msg.TableDetail()
|
||||
msg.Option("_share_icons", msg.Option("_share_icons")||value[icons]||value.icons||value.avatar)
|
||||
msg.Option("_share_title", msg.Option("_share_title")||(value[title]||value.title||value.name||value.uid.slice(0, 6)))
|
||||
@ -599,6 +588,38 @@ Volcanos(chat.ONIMPORT, {
|
||||
})
|
||||
}}
|
||||
},
|
||||
uidView: function(can, value) { return value.uid.slice(0, 6) },
|
||||
metaView: function(can, value) {
|
||||
return {view: html.STATUS, list: [can.onimport.uidView(can, value), can.onimport.timeView(can, value), value.user_name]}
|
||||
},
|
||||
shipView: function(can, value) {
|
||||
return {view: html.STATUS, list: [value.city_name, value.city_name? "|": "",
|
||||
value.street_name, value.street_name? "|": "",
|
||||
value.place_name, value.place_name? "|": "",
|
||||
value.service_name.replace(" ", " | ")]}
|
||||
},
|
||||
spaceView: function(can, value) { return {view: "space"} },
|
||||
imageView: function(can, value) {
|
||||
return can.base.contains(value.icons, "bi ")? {view: [value.icons, "i"]}: {img: can.misc.ResourceIcons(can, value.icons)}
|
||||
},
|
||||
timeView: function(can, value, key) {
|
||||
if (key) { return {text: [can.user.trans(can, key, null, html.INPUT)+": "+can.base.TimeTrim(value[key]), "", mdb.TIME]} }
|
||||
return {text: [can.base.TimeTrim(value[key]||value.browse_time||value.updated_at||value.created_at||value.time), "", mdb.TIME]}
|
||||
},
|
||||
unitView: function(can, value, key, unit) { if (!value[key] || value[key] == "0") { return }
|
||||
return {text: [[can.user.trans(can, key, null, html.INPUT)+":", value[key]].concat(unit? [unit]: []).join(" "), "", key]}
|
||||
},
|
||||
typeStyle: function(can, value, key) { return can.Conf("_trans.value."+key+".style."+value[key])||"" },
|
||||
roleStyle: function(can, value, key) { return can.Conf("_trans.value."+key+".style."+value[key])||"" },
|
||||
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)"}}]} },
|
||||
textView: function(can, value, key, type) {
|
||||
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] && !can.base.isIn(value[key], "finish", "done") && {text: [can.user.transValue(can, value, key), "", [type, value[key], can.Conf("_trans.value."+key+".style."+value[key])||""]]}
|
||||
},
|
||||
beginTime: function(can, value) {
|
||||
return (value.process_time||value.begin_time).split(" ")[0]+" ~ "+(value.finish_time||value.end_time).split(" ")[0]
|
||||
},
|
||||
moneyView: function(can, value, key) { return {text: ["¥ "+(value[key]||value.price||value.amount)+" 元", "", "price"]} },
|
||||
})
|
||||
Volcanos(chat.ONLAYOUT, {
|
||||
_init: function(can, height, width) { can.core.CallFunc([can.onimport, html.LAYOUT], {can: can, height: height, width: width}) },
|
||||
@ -611,21 +632,21 @@ Volcanos(chat.ONLAYOUT, {
|
||||
cmd: function(can, height, width) { can.onlayout._init(can, height, width) },
|
||||
})
|
||||
Volcanos(chat.ONEXPORT, {
|
||||
title: function(can, title) { can.sup.onexport.title.apply(can.sup.onexport, [can.sup].concat(can.core.List(arguments).slice(1))) },
|
||||
action_value: function(can, key, def) { var value = can.Action(key); return can.base.isIn(value, ice.AUTO, key, undefined)? def: value },
|
||||
tabs: function(can) {},
|
||||
tool: function(can) { can.misc.sessionStorage(can, [can.ConfIndex(), "tool"], JSON.stringify(can.page.Select(can, can._status, html.LEGEND, function(target) { return target._meta }))) },
|
||||
hash: function(can, hash) {
|
||||
hash = typeof hash == code.STRING? hash.split(":").concat(can.core.List(arguments).slice(2)||[]): hash || can.core.Item(can.Option(), function(key, value) { return value||"" })
|
||||
return can.sup.onexport.hash(can.sup, hash)
|
||||
},
|
||||
session: function(can, key, value) { return can.sup && can.sup.onexport.session(can.sup, key, value) },
|
||||
storage: function(can, key, value) { return can.sup.onexport.storage(can.sup, key, value) },
|
||||
table: function(can) { var msg = can._msg; if (msg.Length() == 0) { return } var res = [msg.append && msg.append.join(mdb.FS)]
|
||||
msg.Table(function(line, index, array) { res.push(can.core.Item(line, function(key, value) { return value }).join(ice.FS)) })
|
||||
return res.join(lex.NL)
|
||||
},
|
||||
board: function(can) { var msg = can._msg; return msg.Result() },
|
||||
tabs: function(can) {},
|
||||
tool: function(can) { can.onexport.session(can, "tool", JSON.stringify(can.page.Select(can, can._status, html.LEGEND, function(target) { return target._meta }))) },
|
||||
hash: function(can, hash) {
|
||||
hash = typeof hash == code.STRING? hash.split(":").concat(can.core.List(arguments).slice(2)||[]): hash || can.core.Item(can.Option(), function(key, value) { return value||"" })
|
||||
return can.sup.onexport.hash(can.sup, hash)
|
||||
},
|
||||
title: function(can, title) { can.sup.onexport.title.apply(can.sup.onexport, [can.sup].concat(can.core.List(arguments).slice(1))) },
|
||||
session: function(can, key, value) { return can.sup && can.sup.onexport.session(can.sup, key, value) },
|
||||
storage: function(can, key, value) { return can.sup && can.sup.onexport.storage(can.sup, key, value) },
|
||||
})
|
||||
Volcanos(chat.ONACTION, {
|
||||
onkeydown: function(event, can) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user