/**
 *  页面通讯工具类（uni.emit）的封装
 * 
 * @author terrfly
 * @site https://www.jeequan.com
 * @date 2022/11/24 15:54
 */

const model = {
	
	// 定义监听器的名字， 应该是一个页面一个， 不可两个页面公共一个， 否则会导致： 一个页面onUnload 移除时影响另一个页面的正常接收。
	// 业务页面 监听，  onUnload应该移除掉。 
	
	// 通用搜索页
	ENAME_REF_SEARCH_PAGE : 'ENAME_REF_SEARCH_PAGE',
	
	// 应用列表页的刷新
	ENAME_REF_TABLE_MCH_APP : 'ENAME_REF_TABLE_MCH_APP',
	// 应用详情
	ENAME_REF_TABLE_MCH_APP_DETAILS : 'ENAME_REF_TABLE_MCH_APP_DETAILS',

	// 调起扫一扫 
	ENAME_E_PAY_SCAN : 'ENAME_E_PAY_SCAN',
	// 重置 金额
	ENAME_RESET_PAY_AMOUNT: 'ENAME_RESET_PAY_AMOUNT',
	// 更新支付订单信息
	ENAME_REF_PAY_ORDER : 'ENAME_REF_PAY_ORDER',
	
	// 更新 门店列表
	ENAME_REF_STORE_LIST : 'ENAME_REF_STORE_LIST',
	
	// 更新 门店详情
	ENAME_REF_STORE_DETAIL : 'ENAME_REF_STORE_DETAIL',
	
	// 更新 员工列表
	ENAME_REF_SYS_USER_LIST : 'ENAME_REF_SYS_USER_LIST',
	
	// 更新 员工详情
	ENAME_REF_SYS_USER_DETAIL : 'ENAME_REF_SYS_USER_DETAIL',
	
	// 更新 通道列表
	ENAME_REF_PAY_PASSAGE_LIST : 'ENAME_REF_PAY_PASSAGE_LIST',
	
	// 更新 辅助终端信息
	ENAME_REF_TERMINAL_LIST : 'ENAME_REF_TERMINAL_LIST',
	
	// 更新 辅助终端 详情页
	ENAME_REF_TERMINAL_DETAIL : 'ENAME_REF_TERMINAL_DETAIL',
	
	// 更新  智能pos 信息
	ENAME_REF_AUTOPOS_LIST : 'ENAME_REF_AUTOPOS_LIST',
	
	// 更新  智能pos 详情页
	ENAME_REF_AUTOPOS_DETAIL : 'ENAME_REF_AUTOPOS_DETAIL',
	
	// 更新  扫码pos 信息
	ENAME_REF_SCANPOS_LIST : 'ENAME_REF_SCANPOS_LIST',
	
	// 更新  扫码pos 详情页
	ENAME_REF_SCANPOS_DETAIL : 'ENAME_REF_SCANPOS_DETAIL',
	// 码牌列表
	ENAME_REF_QRC_LIST : 'ENAME_REF_QRC_LIST',
	
	// 码牌详情
	ENAME_REF_QRC_DETAIL : 'ENAME_REF_QRC_DETAIL',
	// 更新  打印机 信息
	ENAME_REF_PRINTER_LIST : 'ENAME_REF_PRINTER_LIST',
	
	// 更新  打印机 详情页
	ENAME_REF_PRINTER_DETAIL : 'ENAME_REF_PRINTER_DETAIL',
	
	// 云喇叭列表
	ENAME_REF_SPEAKER_LIST : 'ENAME_REF_SPEAKER_LIST',
	
	// 云喇叭详情
	ENAME_REF_SPEAKER_DETAIL : 'ENAME_REF_SPEAKER_DETAIL',
	
	
	// 进件列表 
	ENAME_REF_APPLYMENT_LIST : 'ENAME_REF_APPLYMENT_LIST',

    // 刷脸设备列表
	ENAME_REF_FACE_LIST : 'ENAME_REF_FACE_LIST',
	// 刷脸设备详情
	ENAME_REF_FACE_DETAIL : 'ENAME_REF_FACE_DETAIL',

  // 刷脸广告列表
	ENAME_REF_AD_LIST : 'ENAME_REF_AD_LIST',

  // 刷脸广告 详情 
	ENAME_REF_AD_DETAILS : 'ENAME_REF_AD_DETAILS',
	
	// 更新 会员列表
	ENAME_REF_MEMBER_LIST : 'ENAME_REF_MEMBER_LIST',
	
	// 更新 会员详情
	ENAME_REF_MEMBER_DETAIL : 'ENAME_REF_MEMBER_DETAIL',
	
	// 更新 会员账户流水列表
	ENAME_REF_MEMBER_ACCOUNT_HISTORY_LIST : 'ENAME_REF_MEMBER_ACCOUNT_HISTORY_LIST',
	
	// 更新 会员账户流水详情
	ENAME_REF_MEMBER_ACCOUNT_HISTORY_DETAIL : 'ENAME_REF_MEMBER_ACCOUNT_HISTORY_DETAIL',

	// 更新 会员充值记录列表
	ENAME_REF_MEMBER_RECHARGE_RECORD_LIST : 'ENAME_REF_MEMBER_RECHARGE_RECORD_LIST',
	
	// 更新 会员充值记录详情
	ENAME_REF_MEMBER_RECHARGE_RECORD_DETAIL : 'ENAME_REF_MEMBER_RECHARGE_RECORD_DETAIL',
	
	// 更新 充值规则列表
	ENAME_REF_RECHARGE_RULE_LIST : 'ENAME_REF_RECHARGE_RULE_LIST',
	
	// 刷新页面的 发射事件 , 更新页面 && 更新搜索页面
	refPageAndSearchEmit: (refEmitEventName, data = {} ) => {
		model.pageEmit(refEmitEventName, data)
		model.pageEmit(model.ENAME_REF_SEARCH_PAGE, data)
	},
	
	//  自定义
	pageEmit: (refEmitEventName, data) => {
		uni.$emit(refEmitEventName, data )
	},
	
	
	
	// 废弃该函数。 ( 因为： 页面只监听一次， 使用该函数则无法再次监听， 需要再每个页面写入： uni.$on 保证正常接收。  )
	// 监听页面刷新函数  
	on: (refEmitEventName) => {
		return new Promise( (resolve) => {
			uni.$on(refEmitEventName, function(data){
					resolve( data )
			})
		})
	}
}

export default model