12345678910111213141516171819202122232425262728293031323334 |
- import { methods, baseConfig, Global } from '../helpers/config';
- import { noop, formatURLQuery } from '../helpers/util';
- let stop = null;
- /**
- * @param {Object} finalRoute 格式化后的路由跳转规则
- * @param {Object} NAVTYPE 需要调用的跳转方法
- */
- const uniPushTo = function (finalRoute, NAVTYPE) {
- return new Promise((resolve) => {
- const query = formatURLQuery(`?${finalRoute.uniRoute.query}`);
- const { APP } = baseConfig;
- const { url } = finalRoute.uniRoute;
- stop = setTimeout(() => {
- resolve(url);
- resolve = noop; // 执行完了就没了 确保不会被下一次执行
- Global.LockStatus = false; // 跳转完成解锁状态
- }, APP.switchPageOutTime);
- uni[methods[NAVTYPE]]({
- url: url + query,
- ...finalRoute.route.animation,
- complete: () => {
- clearTimeout(stop);
- resolve(url);
- resolve = noop; // 执行完了就没了 确保不会被下一次执行
- Global.LockStatus = false; // 跳转完成解锁状态
- },
- }, true); // 这里传递true 主要是兼容重写 uni.switchTab
- });
- };
- export default uniPushTo;
|