mirror of
https://shylinux.com/x/volcanos
synced 2025-04-26 01:04:06 +08:00
opt date.js
This commit is contained in:
parent
58d8223aaf
commit
300e58f7e5
15
frame.js
15
frame.js
@ -323,8 +323,7 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
|
]}, {view: [html.OPTION, html.FORM]}, html.ACTION, html.OUTPUT, html.STATUS]}])
|
||||||
},
|
},
|
||||||
input: function(can, item, value, target, style) { if ([html.BR, html.HR].indexOf(item.type) > -1) { return can.page.Append(can, target, [item]) }
|
input: function(can, item, value, target, style) { if ([html.BR, html.HR].indexOf(item.type) > -1) { return can.page.Append(can, target, [item]) }
|
||||||
var icon = []
|
var icon = [], _item = can.base.Copy({className: "", type: "", name: ""}, item)
|
||||||
var _item = can.base.Copy({className: "", type: "", name: ""}, item)
|
|
||||||
var input = can.page.input(can, _item, value); input.title = can.Conf(can.core.Keys(ctx.FEATURE, chat.TITLE, item.name))||""
|
var input = can.page.input(can, _item, value); input.title = can.Conf(can.core.Keys(ctx.FEATURE, chat.TITLE, item.name))||""
|
||||||
if (item.type == html.SELECT && (value || _item.value)) { input._init = function(target) { target.value = value||_item.value } }
|
if (item.type == html.SELECT && (value || _item.value)) { input._init = function(target) { target.value = value||_item.value } }
|
||||||
if (item.type == html.TEXT) { input.onkeydown = item.onkeydown||function(event) {
|
if (item.type == html.TEXT) { input.onkeydown = item.onkeydown||function(event) {
|
||||||
@ -337,22 +336,12 @@ Volcanos(chat.ONAPPEND, {_init: function(can, meta, list, cb, target, field) {
|
|||||||
if (item.range) { input._init = function(target) { can.onappend.figure(can, item, target, function(sub, value, old) {
|
if (item.range) { input._init = function(target) { can.onappend.figure(can, item, target, function(sub, value, old) {
|
||||||
target.value = value, can.core.CallFunc([can.onaction, item.name], [event, can, item.name])
|
target.value = value, can.core.CallFunc([can.onaction, item.name], [event, can, item.name])
|
||||||
}) } }
|
}) } }
|
||||||
/*
|
|
||||||
if (item.type == html.SELECT) { var ui = can.page.Append(can, target, [{view: [[html.ITEM, item.type, item.name].concat(style)],
|
|
||||||
list: [input].concat([{type: html.INPUT, value: _item.value||_item.values[0], data: {type: html.BUTTON}, onclick: function(event) { var target = event.target
|
|
||||||
var carte = can.user.carte(event, can, {}, _item.values, function(event, button) { target.value = button, ui.select.value = button, ui.select.onchange({target: ui.select}) })
|
|
||||||
can.onappend.style(can, [html.SELECT, item.name], carte._target), can.page.style(can, carte._target, html.MIN_WIDTH, event.target.offsetWidth)
|
|
||||||
}, _init: function(target) { can.onmotion.delay(can, function() {
|
|
||||||
target.value = ui.select.value, can.page.style(can, target, html.WIDTH, ui.select.offsetWidth+10), can.onappend.style(can, html.HIDE, ui.select)
|
|
||||||
}) }}, {text: ["\u25BF", html.SPAN, html.ICON]}])
|
|
||||||
}]); return ui[item.name] }
|
|
||||||
*/
|
|
||||||
var _input = can.page.Append(can, target, [{view: [[html.ITEM, item.type, item.name].concat(style)], list: [input].concat(icon), _init: function(target, _input) {
|
var _input = can.page.Append(can, target, [{view: [[html.ITEM, item.type, item.name].concat(style)], list: [input].concat(icon), _init: function(target, _input) {
|
||||||
item.type == html.SELECT && can.onappend.select(can, _input.select, _item)
|
item.type == html.SELECT && can.onappend.select(can, _input.select, _item)
|
||||||
}}])[item.name]; return _input
|
}}])[item.name]; return _input
|
||||||
},
|
},
|
||||||
select: function(can, select, item) {
|
select: function(can, select, item) {
|
||||||
return can.page.Append(can, select.parentNode, [{view: [html.SELECT, html.INPUT], value: item.value||item.values[0], data: {type: html.BUTTON}, onclick: function(event) { var target = event.target
|
return can.page.Append(can, select.parentNode, [{type: html.INPUT, value: item.value||item.values[0], data: {className: html.SELECT, type: html.BUTTON, name: item.name}, onclick: function(event) { var target = event.target
|
||||||
var carte = can.user.carte(event, can, {}, item.values, function(event, button) { if (target.value == button) { return }
|
var carte = can.user.carte(event, can, {}, item.values, function(event, button) { if (target.value == button) { return }
|
||||||
target.value = button, select.value = button, select.onchange && select.onchange({target: select}) })
|
target.value = button, select.value = button, select.onchange && select.onchange({target: select}) })
|
||||||
can.onappend.style(can, [html.SELECT, item.name], carte._target), can.page.style(can, carte._target, html.MIN_WIDTH, event.target.offsetWidth)
|
can.onappend.style(can, [html.SELECT, item.name], carte._target), can.page.style(can, carte._target, html.MIN_WIDTH, event.target.offsetWidth)
|
||||||
|
15
lib/date.js
15
lib/date.js
@ -1,3 +1,18 @@
|
|||||||
|
Volcanos("date", {
|
||||||
|
List: function(can, cb, now, head) { var list = [{th: head||(can.user.info.language == "en"? ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]: ["日", "一", "二", "三", "四", "五", "六"])}]
|
||||||
|
var tr; function _cb(day, type) { if (day.getDay() == 0) { list.push(tr = {type: html.TR, list: []}) } var lunar = can.date.solar2lunar(day), _day = new Date(day)
|
||||||
|
tr.list.push({view: [can.base.isIn(can.base.Time(day, "%y-%m-%d"), can.base.Time(now, "%y-%m-%d"))? html.SELECT: type, html.TD],
|
||||||
|
onclick: function(event) { cb(event, _day) }, list: [{text: day.getDate()+""}, {text: [lunar.autoDay, "", lunar.autoClass]}],
|
||||||
|
})
|
||||||
|
}
|
||||||
|
var first = new Date(now); first.setDate(1); var last = new Date(first); last.setMonth(last.getMonth()+1)
|
||||||
|
var begin = new Date(first); begin.setDate(first.getDate()-first.getDay()); var end = new Date(last); end.setDate(last.getDate()+7-last.getDay())
|
||||||
|
for (var day = new Date(begin); day < first; day.setDate(day.getDate()+1)) { _cb(day, mdb.PREV) }
|
||||||
|
for (var day = new Date(first); day < last; day.setDate(day.getDate()+1)) { _cb(day, mdb.MAIN) }
|
||||||
|
for (var day = new Date(last); day < end; day.setDate(day.getDate()+1)) { _cb(day, mdb.NEXT) }
|
||||||
|
return list
|
||||||
|
},
|
||||||
|
})
|
||||||
Volcanos("date", { // @1900-2100区间内的公历转农历
|
Volcanos("date", { // @1900-2100区间内的公历转农历
|
||||||
solar2lunar: function(date) { var y = date.getFullYear(), m = date.getMonth()+1, d = date.getDate()
|
solar2lunar: function(date) { var y = date.getFullYear(), m = date.getMonth()+1, d = date.getDate()
|
||||||
var day = (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - Date.UTC(1900,0,31))/86400000
|
var day = (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - Date.UTC(1900,0,31))/86400000
|
||||||
|
@ -16,8 +16,8 @@ Volcanos("page", {
|
|||||||
if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, target, "", function(item) { item.name && item.value && (value[item.name] = item.value) }); return [value] }
|
if (can.base.isUndefined(key)) { var value = {}; can.page.SelectArgs(can, target, "", function(item) { item.name && item.value && (value[item.name] = item.value) }); return [value] }
|
||||||
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] }
|
if (can.base.isObject(key)) { return can.core.Item(key, function(key, value) { can.page.SelectArgs(can, target, key, value) }), [key] }
|
||||||
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
if (!can.base.isFunc(cb)) { var value = cb; cb = function(item) { return item.name && (can.base.isUndefined(value)? item.value: (item.value = value))||"" } }
|
||||||
if (key.indexOf(ice.PT) > -1) { return [""]}
|
if (key.indexOf(ice.PT) > -1) { return [""] }
|
||||||
return can.page.Select(can, target, key? "select[name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb)
|
return can.page.Select(can, target, key? "select[name="+key+"],"+"input.select[type=button][name="+key+"],"+"input[name="+key+"],"+"textarea[name="+key+"]": ".args", cb)
|
||||||
},
|
},
|
||||||
SelectInput: function(can, target, name, cb) { return can.page.Select(can, target, "input[name="+name+"]", cb)[0] },
|
SelectInput: function(can, target, name, cb) { return can.page.Select(can, target, "input[name="+name+"]", cb)[0] },
|
||||||
SelectChild: function(can, target, key, cb) { var i = 0; return can.page.Select(can, target, key, function(node) { if (node.parentNode == target) { return cb(node, i++) } }) },
|
SelectChild: function(can, target, key, cb) { var i = 0; return can.page.Select(can, target, key, function(node) { if (node.parentNode == target) { return cb(node, i++) } }) },
|
||||||
|
@ -21,29 +21,9 @@ Volcanos(chat.ONFIGURE, {date: {
|
|||||||
chat._TRANS, kit.Dict(TODAY, "今天", mdb.NEXT, "下一月", mdb.PREV, "上一月", "over", "去年", "come", "今年"),
|
chat._TRANS, kit.Dict(TODAY, "今天", mdb.NEXT, "下一月", mdb.PREV, "上一月", "over", "去年", "come", "今年"),
|
||||||
)), can._table = can.page.Appends(can, can._output, [{view: [chat.CONTENT, html.TABLE]}])._target
|
)), can._table = can.page.Appends(can, can._output, [{view: [chat.CONTENT, html.TABLE]}])._target
|
||||||
target.value == "" && (now.setMinutes(now.getMinutes()>30? 30: 0), now.setSeconds(0))
|
target.value == "" && (now.setMinutes(now.getMinutes()>30? 30: 0), now.setSeconds(0))
|
||||||
function show(now) {
|
function show(now) { can.Action(YEAR, now.getFullYear()), can.Action(MONTH, now.getMonth()+1)
|
||||||
can.Action(YEAR, now.getFullYear())
|
can.Action(HOUR, now.getHours()), can.Action(MINUTE, parseInt(now.getMinutes()/5)*5), can.Action(SECOND, parseInt(now.getSeconds()/5)*5)
|
||||||
can.Action(MONTH, now.getMonth()+1)
|
can.page.Appends(can, can._table, can.date.List(can, function(event, day) { day.setHours(now.getHours()), day.setMinutes(now.getMinutes()), day.getSeconds(now.getSeconds()), _cb(day), can.close() }, now))
|
||||||
can.Action(HOUR, now.getHours())
|
|
||||||
can.Action(MINUTE, parseInt(now.getMinutes()/5)*5)
|
|
||||||
can.Action(SECOND, parseInt(now.getSeconds()/5)*5)
|
|
||||||
|
|
||||||
can.page.Appends(can, can._table, [{th: ["日", "一", "二", "三", "四", "五", "六"]}])
|
|
||||||
var tr; function add(day, type) { if (day.getDay() == 0) { tr = can.page.Append(can, can._table, [{type: html.TR}]).last } var _day = new Date(day)
|
|
||||||
var l = can.date.solar2lunar(day)
|
|
||||||
can.page.Append(can, tr, [{view: [can.base.isIn(can.base.Time(day, "%y-%m-%d"), can.base.Time(now, "%y-%m-%d"), can.base.Time(today, "%y-%m-%d"))? html.SELECT: type, html.TD],
|
|
||||||
onclick: function(event) { _day.setHours(now.getHours()), _day.setMinutes(now.getMinutes()), _day.getSeconds(now.getSeconds()), _cb(_day), meta._hold? show(_day): can.close() },
|
|
||||||
list: [{text: day.getDate()+""}, {text: l.autoDay, "className": l.autoClass}]}])
|
|
||||||
}
|
|
||||||
|
|
||||||
var one = new Date(now); one.setDate(1)
|
|
||||||
var end = new Date(now); end.setMonth(end.getMonth()+1), end.setDate(1)
|
|
||||||
var head = new Date(one); head.setDate(one.getDate()-one.getDay())
|
|
||||||
var tail = new Date(end); tail.setDate(end.getDate()+7-end.getDay())
|
|
||||||
|
|
||||||
for (var day = new Date(head); day < one; day.setDate(day.getDate()+1)) { add(day, mdb.PREV) }
|
|
||||||
for (var day = new Date(one); day < end; day.setDate(day.getDate()+1)) { add(day, mdb.MAIN) }
|
|
||||||
for (var day = new Date(end); end.getDay() != 0 && day < tail; day.setDate(day.getDate()+1)) { add(day, mdb.NEXT) }
|
|
||||||
var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(ice.SP)}])
|
var l = can.date.solar2lunar(now); can.page.Appends(can, can._status, [{view: "today", inner: [l.gzYear, l.Animal+"年", l.cnMonth, l.cnDay, l.lunarFestival||l.festival||l.Term, l.Astro].join(ice.SP)}])
|
||||||
return now
|
return now
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user