page.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { createPublish } from 'applet-page-component';
  2. import { queryToUrl } from './index';
  3. const getOptions = () => ({ ...createPublish(),
  4. data: {
  5. pageType: undefined,
  6. componentData: undefined,
  7. query: {},
  8. title: '',
  9. header: ''
  10. },
  11. onReadyHeader({
  12. height
  13. }) {
  14. const {
  15. componentData = {}
  16. } = this.data;
  17. componentData.headerHeight = height;
  18. this.setData({
  19. componentData: { ...componentData
  20. }
  21. });
  22. },
  23. onLoad(query) {
  24. const {
  25. title,
  26. pageType,
  27. header = '',
  28. ...other
  29. } = query;
  30. title && my.setNavigationBar({
  31. title
  32. });
  33. const {
  34. globalData
  35. } = getApp();
  36. const {
  37. pageTemp = {}
  38. } = globalData;
  39. const componentData = pageTemp[pageType] || {};
  40. this.setData({
  41. title,
  42. header,
  43. pageType,
  44. componentData,
  45. query: other
  46. });
  47. },
  48. onUnload() {
  49. if (getApp().globalData.pageTemp) {
  50. delete getApp().globalData.pageTemp[this.data.pageType];
  51. }
  52. },
  53. // 分享
  54. onShareAppMessage() {
  55. const {
  56. pageType,
  57. query,
  58. title
  59. } = this.data;
  60. return {
  61. title,
  62. path: `${this.route}?pageType=${pageType}&title=${title}${queryToUrl(query)}`
  63. };
  64. }
  65. });
  66. export default getOptions;