t-comm
Version:
专业、稳定、纯粹的工具库
57 lines (54 loc) • 1.58 kB
JavaScript
import { removeLastSlash, removeFirstSlash } from '../slash/slash.mjs';
function queryString(options) {
var needEncode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var query = Object.keys(options).map(function (key) {
var _a;
return "".concat(key, "=").concat(needEncode ? encodeURIComponent((_a = options[key]) !== null && _a !== void 0 ? _a : '') : options[key]);
});
return query.join('&');
}
function routeChangePath(url, options) {
if (options) {
var query = queryString(options, true);
if (query) {
return "".concat(url, "?").concat(query);
}
}
return url;
}
/**
* 获取当前路由部分的 url
* @return {string}
* @example
* ```ts
* // 在当前页面中调用
* getRoutePartUrl();
* // 'pages/home/home?from=index'
* ```
*/
function getRoutePartUrl() {
var pages = getCurrentPages();
var page = pages[pages.length - 1];
if (!page) return '';
var fullPath = page.$page.fullPath;
if (fullPath) {
return fullPath;
}
return "".concat(routeChangePath(page.route, page.options));
}
/**
* 小程序中,获取页面对应的 url 链接
* @param {string} baseLink 基础 URL
* @return {string}
* @example
* ```ts
* // 在当前页面中调用
* getUrlInMP('https://example.com');
* // 'https://example.com/pages/home/home?from=index'
* ```
*/
function getUrlInMP(baseLink) {
var detail = getRoutePartUrl();
return "".concat(removeLastSlash(baseLink), "/").concat(removeFirstSlash(detail));
}
export { getRoutePartUrl, getUrlInMP, queryString, routeChangePath };