forked from x/volcanos
add china
This commit is contained in:
parent
db2d0d8b6a
commit
e595dc54fd
51
frame.js
51
frame.js
@ -263,7 +263,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
if (can.base.beginWith(item.value, nfs.PS, ice.HTTP)) { item.value = can.page.Format(html.A, item.value, item.value.split("?")[0]) }
|
||||
if (keys[item.name]) { return can.Status(item.name, item.value) } keys[item.name] = item
|
||||
can.page.Append(can, status, [{view: html.ITEM, list: [
|
||||
{text: [can.page.Color(can.user.trans(can, item.name, null, html.INPUT)), html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": item.value.trim())+"", html.SPAN, item.name]},
|
||||
{text: [can.page.Color(can.user.trans(can, item.name, null, html.INPUT)), html.LABEL]}, {text: [": ", html.LABEL]}, {text: [(item.value == undefined? "": (item.value+"").trim())+"", html.SPAN, item.name]},
|
||||
], onclick: function(event) { can.user.copy(event, can, item.value) }}])
|
||||
})
|
||||
},
|
||||
@ -272,7 +272,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
var name = can.core.Split(item.nick||item.name||"").pop()||""; can.base.isIn(name,
|
||||
tcp.SERVER, tcp.CLIENT, web.STUDIO, web.SERVICE, mdb.SEARCH,
|
||||
) && (name = (item.index||"").split(".").slice(-2).join(".")), name = can.core.Keys(item.space, name)
|
||||
var title = item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name
|
||||
var title = item.title || (item.help && item.help != name && !can.user.isEnglish(can)? name+"("+can.core.Split(item.help)[0]+")": name)
|
||||
target = can.base.isFunc(target)? target(): target
|
||||
return can.page.Append(can, target||can._output, [{view: [type, html.FIELDSET], list: [{type: html.LEGEND, list: [item.icon && {icon: item.icon}, {text: title}]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
|
||||
},
|
||||
@ -384,11 +384,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
target.onclick = function(event) { can.misc.Event(event, can, function(msg) { can.run(can.request(event, can.Option()), [ctx.ACTION, target.name]) }) }
|
||||
}) } return code.scrollBy && code.scrollBy(0, 10000), code
|
||||
},
|
||||
tools: function(can, msg, cb, target) {
|
||||
// can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT), can.misc.sessionStorage(can, [can.ConfIndex(), "tool"]))||[], cb, target)
|
||||
can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT))||[], cb, target)
|
||||
},
|
||||
|
||||
tools: function(can, msg, cb, target) { can.onimport.tool(can, can.base.Obj(msg.Option(ice.MSG_TOOLKIT))||[], cb, target) },
|
||||
style: function(can, style, target) { target = target||can._fields||can._target
|
||||
if (can.base.endWith(style, ".css")) { return can.require([style]) }
|
||||
can.base.isObject(style) && !can.base.isArray(style)? can.page.style(can, target, style): can.page.ClassList.add(can, target, style)
|
||||
@ -488,12 +484,9 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
},
|
||||
|
||||
plugin: function(can, meta, cb, target, field) { meta = meta||{}, meta.index = meta.index||can.core.Keys(meta.ctx, meta.cmd)||ice.CAN_PLUGIN
|
||||
// meta._space = can.ConfSpace()
|
||||
var res = {}; function _cb(sub, meta, skip) { kit.proto(res, sub), cb && cb(sub, meta, skip) }
|
||||
if (meta.inputs && meta.inputs.length > 0 || meta.meta) { can.onappend._plugin(can, {meta: meta.meta, list: meta.list}, meta, _cb, target, field); return res }
|
||||
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) {
|
||||
value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip)
|
||||
}, target, field); return res }
|
||||
var value = can.onengine.plugin(can, meta.index); if (value) { can.onappend._plugin(can, value, meta, function(sub, meta, skip) { value.meta && value.meta._init && value.meta._init(sub, meta), _cb(sub, meta, skip) }, target, field); return res }
|
||||
can.runAction(can.request({}, {_method: http.GET, pod: meta.space})._caller(), ctx.COMMAND, [meta.index], function(msg) { msg.Table(function(value) { can.onappend._plugin(can, value, meta, _cb, target, field) })}); return res
|
||||
},
|
||||
_plugin: function(can, value, meta, cb, target, field) { can.base.Copy(meta, value, true)
|
||||
@ -508,6 +501,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
||||
can.runActionCommand(sub.request(event, {pod: meta.space}), sub._index, cmds, cb)
|
||||
}
|
||||
}, sub._index = value.index||meta.index, can.base.isFunc(cb) && cb(sub, meta, skip)
|
||||
meta.style == html.FLOAT && can.onlayout._float(sub)
|
||||
}, target||can._output, field)
|
||||
},
|
||||
_float: function(can, index, args, cb) { can.onappend.plugin(can, {index: index, args: args, mode: chat.FLOAT}, function(sub) {
|
||||
@ -552,18 +546,6 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
|
||||
can.page.SelectChild(can, target, html.DIV_ITEM, function(target) { can.page.styleWidth(can, target, width) })
|
||||
},
|
||||
background: function(can, url, target) { can.page.style(can, target||can._root._target, "background-image", url == "" || url == "void"? "": 'url("'+url+'")') },
|
||||
_figure: function(event, can, target, right, min) {
|
||||
if (!can.user.isMobile) { return can.onlayout.figure(event, can, target, right, min) }
|
||||
if (!event || !event.target) { return {} } target = target||can._fields||can._target
|
||||
var rect = event.target == document.body? {left: can.page.width()/2, top: can.page.height()/2, right: can.page.width()/2, bottom: can.page.height()/2}: (event.currentTarget||event.target).getBoundingClientRect()
|
||||
var layout = right? {left: rect.right, top: rect.top}: {left: rect.left, top: rect.bottom}
|
||||
can.getActionSize(function(left, top, width, height) { left = left||0, top = top||0, height = can.base.Max(height, can.page.height()-top)
|
||||
can.page.style(can, target, html.MAX_HEIGHT, top+height-layout.top)
|
||||
can.page.style(can, target, html.MAX_WIDTH, left+width-layout.left)
|
||||
});
|
||||
can.onmotion.move(can, target, layout), can.onmotion.slideGrow(can, target)
|
||||
return layout
|
||||
},
|
||||
figure: function(event, can, target, right, min) { if (!event || !event.target) { return {} } target = target||can._fields||can._target
|
||||
var rect = event.target == document.body? {left: can.page.width()/2, top: can.page.height()/2, right: can.page.width()/2, bottom: can.page.height()/2}: (event.currentTarget||event.target).getBoundingClientRect()
|
||||
var layout = right? {left: rect.right, top: rect.top}: {left: rect.left, top: rect.bottom}
|
||||
@ -588,6 +570,27 @@ Volcanos(chat.ONLAYOUT, {_init: function(can, target) { target = target||can._ro
|
||||
can.onmotion.move(can, target, layout), can.onmotion.slideGrow(can, target)
|
||||
return layout
|
||||
},
|
||||
_figure: function(event, can, target, right, min) {
|
||||
if (!can.user.isMobile) { return can.onlayout.figure(event, can, target, right, min) }
|
||||
if (!event || !event.target) { return {} } target = target||can._fields||can._target
|
||||
var rect = event.target == document.body? {left: can.page.width()/2, top: can.page.height()/2, right: can.page.width()/2, bottom: can.page.height()/2}: (event.currentTarget||event.target).getBoundingClientRect()
|
||||
var layout = right? {left: rect.right, top: rect.top}: {left: rect.left, top: rect.bottom}
|
||||
can.getActionSize(function(left, top, width, height) { left = left||0, top = top||0, height = can.base.Max(height, can.page.height()-top)
|
||||
can.page.style(can, target, html.MAX_HEIGHT, top+height-layout.top)
|
||||
can.page.style(can, target, html.MAX_WIDTH, left+width-layout.left)
|
||||
});
|
||||
can.onmotion.move(can, target, layout), can.onmotion.slideGrow(can, target)
|
||||
return layout
|
||||
},
|
||||
_float: function(can) { var target = can._fields||can._target, sup = can._fields? can.sup: can
|
||||
can.onappend.style(can, html.FLOAT), can.onmotion.resize(can, target, function(height, width) { sup.onimport.size(sup, height, width, true) })
|
||||
can.page.style(can, target, html.LEFT, 250, html.TOP, 132), sup.onimport.size(sup, 600, 600, true)
|
||||
target.onclick = function(event) { can.onkeymap.prevent(event)
|
||||
can.page.Select(can, document.body, "fieldset.float,div.float", function(target) {
|
||||
can.page.style(can, target, "z-index", 9)
|
||||
}), can.page.style(can, target, "z-index", 10)
|
||||
}
|
||||
},
|
||||
})
|
||||
Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
||||
target.onclick = function(event) { if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return }
|
||||
@ -761,7 +764,7 @@ Volcanos(chat.ONMOTION, {_init: function(can, target) {
|
||||
html.TOP, can.base.Min(begin.top + dy, top||0, window.innerHeight-html.ACTION_HEIGHT)
|
||||
)
|
||||
} can.onkeymap.prevent(event)
|
||||
} else { var p = can.page.position(event, target), margin = 20, cursor = ""
|
||||
} else { var p = can.page.position(event, target), margin = 10, cursor = ""
|
||||
if (p.x < margin) { cursor = "ew-resize", action = html.LEFT
|
||||
} else if (target.offsetWidth-margin < p.x) { cursor = "ew-resize", action = html.RIGHT
|
||||
} else if (target.offsetHeight-margin < p.y || can.page.ClassList.has(can, event.target, html.STATUS) && can.page.tagis(event.target, html.DIV)) { cursor = "ns-resize", action = html.BOTTOM
|
||||
|
@ -242,6 +242,7 @@ fieldset.float.plug>form.option>div.text>span.value { display:none; }
|
||||
fieldset.float:not(.plug)>form.option>div.text>input { display:none; }
|
||||
fieldset.float:not(.plug)>form.option>div.text>span { display:none; }
|
||||
fieldset.float:not(.plug)>form.option>div.text>span.value { white-space:pre; padding:7px; height:32px; max-width:200px; display:block; overflow:auto; }
|
||||
fieldset.float:not(.plug)>form.option>div.text { box-shadow:none; }
|
||||
body.mobile:not(.landscape) fieldset.float>form.option>div.text>span.value { display:none; }
|
||||
body.windows form.option>div.icon { font-size:21px; line-height:32px; }
|
||||
/* svg */
|
||||
@ -320,7 +321,7 @@ legend, form.option, form.option>div.item, div.action, div.action>div.item, div.
|
||||
fieldset.story, fieldset>div.output, fieldset>div.status, div.output>div.project div.item, div.content:not(.item), div.code, div.story[data-type=spark] { clear:both; }
|
||||
fieldset.story { position:sticky; left:0; }
|
||||
fieldset.full { position:fixed; left:0; top:0; }
|
||||
fieldset.auto, fieldset.full, fieldset.float, div.float { position:fixed; z-index:100; box-shadow:var(--box-shadow); }
|
||||
fieldset.auto, fieldset.full, fieldset.float, div.float { position:fixed; z-index:10; box-shadow:var(--box-shadow); }
|
||||
fieldset.plug { position:absolute; bottom:0; right:0; }
|
||||
div.output { position:relative; }
|
||||
div.layout.flex>* { float:left; clear:none; }
|
||||
@ -424,7 +425,7 @@ body.mobile fieldset.Header div.output div.item:not(.avatar) { padding:0px 10px;
|
||||
body.mobile fieldset.Search>div.action>div.item.filter>input { width:100%; }
|
||||
body.mobile fieldset.Search>div.action>div.item.filter>span { position:absolute; }
|
||||
body.mobile fieldset.Search>div.action>div.item.filter { width:100%; position:relative; }
|
||||
body.mobile fieldset.River { position:fixed; top:var(--header-height); z-index:100; }
|
||||
body.mobile fieldset.River { position:fixed; top:var(--header-height); z-index:11; }
|
||||
body.mobile fieldset.River>div.output { font-size:1.4rem; min-width:240px; }
|
||||
body.mobile fieldset.Action { margin-top:var(--header-height); }
|
||||
body.mobile fieldset.Action.cmd { margin-top:0; }
|
||||
@ -497,6 +498,7 @@ fieldset.macos.desktop.cmd>div.output>fieldset.macos.dock { z-index:11; }
|
||||
fieldset.web.code.git.status>div.output table.content { width:100%; }
|
||||
fieldset.web.code.git>div.output>fieldset.web.code.inner>div.output { overflow:auto; }
|
||||
|
||||
fieldset.web.mall.region>div.output>table.content td:nth-child(3) { text-align:right; }
|
||||
fieldset.web.mall.region>div.output>table.content td:nth-child(3) { text-align:right; }
|
||||
fieldset.web.mall.region>div.output>table.content td:nth-child(4) { text-align:right; }
|
||||
fieldset.web.mall.region>div.output>table.content td:nth-child(5) { text-align:right; }
|
||||
@ -525,7 +527,7 @@ fieldset.draw.spide div.output svg path { stroke-width:1; }
|
||||
fieldset.draw>div.output>div.project { width:180px; flex:0 0 180px; }
|
||||
fieldset.draw>div.output>div.layout>div.layout>div.profile { width:180px; flex:0 0 180px; }
|
||||
fieldset.web.chat.location>div.action input[type=text] { width:80px !important; }
|
||||
fieldset.web.chat.location>div.output>div.layout>div.layout>div.profile { background-color:var(--plugin-bg-color); position:absolute; right:0; width:360px; z-index:5; border-left:none; }
|
||||
fieldset.web.chat.location>div.output>div.layout>div.layout>div.profile { background-color:var(--plugin-bg-color); position:absolute; right:0; width:360px; z-index:9; border-left:none; }
|
||||
fieldset.web.chat.location>div.output>div.layout>div.layout { position:relative; }
|
||||
fieldset.web.code.git.total.draw div.output { text-align:center; }
|
||||
fieldset.web.code.docker.studio>div.action>div.item { font-style:italic; height:32px; padding:5px 10px; }
|
||||
|
@ -325,6 +325,14 @@ Volcanos("page", {
|
||||
case html.BUTTON: item.value = item.value||item.name||mdb.LIST; break
|
||||
} return input
|
||||
},
|
||||
requireChina: function(can, title, list, name, path) {
|
||||
can.onappend.plugin(can, {title: title, display: "/plugin/story/china.js", style: html.FLOAT, height: can.ConfHeight(), width: can.ConfHeight()}, function(sub) {
|
||||
sub.run = function(event, cmds, cb) { var msg = can.request(event, {title: title, name: name, path: path})
|
||||
can.core.List(list, function(item) { msg.Push(mdb.NAME, item.name), msg.Push(mdb.VALUE, item.value) }), cb(msg)
|
||||
can.onmotion.resize(can, sub._target, function(height, width) { sub.onimport.size(sub, height, width, true) })
|
||||
}
|
||||
})
|
||||
},
|
||||
requireModules: function(can, libs, cb, cbs) { if (!libs || libs.length == 0) { return cb && cb() }
|
||||
for (var i = 0; i < libs.length; i++) { if (libs[i].indexOf(nfs.PS) == 0 || libs[i].indexOf(ice.HTTP) == 0) { continue }
|
||||
if (libs[i].indexOf(nfs._CSS) == -1 && libs[i].indexOf(nfs._JS) == -1) { libs[i] = libs[i]+"/lib/"+libs[i]+nfs._JS }
|
||||
|
@ -86,7 +86,7 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg, cb) { msg.Option(ice.MSG_ACTI
|
||||
circle: can.onfigure.circle(can, item, 100),
|
||||
}
|
||||
can.onfigure._mark(can), can.mark && can.mark.add({position: can.onimport.point(can, can._current), properties: can._current})
|
||||
can.page.Select(can, can._target, "div.content>div", function(item) { can.page.style(can, item, {"z-index": 3}) })
|
||||
can.page.Select(can, can._target, "div.content>div", function(item) { can.page.style(can, item, {"z-index": 9}) })
|
||||
},
|
||||
_item: function(can, item, target) { if (!item.latitude || !item.longitude) { return item }
|
||||
var _target = can.onimport.item(can, item, function(event) {
|
||||
|
38
plugin/story/china.js
Normal file
38
plugin/story/china.js
Normal file
@ -0,0 +1,38 @@
|
||||
Volcanos(chat.ONIMPORT, {
|
||||
_init: function(can, msg) { var cache = {}
|
||||
if (can.Conf(ctx.STYLE) == html.FLOAT && !can.page.ClassList.has(can, can._fields, html.FLOAT)) { msg.Option(ice.MSG_STATUS, ""), can.onlayout._float(can) }
|
||||
var title = msg.Option("title")||can.Conf("title"), field = can.Conf(mdb.FIELD)||mdb.VALUE, name = msg.Option(mdb.NAME)||can.Conf(mdb.NAME)||"中国", path = msg.Option(nfs.PATH)||can.Conf(nfs.PATH)||"100000"
|
||||
var max = 0, data = msg.Table(function(value) { if (parseFloat(value[field]) > max) { max = parseFloat(value[field]) } return {name: value.name, value: value[field]} })
|
||||
var option = {title: {text: title, left: '5%', textStyle: {fontSize: '24'}},
|
||||
tooltip: {show: true, trigger: "item", formatter: function (params) { return params.name+': '+(params.value||"0") }},
|
||||
visualMap: {min: 0, max: max, text: ['高', '低'], calculable: true, left: 'left', top: 'bottom'},
|
||||
}
|
||||
can.user.toastProcess(can), can.page.requireModules(can, ["echarts/dist/echarts.js"], function() {
|
||||
can.page.style(can, can._output, html.HEIGHT, can.ConfHeight(), html.WIDTH, can.ConfWidth())
|
||||
function load(name, path) { can.onimport.load(can, name, path, function() {
|
||||
can.onimport.tabs(can, [{name:name}], function() {
|
||||
if (cache[name]) { return can.page.SelectChild(can, can._output, html.DIV_ITEM, function(target) { can.onmotion.toggle(can, target, target == cache[name]) }) }
|
||||
var chart = echarts.init(cache[name] = can.page.Append(can, can._output, [{view: html.ITEM, style: {height: can.ConfHeight(), width: can.ConfWidth()}}])._target)
|
||||
option.series = [{name: title, data: data, mapType: name, type: "map"}], option.geo = {map: name}, chart.setOption(option), can.user.toastSuccess(can)
|
||||
chart.on(html.CLICK, function(params) {
|
||||
var p = can.onimport.adcode[params.name]; if (p) { return load(params.name, p) }
|
||||
var p = can.onimport.adcode[name+params.name]; if (p) { return load(name+params.name, p) }
|
||||
can.user.input({}, can, ["adcode"], function(list) { load(name+params.name, can.onimport.adcode[name+params.name] = list[0]) })
|
||||
}), can.page.SelectChild(can, can._output, html.DIV_ITEM, function(target) { can.onmotion.toggle(can, target, target == cache[name]) })
|
||||
}, function() {
|
||||
})
|
||||
}) } load(name, path)
|
||||
})
|
||||
},
|
||||
load: function(can, name, path, cb) {
|
||||
path.length == 2 && (path += "0000"), path.length == 4 && (path += "00")
|
||||
path = "/wiki/geoarea/"+path+(can.base.endWith(path, "00")? "_full": "")+".json"
|
||||
can.misc.POST(can, can.request({}, {_method: "GET"}), path, {}, function(msg) { echarts.registerMap(name, JSON.parse(msg._xhr.responseText)), cb() })
|
||||
},
|
||||
adcode: {
|
||||
"中国": "100000",
|
||||
"广东省": "440000",
|
||||
"深圳市": "440300",
|
||||
"宝安区": "440306",
|
||||
},
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user