소스 검색

:zap: 多公众号切换

Aron 6 년 전
부모
커밋
e41f57cb56

+ 5 - 2
src/main/java/com/ifast/wxmp/controller/MpArticleImageController.java

@@ -9,6 +9,7 @@ import com.ifast.common.base.AdminBaseController;
 import com.ifast.common.utils.Result;
 import com.ifast.wxmp.domain.MpArticleDO;
 import com.ifast.wxmp.service.MpArticleService;
+import com.ifast.wxmp.service.MpConfigService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -29,6 +30,8 @@ import java.util.Arrays;
 public class MpArticleImageController extends AdminBaseController {
 	@Autowired
 	private MpArticleService mpArticleService;
+	@Autowired
+	private MpConfigService mpConfigService;
 	
 	@GetMapping()
 	@RequiresPermissions("wxmp:mpArticleImage:mpArticle")
@@ -39,8 +42,8 @@ public class MpArticleImageController extends AdminBaseController {
 	@ResponseBody
 	@GetMapping("/list")
 	@RequiresPermissions("wxmp:mpArticleImage:mpArticle")
-	public Result<Page<MpArticleDO>> list(MpArticleDO mpArticleDTO){
-        Wrapper<MpArticleDO> wrapper = new EntityWrapper<>(mpArticleDTO).orderBy("id", false);
+	public Result<Page<MpArticleDO>> list(MpArticleDO mpArticleDTO, String appId){
+        Wrapper<MpArticleDO> wrapper = new EntityWrapper<>(mpArticleDTO).eq("mpId", mpConfigService.findOneByKv("appId", appId).getId()).orderBy("id", false);
         Page<MpArticleDO> page = mpArticleService.selectPage(getPage(MpArticleDO.class), wrapper);
         return Result.ok(page);
 	}

+ 67 - 65
src/main/java/com/ifast/wxmp/controller/MpArticleNewsController.java

@@ -9,6 +9,7 @@ import com.ifast.common.base.AdminBaseController;
 import com.ifast.common.utils.Result;
 import com.ifast.wxmp.domain.MpArticleDO;
 import com.ifast.wxmp.service.MpArticleService;
+import com.ifast.wxmp.service.MpConfigService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -18,81 +19,82 @@ import org.springframework.web.bind.annotation.*;
 import java.util.Arrays;
 
 /**
- * 
  * <pre>
- * 
+ *
  * </pre>
  * <small> 2018-10-18 21:21:36 | Aron</small>
  */
 @Controller
 @RequestMapping("/wxmp/mpArticle/news")
 public class MpArticleNewsController extends AdminBaseController {
-	@Autowired
-	private MpArticleService mpArticleService;
-	
-	@GetMapping()
-	@RequiresPermissions("wxmp:mpArticleNews:mpArticle")
-	String MpArticle(){
-	    return "wxmp/mpArticleNews/mpArticle";
-	}
-	
-	@ResponseBody
-	@GetMapping("/list")
-	@RequiresPermissions("wxmp:mpArticleNews:mpArticle")
-	public Result<Page<MpArticleDO>> list(MpArticleDO mpArticleDTO){
-        Wrapper<MpArticleDO> wrapper = new EntityWrapper<>(mpArticleDTO).orderBy("id", false);
+    @Autowired
+    private MpArticleService mpArticleService;
+    @Autowired
+    private MpConfigService mpConfigService;
+
+    @GetMapping()
+    @RequiresPermissions("wxmp:mpArticleNews:mpArticle")
+    String MpArticle() {
+        return "wxmp/mpArticleNews/mpArticle";
+    }
+
+    @ResponseBody
+    @GetMapping("/list")
+    @RequiresPermissions("wxmp:mpArticleNews:mpArticle")
+    public Result<Page<MpArticleDO>> list(MpArticleDO mpArticleDTO, String appId) {
+        Wrapper<MpArticleDO> wrapper = new EntityWrapper<>(mpArticleDTO).eq("mpId", mpConfigService.findOneByKv("appId", appId).getId()).orderBy("id", false);
         Page<MpArticleDO> page = mpArticleService.selectPage(getPage(MpArticleDO.class), wrapper);
         return Result.ok(page);
-	}
-	
-	@GetMapping("/add")
-	@RequiresPermissions("wxmp:mpArticleNews:add")
-	String add(){
-	    return "wxmp/mpArticleNews/add";
-	}
+    }
+
+    @GetMapping("/add")
+    @RequiresPermissions("wxmp:mpArticleNews:add")
+    String add() {
+        return "wxmp/mpArticleNews/add";
+    }
 
-	@GetMapping("/edit/{id}")
-	@RequiresPermissions("wxmp:mpArticleNews:edit")
-	String edit(@PathVariable("id") Long id,Model model){
-		MpArticleDO mpArticle = mpArticleService.selectById(id);
-		model.addAttribute("mpArticle", mpArticle);
-	    return "wxmp/mpArticleNews/edit";
-	}
-	
-	@Log("添加")
-	@ResponseBody
-	@PostMapping("/save")
-	@RequiresPermissions("wxmp:mpArticleNews:add")
-	public Result<String> save( MpArticleDO mpArticle){
-		mpArticleService.insert(mpArticle);
+    @GetMapping("/edit/{id}")
+    @RequiresPermissions("wxmp:mpArticleNews:edit")
+    String edit(@PathVariable("id") Long id, Model model) {
+        MpArticleDO mpArticle = mpArticleService.selectById(id);
+        model.addAttribute("mpArticle", mpArticle);
+        return "wxmp/mpArticleNews/edit";
+    }
+
+    @Log("添加")
+    @ResponseBody
+    @PostMapping("/save")
+    @RequiresPermissions("wxmp:mpArticleNews:add")
+    public Result<String> save(MpArticleDO mpArticle) {
+        mpArticleService.insert(mpArticle);
         return Result.ok();
-	}
-	
-	@Log("修改")
-	@ResponseBody
-	@RequestMapping("/update")
-	@RequiresPermissions("wxmp:mpArticleNews:edit")
-	public Result<String>  update( MpArticleDO mpArticle){
-		boolean update = mpArticleService.updateById(mpArticle);
-		return update ? Result.ok() : Result.fail();
-	}
-	
-	@Log("删除")
-	@PostMapping( "/remove")
-	@ResponseBody
-	@RequiresPermissions("wxmp:mpArticleNews:remove")
-	public Result<String>  remove( Long id){
-		mpArticleService.deleteById(id);
+    }
+
+    @Log("修改")
+    @ResponseBody
+    @RequestMapping("/update")
+    @RequiresPermissions("wxmp:mpArticleNews:edit")
+    public Result<String> update(MpArticleDO mpArticle) {
+        boolean update = mpArticleService.updateById(mpArticle);
+        return update ? Result.ok() : Result.fail();
+    }
+
+    @Log("删除")
+    @PostMapping("/remove")
+    @ResponseBody
+    @RequiresPermissions("wxmp:mpArticleNews:remove")
+    public Result<String> remove(Long id) {
+        mpArticleService.deleteById(id);
+        return Result.ok();
+    }
+
+    @Log("批量删除")
+    @PostMapping("/batchRemove")
+    @ResponseBody
+    @RequiresPermissions("wxmp:mpArticleNews:batchRemove")
+    public Result<String> remove(@RequestParam("ids[]") Long[] ids) {
+        mpArticleService.deleteBatchIds(Arrays.asList(ids));
         return Result.ok();
-	}
-	
-	@Log("批量删除")
-	@PostMapping( "/batchRemove")
-	@ResponseBody
-	@RequiresPermissions("wxmp:mpArticleNews:batchRemove")
-	public Result<String>  remove(@RequestParam("ids[]") Long[] ids){
-		mpArticleService.deleteBatchIds(Arrays.asList(ids));
-		return Result.ok();
-	}
-	
+    }
+
 }

+ 6 - 3
src/main/java/com/ifast/wxmp/controller/MpArticleTxtController.java

@@ -9,6 +9,7 @@ import com.ifast.common.base.AdminBaseController;
 import com.ifast.common.utils.Result;
 import com.ifast.wxmp.domain.MpArticleDO;
 import com.ifast.wxmp.service.MpArticleService;
+import com.ifast.wxmp.service.MpConfigService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -30,7 +31,9 @@ import java.util.Date;
 public class MpArticleTxtController extends AdminBaseController {
 	@Autowired
 	private MpArticleService mpArticleService;
-	
+	@Autowired
+	private MpConfigService mpConfigService;
+
 	@GetMapping()
 	@RequiresPermissions("wxmp:mpArticleTxt:mpArticle")
 	String MpArticle(){
@@ -40,8 +43,8 @@ public class MpArticleTxtController extends AdminBaseController {
 	@ResponseBody
 	@GetMapping("/list")
 	@RequiresPermissions("wxmp:mpArticleTxt:mpArticle")
-	public Result<Page<MpArticleDO>> list(MpArticleDO mpArticleDTO){
-        Wrapper<MpArticleDO> wrapper = new EntityWrapper<>(mpArticleDTO).orderBy("id", false);
+	public Result<Page<MpArticleDO>> list(MpArticleDO mpArticleDTO, String appId){
+        Wrapper<MpArticleDO> wrapper = new EntityWrapper<>(mpArticleDTO).eq("mpId", mpConfigService.findOneByKv("appId", appId).getId()).orderBy("id", false);
         Page<MpArticleDO> page = mpArticleService.selectPage(getPage(MpArticleDO.class), wrapper);
         return Result.ok(page);
 	}

+ 9 - 9
src/main/java/com/ifast/wxmp/controller/mp/WxMediaController.java

@@ -51,8 +51,8 @@ public class WxMediaController extends AdminBaseController {
     // 图片
     ///////////////
 
-    @RequestMapping("/image/sync/{appId}/{articleId}")
-    public Result imageSync(@PathVariable String appId, @PathVariable Long articleId) {
+    @RequestMapping("/image/sync/{articleId}")
+    public Result imageSync(String appId, @PathVariable Long articleId) {
         MpArticleDO article = mpArticleService.selectById(articleId);
         log.info("素材同步");
         WxMpMaterialUploadResult wxMpMaterialUploadResult = null;
@@ -73,8 +73,8 @@ public class WxMediaController extends AdminBaseController {
         return Result.ok();
     }
 
-    @RequestMapping("/image/groupsend/{appId}/{articleId}")
-    public Result imageGroupsend(@PathVariable String appId, @PathVariable Long articleId) {
+    @RequestMapping("/image/groupsend/{articleId}")
+    public Result imageGroupsend(String appId, @PathVariable Long articleId) {
         MpArticleDO article = mpArticleService.selectById(articleId);
         WxMpMassOpenIdsMessage message = new WxMpMassOpenIdsMessage();
         message.addUser(mpFansService.selectById(1).getOpenid());
@@ -95,8 +95,8 @@ public class WxMediaController extends AdminBaseController {
     ///////////////
 
 
-    @RequestMapping("/news/sync/{appId}/{articleId}")
-    public Result newsSync(@PathVariable String appId, @PathVariable Long articleId) throws IOException, WxErrorException {
+    @RequestMapping("/news/sync/{articleId}")
+    public Result newsSync(String appId, @PathVariable Long articleId) throws IOException, WxErrorException {
         MpArticleDO article = mpArticleService.selectById(articleId);
 
         WeixinService weixinService = wxService.init();
@@ -137,8 +137,8 @@ public class WxMediaController extends AdminBaseController {
         return Result.ok();
     }
 
-    @RequestMapping("/news/groupsend/{appId}/{articleId}")
-    public Result newsGroupsend(@PathVariable String appId, @PathVariable Long articleId) {
+    @RequestMapping("/news/groupsend/{articleId}")
+    public Result newsGroupsend(String appId, @PathVariable Long articleId) {
         MpArticleDO article = mpArticleService.selectById(articleId);
         WxMpMassOpenIdsMessage message = new WxMpMassOpenIdsMessage();
         message.addUser(mpFansService.selectById(2L).getOpenid());
@@ -155,7 +155,7 @@ public class WxMediaController extends AdminBaseController {
     }
 
     private String convertMsgtype(String msgType) {
-        if(WxConsts.MaterialType.NEWS.equals(msgType)){
+        if (WxConsts.MaterialType.NEWS.equals(msgType)) {
             return WxConsts.MassMsgType.MPNEWS;
         }
         return msgType;

+ 1 - 1
src/main/java/com/ifast/wxmp/domain/MpArticleDO.java

@@ -21,7 +21,7 @@ public class MpArticleDO implements Serializable {
 	private Long id;
 
     /** 微信ID */
-    private Integer wechatid;
+    private Long mpId;
 
     /** 文章标题 */
     private String title;

+ 0 - 3
src/main/java/com/ifast/wxmp/util/WxMpConfigHolder.java

@@ -28,9 +28,6 @@ public class WxMpConfigHolder implements InitializingBean {
 
     private static final Hashtable<String, WxMpInMemoryConfigStorage> mpConfigs = new Hashtable<>();
 
-    /**
-     * 存String方便
-     */
     private static final ThreadLocal<String> currentAppId = new ThreadLocal<>();
 
     public static void setCurrentAppId(String aliasName) {

+ 1 - 1
src/main/resources/static/js/appjs/wxmp/mpArticleDemo/mpArticle.js

@@ -58,7 +58,7 @@ function load() {
                         title: '主键ID'
                     },
                     {
-                        field: 'wechatid',
+                        field: 'mpId',
                         title: '微信ID'
                     },
                     {

+ 15 - 5
src/main/resources/static/js/appjs/wxmp/mpArticleImage/mpArticle.js

@@ -1,6 +1,15 @@
 var prefix = "/wxmp/mpArticle/image"
+var appId = '';
 $(function () {
-    load();
+
+    appId = $('.currentMpInfo', window.parent.document).attr('data-appid');
+    console.log(appId);
+    if(appId){
+        console.log('mpFans 获取appId:' + appId);
+        load();
+    }else {
+        console.log('mpfans 获取appId为空')
+    }
 });
 
 function load() {
@@ -32,7 +41,8 @@ function load() {
                         //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
                         pageNumber: params.pageNumber,
                         pageSize: params.pageSize,
-                        msgtype: 'image'
+                        msgtype: 'image',
+                        appId:appId
                         // username:$('#searchName').val()
                     };
                 },
@@ -172,11 +182,11 @@ function resetPwd(id) {
 }
 
 function sync(id) {
-    console.log("同步素材")
+    console.log("同步素材");
     layer.confirm("确认要同步素材吗?", {
         btn: ['确定', '取消']
     }, function () {
-        $.post("/wx/mp/api/media/image/sync/appId/" + id, function (res) {
+        $.post("/wx/mp/api/media/image/sync/" + id + '?appId=' + appId, function (res) {
             layer.msg(res.msg);
             reLoad();
         });
@@ -188,7 +198,7 @@ function groupSend(id) {
     layer.confirm("确认要群发素材吗?", {
         btn: ['确定', '取消']
     }, function () {
-        $.post("/wx/mp/api/media/image/groupsend/appId/" + id, function (res) {
+        $.post("/wx/mp/api/media/image/groupsend/" + id +'?appId=' + appId, function (res) {
             layer.msg(res.msg);
             reLoad();
         });

+ 14 - 4
src/main/resources/static/js/appjs/wxmp/mpArticleNews/mpArticle.js

@@ -1,6 +1,15 @@
 var prefix = "/wxmp/mpArticle/news"
+var appId = '';
 $(function () {
-    load();
+
+    appId = $('.currentMpInfo', window.parent.document).attr('data-appid');
+    console.log(appId)
+    if(appId){
+        console.log('mpFans 获取appId:' + appId);
+        load();
+    }else {
+        console.log('mpfans 获取appId为空')
+    }
 });
 
 function load() {
@@ -32,7 +41,8 @@ function load() {
                         //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
                         pageNumber: params.pageNumber,
                         pageSize: params.pageSize,
-                        msgtype: 'news'
+                        msgtype: 'news',
+                        appId:appId
                         // username:$('#searchName').val()
                     };
                 },
@@ -176,7 +186,7 @@ function sync(id) {
     layer.confirm("确认要同步素材吗?", {
         btn: ['确定', '取消']
     }, function () {
-        $.post("/wx/mp/api/media/news/sync/appId/" + id, function (res) {
+        $.post("/wx/mp/api/media/news/sync/" + id + '?appId=' + appId, function (res) {
             layer.msg(res.msg);
             reLoad();
         });
@@ -188,7 +198,7 @@ function groupSend(id) {
     layer.confirm("确认要群发素材吗?", {
         btn: ['确定', '取消']
     }, function () {
-        $.post("/wx/mp/api/media/news/groupsend/appId/" + id, function (res) {
+        $.post("/wx/mp/api/media/news/groupsend/" + id + '?appId=' + appId, function (res) {
             layer.msg(res.msg);
             reLoad();
         });

+ 12 - 3
src/main/resources/static/js/appjs/wxmp/mpArticleTxt/mpArticle.js

@@ -1,6 +1,14 @@
-var prefix = "/wxmp/mpArticle/txt"
+var prefix = "/wxmp/mpArticle/txt";
+var appId = '';
 $(function () {
-    load();
+    appId = $('.currentMpInfo', window.parent.document).attr('data-appid');
+    console.log(appId);
+    if(appId){
+        console.log('mpFans 获取appId:' + appId);
+        load();
+    }else {
+        console.log('mpfans 获取appId为空')
+    }
 });
 
 function load() {
@@ -32,7 +40,8 @@ function load() {
                         //说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
                         pageNumber: params.pageNumber,
                         pageSize: params.pageSize,
-                        msgtype: 'text'
+                        msgtype: 'text',
+                        appId:appId
                         // username:$('#searchName').val()
                     };
                 },

+ 2 - 1
src/main/resources/static/js/appjs/wxmp/mpConfig/mpConfig.js

@@ -32,7 +32,8 @@ function load() {
                     return {
                         // 说明:传入后台的参数包括offset开始索引,limit步长,sort排序列,order:desc或者,以及所有列的键值对
                         pageNumber: params.pageNumber,
-                        pageSize: params.pageSize
+                        pageSize: params.pageSize,
+                        appId:appId
                         // name:$('#searchName').val(),
                         // username:$('#searchName').val()
                     };

+ 11 - 2
src/main/resources/static/js/appjs/wxmp/mpMenu/mpMenu.js

@@ -1,6 +1,15 @@
 var prefix = "/wxmp/mpMenu";
+var appId = '';
 $(function () {
-    load();
+
+    appId = $('.currentMpInfo', window.parent.document).attr('data-appid');
+    console.log(appId)
+    if(appId){
+        console.log('mpFans 获取appId:' + appId);
+        load();
+    }else {
+        console.log('mpfans 获取appId为空')
+    }
 });
 
 function load() {
@@ -127,7 +136,7 @@ function sync() {
     layer.confirm("确认要同步公众号菜单吗?", {
         btn: ['确定', '取消']
     }, function () {
-        $.post("/wx/mp/menu/api/sync/appId", function (res) {
+        $.post("/wx/mp/menu/api/sync?appId=" + appId, function (res) {
             layer.msg(res.msg);
         });
     });

+ 30 - 22
src/main/resources/static/js/contabs.js

@@ -14,18 +14,20 @@ $(function () {
     function scrollToTab(element) {
         var marginLeftVal = calSumWidth($(element).prevAll()), marginRightVal = calSumWidth($(element).nextAll());
         // 可视区域非tab宽度
-        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
+        var $contentTabs = $(".content-tabs");
+        var tabOuterWidth = calSumWidth($contentTabs.children().not(".J_menuTabs"));
         //可视区域tab宽度
-        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
+        var visibleWidth = $contentTabs.outerWidth(true) - tabOuterWidth;
         //实际滚动宽度
         var scrollVal = 0;
-        if ($(".page-tabs-content").outerWidth() < visibleWidth) {
+        var $pageTabsContent = $(".page-tabs-content");
+        if ($pageTabsContent.outerWidth() < visibleWidth) {
             scrollVal = 0;
         } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
             if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
                 scrollVal = marginLeftVal;
                 var tabElement = element;
-                while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content").outerWidth() - visibleWidth)) {
+                while ((scrollVal - $(tabElement).outerWidth()) > ($pageTabsContent.outerWidth() - visibleWidth)) {
                     scrollVal -= $(tabElement).prev().outerWidth();
                     tabElement = $(tabElement).prev();
                 }
@@ -33,21 +35,23 @@ $(function () {
         } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
             scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
         }
-        $('.page-tabs-content').animate({
+        $pageTabsContent.animate({
             marginLeft: 0 - scrollVal + 'px'
         }, "fast");
     }
 
     //查看左侧隐藏的选项卡
     function scrollTabLeft() {
-        var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
+        var $pageTabsContent = $('.page-tabs-content');
+        var marginLeftVal = Math.abs(parseInt($pageTabsContent.css('margin-left')));
         // 可视区域非tab宽度
-        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
+        var $contentTabs = $(".content-tabs");
+        var tabOuterWidth = calSumWidth($contentTabs.children().not(".J_menuTabs"));
         //可视区域tab宽度
-        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
+        var visibleWidth = $contentTabs.outerWidth(true) - tabOuterWidth;
         //实际滚动宽度
         var scrollVal = 0;
-        if ($(".page-tabs-content").width() < visibleWidth) {
+        if ($pageTabsContent.width() < visibleWidth) {
             return false;
         } else {
             var tabElement = $(".J_menuTab:first");
@@ -65,21 +69,23 @@ $(function () {
                 scrollVal = calSumWidth($(tabElement).prevAll());
             }
         }
-        $('.page-tabs-content').animate({
+        $pageTabsContent.animate({
             marginLeft: 0 - scrollVal + 'px'
         }, "fast");
     }
 
     //查看右侧隐藏的选项卡
     function scrollTabRight() {
-        var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
+        var $pageTabsContent = $('.page-tabs-content');
+        var marginLeftVal = Math.abs(parseInt($pageTabsContent.css('margin-left')));
         // 可视区域非tab宽度
-        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
+        var $contentTabs = $(".content-tabs");
+        var tabOuterWidth = calSumWidth($contentTabs.children().not(".J_menuTabs"));
         //可视区域tab宽度
-        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
+        var visibleWidth = $contentTabs.outerWidth(true) - tabOuterWidth;
         //实际滚动宽度
         var scrollVal = 0;
-        if ($(".page-tabs-content").width() < visibleWidth) {
+        if ($pageTabsContent.width() < visibleWidth) {
             return false;
         } else {
             var tabElement = $(".J_menuTab:first");
@@ -95,7 +101,7 @@ $(function () {
             }
             scrollVal = calSumWidth($(tabElement).prevAll());
             if (scrollVal > 0) {
-                $('.page-tabs-content').animate({
+                $pageTabsContent.animate({
                     marginLeft: 0 - scrollVal + 'px'
                 }, "fast");
             }
@@ -362,11 +368,12 @@ $(function () {
 
     //关闭其他选项卡
     function closeOtherTabs() {
-        $('.page-tabs-content').children("[data-id]").not(":first").not(".active").each(function () {
+        var $pageTabsContent = $('.page-tabs-content');
+        $pageTabsContent.children("[data-id]").not(":first").not(".active").each(function () {
             $('.J_iframe[data-id="' + $(this).data('id') + '"]').remove();
             $(this).remove();
         });
-        $('.page-tabs-content').css("margin-left", "0");
+        $pageTabsContent.css("margin-left", "0");
     }
 
     $('.J_tabCloseOther').on('click', closeOtherTabs);
@@ -382,10 +389,10 @@ $(function () {
     // 点击选项卡菜单
     function activeTab() {
 
-        console.log('tab click.')
+        console.log('tab click.');
         var dataUrl = $(this).data('id');
         if (isWxMpUrl(dataUrl) && wxMpHasChange()) {
-            console.log('公众号已经切换 && 为公众号tab,数据需要reload')
+            console.log('公众号已经切换 && 为公众号tab,数据需要reload');
             $('.J_mainContent .J_iframe').each(function () {
                 if ($(this).data('id') == dataUrl) {
                     $(this).show().siblings('.J_iframe').hide();
@@ -436,15 +443,16 @@ $(function () {
 
     // 关闭全部
     $('.J_tabCloseAll').on('click', function () {
-        $('.page-tabs-content').children("[data-id]").not(":first").each(function () {
+        var $pageTabsContent = $('.page-tabs-content');
+        $pageTabsContent.children("[data-id]").not(":first").each(function () {
             $('.J_iframe[data-id="' + $(this).data('id') + '"]').remove();
             $(this).remove();
         });
-        $('.page-tabs-content').children("[data-id]:first").each(function () {
+        $pageTabsContent.children("[data-id]:first").each(function () {
             $('.J_iframe[data-id="' + $(this).data('id') + '"]').show();
             $(this).addClass("active");
         });
-        $('.page-tabs-content').css("margin-left", "0");
+        $pageTabsContent.css("margin-left", "0");
     });
 
 });