history.js 1.7 KB

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