|
|
@@ -114,3 +114,63 @@ export const turnToMap = (list) => {
|
|
|
});
|
|
|
return map;
|
|
|
};
|
|
|
+/**
|
|
|
+ * 页面跳转 封装使用不同的微信页面跳转方法
|
|
|
+ * @param {string} toUrl 跳转路由
|
|
|
+ * @param {string} skipWay 跳转方法(
|
|
|
+ navigateTo : 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
|
|
|
+ switchTab : 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
|
|
|
+ reLaunch : 关闭所有页面,打开到应用内的某个页面
|
|
|
+ redirectTo : 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。
|
|
|
+ )
|
|
|
+ * @param {string} data
|
|
|
+ */
|
|
|
+export const goToUrl = function (toUrl, data = { skipWay: 'navigateTo', data: '' }) {
|
|
|
+ var menu = [];
|
|
|
+ let num = toUrl.indexOf('?') || 0; // 参数下标
|
|
|
+ let key = toUrl.substr(num == -1 ? toUrl.length : num, toUrl.length); // 获取地址带参
|
|
|
+ let url = toUrl.substr(0, num == -1 ? toUrl.length : num); // 获取地址除去带的参数
|
|
|
+ if (uni.getStorageSync('menuList')) {
|
|
|
+ menu = uni.getStorageSync('menuList');
|
|
|
+ }
|
|
|
+ menu = menu.filter((item) => item.MenuName == 'DiyMenu');
|
|
|
+ if (isNotEmpty(menu) && isNotEmpty(menu[0])) {
|
|
|
+ var diyMenu = menu[0];
|
|
|
+ diyMenu.Children.forEach(function (val, index) {
|
|
|
+ var FromUrl = val.FromUrl;
|
|
|
+ var ToDiyUrl = val.ToUrl;
|
|
|
+ if (url == FromUrl) {
|
|
|
+ url = ToDiyUrl;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 判断是否是传data.data (data.data代表页面值)
|
|
|
+ if (isNotEmpty(data.data)) {
|
|
|
+ if (data.data.indexOf('?') == -1) {
|
|
|
+ url = url + '?' + data.data;
|
|
|
+ } else {
|
|
|
+ url = url + data.data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 判断是否是地址带参
|
|
|
+ if (isNotEmpty(key)) {
|
|
|
+ // 判断是否有http跳转
|
|
|
+ if (key.indexOf('url=') >= 0) {
|
|
|
+ let url_ = key.substr(key.indexOf('url=') + 4);
|
|
|
+ // 传入的url未转码 则转码 已转码 则不处理
|
|
|
+ if (url_ == decodeURIComponent(url_)) {
|
|
|
+ url_ = encodeURIComponent(url_);
|
|
|
+ }
|
|
|
+ key = key.substr(0, key.indexOf('url=') + 4) + url_;
|
|
|
+ }
|
|
|
+ url = url + key;
|
|
|
+ }
|
|
|
+ // 使用微信那种跳转方法
|
|
|
+ let way = data.skipWay || 'navigateTo';
|
|
|
+ uni[way]({
|
|
|
+ url: url,
|
|
|
+ success: () => {
|
|
|
+ // loadSysAppPageMessage(url);
|
|
|
+ },
|
|
|
+ });
|
|
|
+};
|