// [z-paging]拦截器 const queryKey = 'Query'; const fetchParamsKey = 'FetchParams'; const fetchResultKey = 'FetchResult'; const language2LocalKey = 'Language2Local'; // 拦截&处理@query事件 function handleQuery(callback) { _addHandleByKey(queryKey, callback); return this; } // 拦截&处理@query事件(私有,请勿调用) function _handleQuery(pageNo, pageSize, from, lastItem) { const callback = _getHandleByKey(queryKey); return callback ? callback(pageNo, pageSize, from, lastItem) : [pageNo, pageSize, from]; } // 拦截&处理:fetch参数 function handleFetchParams(callback) { _addHandleByKey(fetchParamsKey, callback); return this; } // 拦截&处理:fetch参数(私有,请勿调用) function _handleFetchParams(parmas, extraParams) { const callback = _getHandleByKey(fetchParamsKey); return callback ? callback(parmas, extraParams || {}) : { pageNo: parmas.pageNo, pageSize: parmas.pageSize, ...(extraParams || {}) }; } // 拦截&处理:fetch结果 function handleFetchResult(callback) { _addHandleByKey(fetchResultKey, callback); return this; } // 拦截&处理:fetch结果(私有,请勿调用) function _handleFetchResult(result, paging, params) { const callback = _getHandleByKey(fetchResultKey); callback && callback(result, paging, params); return callback ? true : false; } // 拦截&处理系统language转i18n local function handleLanguage2Local(callback) { _addHandleByKey(language2LocalKey, callback); return this; } // 拦截&处理系统language转i18n local(私有,请勿调用) function _handleLanguage2Local(language, local) { const callback = _getHandleByKey(language2LocalKey); return callback ? callback(language, local) : local; } // 获取当前app对象 function _getApp(){ // #ifndef APP-NVUE return getApp(); // #endif // #ifdef APP-NVUE return getApp({ allowDefault: true }); // #endif } // 是否可以访问globalData function _hasGlobalData() { return _getApp() && _getApp().globalData; } // 添加处理函数 function _addHandleByKey(key, callback) { try { setTimeout(function() { if (_hasGlobalData()) { _getApp().globalData[`zp_handle${key}Callback`] = callback; } }, 1); } catch (_) {} } // 获取处理回调函数 function _getHandleByKey(key) { return _hasGlobalData() ? _getApp().globalData[`zp_handle${key}Callback`] : null; } export default { handleQuery, _handleQuery, handleFetchParams, _handleFetchParams, handleFetchResult, _handleFetchResult, handleLanguage2Local, _handleLanguage2Local };