index.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. export default {};
  2. export const queryToUrl = query => {
  3. return Object.keys(query).reduce((sum, item) => `${sum}&${item}=${query[item]}`, '');
  4. }; // 页面跳转
  5. export const history = (() => {
  6. const storage = ({
  7. pageType,
  8. componentData
  9. }) => {
  10. if (!getApp().globalData.pageTemp) {
  11. getApp().globalData.pageTemp = {};
  12. }
  13. getApp().globalData.pageTemp[pageType] = componentData;
  14. };
  15. const url = ({
  16. pageType,
  17. query,
  18. title,
  19. pull
  20. }) => `/antbuilder/industry/soldier/pages/${pull ? 'page-pull' : 'page-no-pull'}/index?title=${title}&pageType=${pageType}${queryToUrl(query)}`; // pageType 指定渲染的组件
  21. // data 数据,用于复杂类型的传递
  22. // query 可以通过分享出去的链接重新回到该页面,简单的query数据
  23. // title 页面标题和分享出去的标题
  24. // pull 页面是否允许下拉
  25. return {
  26. push({
  27. pageType,
  28. componentData,
  29. query = {},
  30. title,
  31. pull = true
  32. }) {
  33. storage({
  34. pageType,
  35. componentData
  36. });
  37. my.navigateTo({
  38. url: url({
  39. pageType,
  40. query,
  41. title,
  42. pull
  43. })
  44. });
  45. },
  46. replace({
  47. pageType,
  48. componentData,
  49. query = {},
  50. title,
  51. pull
  52. }) {
  53. storage({
  54. pageType,
  55. componentData
  56. });
  57. my.redirectTo({
  58. url: url({
  59. pageType,
  60. query,
  61. title,
  62. pull
  63. })
  64. });
  65. }
  66. };
  67. })();