46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
import Vuex from 'vuex'
|
||
export default function initToast(v) {
|
||
// 挂在store到全局Vue原型上
|
||
v.prototype.$toastStore = new Vuex.Store({
|
||
state: {
|
||
show: false,
|
||
icon: "success", //success:成功;fail:失败
|
||
title: "标题",
|
||
content: '内容',
|
||
success: null,
|
||
},
|
||
mutations: {
|
||
hideToast(state) {
|
||
// 小程序导航条页面控制
|
||
// #ifndef H5
|
||
if (state.hideTabBar) {
|
||
wx.showTabBar();
|
||
}
|
||
// #endif
|
||
state.show = false
|
||
},
|
||
showToast(state, data) {
|
||
state = Object.assign(state, data)
|
||
state.show = true
|
||
setTimeout(() => {
|
||
state.show = false
|
||
return state.success(state.icon)
|
||
}, 2000)
|
||
},
|
||
}
|
||
})
|
||
// 注册$showToast到Vue原型上,以方便全局调用
|
||
v.prototype.$showToast = function(option) {
|
||
if (typeof option === 'object') {
|
||
// #ifndef H5
|
||
if (option.hideTabBar) {
|
||
wx.hideTabBar();
|
||
}
|
||
// #endif
|
||
|
||
v.prototype.$toastStore.commit('showToast', option)
|
||
} else {
|
||
throw "配置项必须为对象传入的值为:" + typeof option;
|
||
}
|
||
}
|
||
} |