Developer 2025 🎇限时优惠进行中,现在购买立即享受

现在购买

simpleui 内置标签app.openTab用法

avatar社区小助手
11月24日1.8k次阅读

openTab

在日常使用中,难免会出现自定义页面的情况,这时候我们就可以利用simpleui内置的一个全局函数app.openTab来打开页面。

例子

 app.openTab({
                        url: "https://www.baidu.com"
                        icon: 'far fa-edit',
                        name:"百度一下你就知道",
                        breadcrumbs: [{
                            name:"首页",
                            icon: 'far fa-edit'
                        },{
                            name:"百度",
                            icon: 'far fa-edit'
                        }]]
                    })

函数定义

该函数定义在simpleui的路径simpleui/static/admin/simpleui-x/js/index.js点击这里查看

 openTab: function (data, index, selected, loading) {
                if (data.breadcrumbs) {
                    this.breadcrumbs = data.breadcrumbs;
                }
                //如果data没有eid,就直接打开或者添加,根据url
                if (!data.eid) {
                    data.eid = new Date().getTime() + "" + Math.random();
                }

                if (index) {
                    this.menuActive = String(index);
                }
                if (selected) {
                    //找到name,打开
                    // console.log(data)
                    for (var i = 0; i < this.tabs.length; i++) {
                        if (this.tabs[i].url == data.url) {
                            this.tabModel = this.tabs[i].id;
                            break;
                        }
                    }
                    return;
                }

                this.breadcrumbs = data.breadcrumbs;
                var exists = null;
                //判断是否存在,存在就直接打开
                for (var i = 0; i < this.tabs.length; i++) {
                    var tab = this.tabs[i];
                    if (tab.eid == data.eid) {
                        exists = tab;
                        continue;
                    }
                }

                if (exists) {
                    this.tabModel = exists.id;
                } else {
                    //其他的网址loading会一直转
                    if (data.url && data.url.indexOf('http') != 0) {
                        if (loading) {
                            data.loading = true;
                            this.loading = true;
                        } else {
                            data.loading = false;
                            this.loading = false;
                        }
                    }
                    // data.id = new Date().getTime() + "" + Math.random();
                    data.id = data.eid;
                    data.index = index;
                    this.tabs.push(data);
                    this.tabModel = data.id;
                }
                changeUrl(data)
                this.syncTabs();
            }

入参详解

该方法有4个入参,一般的需求只需要传入第一个参数即可,参数类型为json对象,下列例子只介绍第一个参数。

参数名类型 描述
url string 要打开的url路径,可以是项目中的相对路径,也可以是带http(s)开头的绝对路径
icon string 图标,参考elementui和fontawesome的class
name string 标签栏显示的标题
breadcrumbs array 面包屑,参考下面breadcrumbs 详解

breadcrumbs 详解

面包屑,这个是显示在顶部的路径导航

例子


  breadcrumbs: [{
                            name:"首页",
                            icon: 'far fa-edit'
                        },{
                            name:"百度",
                            icon: 'far fa-edit'
                        }]]

breadcrumbs 参数

参数名类型 描述
name string 名称
icon string 图标,参考elementui和fontawesome的class

常见问题

  • 404

这种情况一般是路径配置错误,检查路径是否正确

  • 无法打开网页

这种情况一般是目标网站宕机或者是跨域问题被浏览器阻止了,解决方法是目标网页添加响应头,允许跨域即可。

  • 其他问题

其他问题可以加入simpleui的QQ群求助。如果QQ群无法解决可以加作者QQ:599194993(注:所有问题200RMB起,一次)

发布评论
登录后发表内容
3个评论