123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- import config from '../config';
- /**
- * 什么事情都不做
- */
- function noop() {}
- export function getCurrentWebview() {
- const pages = getCurrentPages();
- const page = pages[pages.length - 1];
- return page.$getAppWebview();
- }
- export function reject(reason) {
- return Promise.reject(reason);
- }
- export function resolve(data) {
- return Promise.resolve(data);
- }
- /**
- * 将 JSON 数据转换成 QueryString
- * @param {Object|Array} object 被转换的JSON数据
- * @param {String} [prefix=''] 键名前缀
- * @return {String}
- */
- export function qs(object, prefix = '') {
- if (Array.isArray(object)) {
- if (!prefix) {
- throw new Error('must given a not empty prefix');
- }
- return object.map(function (val) {
- if (val == null) return prefix + '[]=';
- switch(typeof val) {
- case 'boolean':
- return prefix + '[]=' + (val ? 1 : 0);
- case 'number':
- return prefix + '[]=' + val;
- case 'object':
- return qs(val, prefix + '[]');
- default:
- return prefix + '[]=' + encodeURIComponent(val);
- }
- }).join('&');
- }
- return Object.keys(object).map(function (prop) {
- const value = object[prop];
- const key = prefix ? `${prefix}[${prop}]` : prop;
- if (value == null) return key + '=';
- if (typeof value !== 'object') return key + '=' + encodeURIComponent(value);
- return qs(value, key);
- }).join('&');
- }
- /**
- * 页面跳转
- * @param {String} page 页面路径或网络地址
- * @param {Object|Function} params 页面跳转参数或接口调用结束的回调函数
- * @param {Function} [completion] 接口调用结束的回调函数(调用成功、失败都会执行)
- * @return {Promise}
- */
- export function jump(page, params, completion = noop) {
- let url = null;
- if (/^\/\//.test(page)) {
- page = 'http:' + page;
- }
- if (/^https?:\/\//i.test(page)) {
- url = page;
- page = 'pages/web/index';
- }
- if (url) {
- params = { url };
- }
-
- page = page.split(/\.+/).join('/');
-
- if (!/^\/?pages\//.test(page)) {
- page = '/pages/' + page.replace(/^\/+/, '');
- }
- const query = params ? qs(params) : null;
- return new Promise(function (resolve, reject) {
- var url= page + (query ? '?' + query : '');
-
-
- uni.navigateTo({
- url: url,
- });
- });
- }
|