LayTp交流一群:843093362 LayTp交流一群 发表新帖

2.0.5 【优化】新增方法,点击按钮,可以打开一个新的tab页面,不是以弹窗方式展开,类似点击菜单打开一个新的tab页面

【更新公告】 0
JunStar
2022-03-07 18:15:44

最近在开发公司项目的时候发现,点击按钮弹个窗,在弹窗页面里面还要弹窗,弹三次,最后一个弹窗小得可怜。于是,进行了优化处理,新增了一个方法,点击按钮新增一个tab的菜单选项卡来展示原本需要弹窗展示的html。

实现这个效果有两种方式

方式一:使用纯html标记

class属性新增openTabMenu,data-id属性是菜单ID,用于菜单自动跳转,data-url属性是需要展示的静态文件url,一般是一个html相对路径的url,data-title是tab菜单的名称,具体实现源码的位置是public\static\component\laytp\module\laytp.js
openTabMenu方法

  1. /**
  2. * 点击按钮打开新的tab menu
  3. * 所有拥有openTabMenu类名的节点,点击后都会打开新的tab menu
  4. * data-id 菜单ID,用于菜单自动选中
  5. * data-url 必填,需要展示的静态文件url
  6. * data-title tab菜单的名称
  7. */
  8. openTabMenu: function(){
  9. $(document).off("click", ".openTabMenu").on("click", ".openTabMenu", function () {
  10. if (parent.config.tab.muiltTab) {
  11. parent.bodyTab.addTabOnly({
  12. id: $(this).data("id"),
  13. title: $(this).data("title"),
  14. url: $(this).data("url"),
  15. icon: "",
  16. close: true
  17. }, 300);
  18. } else {
  19. parent.bodyFrame.changePage($(this).data("url"), "", true);
  20. }
  21. });
  22. },

调用方式:

  1. <button class="openTabMenu"
  2. data-id="菜单ID"
  3. data-url="需要展示的静态文件url"
  4. data-title="菜单名称"></button>

方式二:使用js进行调用

public\static\component\laytp\module\facade.js公用函数库新增了openTabMenu方法

调用方式:

  1. facade.openTabMenu({
  2. id: "菜单ID",
  3. url: "需要展示的静态文件url",
  4. title: "tab菜单的名称"
  5. });

注意

菜单ID参数很重要,要保证全局唯一,允许使用英文+数字,不能使用中文

回帖