UNPKG

zcloud-ui

Version:

A Component Library for Vue.js.

66 lines (59 loc) 1.91 kB
'use strict'; exports.__esModule = true; /** * 页面跳转 mixin * 使用this.handleLinkTo('purchase/purchaseOrder',params); */ exports.default = { methods: { /** * @param {String} link 需要跳转的path * @param {Sting|Object} params query参数 * @param {Sting} num 使用首页,>1时可跳 */ handleLinkTo: function handleLinkTo(link, params) { var _this = this; var num = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; var routers = this.$store.getters.routers; if (!num) return; this.getURL(routers, link, function (url) { if (params) { var query = {}; if (typeof params === 'string') { query = { state: params }; } else if (Object.prototype.toString.call(params) === '[object Object]') { query = params; } else { throw new Error('params只支持object和string'); } _this.$router.push({ path: url, query: query }); } else { _this.$router.push({ path: url }); } }); }, getURL: function getURL(routers, name, callback) { var reg = new RegExp(name + '$'); for (var _iterator = routers, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { var _ref; if (_isArray) { if (_i >= _iterator.length) break; _ref = _iterator[_i++]; } else { _i = _iterator.next(); if (_i.done) break; _ref = _i.value; } var item = _ref; if (item.path && item.path.includes(name) && reg.test(item.path)) { callback(item.path); return; } else { if (item.children && item.children.length) { this.getURL(item.children, name, callback); } } } } } };