history.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { prefixPagePath, industryEntry } from "../../../core/utils";
  2. import { queryToUrl } from './index';
  3. import masConfig from '../mas.config.json';
  4. export const getEntryPage = pull => `${industryEntry}/${masConfig['industry-name']}/pages/${pull ? 'page-pull' : 'page-no-pull'}/index`;
  5. 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. }; // eslint-disable-next-line max-len
  15. // /components/industry-component/volunteer/pages/page-no-pull/index?title=标题&pageType=volunteer-projects
  16. const url = ({
  17. pageType,
  18. query,
  19. title,
  20. pull,
  21. header
  22. }) => `${getEntryPage(pull)}?title=${title}&pageType=${pageType}&header=${header}${queryToUrl(query)}`; // pageType 指定渲染的组件
  23. // data 数据,用于复杂类型的传递
  24. // query 可以通过分享出去的链接重新回到该页面,简单的query数据
  25. // title 页面标题和分享出去的标题
  26. // pull 页面是否允许下拉
  27. return {
  28. push({
  29. pageType,
  30. componentData,
  31. query = {},
  32. title,
  33. pull = false,
  34. header = 'show'
  35. }) {
  36. storage({
  37. pageType,
  38. componentData
  39. });
  40. my.navigateTo({
  41. url: url({
  42. pageType,
  43. query,
  44. title,
  45. pull,
  46. header
  47. })
  48. });
  49. },
  50. replace({
  51. pageType,
  52. componentData,
  53. query = {},
  54. title,
  55. pull,
  56. header = 'show'
  57. }) {
  58. storage({
  59. pageType,
  60. componentData
  61. });
  62. my.redirectTo({
  63. url: url({
  64. pageType,
  65. query,
  66. title,
  67. pull,
  68. header
  69. })
  70. });
  71. },
  72. toH5(_url) {
  73. my.navigateTo({
  74. url: `${prefixPagePath}/h5/index?url=${_url}`
  75. });
  76. }
  77. };
  78. })();
  79. export default history;