田源
2024-04-10 810fb4b698f5450d04e5769f32ced55a9115f6fa
Source/ProjectWeb/src/router/avue-router.js
@@ -96,9 +96,9 @@
      // 设置 props默认值 作用就是将字段设置成配置的
      const propsDefault = {
        label: propsConfig.label || 'name',
        path:'code',
        path: 'code',
        code: 'code',
        pathValue:'pathValue',
        pathValue: 'pathValue',
        icon: propsConfig.icon || 'icon',
        children: propsConfig.children || 'children',
        meta: propsConfig.meta || 'meta',
@@ -121,16 +121,33 @@
        let code = (() => {
          return oMenu[propsDefault.code]
        })();
        // 将字符串分割成数组,以'?'作为分隔符
        let parts = path.split("?");
        // 如果数组的长度大于1,表示有'?',则取第一个元素的第一个部分,否则直接取整个字符串
        let bsValue = parts.length > 1 ? parts[0].split("=")[1] : path.split("=")[1];
        if (bsValue === '' || bsValue === undefined || bsValue === null) {
          bsValue = "UI";
        let component = '';
        let parts = '';
        // 如果路径中存在 '?',则取问号前面部分给 parts
        if (path.includes('?')) {
          parts = path.split("?")[0];
        } else {
          parts = path; // 不存在 '?' 整条路径就是 parts
        }
        //特殊处理组件 执行完这个 component 也就是精确到具体的文件了  views文件夹下面就是具体的页面代码
        let component = bsValue === 'UI' ? 'views/base/UIContentViewer' : `views/custom-ui/${bsValue}`,
          name = oMenu[propsDefault.label],
        // 如果问号前面部分不在 ['ui', 'UI', 'base'] 中,则是自定义组件
        if (!['ui', 'UI', 'base'].includes(parts)) {
          component = `views/custom-ui/${parts}`;
        }
        // 如果问号前面等于空,则默认为UI引擎
        if (!parts) {
          component = 'views/base/UIContentViewer';
        }
        // 如果问号前面等于 UI、ui 则为UI引擎
        if (['UI', 'ui'].includes(parts)) {
          component = 'views/base/UIContentViewer';
        }
        let name = oMenu[propsDefault.label],
          icon = oMenu[propsDefault.icon],
          children = oMenu[propsDefault.children],
          meta = oMenu[propsDefault.meta] || {};