找回密码
 立即注册

QQ登录

只需一步,快速开始

啧啧歪
金牌服务用户   /  发表于:2021-3-8 12:54  /   查看:8622  /  回复:23
1金币
本帖最后由 啧啧歪 于 2021-3-13 18:43 编辑

1、在项目的公共js文件中定义以下函数/**
* @param {标签的标题} tabName
*/
var zCloseTab = function (tabName) {
    var inst=TabManager.TabContainer.getCurrentInstance(window),
        t = inst.tabList;
    for (var i = 0; i < t.length; i++) {
        if (t.pageName === tabName) {
            inst.closeTab(t);
            break;
        }
    };
}

2、如何建项目js文件:


3、在需要关闭标签的命令列表中增加一条“Javascript命令”,即可完成关闭指定的标签。语句如下:
      zCloseTab("你需要关闭的标签的标题名称");






附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

评分

参与人数 1金币 +1000 收起 理由
Timothy.Xu + 1000 感谢支持!!

查看全部评分

23 个回复

正序浏览
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-27 13:41:23
24#
olookok 发表于 2021-12-27 12:43
zCloseTab("你需要关闭的标签的标题名称");    录入文本 是可以的。但是 如果是变量 不行

大佬说的变量是设置变量命令中产生的变量吗?可以通过getVariableValue方法获取变量的值哈~
getVariableValue方法 - 活字格V7帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)
回复 使用道具 举报
olookok活字格认证
论坛元老   /  发表于:2021-12-27 12:43:05
23#
David.Zhong 发表于 2021-12-27 11:38
大佬参考这个帖子:
【7.1】关于如何关闭标签页控件中指定标签的方法
https://gcdn.grapecity.com.cn/f ...

zCloseTab("你需要关闭的标签的标题名称");    录入文本 是可以的。但是 如果是变量 不行
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-27 11:38:22
22#
olookok 发表于 2021-12-27 11:16
zCloseTab("你需要关闭的标签的标题名称");   这里如何调用变量 ,试了一下 页面设置了单元格名称 , ...

大佬参考这个帖子:
【7.1】关于如何关闭标签页控件中指定标签的方法
https://gcdn.grapecity.com.cn/fo ... 3&fromuid=63496
(出处: 葡萄城产品技术社区)
回复 使用道具 举报
olookok活字格认证
论坛元老   /  发表于:2021-12-27 11:16:09
21#
      zCloseTab("你需要关闭的标签的标题名称");   这里如何调用变量 ,试了一下 页面设置了单元格名称 ,通过单元格名称关闭不起作用
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 14:31:44
20#
unimaallan 发表于 2021-12-15 14:19
好了 谢谢了,这次改了,下次不会再变吧

这可说不准哈~这本身就是一个插件,也不是公开的接口。类似于活字格官方的内部接口的概念。大佬理解一下~
回复 使用道具 举报
unimaallan
金牌服务用户   /  发表于:2021-12-15 14:19:57
19#
好了 谢谢了,这次改了,下次不会再变吧
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 10:29:03
18#
啧啧歪 发表于 2021-12-15 09:34
7.0.103中,TabManager对象的位置发生了变化。

你试试把TabManager改为this.parent.TabManager

大佬正解~把完整代码给大家附上~
  1. var zCloseTab = function (tabName) {
  2.     var inst=this.parent.TabManager.TabContainer.getCurrentInstance(window),
  3.         t = inst.tabList;
  4.     for (var i = 0; i < t.length; i++) {
  5.         if (t[i].pageName === tabName) {
  6.             inst.closeTab(t[i]);
  7.             break;
  8.         }
  9.     };
  10. }
复制代码

回复 使用道具 举报
啧啧歪
金牌服务用户   /  发表于:2021-12-15 09:34:47
17#
7.0.103中,TabManager对象的位置发生了变化。

你试试把TabManager改为this.parent.TabManager

评分

参与人数 1金币 +5 收起 理由
David.Zhong + 5 很给力!

查看全部评分

回复 使用道具 举报
swejet悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-15 09:29:30
16#
这个功能应该封装成一个命令插件,就几句SQL语句的事儿,又没多复杂
回复 使用道具 举报
unimaallan
金牌服务用户   /  发表于:2021-12-15 09:00:00
15#
这个指令,咋升级到7.0.103不执行了呢?
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部