1. 为菜单数据新增remark字段并设置默认值 2. 全量替换硬编码文本为国际化多语言支持 3. 新增生产配置模块首页组件与路由 4. 新增菜单重载action,支持语言切换后重载菜单 5. 补充简体中文、英文、日文、繁体中文语言包
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import util from '@/libs/util'
|
|
|
|
/**
|
|
* 将后端返回的扁平菜单数组转为 { header: [], aside: [] } 树结构
|
|
* @param {Array} arr 后端返回的扁平菜单数据
|
|
*/
|
|
function getMenuData (arr) {
|
|
const tree = { header: [], aside: [] }
|
|
|
|
arr.forEach(value => {
|
|
if (!value.is_navi) {
|
|
return
|
|
}
|
|
|
|
const menuItem = {
|
|
path: value.url || ('d2-menu-empty-' + value.menu_id),
|
|
title: value.name,
|
|
icon: value.icon,
|
|
type: value.type,
|
|
params: value.params,
|
|
remark: value.remark || ''
|
|
}
|
|
|
|
// parent_id 为 0 的节点放入顶栏
|
|
if (value.parent_id === 0) {
|
|
tree.header.push({ ...menuItem })
|
|
}
|
|
|
|
// 所有节点保留 menu_id / parent_id 用于构建侧栏树形结构
|
|
menuItem.menu_id = value.menu_id
|
|
menuItem.parent_id = value.parent_id
|
|
tree.aside.push(menuItem)
|
|
})
|
|
|
|
// 扁平 aside 数组转为嵌套树
|
|
tree.aside = util.formatDataToTree(tree.aside)
|
|
|
|
return tree
|
|
}
|
|
|
|
export default {
|
|
/**
|
|
* 由 sourceDataLoad 调用,将菜单源数据写入 store
|
|
* @param {Object} vm vuex store 实例 (this)
|
|
* @param {Array} source 后端返回的扁平菜单数组
|
|
*/
|
|
install (vm, source) {
|
|
vm.commit('d2admin/menu/headerAuth', source)
|
|
const { header, aside } = getMenuData(source)
|
|
vm.commit('d2admin/menu/headerSet', header)
|
|
vm.commit('d2admin/menu/asideSet', aside)
|
|
}
|
|
}
|