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") { |
var formatTime = function (strDate, format = "yyyy-MM-dd hh:mm:ss") { |
||||
// 解决ios出现NaN问题 |
// 解决ios出现NaN问题 |
||||
var realDate = strDate ? getDate(strDate.replace(getRegExp('-', 'g'), '/')) : getDate(); |
var realDate = strDate ? getDate(strDate.replace(getRegExp("-", "g"), "/")) : getDate(); |
||||
var regYear = getRegExp("(y+)", "i"); |
var regYear = getRegExp("(y+)", "i"); |
||||
var date = [ |
var date = [ |
||||
["M+", realDate.getMonth() + 1], |
["M+", realDate.getMonth() + 1], |
||||
["d+", realDate.getDate()], |
["d+", realDate.getDate()], |
||||
["h+", realDate.getHours()], |
["h+", realDate.getHours()], |
||||
["m+", realDate.getMinutes()], |
["m+", realDate.getMinutes()], |
||||
["s+", realDate.getSeconds()], |
["s+", realDate.getSeconds()], |
||||
["q+", Math.floor((realDate.getMonth() + 3) / 3)], |
["q+", Math.floor((realDate.getMonth() + 3) / 3)], |
||||
["S+", realDate.getMilliseconds()], |
["S+", realDate.getMilliseconds()], |
||||
]; |
]; |
||||
var reg1 = regYear.exec(format); |
var reg1 = regYear.exec(format); |
||||
if (reg1) { |
if (reg1) { |
||||
format = format.replace(reg1[1], (realDate.getFullYear() + '').substring(4 - reg1[1].length)); |
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); |
return format; |
||||
if (reg2) { |
|
||||
format = format.replace(reg2[1], reg2[1].length == 1 ? v : ("00" + date[i][1]).substring(("" + date[i][1]).length)); |
|
||||
} |
|
||||
} |
|
||||
return format; |
|
||||
} |
} |
||||
module.exports = { |
module.exports = { |
||||
formatTime: formatTime,//日期格式化 |
formatTime: formatTime,//日期格式化 |
||||
} |
} |
Loading…
Reference in new issue