<side-panel>

[[toc]]

<side-panel> 是一个抽屉侧边栏。

子组件

支持任何组件作为自己的子组件,其中仅有<side-panel-menu>组件作为侧边菜单详细请看 这里,其他组件均为正文内容。

预览效果

&lt;side-panel&gt; - 图1

示例代码

  1. <template>
  2. <div class="app">
  3. <side-panel
  4. ref="reflectName"
  5. class="side_panel"
  6. width="380px"
  7. scrollbar="false"
  8. backgroundColor="#26c9ff"
  9. @itemClick="itemClick"
  10. @switchListener="switchListener">
  11. <!--侧滑菜单部分-->
  12. <side-panel-menu class="panel_menu" name="菜单1">
  13. <text>菜单①</text>
  14. </side-panel-menu>
  15. <side-panel-menu class="panel_menu" name="菜单2">
  16. <text>菜单②</text>
  17. </side-panel-menu>
  18. <!--正文内容部分-->
  19. <div class="content">
  20. <!--正文标题栏-->
  21. <navbar class="content-navbar">
  22. <navbar-item type="left">
  23. <icon icon="navicon-round" class="content-navbar-icon" @click="menuToggle"></icon>
  24. </navbar-item>
  25. <navbar-item type="title">
  26. <text class="content-navbar-title">标题</text>
  27. </navbar-item>
  28. <navbar-item type="right">
  29. <icon icon="refresh" class="content-navbar-icon"></icon>
  30. </navbar-item>
  31. </navbar>
  32. <!--正文内容-->
  33. <scroller class="content-body">
  34. <text>正文内容,屏幕右划试试看。</text>
  35. <text class="content-body-toggle" @click="menuToggle">切换显示状态</text>
  36. </scroller>
  37. </div>
  38. </side-panel>
  39. </div>
  40. </template>
  41. <style scoped>
  42. .app {
  43. width: 750px;
  44. flex: 1;
  45. }
  46. .side_panel {
  47. width: 750px;
  48. flex: 1;
  49. }
  50. .panel_menu {
  51. width: 380px;
  52. padding-top: 26px;
  53. padding-bottom: 26px;
  54. padding-right: 20px;
  55. padding-left: 20px;
  56. border-bottom-width: 1px;
  57. border-bottom-style: solid;
  58. border-bottom-color: #ffffff;
  59. }
  60. .content {
  61. width: 750px;
  62. }
  63. .content-navbar {
  64. width: 750px;
  65. height: 100px;
  66. }
  67. .content-navbar-icon {
  68. width: 100px;
  69. height: 100px;
  70. color: #ffffff;
  71. }
  72. .content-navbar-title {
  73. color: #ffffff;
  74. }
  75. .content-body {
  76. width: 750px;
  77. margin-top: 200px;
  78. justify-content: center;
  79. align-items: center;
  80. }
  81. .content-body-toggle {
  82. text-align: center;
  83. margin-top: 20px;
  84. padding-top: 20px;
  85. padding-bottom: 20px;
  86. padding-left: 30px;
  87. padding-right: 30px;
  88. color: #ffffff;
  89. background-color: #00B4FF;
  90. }
  91. </style>
  92. <script>
  93. const eeui = app.requireModule('eeui');
  94. export default {
  95. methods: {
  96. itemClick(params) {
  97. eeui.toast("点击了" + (params.position + 1) + "项,name:" + params.name);
  98. },
  99. switchListener(params) {
  100. eeui.toast("侧边栏:" + (params.show?"显示了":"隐藏了"));
  101. },
  102. menuToggle() {
  103. this.$refs.reflectName.menuToggle();
  104. },
  105. }
  106. };
  107. </script>

配置参数

属性名 类型 描述 默认值
width Number 侧边栏的宽度 380
scrollbar Boolean 侧边栏是否显示滚动条 false
backgroundColor String 侧边栏的背景颜色 #ffffff

例如:

  1. <side-panel
  2. ref="reflectName"
  3. width="380px"
  4. scrollbar="false"
  5. backgroundColor="#26c9ff"
  6. ></side-panel>

事件回调 callback

  1. /**
  2. * 组件加载完成
  3. */
  4. @ready = function() { ... }
  5. /**
  6. * 侧边栏项目点击事件
  7. * 返回参数:data = {name: 'pageName', position: 1}
  8. */
  9. @itemClick = function(data) { ... }
  10. /**
  11. * 侧边栏项目长按事件
  12. * 返回参数:data = {name: 'pageName', position: 1}
  13. */
  14. @itemLongClick = function(data) { ... }
  15. /**
  16. * 侧边栏状态改变事件
  17. * 返回参数:data = {show: true}
  18. */
  19. @switchListener = function(data) { ... }

调用方法 methods

  1. /**
  2. * 显示侧边栏
  3. */
  4. this.$refs.reflectName.menuShow();
  5. /**
  6. * 隐藏侧边栏
  7. */
  8. this.$refs.reflectName.menuHide();
  9. /**
  10. * 切换侧边栏显示/隐藏
  11. */
  12. this.$refs.reflectName.menuToggle();
  13. /**
  14. * 获取侧边栏是否显示
  15. * 返回参数:true|false
  16. */
  17. this.$refs.reflectName.getMenuShow();
  18. /**
  19. * 设置侧边栏的宽度
  20. * 参数一:宽度
  21. */
  22. this.$refs.reflectName.setMenuWidth(380);
  23. /**
  24. * 设置侧边栏是否显示滚动条
  25. * 参数一:true|false
  26. */
  27. this.$refs.reflectName.setMenuScrollbar(true);
  28. /**
  29. * 设置侧边栏的背景颜色
  30. * 参数一:颜色代码
  31. */
  32. this.$refs.reflectName.setMenuBackgroundColor('#0000ff');

side-panel-menu

支持放置任何内容作为侧边菜单。

side-panel-menu 示例代码

  1. <side-panel-menu class="panel_menu" name="菜单1">
  2. <text>菜单①</text>
  3. </side-panel-menu>

side-panel-menu 配置参数

说明:子组件类型;数据格式:字符串。

属性名 类型 描述 默认值
name String 菜单名称(用于父组件点击返回的标识) -

例如:

  1. <side-panel-menu name="menu_1">
  2. .....
  3. </side-panel-menu>