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