1***@qq.com
1***@qq.com
  • 发布:2022-12-13 11:19
  • 更新:2022-12-13 15:26
  • 阅读:343

【报Bug】uni-admin vue3版本 菜单管理报错

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

hbuilderx 新建uni-admin vue3版本 ,点击菜单管理

预期结果:

实际结果:

连接服务器超时,点击屏幕重试

bug描述:

uni-admin
vue3 菜单管理
TypeError: pluginModules[modulePath] is not a function
at list.vue:169:28

2022-12-13 11:19 负责人:无 分享
已邀请:
DCloud_uniCloud_VK

DCloud_uniCloud_VK

这是由于升级到HBX3.6.13导致的。
目前解决方案如下:

修改 pages/system/menu/list.vue 这个文件的以下代码

// #ifdef VUE3  
    const rootModules = import.meta.glob('../../../*-menu.json', {eager: true})  
    for (const modulePath in rootModules) {  
        const json = modulePath.replace(/^..\/..\/..\//, '')  
        rootModules[modulePath]().then(module => {  
            module = module.default ? module.default : module  
            module.forEach(item => {  
                item.json = json  
                pluginMenuJsons.push(item)  
            })  
        })  
    }  

    const pluginModules = import.meta.glob('../../../uni_modules/**/menu.json', {eager: true})  
    for (const modulePath in pluginModules) {  
        const json = modulePath.replace(/^..\/..\/..\//, '')  
        pluginModules[modulePath]().then(module => {  
            module = module.default ? module.default : module  
            module.forEach(item => {  
                item.json = json  
                pluginMenuJsons.push(item)  
            })  
        })  
    }  
    // #endif

修改为

    // #ifdef VUE3  
    const rootModules = import.meta.glob('../../../*-menu.json', {eager: true});  
    for (const modulePath in rootModules) {  
        const json = modulePath.replace(/^..\/..\/..\//, '');  
        let moduleItem = rootModules[modulePath];  
        if (typeof moduleItem === "function") {  
            // 兼容 HBX3.6.5或以下版本   
            moduleItem().then(module => {  
                module = module.default ? module.default : module  
                module.forEach(item => {  
                    item.json = json  
                    pluginMenuJsons.push(item)  
                });  
            })  
        } else {  
            // 兼容 HBX3.6.13或以上版本  
            let module = moduleItem.default ? moduleItem.default : moduleItem;  
            module.forEach(item => {  
                item.json = json  
                pluginMenuJsons.push(item)  
            });  
        }  
    }  

    const pluginModules = import.meta.glob('../../../uni_modules/**/menu.json', {eager: true});  
    for (const modulePath in pluginModules) {  
        const json = modulePath.replace(/^..\/..\/..\//, '');  
        let moduleItem = pluginModules[modulePath];  
        if (typeof moduleItem === "function") {  
            // 兼容 HBX3.6.5或以下版本  
            moduleItem().then(module => {  
                module = module.default ? module.default : module  
                module.forEach(item => {  
                    item.json = json  
                    pluginMenuJsons.push(item)  
                })  
            })  
        } else {  
            // 兼容 HBX3.6.13或以上版本  
            let module = moduleItem.default ? moduleItem.default : moduleItem;  
            module.forEach(item => {  
                item.json = json  
                pluginMenuJsons.push(item)  
            });  
        }  
    }  
    // #endif  

该问题目前已经被锁定, 无法添加新回复