mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-02-23 21:36:37 +08:00
115 lines
3.8 KiB
JavaScript
115 lines
3.8 KiB
JavaScript
/**
|
|
菜单 处理
|
|
**/
|
|
(function (vc) {
|
|
var vm = new Vue({
|
|
el: '#menu-nav',
|
|
data: {
|
|
menus: [],
|
|
logo: '',
|
|
},
|
|
mounted: function () {
|
|
this._initSysInfo();
|
|
this.getMenus();
|
|
},
|
|
methods: {
|
|
_initSysInfo: function () {
|
|
var sysInfo = vc.getData("_sysInfo");
|
|
if (sysInfo == null) {
|
|
this.logo = "HC";
|
|
return;
|
|
}
|
|
this.logo = sysInfo.logo;
|
|
},
|
|
_gotoIndex:function(){
|
|
vc.jumpToPage("/")
|
|
},
|
|
getMenus: function () {
|
|
|
|
var _tmpMenus = vc.getMenus();
|
|
//浏览器缓存中能获取到
|
|
if (_tmpMenus != null && _tmpMenus != undefined) {
|
|
this.miniMenu();
|
|
this.menus = _tmpMenus;
|
|
return;
|
|
}
|
|
|
|
var param = {
|
|
params: {
|
|
msg: this.message
|
|
}
|
|
|
|
}
|
|
//发送get请求
|
|
vc.http.get('menu',
|
|
'getMenus',
|
|
param,
|
|
function (json, res) {
|
|
var _menus = JSON.parse(json);
|
|
if (_menus == null || _menus.length == 0) {
|
|
return;
|
|
}
|
|
_menus.sort(function (a, b) {
|
|
return a.seq - b.seq
|
|
});
|
|
var _currentMenusId = vc.getCurrentMenu() == null ? _menus[0].id : vc.getCurrentMenu();
|
|
vm.menus = vm.refreshMenuActive(_menus, _currentMenusId);
|
|
vc.setMenus(vm.menus);
|
|
vm.miniMenu();
|
|
}, function (errInfo, error) {
|
|
console.log('请求失败处理');
|
|
}
|
|
);
|
|
},
|
|
refreshMenuActive: function (jsonArray, _id) {
|
|
for (var menuIndex = 0; menuIndex < jsonArray.length; menuIndex++) {
|
|
|
|
if (jsonArray[menuIndex].hasOwnProperty('childs')) {
|
|
var _childs = jsonArray[menuIndex].childs;
|
|
_childs.sort(function (_child, _newChild) {
|
|
return _child.seq - _newChild.seq
|
|
});
|
|
jsonArray[menuIndex].childs = _childs;
|
|
}
|
|
|
|
if (_id === jsonArray[menuIndex].id) {
|
|
if (jsonArray[menuIndex].active === true) {
|
|
//如果当前本身是打开状态,说明 需要关闭
|
|
jsonArray[menuIndex].active = false;
|
|
continue;
|
|
}
|
|
jsonArray[menuIndex].active = true;
|
|
continue;
|
|
}
|
|
jsonArray[menuIndex].active = false;
|
|
}
|
|
|
|
|
|
return jsonArray;
|
|
},
|
|
switchMenu: function (_id) {
|
|
//设置菜单ID
|
|
vc.setCurrentMenu(_id);
|
|
vm.menus = vm.refreshMenuActive(vm.menus, _id);
|
|
vc.setMenus(vm.menus);
|
|
},
|
|
miniMenu: function () {
|
|
|
|
//菜单默认为打开方式
|
|
if(!vc.notNull(vc.getMenuState())){
|
|
vc.setMenuState('ON');
|
|
}
|
|
|
|
if (vc.notNull(vc.getMenuState()) && vc.getMenuState() == 'ON') {
|
|
return;
|
|
}
|
|
|
|
$("body").toggleClass("mini-navbar");
|
|
vc.setMenuState('OFF');
|
|
}
|
|
|
|
},
|
|
|
|
});
|
|
|
|
})(window.vc) |