5 changed files with 85 additions and 51 deletions
@ -0,0 +1,54 @@ |
|||
/** |
|||
* EventBus 全局事件总线 |
|||
* on(msgName, func) 订阅消息 msgName订阅的事件名称 func 事件回调 |
|||
* once(msgName, func) 仅订阅一次消息 后订阅的会替换前面订阅的消息 |
|||
* emit(msgName,data) 发布消息 msgName消息名称 data-数据 |
|||
* off(msgName) 移除消息 |
|||
*/ |
|||
class EventBus { |
|||
|
|||
constructor () { |
|||
this.msgQueues = {} |
|||
} |
|||
|
|||
// 将消息 绑定到 消息队列中
|
|||
on (msgName, func) { |
|||
if (this.msgQueues[msgName]) { |
|||
if (typeof this.msgQueues[msgName] === "function") { |
|||
this.msgQueues[msgName] = [this.msgQueues[msgName], func] |
|||
} else { |
|||
this.msgQueues[msgName] = [...this.msgQueues[msgName], func] |
|||
} |
|||
} else { |
|||
this.msgQueues[msgName] = func; |
|||
} |
|||
} |
|||
|
|||
// 消息队列中仅保存一个消息
|
|||
once (msgName, func) { |
|||
this.msgQueues[msgName] = func |
|||
} |
|||
|
|||
// 发送消息
|
|||
emit (msgName, data = "") { |
|||
if (!this.msgQueues[msgName]) { |
|||
return |
|||
} |
|||
if (typeof this.msgQueues[msgName] === "function") { |
|||
this.msgQueues[msgName](data) |
|||
} else { |
|||
this.msgQueues[msgName].forEach(fn => fn(data)) |
|||
} |
|||
} |
|||
|
|||
// 移除消息
|
|||
off (msgName) { |
|||
if (!this.msgQueues[msgName]) { |
|||
return |
|||
} |
|||
delete this.msgQueues[msgName] |
|||
} |
|||
|
|||
} |
|||
|
|||
export default new EventBus() |
@ -1,28 +1,28 @@ |
|||
var formatTime = function (strDate, format = "yyyy-MM-dd hh:mm:ss") { |
|||
// 解决ios出现NaN问题 |
|||
var realDate = strDate ? getDate(strDate.replace(getRegExp('-', 'g'), '/')) : getDate(); |
|||
var regYear = getRegExp("(y+)", "i"); |
|||
var date = [ |
|||
["M+", realDate.getMonth() + 1], |
|||
["d+", realDate.getDate()], |
|||
["h+", realDate.getHours()], |
|||
["m+", realDate.getMinutes()], |
|||
["s+", realDate.getSeconds()], |
|||
["q+", Math.floor((realDate.getMonth() + 3) / 3)], |
|||
["S+", realDate.getMilliseconds()], |
|||
]; |
|||
var reg1 = regYear.exec(format); |
|||
if (reg1) { |
|||
format = format.replace(reg1[1], (realDate.getFullYear() + '').substring(4 - reg1[1].length)); |
|||
// 解决ios出现NaN问题 |
|||
var realDate = strDate ? getDate(strDate.replace(getRegExp("-", "g"), "/")) : getDate(); |
|||
var regYear = getRegExp("(y+)", "i"); |
|||
var date = [ |
|||
["M+", realDate.getMonth() + 1], |
|||
["d+", realDate.getDate()], |
|||
["h+", realDate.getHours()], |
|||
["m+", realDate.getMinutes()], |
|||
["s+", realDate.getSeconds()], |
|||
["q+", Math.floor((realDate.getMonth() + 3) / 3)], |
|||
["S+", realDate.getMilliseconds()], |
|||
]; |
|||
var reg1 = regYear.exec(format); |
|||
if (reg1) { |
|||
format = format.replace(reg1[1], (realDate.getFullYear() + "").substring(4 - reg1[1].length)); |
|||
} |
|||
for (var i = 0; i < date.length; i++) { |
|||
var reg2 = getRegExp("(" + date[i][0] + ")").exec(format); |
|||
if (reg2) { |
|||
format = format.replace(reg2[1], reg2[1].length == 1 ? v : ("00" + date[i][1]).substring(("" + date[i][1]).length)); |
|||
} |
|||
for (var i = 0; i < date.length; i++) { |
|||
var reg2 = getRegExp("(" + date[i][0] + ")").exec(format); |
|||
if (reg2) { |
|||
format = format.replace(reg2[1], reg2[1].length == 1 ? v : ("00" + date[i][1]).substring(("" + date[i][1]).length)); |
|||
} |
|||
} |
|||
return format; |
|||
} |
|||
return format; |
|||
} |
|||
module.exports = { |
|||
formatTime: formatTime,//日期格式化 |
|||
formatTime: formatTime,//日期格式化 |
|||
} |
Loading…
Reference in new issue