Commit 425d47f2 by caoyanzhi

update: 菜单数据统计

parent 4f834520
/* eslint-disable */
const path = require('path');
const fs = require('fs');
const json2xls = require('json2xls');
const menuData = require('./menu-data.js');
function checkData(data, level) {
return data.some(el => {
// 每个节点是否有menu属性
let flag = el.hasOwnProperty('menu');
if (!flag) {
console.log(el, '没有menu属性');
return !flag;
}
// 每个menu是否有三个元素
flag = Array.isArray(el.menu) && el.menu.length == 3;
if (!flag) {
console.log(el, 'menu格式错误');
return !flag;
}
// 第一、二级菜单没有url
if (level == 0 || level == 1) {
flag = !el.menu[1];
if (!flag) {
console.log(el, '配置了menuUrl');
return !flag;
}
} else {
// 一、二级之后的菜单必须有url
flag = !!el.menu[1];
if (!flag) {
console.log(el, '未配置menuUrl');
return !flag;
}
}
if (flag && Array.isArray(el.children)) {
flag = !checkData(el.children, level + 1);
}
return !flag;
});
};
function createMenuJson(data, parentCode) {
let result = [];
// 菜单名称、路径、icon_url、code、父code
data.forEach((el, index) => {
const [ menuName, menuUrl, isRight, iconUrl ] = el.menu;
const menuIndex = (index + 1).toString().padStart(2, '0');
const item = {
menuName,
menuCode: parentCode ? parentCode + menuIndex : 'hb_m' + menuIndex,
parentCode,
menuUrl,
type: 0,
iconUrl: iconUrl || '',
isRight,
isPageBtn: 0
}
result.push(item);
if (Array.isArray(el.children)) {
result = result.concat(createMenuJson(el.children, item.menuCode));
}
});
return result;
}
function createXls() {
if (checkData(menuData, 0)) return;
return;
const data = createMenuJson(menuData, '');
const jsonArray = data.map( item => {
return {
'菜单名称': item.menuName,
'菜单code': item.menuCode,
'父菜单code': item.parentCode,
'菜单路径': item.menuUrl,
'菜单类型(0菜单 5按钮)': item.type,
'icon_url': item.iconUrl,
'是否控制权限,1控制 0否': item.isRight,
'只有页面才有,用于菜单不需要独立权限控制,配置的是按钮的menu_code': '',
'是否赠删改的按钮': item.isPageBtn
}
});
fs.writeFile(path.resolve(__dirname, './result.xlsx'), json2xls(jsonArray), 'binary', (err) => {
if (err) {
console.log(err);
return;
}
console.log('写入完成');
});
}
createXls();
// console.log(createMenuJson(menuData, ''));
/* eslint-disable */
module.exports = [
// 菜单名称、路径、是否分权、icon_url、code、父code
{
menu: ['客户', '', 1],
children: [
{
menu: ['我的客户', '', 1],
children: [
{ menu: ['客户列表', 'myCustomerList', 1] }
]
},
{
menu: ['客户标签', '', 1],
children: [
{ menu: ['客户标签', 'memberTagSet', 1] },
{ menu: ['同步历史', 'syncHistory', 1] }
]
},
{
menu: ['客户基础设置', '', 1],
children: [
{ menu: ['客户展示设置', 'memberShowSet', 1] },
{
menu: ['客户分组设置', 'memberGroupSet', 1],
children: [
{ menu: ['新建模板', 'addGroupTemplate', 1 ]},
{ menu: ['编辑', 'editGroupTemplate', 1] }, // update 本次新增路径
{ menu: ['门店范围设置', 'storeRangeSet', 1] },
]
},
{ menu: ['客户管理设置', 'memberSearchSet', 1] },
{ menu: ['客户详情设置', 'memberDetailSet', 1] }
]
}
]
},
{
menu: ['营销', '', 1],
children: [
{
menu: ['任务触达', '', 1],
children: [
// {
// menu: ['会话任务', '', 1], // TODO 本次新增页面
// children: [
// { menu: ['新增规则策略', '', 1] }, // TODO 本次新增页面
// { menu: ['查看', '', 1] }, // TODO 本次新增页面
// { menu: ['编辑', '', 1] }, // TODO 本次新增页面
// ]
// }
]
},
{
menu: ['卡券活动', '', 1],
children: [
{
menu: ['卡券列表', 'cardList', 1],
children: [
{ menu: ['新增卡券', 'newCard', 1] },
{ menu: ['编辑', 'editCard', 1] }, // update 本次新增路径
]
},
{ menu: ['卡券记录', 'cardRecord', 1] },
]
},
{
menu: ['评价回访', '', 1],
children: [
// {
// menu: ['评价回访设置', '', 1], // TODO 本次新增页面
// children: [
// { menu: ['新增规则策略', '', 1] }, // TODO 本次新增页面
// { menu: ['编辑', '', 1] }, // TODO 本次新增页面
// { menu: ['查看', '', 1] }, // TODO 本次新增页面
// ]
// }
]
},
{
menu: ['素材库', '', 1],
children: [
{ menu: ['素材库', 'material', 1] }
]
},
{
menu: ['商品中心', '', 1],
children: [
{ menu: ['商品展示设置', 'goodsShowSet', 1] }
]
}
]
},
{
menu: ['数据', '', 1],
children: [
{
menu: ['企业数据', '', 1],
children: [
{
menu: ['好办使用详情', 'enterpriseUseData', 1],
children: [
{ menu: ['活跃人员明细', 'activeDetail', 1] },
{ menu: ['登录人员明细', 'loginDetail', 1] },
{ menu: ['区域登录明细', 'areaLoginDetail', 1] }
]
}
]
},
{
menu: ['云日报', '', 1],
children: [
{
menu: ['云日报记录', 'dailyRecord', 1],
children: [
{ menu: ['查看详情', 'dailyDetail', 1], }
]
},
{ menu: ['云日报导出', 'dailyExport', 1] },
{ menu: ['任务下发设置', 'taskAssign', 1] },
// {
// menu: ['云日报设置', '', 1], // TODO 本次新增页面
// children: [
// { menu: ['新建模板', 'customReportSet', 1]},
// { menu: ['复制', 'customReportCopy', 1]}, // update 本次新增路径
// { menu: ['编辑', 'customReportEdit', 1]} // update 本次新增路径
// ]
// },
]
},
{
menu: ['月指标', '', 1],
children: [
{
menu: ['月指标设置', 'monthList', 1],
children: [
{
menu: ['门店月指标', 'storeMonthTask', 1],},
{ menu: ['商户日权重', 'companyDaySet', 1]},
]
},
{
menu: ['月指标任务报表', 'monthTask', 1],
children: [
{ menu: ['查看详情', 'monthTaskDetail', 1] }
]
},
]
},
{
menu: ['群发任务记录', '', 1],
children: [
{
menu: ['门店视图', 'grStoreList', 1],
children: [
{ menu: ['查看详情', 'grStoreDetail/:id', 1]}
]
},
{
menu: ['计划视图', 'grTaskList', 1],
children: [
{ menu: ['查看详情', 'grStoreList', 1]}
]
},
]
},
{
menu: ['会话任务记录', '', 1],
children: [
{
menu: ['门店视图', 'taskRecord', 1],
children: [
{ menu: ['查看详情', 'taskDetail', 1] }
]
},
{
menu: ['任务视图', 'taskView', 1],
children: [
{ menu: ['查看详情', 'taskViewDetail', 1] }
]
}
]
},
]
},
{
menu: ['设置', '', 1]
},
];
...@@ -74,6 +74,7 @@ ...@@ -74,6 +74,7 @@
"file-loader": "^1.1.4", "file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1", "friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1", "html-webpack-plugin": "^2.30.1",
"json2xls": "^0.1.2",
"less": "^3.0.4", "less": "^3.0.4",
"less-loader": "^4.1.0", "less-loader": "^4.1.0",
"node-notifier": "^5.1.2", "node-notifier": "^5.1.2",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment