DEMO解析第九期:门户

5257
6

方菁 小试身手Lv3

发表于2018-9-11 16:24

楼主
一、门户的构成
1、恢复备份
1)创建门户
在【门户管理】中创建新门户,选择从空白页面创建一个id为“PCdemo”的门户:
0.png

2)恢复门户备份
将如下的zip文件在【文件】导航树根节点进行上传,zip压缩包无需解压。
00.png

2、门户组件介绍
该门户的样式基本上是用产品实现的,某些功能通过脚本实现。由于不同的模块有颜色和内容的区分,因此每个模块对应了一个门户页面。
每个门户的结构和功能相同,因此下面以领导驾驶舱门户页面为例做详细介绍:
1.png

1)  左侧菜单栏
左侧上部是本公司logo及所在模块的名称,此处为图片组件。鼠标悬浮于此会出现下拉框,可进行模块间的切换。
2.png

左侧中间是用户的登录名称和退出按钮,登录名称使用宏获取登录用户的信息:<#=login.name#>。退出按钮使用的是【链接】组件,注意需要设置背景图片和鼠标单击事件。
3.png

左侧下方是菜单栏,该菜单栏定制了高亮效果:左侧有一条白色的竖线。菜单栏使用的是【树】组件,脚本在事件中进行编辑和引用。
4.png

2)  功能按钮
在门户的右上角有3个功能按钮:返回导航,移动端下载,页面刷新。这三个功能按钮都是使用【链接】组件实现的。均添加了背景图片和鼠标悬停/移出的图片效果。
6.png
返回导航功能比较简单,直接将导航页的页面地址放在组件的链接地址中即可。
鼠标悬停在移动端下载按钮,会出现下拉框,该脚本添加在门户页面的事件中。
刷新按钮在鼠标单击事件中编辑刷新报表的脚本。

3)  报表展现区域
门户中间为报表展现区域,使用的是【子窗口】组件,其四个角为圆弧型的,是分别在四个角添加了简单面板组件实现的。

二、脚本说明
脚本
1:门户页面脚本
此脚本中实现了三个功能:
1)左上角切换模块的下拉框
2)右上角移动端下载按钮的下拉框
3)门户的伸缩按钮功能
7.png
  1. createSSImg();
  2. var txt = queryObj("../../vfs/root/portals/pages/esp/PCdemo/nav_frag.txt?version=3");
  3. $(txt).appendTo($p.$("image2").getDom().parentNode);
  4. $p.$("image2").getDom().setAttribute("_t_nav","demolist");
  5. $p.$("image2").getDom().style.cursor = "pointer";
  6. $p.$("anchor1").getDom().setAttribute("_t_nav","qrcode");
  7. var txt = queryObj("../../vfs/root/portals/pages/esp/PCdemo/qrcode_frag.txt?version=2");
  8. $(txt).appendTo($p.$("anchor1").getDom().parentNode);
  9. var qcloud = {};
  10. $('[_t_nav]').hover(function () {
  11.         var _nav = $(this).attr('_t_nav');
  12.         clearTimeout(qcloud[_nav + '_timer']);
  13.         qcloud[_nav + '_timer'] = setTimeout(function () {
  14.                         $('[_t_nav]').each(function () {
  15.                                 $(this)[_nav == $(this).attr('_t_nav') ? 'addClass' : 'removeClass']('nav-up-selected');
  16.                         });
  17.                         $('#' + _nav).stop(true, true).slideDown(200);
  18.                 }, 150);
  19. }, function () {
  20.         var _nav = $(this).attr('_t_nav');
  21.         clearTimeout(qcloud[_nav + '_timer']);
  22.         qcloud[_nav + '_timer'] = setTimeout(function () {
  23.                         $('[_t_nav]').removeClass('nav-up-selected');
  24.                         $('#' + _nav).stop(true, true).slideUp(200);
  25.                 }, 150);
  26. });
  27. addStyleSheet(".slimScrollBar{display:block !important;}");
复制代码

注:【加载完成】中使用的函数在【自定义脚本】中进行定义。脚本中所引用的文件均在备份包中可查到。
5.png

脚本2:导航树脚本
导航树的样式脚本:
  1. function(xtree,isEditStatus,widget){
  2.         addStyle(document, "../../vfs/root/portals/pages/esp/PCdemo/treeicon/1whitestyle.css?v=1");
  3.         if(!isEditStatus){
  4.                 xtree.getBgContainer().style.overflowX='hidden';
  5.         }
  6. }
复制代码


三、配色信息
背景:#292D3C
模块主题颜色
    白色:#FFFFFF
    蓝绿:#12B0B8
    紫色:#5264DF
    绿色:#00C47B
    蓝色:#0072FF


四、 资源文件
PCdemo.zip (195.89 KB, 下载次数: )
6个回答

只看楼主

社区小辣妹 小试身手Lv3

发表于2018-9-12 09:11

只看该作者

取消 关注该作者的回复

沙发

学习了,棒棒棒!

韦韬然 数据老手Lv5

发表于2018-9-12 09:35

只看该作者

取消 关注该作者的回复

板凳

江湖人称潇洒哥 数据达人Lv4

发表于2018-10-8 08:03

只看该作者

取消 关注该作者的回复

地板

好棒,这些技术正是我需要的~

XYing 小试身手Lv3

发表于2019-3-21 15:47

只看该作者

取消 关注该作者的回复

5#

链接全部报错啊 截图201903211547323276.png

chenxing 小试身手Lv3

发表于2019-5-16 15:54

只看该作者

取消 关注该作者的回复

6#

门户页面脚本的image2,是从哪引用的?

lhl5230 初学数据Lv2

发表于2019-10-11 17:02

只看该作者

取消 关注该作者的回复

7#

学习了。。

登录后可回答问题,请登录注册

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流