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;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|