/** * 1084 1041 * 所用到的值都放在a元素中,data形式 * * 实体参考: * var menu = new Object(); * menu.menu_id = 0; * menu.menu_name = DEFAULT_MENU_NAME; * menu.pid = 0; * menu.menu_event_type = 1; * menu.menu_event_url = ""; * menu.media_id = 0; * menu.sort = currentIndex; */ var MAX_MENU_LENGTH = 3;//一级菜单数量 var MAX_SUB_MENU_LENGTH = 5;//二级菜单数量 var DEFAULT_MENU_NAME = "菜单名称";//默认以及菜单名称(4个汉字,8个字母) var DEFAULT_SUB_MENU_NAME = "子菜单名称";//默认二级菜单名称(字数不超过8个汉字或16个字母) var DEFAULT_MENU_TIP = "字数不超过4个汉字或8个字母";//一级菜单名称验证提示 var DEFAULT_SUB_MENU_TIP = "字数不超过8个汉字或16个字母";//二级菜单名称验证提示 var IS_OK = true;//是否可以保存,验证菜单名称和网址输入是否正确 $(function() { /** * “你尚未添加任何菜单” * 初次添加微信自定义菜单按钮 * 2017年3月31日 10:46:41 */ $(".js_openMenu").click(function() { $(".js_startMenuBox").hide();//隐藏初始化界面(“你尚未添加任何菜单”) $(".js_editBox").show();//编辑菜单窗口显示 $("#js_rightBox").hide();//第一次还没有菜单,需要隐藏右侧编辑信息 $("#menuList").addClass("no_menu");//第一次加载,显示“+添加菜单” }); /** * 一级菜单添加 * 1、每次添加都会有默认值,并且选中当前添加的一级菜单 * 2、根据菜单数量动态调整宽度 * 3、手机预览对应的也要进行变化 * 4、一个菜单以上菜单排序可用 * 5、显示底部保存按钮 * 2017年3月31日 11:09:36 */ $(".js-addMenuBtn").live("click",function() { //删除操作后会显示这个,点击一级菜单添加按钮要隐藏这个“点击左侧菜单进行编辑操作” $("#js_none").hide(); $(".jsMenu").parent().removeClass("current"); $(".jsSubMenuInner").removeClass("current"); // 没有菜单的情况 if($("#menuList").hasClass("no_menu")){ $("#menuList").removeClass("no_menu"); } // 没有菜单的情况下,右侧默认是隐藏,显示右侧编辑菜单,只执行一次 if($("#js_rightBox").is(":hidden")){ $("#js_rightBox").show(); $(".js_editBtn").css("visibility","visible");//底部保存按钮 $(".sort_btn_wrp").show();//显示排序按钮 } var menuList = $("#menuList li a[class*='jsMenu']");//菜单集合 var menuLength = menuList.length; var currClassIndex = menuList.length+2;//开始样式为2,【 2 3】,当前样式索引位置,从2开始,索引需要加2 var classCurrent = "current";//一级菜单选择样式 var currentIndex = 0;//当前菜单索引位置 //菜单个数大于1个才能进行排序(下边会进行添加) if(menuLength>0){ $("#orderBt").removeClass("dn"); $("#orderDis").addClass("dn"); } //不能用超过菜单数量的样式(例如:当前菜单数量为3,不能用3以后的样式【4、5、6】) if(currClassIndex > MAX_MENU_LENGTH){ currClassIndex = MAX_MENU_LENGTH; currentIndex = currClassIndex; }else{ currentIndex = currClassIndex -1; } //清除选中样式,设置宽度 if(menuList.parent().hasClass("size1of"+currentIndex)){ menuList.parent().removeClass("size1of"+currentIndex); menuList.parent().removeClass(classCurrent); menuList.parent().addClass("size1of"+currClassIndex); $("div[data-submenulist]").hide(); } var html = "";//菜单 html += '
  • '; html += ''; html += '' + DEFAULT_MENU_NAME + ''; html += '
    '; html += '
    '; html += '
  • '; //在“加号”按钮前添加菜单代码 $(this).before(html); //限制一级菜单添加 if($("#menuList li a[class*='jsMenu']").length == MAX_MENU_LENGTH){ $(this).hide(); } //更新“+”号按钮样式 $(this).removeClass("size1of"+currentIndex); $(this).addClass("size1of"+currClassIndex); $(this).find("span").remove();//删除新增按钮 文本【第一次出现的】 //手机预览 var index = $("#viewList>li").length; $("#viewList>li").removeClass("size1of"+index); $("#viewList>li").addClass("size1of"+currClassIndex); var mobileHtml = "";//手机预览 mobileHtml += '
  • '; mobileHtml += ''; mobileHtml += DEFAULT_MENU_NAME+ ''; mobileHtml += '
  • '; $("#viewList").append(mobileHtml); $("#urltext").val("");//每次添加都清空链接 //第一次添加菜单都是默认值 var menu = new Object(); menu.menu_id = 0; menu.menu_name = DEFAULT_MENU_NAME; menu.pid = 0; menu.media_id = 0; menu.menu_event_type = 1;//默认是跳转链接 menu.menu_event_url = ""; menu.sort = currentIndex; addWeixinMenu(menu);//传入当前对象,更新添加后的菜单数据 }); /** * 二级菜单 */ $(".jsSubMenu").live("click",function(){ var index = $(this).attr("data-subIndex");//当前 $(".jsMenu").parent().removeClass("current"); $(".jsSubMenuInner").removeClass("current"); var sort = $(this).parent().find("li").length; var html = '
  • '; html += ''; html += DEFAULT_SUB_MENU_NAME+'
  • '; $(this).before(html); //有二级菜单,一级菜单则要添加一个小图标,标识有二级菜单列表 if($("li[data-menu-index='"+index+"']>a").find("i").html() == undefined){ $("li[data-menu-index='"+index+"']>a").find("span").before(''); } //等于最大菜单长度隐藏 “+” if(($("div[data-subMenuList="+index+"] ul li").length-1) == MAX_SUB_MENU_LENGTH){ $(this).hide(); } //手机预览 var mobileHtml = '
  • '+DEFAULT_SUB_MENU_NAME+'
  • '; var mobileObj = $("li[data-mobile-menu-index='"+index+"'] div ul"); mobileObj.append(mobileHtml); if(!mobileObj.parent().prev().find("i").length){ mobileObj.parent().prev().prepend(''); } $("#urltext").val("");//每次添加都清空链接 //第一次添加都是默认值 var menu = new Object(); menu.menu_id = 0; menu.media_id = 0; menu.menu_name = DEFAULT_SUB_MENU_NAME; menu.pid = $(this).attr("data-pid"); menu.menu_event_type = 1; menu.menu_event_url = ""; menu.sort = sort; addWeixinMenu(menu); }); /** * 记录当前的值,用于判断是否发生过变化 */ $("#urltext,#menuname").click(function(){ if($(this).attr("data-flag") == 1){ $(this).attr("data-default-value",$(this).val()); } if($(this).attr("data-flag") == undefined ){ $(this).attr("data-flag",1); } }); // 修改菜单名称 $("#menuname").blur(function(){ if(parseInt($(this).attr("data-flag")) == 1){ var obj = getCurrentMenu(); var isUpdate = true;//是否更新 //没有变化,则做不修改操作 if(obj.find("span").text() == $(this).val()){ isUpdate = false; } if(isUpdate){ updateWeixinMenuName(obj.attr("data-menuid"), $(this).val()); } } }); // 修改网址 $("#urltext").blur(function(){ if(parseInt($(this).attr("data-flag")) == 1 &&$("#urltext").val().length > 0){ var obj = getCurrentMenu(); var isUpdate = true;//是否更新 //没有变化,则做不修改操作 if(obj.attr("data-menu-eventurl") == $(this).val()){ isUpdate = false; } if(isUpdate){ updateWeixinMenuUrl(obj.attr("data-menuid"),$(this).val()); } } }); /** * 点击一级菜单弹出二级菜单 * 隐藏其他二级菜单,显示当前点击的二级菜单 * 对应右侧的菜单编辑赋值 * 已添加子菜单,仅可设置菜单名称。 */ $(".jsMenu").live("click",function(){ menuClick(this); }); /** * 选择二级菜单 */ $(".jsSubMenuInner").live("click",function(){ subMenuClick(this); }); /** * 菜单名称验证 * 2017年3月16日 10:02:05 */ $("#menuname").keyup(function(){ var val = $(this).val(); var flag = testMenu($(this).val(),"menu"); if($(".js_titleNolTips").attr("data-selected") == "submenu"){ flag = testMenu($(this).val(),"sub_menu"); } if(!flag && val){ $(".js_titleEorTips").text("字数超过上限"); $(".js_titleEorTips").fadeIn(500); $(".js_titleEorTips").removeClass("dn"); $(this).attr("data-flag","-1");//错误 IS_OK = false; }else if(!flag && !val) { $(".js_titleEorTips").text("请输入菜单名称"); $(".js_titleEorTips").fadeIn(500); $(".js_titleEorTips").removeClass("dn"); $(this).attr("data-flag","-1");//错误 IS_OK = false; }else{ $(".js_titleEorTips").fadeOut(500); $(".js_titleEorTips").addClass("dn"); $(this).attr("data-flag","1");//正确 IS_OK = true; } }); /** * 排序 */ $("#orderBt").click(function(){ var arr = new Array(); $('#menuList>li[data-menu-index]').each(function(){ arr.push($(this).find("a").attr("data-menuid")); }) $("#hidden_default_sort").val(arr);//记录默认排序 $(this).addClass("dn"); $("#finishBt").removeClass("dn");//显示完成按钮 $("#js_none").show();//请通过拖拽左边的菜单进行排序 $("#js_rightBox").hide();//右侧编辑 $(".js_editBtn").css("visibility","hidden");//底部保存按钮 // 隐藏“+”号,并改变长度 $(".js-addMenuBtn").hide(); $("#menuList>li").removeClass("size1of"+$("#menuList>li").length); $("#menuList>li").addClass("size1of"+($("#menuList>li").length-1)); $('#menuList>li').arrangeable(); // 隐藏子菜单“+”号 $(".sub_pre_menu_list li").arrangeable(); $(".sub_pre_menu_list li[class='jsSubMenu']").hide(); setSubMenuDisplay(); }); /** * 没有子菜单,隐藏 */ function setSubMenuDisplay(){ var obj = $("#menuList li[class*='current'] .sub_pre_menu_list"); if(obj.find("li[class*='jsSubMenuInner']").length == 0){ obj.parent().hide(); } } /** * 完成排序 */ $("#finishBt").click(function(){ $(this).addClass("dn"); $("#orderBt").removeClass("dn");//显示完成按钮 $("#js_none").hide();//请通过拖拽左边的菜单进行排序 $("#js_rightBox").show();//右侧编辑 $(".js_editBtn").css("visibility","visible");//底部保存按钮 $('#menuList>li').arrangeable("destroy"); $(".sub_pre_menu_list li").arrangeable("destroy"); var menu_id_arr = new Array();//一级菜单 var sub_menu_id_arr = new Array();//二级菜单 var tempCount = 0; var tempCountSub = 0; $('#menuList>li[data-menu-index]').each(function(){ if(!$(this).hasClass("js-addMenuBtn")){ tempCount++; menu_id_arr.push($(this).find("a").attr("data-menuid")); $(this).attr("data-menu-index",tempCount) $(this).find("a:eq(0)").attr("data-sort",tempCount); } }) //二级菜单 $("#menuList>li[class*='current'] .sub_pre_menu_list li[class*='jsSubMenuInner']").each(function(){ tempCountSub++; var obj = $(this).find("a"); obj.attr("data-sort",tempCountSub); sub_menu_id_arr.push(obj.attr("data-menuid")); }) var default_arr = $("#hidden_default_sort").val().split(","); var default_sub_arr = $("#hidden_default_sub_sort").val().split(","); /** * 重新排序 */ // 隐藏一级菜单的“+”号,并改变长度 var index = $("#menuList>li").length; if($("#menuList>li").length > MAX_MENU_LENGTH){ index = MAX_MENU_LENGTH; } if(($("#menuList>li").length-1) < MAX_MENU_LENGTH){ $(".js-addMenuBtn").show(); } $("#menuList>li").removeClass("size1of"+($("#menuList>li").length-1)); $("#menuList>li").addClass("size1of"+index); // 隐藏子菜单“+”号 $(".sub_pre_menu_list li[class='jsSubMenu']").show(); if(menu_id_arr.toString() != default_arr){ updateWeixinMenuSort(menu_id_arr,1); }else if(sub_menu_id_arr.toString() != default_sub_arr){ updateWeixinMenuSort(sub_menu_id_arr,2); } }); /** * 删除菜单 */ $("#jsDelBt").click(function(){ $("#wxDelDialog").fadeIn();//弹出框 $("#maskLayer").fadeIn(300); var menu_name = $(this).attr("data-menuname"); $(".dialog_bd p").text("删除后“" +menu_name+ "”菜单下设置的内容将被删除"); }); /** * 弹出框按钮事件 */ $('.pop_closed').click(function(){ $("#wxDelDialog").fadeOut(); $("#maskLayer").fadeOut(300); }); $(".js_btn").click(function(){ switch($(this).text()){ case "确定": deleteWeixinMenu($("#jsDelBt").attr("data-menuid")); break; case "取消": break; } $("#wxDelDialog").fadeOut(); $("#maskLayer").fadeOut(300); }); /** * 右侧编辑图文消息单选按钮["发送消息"] */ $(".js_radio_sendMsg").click(function(){ $(this).addClass("selected"); $(".js_radio_url").removeClass("selected"); $("#edit").show(); $("#url").hide(); updateMenuType(2);//图文消息和链接如果都存在,则判断当前选中更新类型 }); /** * 右侧编辑["跳转网页"]单选按钮 */ $(".js_radio_url").click(function(){ $(this).addClass("selected"); $(".js_radio_sendMsg").removeClass("selected"); $("#edit").hide(); $("#url").show(); updateMenuType(1);//图文消息和链接如果都存在,则判断当前选中更新类型 }); /** * 右侧编辑["发送消息"]选择类型 目前只有一个类型:图文消息 */ $(".js_tab_navs li").click(function(){ /*$(".tab_content").hide(); $(".js_tab_navs li").removeClass("selected"); $(this).addClass("selected"); var tab = $(this).attr("data-tab"); $(tab).parent().show();*/ }); /** * 右侧编辑["发消息"]点击“从素材库中选择” */ $(".jsMsgSenderPopBt").click(function(){ $("#dialog_media").fadeIn(500); $(".mask_metar").fadeIn(300); }); /** * 保存并发布 */ $("#pubBt").click(function(){ if(validation()){ $.ajax({ url : UMTW, type : "post", success : function(res){ if(res.code>0){ showDialog(res.message,1); }else{ showDialog(res.code,0); } } }) }else{ // showDialog("请先按要求编辑完当前操作!!!", 0); } }); /** * 手机预览 */ $("#viewBt").click(function(){ $("#mobileDiv").fadeIn(); $("#maskLayer").fadeIn(); }); /** * 关闭手机预览 */ $("#viewClose").click(function(){ $("#mobileDiv").fadeOut(); $("#maskLayer").fadeOut(); }); /** * 预览模式下的菜单点击时间 */ $(".jsView").live("click",function(){ if($(this).next().find("ul li").length > 0){ $(this).next().toggle(); } }); /** * 网址验证,可以为空 */ $("#urltext").keyup(function(){ if($(this).val().length>0){ if(!validateDomainName($(this).val())){ $(this).parent().next().removeClass("dn"); $(this).parent().next().text("网址不正确"); $(this).attr("data-flag","-1"); IS_OK = false; }else{ $(this).parent().next().addClass("dn"); $(this).attr("data-flag","1"); IS_OK = true; } }else{ $(this).parent().next().addClass("dn"); $(this).attr("data-flag","1"); } }); /** * 删除图文消息 */ $(".jsmsgSenderDelBt").click(function(){ $("#show_media").hide(); $(".js_appmsgArea .jsMsgSendTab").show(); var obj = getCurrentMenu(); //删除图文消息后,类型改为文本 updateWeiXinMenuMessage(obj.attr("data-menuid"), 0, 2); }); }); //验证 function validation(){ if(!IS_OK){ return false; } var flag = false; var msg = ""; //验证一级二级菜单数据是否正确 $("#menuList .jsMenu").each(function(){ var menu_self = this; if($(this).next().find("li.jsSubMenuInner").length){ //有二级菜单 $(this).next().find("li.jsSubMenuInner").each(function(){ if($(this).hasClass("current") && $(".js_radio_sendMsg").hasClass("selected") && ($(this).children("a").attr("data-mediaid") == undefined || $(this).children("a").attr("data-mediaid") == "" || parseInt($(this).children("a").attr("data-mediaid")) == 0)){ flag = true; msg = "请选择图文消息"; return false; }else{ if(parseInt($(this).children("a").attr("data-menu-type")) == 1 && ($(this).children("a").attr("data-menu-eventurl") == undefined || $(this).children("a").attr("data-menu-eventurl") == "")){ flag = true; msg = "跳转网址不能为空"; menuClick(menu_self); subMenuClick(this); return false; } } }); if(flag){ return false; } }else{ if($(this).parent().hasClass("current") && $(".js_radio_sendMsg").hasClass("selected") && ($(this).attr("data-mediaid") == undefined || $(this).attr("data-mediaid") == "" || parseInt($(this).attr("data-mediaid")) == 0)){ msg = "请选择图文消息"; flag = true; return false; }else{ if(parseInt($(this).attr("data-menu-type")) == 1 && ($(this).attr("data-menu-eventurl") == undefined || $(this).attr("data-menu-eventurl") == "")){ flag = true; msg = "跳转网址不能为空"; menuClick(menu_self); return false; } if(parseInt($(this).attr("data-menu-type")) == 2 && ($(this).attr("data-mediaid") == undefined || $(this).attr("data-mediaid") == "" || parseInt($(this).attr("data-mediaid")) == 0)){ msg = "请选择图文消息"; flag = true; menuClick(menu_self); return false; } } } }); if(flag){ showDialog(msg, 0); return false; } return true; } //每次点击一级菜单后,让右侧的编程内容还原(显示菜单内容,) function setRightMenuDetail(){ $(".js_radio_sendMsg").addClass("selected"); $(".js_radio_url").removeClass("selected"); $("#edit").show(); $("#url").hide(); } /** * 获取当前选中的菜单 */ function getCurrentMenu(){ var obj = $("#menuList").find("li[class*='current']>a"); return obj; } /** * 选中图文素材后的回调函数 * @param media_id */ function getMaterial(media_id){ getWeixinMediaDetail(media_id,true); } /** * 设置垂直居中 */ function setVerticalCenter(obj){ $(obj).css({'top':($(window).height()-$(obj).outerHeight())/2,"display":"block"}); } /** *显示提示框,两秒后关闭 * @param flag 0:成功,1:失败 */ function showDialog(str,flag){ if(flag == 0){ $("#wxTips").addClass("error"); $("#wxTips").removeClass("success"); }else{ $("#wxTips").addClass("success"); $("#wxTips").removeClass("error"); } $("#wxTips").find("div").text(str); $("#wxTips").fadeIn(); setTimeout("$('#wxTips').fadeOut()",2000); } /** * 设置当前选中的一级菜单是否有子菜单,如果有则仅可设置菜单名称。 */ function setCurrentChildMenuDisplay(){ var elementLength = $("#menuList li[class*='current'] a").next().find("ul li[class*='jsSubMenuInner']").length; if(elementLength == 0){ $("#js_innerNone").hide(); $(".js_setGraphic").show(); }else{ $("#js_innerNone").show();//已添加子菜单,仅可设置菜单名称。 $(".js_setGraphic").hide(); } } /** * 设置图文消息列表是否显示,没有则清空图文消息 * @param mediaid */ function setMediaDisplay(mediaid){ if(mediaid !=undefined && parseInt(mediaid) != 0){ getWeixinMediaDetail(mediaid); $(".js_appmsgArea .jsMsgSendTab").hide(); $("#show_media").show(); }else{ clearMediaMessage();//清空图文消息 $(".js_appmsgArea .jsMsgSendTab").show(); $("#show_media").hide(); } } /** * 清空图文消息 */ function clearMediaMessage(){ $("#show_media .appmsg_date").text(""); $("#show_media .js-media-title a").text(""); $("#show_media .appmsg_thumb_wrp").attr("style",""); $("#show_media .appmsg_item.has_cover").remove(); } function updateInfoNew(menu){ setCurrentChildMenuDisplay();//设置当前选中的一级菜单是否有子菜单,如果有则仅可设置菜单名称。 setMediaDisplay(menu.media_id);//设置图文消息列表是否显示,没有则清空图文消息 var mobileObj = null;//手机预览 if(menu.pid == 0){ //一级菜单 $("#jsDelBt").text("删除菜单"); $(".js_titleNolTips").text(DEFAULT_MENU_TIP); $(".js_titleNolTips").attr("data-selected","menu");//标识当前选中的是一级菜单 //手机预览 mobileObj = $("#viewList>li>a[data-menuid='"+menu.menu_id+"']"); }else{ //二级菜单 $("#jsDelBt").text("删除子菜单"); $(".js_titleNolTips").text(DEFAULT_SUB_MENU_TIP); $(".js_titleNolTips").attr("data-selected","submenu");//标识当前选中的是二级菜单 //手机预览 mobileObj = $("#viewList>li>div a[data-menuid='"+menu.menu_id+"']"); } //手机预览 mobileObj.text(menu.menu_name); mobileObj.attr("title",menu.menu_name); //更新右侧边栏数据 $(".js_second_title_bar h4").text(menu.menu_name);//右侧标题 $("#jsDelBt").attr("data-menuid",menu.menu_id);//删除按钮 $("#jsDelBt").attr("data-menuname",menu.menu_name);//记录当初操作后的菜单名称,用于删除提示 $("#menuname").val(menu.menu_name);//右侧标题菜单名称输入框 var obj = getCurrentMenu();//当前选中的菜单,更新数据 obj.children("span").text(menu.menu_name); obj.attr("data-menuid",menu.menu_id); obj.attr("data-pid",menu.pid); obj.attr("data-menu-eventurl",menu.menu_event_url); obj.attr("data-menu-type",menu.menu_event_type); obj.attr("data-detault-menu-type",menu.menu_event_type); obj.attr('data-mediaid',menu.media_id);//当前选中菜单的图文消息 obj.attr("data-sort",menu.sort); //如果是一级菜单,则给它下边的所有二级菜单更新父id(data-pid) if(menu.pid == 0){ obj.next().find("ul li").attr("data-pid",menu.menu_id); }else{ //如果当前选择的是二级菜单,则将一级菜单的data-menu-type设置为1,data-mediaid设置为0。 if(parseInt($("a[data-menuid='"+menu.pid+"']").attr("data-menu-type"))!= 1){ $("a[data-menuid='"+menu.pid+"']").attr("data-menu-type",1); $("a[data-menuid='"+menu.pid+"']").attr('data-mediaid',0);//当前选中菜单的图文消息 updateWeiXinMenuMessage(menu.pid, 0, 2); } } } /** * 找到当前选中的菜单如果链接和图文消息都有,则判断选择那个 * 如果图文消息和跳转链接都存在数据,那么就要给每个菜单记录,选中那个用那个。类型对应的要变;1、2。 */ function updateMenuType(type){ var obj = getCurrentMenu(); updateWeixinMenuEventType(obj.attr("data-menuid"),type); // alert(obj.attr("data-detault-menu-type")); // if(obj.attr("data-mediaid") != 0 && (obj.attr("data-menu-eventurl") != null && obj.attr("data-menu-eventurl") != "")){ // if($(".js_radio_url").hasClass("selected")){ // updateWeixinMenuEventType(obj.attr("data-menuid"),1); // }else{ // updateWeixinMenuEventType(obj.attr("data-menuid"),obj.attr("data-detault-menu-type")); // } // } } /** * 修改菜单类型,1:文本,2:单图文,3:多图文 * @param menu_id * @param menu_event_type */ function updateWeixinMenuEventType(menu_id,menu_event_type){ $.ajax({ url : UWMET, type : "post", async : false, data : { "menu_id" : menu_id, "menu_event_type" : menu_event_type}, success : function(res){; if(res>0){ var obj = getCurrentMenu(); obj.attr("data-menu-type",menu_event_type); // showDialog("修改成功", 1); }else{ showDialog("修改失败", 0); } } }) } /** * 添加微信自定义菜单 * @param menu 菜单信息 * @param obj 当前对象 */ function addWeixinMenu(menu){ $.ajax({ url : AWM, type : "post", async : false, data : { "menu" : JSON.stringify(menu) }, success : function(menu_id){ if(menu_id>0){ //每次添加菜单默认类型是,跳转链接 $(".js_radio_url").addClass("selected"); $(".js_radio_sendMsg").removeClass("selected"); $("#edit").hide();//编辑图文消息 $("#url").show();//跳转链接输入框 menu.menu_id = menu_id;//设置添加菜单后的id //更新手机预览的菜单id $("#viewList li a[data-menuid=-1]").attr("data-menuid",menu_id); updateInfoNew(menu); showDialog("“"+menu.menu_name+"”添加成功",1); }else{ showDialog("“"+menu.menu_name+"”添加失败",0); } } }) } /** * 修改菜单名称 * @param menu_id * @param menu_name */ function updateWeixinMenuName(menu_id, menu_name){ $.ajax({ url : UWMN, type : "post", async : false, data : { "menu_id" : menu_id, "menu_name" : menu_name}, success : function(res){; if(res>0){ var obj = getCurrentMenu(); var menu = new Object(); menu.menu_name = menu_name; menu.media_id = obj.attr("data-mediaid"); menu.menu_id = obj.attr("data-menuid"); menu.pid = obj.attr("data-pid"); menu.menu_event_url = obj.attr("data-menu-eventurl"); menu.menu_event_type = obj.attr("data-menu-type"); updateInfoNew(menu); showDialog("修改“"+menu_name+"”成功", 1); }else{ showDialog("修改“"+menu_name+"”失败", 0); } } }) } /** * 修改跳转链接地址 * @param menu_id * @param menu_event_url */ function updateWeixinMenuUrl(menu_id,menu_event_url){ $.ajax({ url : UWMU, type : "post", async : false, data : { "menu_id" : menu_id, "menu_event_url" : menu_event_url}, success : function(res){; if(res>0){ var obj = getCurrentMenu(); obj.attr("data-menu-eventurl",menu_event_url); showDialog("修改成功", 1); }else{ showDialog("修改失败", 0); } } }) } /** * 删除微信自定义菜单 * @param menuid 菜单id */ function deleteWeixinMenu(menu_id){ var flag = true;//判断当前删除的菜单是否是子菜单 if($("#menuList li[class*='current'] a").attr("data-pid") != 0){ flag = false;//当前删除的是子菜单 } var length = $("#menuList>li[data-menu-index]").length;//长度包含“+”号 var pid = $(".jsSubMenuInner a[data-menuid='"+menu_id+"']").attr("data-pid"); $("#menuList li[class*='current'] a").parent().remove();//删除选中的菜单 $("#js_none").show(); $("#js_none").text("点击左侧菜单进行编辑操作"); $("#js_rightBox").hide(); if(flag){ //一级菜单删除操作 var classIndex = $(".js-addMenuBtn").attr("data-class-index"); $("#menuList>li").removeClass("size1of"+classIndex); $("#menuList>li").addClass("size1of"+length); if(length == 2){ //长度等于2,代表一个菜单和一个“+”号按钮 $("#orderDis").removeClass("dn"); $("#orderBt").addClass("dn"); }else if(length == 1){ $("#menuList").addClass("no_menu"); $(".js-addMenuBtn a").append("添加菜单"); $("#orderDis").addClass("dn"); } $(".js-addMenuBtn").attr("data-class-index",length); $(".js-addMenuBtn").show(); $(".jsMenu").next("div[class='sub_pre_menu_box']").hide();//隐藏其他二级菜单 //删除手机预览,一级菜单下的全部 $("#viewList>li a[data-menuid='"+menu_id+"']").parent().remove(); //调整宽度 $("#viewList>li").removeClass("size1of"+length); $("#viewList>li").addClass("size1of"+(length-1)); }else{ $(".jsSubMenu[data-pid='"+pid+"']").show(); //删除手机预览 if($("#viewList .sub_pre_menu_list li").length==1){ $("#viewList .sub_pre_menu_list li a[data-menuid='"+menu_id+"']").parent().parent().parent().prev().find("i").remove(); } $("#viewList .sub_pre_menu_list li a[data-menuid='"+menu_id+"']").parent().parent().parent().hide(); $("#viewList .sub_pre_menu_list li a[data-menuid='"+menu_id+"']").parent().parent().remove(); } $.ajax({ url : DWM, type : "post", async : false, data : { "menu_id" : menu_id }, success : function(res){ if(res>0){ showDialog("删除成功",1); }else{ showDialog("删除失败",0); } } }) } /** * 修改图文消息 * @param $menu_id * @param $media_id * @param $menu_event_type */ function updateWeiXinMenuMessage(menu_id, media_id, menu_event_type){ $.ajax({ url : UWMM, type : "post", async : false, data : { "menu_id" : menu_id, "media_id" : media_id, "menu_event_type" : menu_event_type}, success : function(res){ if(res>0){ var obj = getCurrentMenu(); obj.attr("data-menu-type",menu_event_type); obj.attr("data-mediaid",media_id); showDialog("操作成功", 1); }else{ showDialog("操作失败", 0); } } }) } /** * 获取图文素材,并更新菜单信息 * @param media_id */ function getWeixinMediaDetail(media_id,flag){ $.ajax({ url : GWMD, type : "post", async : false, data : { "media_id" : media_id }, success : function(mediaObj){ setMediaDetail(mediaObj);//加载图文消息代码 if(flag){ var obj = getCurrentMenu(); updateWeiXinMenuMessage(obj.attr("data-menuid"), media_id, 2); } } }) } /** * 设置图文消息 */ function setMediaDetail(mediaObj){ $(".js_appmsgArea .jsMsgSendTab").hide(); $("#show_media").show(); var html = ""; //图文消息 2 3 if(mediaObj.type == 2 || mediaObj.type == 3){ var list = mediaObj.item_list; for(var i=0;idiv").attr("style",style); $(".cover_appmsg_item>div").text(""); }else{ html += '
    '; html += '
    '; html += '

    ' + list[i]["title"] + '

    '; html += '
    '; } } }else{ //单文本 $(".js-media-title").find("a").text(mediaObj.title);//主标题 $(".cover_appmsg_item>div").attr("style",""); $(".cover_appmsg_item>div").text(mediaObj.title); } $(".appmsg_date").text(mediaObj.create_time);//发布时间 $(".cover_appmsg_item").nextAll().remove(); $(".cover_appmsg_item").parent().append(html); } /** * 修改排序 * @param flag :1 默认一级排序,2 默认二级排序 */ function updateWeixinMenuSort(menu_id_arr,flag){ $.ajax({ url : UWMS, type : "post", async : false, data : { "menu_id_arr" : menu_id_arr.toString() }, success : function(res){ if(res>0){ if(flag == 1){ $("#hidden_default_sort").val(menu_id_arr); }else if(flag == 2){ $("#hidden_default_sub_sort").val(menu_id_arr); } showDialog("操作成功",1); }else{ showDialog("操作失败",0); } } }) } /** * 一级菜单点击事件 * 2017年8月1日 10:33:58 * @param obj 当前点击对象 */ function menuClick(obj){ var element = "div[class='sub_pre_menu_box']"; $(".jsMenu").parent().find(element).hide();//隐藏其他二级菜单 $(".js_titleEorTips").hide(); $(".jsMenu").parent().removeClass("current");//清除一级菜单中的选中 $(".jsSubMenuInner").removeClass("current");//清除二级菜单选中 $(obj).parent().find(element).show();//显示二级菜单 $(obj).parent().addClass("current"); var sub_arr = new Array(); $(obj).next().find(".sub_pre_menu_list li[class*='jsSubMenuInner']").each(function(){ sub_arr.push($(obj).find("a").attr("data-menuid")); }) $("#hidden_default_sub_sort").val(sub_arr); //完成按钮显示的情况下,不能操作 if(!$("#finishBt").is(":hidden")){ $("#js_none").show(); $("#js_rightBox").hide(); setSubMenuDisplay(); return; }else{ $("#js_none").hide(); $("#js_rightBox").show(); } setCurrentChildMenuDisplay();//设置当前选中的一级菜单是否有子菜单,如果有则仅可设置菜单名称。 setRightMenuDetail();//每次点击一级菜单后,让右侧的编程内容还原(显示菜单内容,) /** * 当前菜单是否有图文消息 */ setMediaDisplay($(obj).attr("data-mediaid"));//设置图文消息列表是否显示,没有则清空图文消息 //单图文、多图文消息 if(parseInt($(obj).attr("data-menu-type")) == 2 || parseInt($(obj).attr("data-menu-type")) == 3){ $(".js_radio_sendMsg").addClass("selected"); $(".js_radio_url").removeClass("selected"); $("#edit").show(); $("#url").hide(); }else{ //跳转链接 $(".js_radio_url").addClass("selected"); $(".js_radio_sendMsg").removeClass("selected"); $("#edit").hide();//编辑图文消息 $("#url").show();//跳转链接输入框 } //右侧编辑头部标题 var menuname = $.trim($(obj).find("span").text()); var menuid = $(obj).attr("data-menuid"); var menu_event_url = menu_event_url = $(obj).attr("data-menu-eventurl");//菜单url $(".js_titleNolTips").text(DEFAULT_MENU_TIP);//字数不超过4个汉字或8个字母 $(".js_titleNolTips").attr("data-selected","menu"); $(".js_second_title_bar h4").text(menuname); $("#menuname").val(menuname); $("#jsDelBt").text("删除菜单"); $("#jsDelBt").attr("data-menuid",menuid); $("#jsDelBt").attr("data-menuname",menuname); $("#urltext").val(menu_event_url); } /** * 二级菜单点击事件 * 2017年8月1日 10:38:31 * @param obj 当前点击对象 */ function subMenuClick(obj){ $("#js_innerNone").hide(); $(".js_setGraphic").show();//显示编辑 $(".js_titleEorTips").hide(); $(".jsMenu").parent().removeClass("current"); $(".jsSubMenuInner").removeClass("current"); $(obj).addClass("current"); //完成按钮显示的情况下,不能操作 if(!$("#finishBt").is(":hidden")){ $("#js_none").show(); $("#js_rightBox").hide(); setSubMenuDisplay(); return; }else{ $("#js_none").hide(); $("#js_rightBox").show(); } /** * 当前菜单是否有图文消息 */ setMediaDisplay($(obj).find("a").attr("data-mediaid")); setRightMenuDetail();//每次点击一级菜单后,让右侧的编程内容还原(显示菜单内容,) //单图文、多图文消息 if(parseInt($(obj).find("a").attr("data-menu-type")) == 2 || parseInt($(obj).find("a").attr("data-menu-type")) == 3){ $(".js_radio_sendMsg").addClass("selected"); $(".js_radio_url").removeClass("selected"); $("#edit").show(); $("#url").hide(); }else{ //跳转链接 $(".js_radio_url").addClass("selected"); $(".js_radio_sendMsg").removeClass("selected"); $("#edit").hide();//编辑图文消息 $("#url").show();//跳转链接输入框 } //右侧编辑头部标题 var menuname = $.trim($(obj).find("span").text()); var menuid = $(obj).find("a").attr("data-menuid"); var menu_event_url = $(obj).find("a").attr("data-menu-eventurl");//菜单url $(".js_titleNolTips").text(DEFAULT_SUB_MENU_TIP);//汉字或16个字母 $(".js_titleNolTips").attr("data-selected","submenu"); $(".js_second_title_bar h4").text(menuname); $("#menuname").val(menuname); $("#jsDelBt").text("删除子菜单"); $("#jsDelBt").attr("data-menuid",menuid); $("#jsDelBt").attr("data-menuname",menuname); $("#urltext").val(menu_event_url); } /** * aa:一个汉字占2个字节 * 修改时间:2017年8月4日 18:41:02 * 王永杰 */ function testMenu(str,type) { if(type == "menu"){ return /^[a-zA-Z-0-9]{1,8}$/.test((str + '').replace(/[\u4e00-\u9fa5]/g, 'aa')); }else if(type == "sub_menu"){ return /^[a-zA-Z-0-9]{1,16}$/.test((str + '').replace(/[\u4e00-\u9fa5]/g, 'aa')); } } /** * 验证域名 * 创建时间:2017年7月31日 19:47:09 * 更新时间:2017年8月4日 20:49:55 * @param str * @returns boolean */ function validateDomainName(str){ if(str.indexOf("http") != -1 || str.indexOf("https") != -1){ return true; } return false; }