platDiff.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import * as utils from './utils.js';
  2. export default {
  3. // 获取不带options的路由
  4. route(page = null) {
  5. if (!page) {
  6. let pages = getCurrentPages();
  7. if (pages.length) {
  8. page = pages[pages.length - 1];
  9. }
  10. }
  11. let route = '';
  12. // #ifndef MP-TOUTIAO
  13. route = `/${page.route.split('?')[0]}`;
  14. // #endif
  15. // #ifdef MP-TOUTIAO
  16. route = `/${page.__route__.split('?')[0]}`;
  17. // #endif
  18. return route;
  19. },
  20. // 获取带options的路由
  21. routeWithOption(page = null) {
  22. if (!page) {
  23. let pages = getCurrentPages();
  24. if (pages.length) {
  25. page = pages[pages.length - 1];
  26. }
  27. }
  28. let route = '';
  29. // #ifndef MP-TOUTIAO
  30. route = `/${page.route.split('?')[0]}`;
  31. // #endif
  32. // #ifdef MP-TOUTIAO
  33. route = `/${page.__route__.split('?')[0]}`;
  34. // #endif
  35. if (page.options) {
  36. route += '?' + utils.objectToUrlParams(page.options);
  37. }
  38. return route;
  39. },
  40. // 获取带options(去除某些特定参数的)的路由 page_count--created时总页面数量
  41. tabBarUrl(page = null, page_count = 0) {
  42. if (!page) {
  43. let pages = getCurrentPages();
  44. if (pages.length) {
  45. let diff = (pages.length - page_count) > 0 && page_count > 0 ? pages.length - page_count : 0;
  46. page = pages[pages.length - 1 - diff];
  47. }
  48. }
  49. let route = '';
  50. // #ifndef MP-TOUTIAO
  51. route = `/${page.route.split('?')[0]}`;
  52. // #endif
  53. // #ifdef MP-TOUTIAO
  54. route = `/${page.__route__.split('?')[0]}`;
  55. // #endif
  56. if (page.options) {
  57. let params = {};
  58. for (let key in page.options) {
  59. if (!(key == 'user_id' || key == 'scene' || key == 'params' || key == 'first_id' || key == 'select_cat_id' || key == 'path'
  60. || key == 'share_openid' || key == 'custom_params' || key == 'room_id' || key == 'openid')) {
  61. if (key == 'page_id') {
  62. if (page.options[key] > 0) {
  63. params[key] = page.options[key];
  64. }
  65. } else {
  66. params[key] = page.options[key];
  67. }
  68. }
  69. }
  70. params = utils.objectToUrlParams(params);
  71. if (params) {
  72. route += '?' + params;
  73. }
  74. }
  75. console.log(route);
  76. return route;
  77. },
  78. }