layui.define([ 'layer', 'element' ], function(exports) {
	// 操作对象
	var layer = layui.layer, element = layui.element, $ = layui.jquery;

	// 封装方法
	var mod = {
		// 添加 HTMl
		addHtml : function(addr, obj, treeStatus, data) {
			// 请求数据
			$.get(addr, data, function(res) {
				var view = "";
				if (res.data) {
					$(res.data).each(function(k, v) {
						// 判断是否有下个节点
						if (v.list) {
							// 判断是否展开
							if (v.spread) {
								view += '<li data-name="' + v.name + '" class="layui-nav-item layui-nav-itemed">';
							} else {
								view += '<li data-name="' + v.name + '" class="layui-nav-item">';
							}
							view += '  <a href="javascript:;" lay-tips="' + v.title + '" lay-direction="2">';
							view += '    <i class="layui-icon ' + v.icon + '"></i>';
							view += '    <cite>' + v.title + '</cite>';
							view += '      <span class="layui-nav-more"></span></a>';
						} else {
							view += '<li data-name="' + v.name + '" class="layui-nav-item">';
							view += '  <a href="javascript:;" lay-href="' + v.href + '" lay-tips="' + v.title + '" lay-direction="2">';
							view += '    <i class="layui-icon ' + v.icon + '"></i>';
							view += '    <cite>' + v.title + '</cite>';
							view += '  </a>';
						}
						// 循环子节点
						$(v.list).each(function(k, v1) {
							view += '		<dl class="layui-nav-child">';
							if (v1.spread) {
								view += '    			<dd data-name="' + v1.name + '"class="layui-nav-itemed">';
							} else {
								view += '    			<dd data-name="' + v1.name + 'class">';
							}
							// 判断子节点
							if (v1.list) {
								view += '      				<a href="javascript:;">' + v1.title + '<span class="layui-nav-more"></span></a>';
								view += '      				<dl class="layui-nav-child">';
								// 循环子菜单
								$(v1.list).each(function(k, v2) {
									view += '        				<dd><a lay-href="' + v2.href + '">' + v2.title + '</a></dd>';
								});
								view += '       			</dl>';
							} else {
								view += '      				<a  lay-href="' + v1.href + '">' + v1.title + '</a>';
							}
							view += '     			</dd>';
							view += '  		</dl>';
						});
						view += ' </li>';
					});
				} else {
					layer.msg('接受的菜单数据不符合规范,无法解析');
				}
				// 添加到 HTML
				$(document).find(".layui-nav[lay-filter=" + obj + "]").html(view);
				// 更新渲染
				element.init();
			}, 'json');
		}
		// 左侧主体菜单 [请求地址,过滤ID,是否展开,携带参数]
		,
		main : function(addr, obj, treeStatus, data) {
			// 添加HTML
			this.addHtml(addr, obj, treeStatus, data);
		}
	};

	// 输出
	exports('nav', mod);
});
