import Vuex from 'vuex'
// 自定义弹窗
export default function initModal(v) {
	// 挂在store到全局Vue原型上
	v.prototype.$modalStore = new Vuex.Store({
		state: {
			show: false,
			title: "标题",
			content: '内容',
			showCancel: true,
			cancelText: "取消",
			cancelColor: "#333333",
			cancelBackgroundColor: "rgba(236, 236, 236, 0.39)",
			confirmText: "确定",
			confirmColor: "#333333",
			confirmBackgroundColor: "#FFBB24",
			success: null,
		},
		mutations: {
			hideModal(state) {
				// 小程序导航条页面控制
				// #ifndef H5
				if (state.hideTabBar) {
					wx.showTabBar();
				}
				// #endif
				state.show = false
			},
			showModal(state, data) {
				state = Object.assign(state, data)
				console.log(state);
				state.show = true
			},
			success(state, res) {
				let cb = state.success
				let resObj = {
					cancel: false,
					confirm: false
				}
				res == "confirm" ? resObj.confirm = true : resObj.cancel = true
				cb && cb(resObj)
			}
		}
	})
	v.prototype.$showModal = function(option) {
		if (typeof option === 'object') {
			// #ifndef H5
			if (option.hideTabBar) {
				wx.hideTabBar();
			}
			// #endif

			v.prototype.$modalStore.commit('showModal', option)
		} else {
			throw "配置项必须为对象传入的值为:" + typeof option;
		}
	}
}