z-paging-interceptor.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // [z-paging]拦截器
  2. const queryKey = 'Query';
  3. const fetchParamsKey = 'FetchParams';
  4. const fetchResultKey = 'FetchResult';
  5. const language2LocalKey = 'Language2Local';
  6. // 拦截&处理@query事件
  7. function handleQuery(callback) {
  8. _addHandleByKey(queryKey, callback);
  9. return this;
  10. }
  11. // 拦截&处理@query事件(私有,请勿调用)
  12. function _handleQuery(pageNo, pageSize, from, lastItem) {
  13. const callback = _getHandleByKey(queryKey);
  14. return callback ? callback(pageNo, pageSize, from, lastItem) : [pageNo, pageSize, from];
  15. }
  16. // 拦截&处理:fetch参数
  17. function handleFetchParams(callback) {
  18. _addHandleByKey(fetchParamsKey, callback);
  19. return this;
  20. }
  21. // 拦截&处理:fetch参数(私有,请勿调用)
  22. function _handleFetchParams(parmas, extraParams) {
  23. const callback = _getHandleByKey(fetchParamsKey);
  24. return callback ? callback(parmas, extraParams || {}) : { pageNo: parmas.pageNo, pageSize: parmas.pageSize, ...(extraParams || {}) };
  25. }
  26. // 拦截&处理:fetch结果
  27. function handleFetchResult(callback) {
  28. _addHandleByKey(fetchResultKey, callback);
  29. return this;
  30. }
  31. // 拦截&处理:fetch结果(私有,请勿调用)
  32. function _handleFetchResult(result, paging, params) {
  33. const callback = _getHandleByKey(fetchResultKey);
  34. callback && callback(result, paging, params);
  35. return callback ? true : false;
  36. }
  37. // 拦截&处理系统language转i18n local
  38. function handleLanguage2Local(callback) {
  39. _addHandleByKey(language2LocalKey, callback);
  40. return this;
  41. }
  42. // 拦截&处理系统language转i18n local(私有,请勿调用)
  43. function _handleLanguage2Local(language, local) {
  44. const callback = _getHandleByKey(language2LocalKey);
  45. return callback ? callback(language, local) : local;
  46. }
  47. // 获取当前app对象
  48. function _getApp(){
  49. // #ifndef APP-NVUE
  50. return getApp();
  51. // #endif
  52. // #ifdef APP-NVUE
  53. return getApp({ allowDefault: true });
  54. // #endif
  55. }
  56. // 是否可以访问globalData
  57. function _hasGlobalData() {
  58. return _getApp() && _getApp().globalData;
  59. }
  60. // 添加处理函数
  61. function _addHandleByKey(key, callback) {
  62. try {
  63. setTimeout(function() {
  64. if (_hasGlobalData()) {
  65. _getApp().globalData[`zp_handle${key}Callback`] = callback;
  66. }
  67. }, 1);
  68. } catch (_) {}
  69. }
  70. // 获取处理回调函数
  71. function _getHandleByKey(key) {
  72. return _hasGlobalData() ? _getApp().globalData[`zp_handle${key}Callback`] : null;
  73. }
  74. export default {
  75. handleQuery,
  76. _handleQuery,
  77. handleFetchParams,
  78. _handleFetchParams,
  79. handleFetchResult,
  80. _handleFetchResult,
  81. handleLanguage2Local,
  82. _handleLanguage2Local
  83. };