| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- let Plugin = function() {};
- Plugin.install = function(vue, router) {
- router.$plugin = {
- addRoutes: (list, options) => {
- if (!options) {
- options = {};
- }
- list.map(e => {
- if (!e.component) {
- let url = e.viewPath;
- if (url) {
- if (
- /^(http[s]?:\/\/)([0-9a-z.]+)(:[0-9]+)?([/0-9a-z.]+)?(\?[0-9a-z&=]+)?(#[0-9-a-z]+)?/i.test(
- e.viewPath
- )
- ) {
- e.meta.iframeUrl = e.viewPath;
- e.component = () => import(`@/pages/iframe/index.vue`);
- } else {
- e.component = () => import(`@/${e.viewPath}`);
- }
- } else {
- e.redirect = '/404';
- }
- }
- });
- router.addRoutes([
- {
- path: '/',
- component: resolve => require([`@/pages/layout/index.vue`], resolve),
- children: list
- }
- // {
- // path: '*',
- // redirect: '/404'
- // }
- ]);
- },
- to: url => {
- if (router.path != url) {
- router.push(url);
- }
- }
- };
- };
- export default Plugin;
|