You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

215 lines
7.7 KiB
Plaintext

11 months ago
layui.define(['jquery'], function (exports) {
"use strict";
var systemNodes,
moduleNode,
menuNode,
$ = layui.jquery;
var nonSystemItems = ['Forms', 'Frms', 'Flows', 'flows', 'frms', 'forms']
class MenuConvertTools {
constructor(webUser, resdata) {
this.webUser = webUser;
this.resdata = resdata;
this.convertToTreeData()
}
getSystemMenus(){
systemNodes = this.resdata['System'];
moduleNode = this.resdata['Module'];
menuNode = this.resdata['Menu'];
var adminMenuNodes = [];
//循环系统.
for (var idx = 0; idx < systemNodes.length; idx++) {
var systemNode = systemNodes[idx];
if (nonSystemItems.indexOf(systemNode.No) > -1) continue;
systemNode.children = [];
systemNode.open = false;
if (systemNode.No === "System") {
systemNode.Icon = 'icon-settings';
systemNode.Name = "系统管理";
}
if (systemNode.Icon === '')
systemNode.Icon = 'icon-settings';
//循环模块.
for (var idxModule = 0; idxModule < moduleNode.length; idxModule++) {
var moduleEn = moduleNode[idxModule];
if (moduleEn.SystemNo !== systemNode.No)
continue; //如果不是本系统的.
moduleEn.children = [];
if (moduleEn.Icon === "" || moduleEn.Icon == null || moduleEn.Icon === "")
moduleEn.Icon = 'icon-list';
moduleEn.open = false;
//增加菜单.
for (var idxMenu = 0; idxMenu < menuNode.length; idxMenu++) {
var menu = menuNode[idxMenu];
if (moduleEn.No !== menu.ModuleNo)
continue; // 不是本模块的。
if (menu.MenuModel == "FlowEntityBatchStart")
continue;
menu = this.DealMenuUrl(menu);
if (menu.Url.indexOf('@WebUser.FK_Dept') > 0)
menu.Url = menu.Url.replace('@WebUser.FK_Dept', this.webUser.FK_Dept);
if (menu.Url.indexOf('@WebUser.No') > 0)
menu.Url = menu.Url.replace('@WebUser.No', this.webUser.No);
if (menu.Url.indexOf('@WebUser.OrgNo') > 0)
menu.Url = menu.Url.replace('@WebUser.OrgNo', this.webUser.OrgNo);
if (menu.Icon === '')
menu.Icon = 'icon-user';
moduleEn.children.push(menu);
}
systemNode.children.push(moduleEn);
}
adminMenuNodes.push(systemNode)
}
return adminMenuNodes
}
convertToTreeData(){
var topNodes = [];
//if (this.webUser.No === "admin" || parseInt(this.webUser.IsAdmin) === 1) {
// if (this.getFlowMenu(this.data).length !== 0)
// topNodes.push(this.getFlowMenu(this.data));
// if (this.getFormMenu(this.data).length !== 0)
// topNodes.push(this.getFormMenu(this.data));
// }
topNodes = topNodes.concat(this.getSystemMenus(this.resdata))
// console.log(topNodes)
return topNodes
}
DealMenuUrl(menu) {
if (menu.UrlExt == undefined) menu.UrlExt = menu.Url;
var basePath = "";
if (menu.MenuModel === "" || menu.MenuModel === null) {
//alert("没有保存菜单标记 MenuModel " + menu.MenuModel);
return menu;
}
if (menu.MenuModel === "SelfUrl") {
menu.Url = basePath + menu.UrlExt;
return menu;
}
//如果是修改基础数据..
if (menu.MenuModel === "FlowBaseData" || menu.MenuModel === "FlowEtc") {
if (menu.Mark == "Todolist")
menu.Url = basePath + "/WF/Todolist.htm?FK_Flow=" + menu.Tag1;
if (menu.Mark == "Runing")
menu.Url = basePath + "/WF/Runing.htm?FK_Flow=" + menu.Tag1;
if (menu.Mark == "Start") {
menu.Url = basePath + "/WF/MyFlow.htm?FK_Flow=" + menu.Tag1;
menu.Icon = "icon-planct";
}
if (menu.Mark == "FlowSearch")
menu.Url = basePath + "/WF/Search.htm?FK_Flow=" + menu.Tag1;
if (menu.Mark == "FlowGroup")
menu.Url = basePath + "/WF/Group.htm?FK_Flow=" + menu.Tag1;
if (menu.Icon == null || menu.Icon == "") menu.Icon = "icon-paper-plane";
return menu;
}
//新建实体.
if (menu.MenuModel == "FlowNewEntity") {
if (menu.Mark == "StartFlow")
menu.Url = basePath + "/WF/CCBill/Opt/StartFlowByNewEntity.htm?FK_Flow=" + menu.Tag1 + "&MenuNo=" + menu.No;
// alert(menu.Icon);
if (menu.Icon === "" || menu.Icon == null) menu.Icon = "icon-paper-plane";
return menu;
}
if (menu.MenuModel == "FlowSearch") {
menu.Url = basePath + "/WF/Search.htm?FK_Flow=" + menu.Tag;
if (menu.Icon === "" || menu.Icon == null) menu.Icon = "icon-paper-plane";
return menu;
}
if (menu.MenuModel === "Dict") {
if (menu.ListModel === 0) //如果是批量编辑模式.
menu.Url = basePath + "/WF/CCBill/SearchEditer.htm?FrmID=" + menu.UrlExt;
else
menu.Url = basePath + "/WF/CCBill/SearchDict.htm?FrmID=" + menu.UrlExt;
return menu;
}
if (menu.MenuModel === "DBList") {
menu.Url = basePath + "/WF/CCBill/SearchDBList.htm?FrmID=" + menu.UrlExt;
return menu;
}
//流程菜单.
if (menu.MenuModel == "FlowUrl") {
// menu.Url = basePath + "/WF/" + menu.Url;
menu.Url = basePath + "/WF/" + menu.UrlExt;
return menu;
}
if (menu.MenuModel == "DictTable") {
url = basePath + "/WF/Admin/FoolFormDesigner/SFTableEditData.htm?FK_SFTable=" + menu.UrlExt + "&QueryType=Dict";
menu.Url = url;
return menu;
}
if (menu.MenuModel === "Bill") {
menu.Url = basePath + "/WF/CCBill/SearchBill.htm?FrmID=" + menu.UrlExt;
return menu;
}
//独立功能.
if (menu.MenuModel === "Func" || menu.MenuModel === "StandAloneFunc") {
menu.Url = basePath + "/WF/CCBill/Sys/Func.htm?FuncNo=" + menu.UrlExt;
return menu;
}
if (menu.MenuModel === "Windows") {
menu.Url = basePath + "/WF/Portal/Home.htm?PageID=" + menu.No;
return menu;
}
if (menu.MenuModel === "Tabs") {
menu.Url = basePath + "/WF/Portal/Tabs.htm?PageID=" + menu.No;
return menu;
}
if (menu.MenuModel === "Rpt3D") {
menu.Url = basePath + "/CCFast/Rpt/Rpt3D.htm?RptNo=" + menu.No;
return menu;
}
if (menu.Url != "") {
if (menu.Url.indexOf("?") != -1)
menu.Url = basePath + menu.Url + "&PageID=" + menu.No;
else
menu.Url = basePath + menu.Url + "?PageID=" + menu.No;
return menu;
}
alert('没有判断的模式:' + menu.MenuModel + " urlExt:" + menu.UrlExt);
return menu;
}
};
exports('MenuConvertTools', MenuConvertTools)
})