Yb-components Yb-components
首页
开发规范
yb-cli
  • 开发指南
  • 更新日志
  • 组件
关于
首页
开发规范
yb-cli
  • 开发指南
  • 更新日志
  • 组件
关于
  • 开发指南
  • 更新日志
  • 数据展示

    • YbTable 表格
    • YbCardList 卡片列表
    • YbTree 树
    • YbCascaderList 级联列表
    • YbSimpleTablePage 分页查询表格
    • YbSimpleCardPage 分页卡片列表
    • YbBasicProfile 基础详情数据展示
    • YbOutscrollLayout 固定在滚动区域外
    • YbOutscrollTree 固定在滚动区域外的Tree
    • YbInfoLayout 信息页布局
    • YbEditLayout 编辑页布局
  • 数据录入

    • YbRowsPopoverForm 浮层多行表单
    • YbFormily 配置式表单
    • YbForm 表单
    • YbRowsForm 多行表单
    • YbCollapseForm 折叠表单
    • YbQueryFilter 筛选表单
    • YbFilesSelect 文件选择器
    • YbRangeWrapper 范围结构
    • YbRangeDatepicker 日期范围
    • YbRange 范围
    • YbFormulaInput 简单运算公式输入
    • YbCron 表达式生成器
    • YbTreeSelect 树型选择器
    • YbInputgroupWrapper 复合组
    • YbThemeSelect 主题风格选择器
    • YbSelect 选择器
    • YbPaginationSelect 分页选择器
    • YbCodemirror 代码编辑器
    • YbCodemirrorSql SQL编辑器
    • YbCodemirrorJson JSON编辑器
    • YbCodemirrorXml XML编辑器
    • YbCombiDatepicker 组合时间
    • YbQuarterPicker 季度选择器
    • YbRangeQuarterPicker 季度范围选择器
    • YbConditionSelect 条件选择器
    • YbCheckboxGroup 多选框组
    • YbIconSelect 选择器
    • YbTagsInput 标签输入框
  • 其他组件

    • YbBallLoading 加载中
    • YbSymbolIcon 多色小图标
    • YbKeybuttonsPopover
    • YbPercentBattery 电池百分比
    • YbAffix 固钉
    • YbPagination 分页器
    • YbCollapse 折叠面板
    • YbScrollTool 滚动工具
  • 物料

    • YbMainSideMenu 侧栏菜单
    • YbLoadRemote 远程应用加载
    • YbLayoutPro 布局
    • YbMainPro 主页
      • YbAppMain 应用主页
      • YbAppLogin 普通登录页
      • YbAppPortal Portal登录页
    • 指令

      • v-fixed-in-scroller
    • Mixins

      • pageList_mixin
      • getScopedSlot_mixin
      • editFormPage_mixin
      • uploadProgressPage_mixin
      • rowActions_mixin
      • rowDeletes_mixin
      • drawerToRouterTab_mixin
    • 实验室

      • YbSwiper 轮播
    • 组件
    • 物料
    zougt
    2022-02-14

    YbMainPro 主页

    在yb-layout-pro的基础上,加入了yb-main-size-menu和 tab 页(vue-router-tab (opens new window))的结构,形成一个常用的主页组件。

    # 基本用法

    <template>
        <yb-main-pro
            style="height: 600px"
            :menuData="menuData"
            :layout="theme.layout"
            @collapseChange="collapseChange"
            @collapseTransitionEnd="collapseTransitionEnd"
        >
            <template v-slot:headerLeft>
                <!-- <img :src="logo" /> -->
                <span v-show="showTitle">{{ systemTitle }}</span>
            </template>
            <template v-slot:headerRight>
                <el-dropdown class="main-user-dropdown" trigger="click">
                    <div class="yb-header-click-item" v-show="showUser">
                        <i class="el-icon-user" style="font-size: 18px"></i>
                        <span class="main-user-name">用户名称</span>
                        <i class="el-icon-caret-bottom"></i>
                    </div>
                    <el-dropdown-menu
                        class="main-user-dropdown-menu"
                        slot="dropdown"
                    >
                        <el-dropdown-item>个人中心</el-dropdown-item>
                        <el-dropdown-item>退出</el-dropdown-item>
                    </el-dropdown-menu>
                </el-dropdown>
            </template>
        </yb-main-pro>
    </template>
    <script>
        export default {
            data() {
                return {
                    menuData: [
                        {
                            name: '首页',
                            icon: '#yibao-xinxieguan',
                            path: '/home',
                        },
                        {
                            name: '目录菜单1',
                            path: '/parent1',
                            icon: '#yibao-huore',
                            children: [
                                {
                                    name: '子级菜单',
                                    path: '/mychild1',
                                },
                            ],
                        },
                        {
                            name: '目录菜单2',
                            path: '/parent2',
                            icon: '#yibao-gongneng',
                            children: [
                                {
                                    name: '子级菜单',
                                    path: '/mychild2',
                                },
                            ],
                        },
                    ],
                    systemTitle: '标题',
                    theme: { layout: 'tlr' },
                    collapse: false,
                    collapeTransEnd: true,
                };
            },
            computed: {
                showTitle() {
                    let showTitle = true;
                    switch (this.theme.layout) {
                        case 'ltr':
                        case 'ltr-light':
                        case 'lr':
                        case 'lr-light':
                            if (this.collapse || !this.collapeTransEnd) {
                                showTitle = false;
                            }
                            break;
                        default:
                    }
                    return showTitle;
                },
                showUser() {
                    let showUser = true;
                    switch (this.theme.layout) {
                        case 'lr':
                        case 'lr-light':
                            if (this.collapse || !this.collapeTransEnd) {
                                showUser = false;
                            }
                            break;
                        default:
                    }
                    return showUser;
                },
            },
            methods: {
                collapseChange(collapse) {
                    this.collapse = collapse;
                    this.collapeTransEnd = false;
                },
                collapseTransitionEnd() {
                    this.collapeTransEnd = true;
                },
            },
        };
    </script>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110

    # 运用在实际项目中,完善之后的案例

    # props

    参数 说明 类型 可选值 默认值
    layout 布局类型 string "tlr"|"tlr-light"|"ltr"|"ltr-light"|"ltr-dark"|"ttlr"|"tb-light"|"tb"|"lr"|"lr-light" "tlr"
    onelyBody 是否只显示中间区域,开启后不会显示左侧栏和顶部栏 boolean - false
    collapse 是否折叠左侧栏 - false -
    menuType 菜单类型,同YbMainSideMenu type 属性 string 'simple' -
    menuData 菜单数据 object[] - -
    menuData[].name 菜单名称 string - -
    menuData[].path 菜单路径,路由跳转 string - -
    menuData[].icon 小图标,以"#"开头的是多色图标,否则就是 i 标签的 calssname string - -
    menuData[].children 子菜单数据 object[] - -
    watermarkOptions 水印配置 object{show:false} - -
    ... 其他属性同 yb-layout-pro - - -

    # watermarkOptions

    参数 说明 类型 可选值 默认值
    show 是否显示水印型 boolean - false
    gapX 水印之间的水平间距 number - -
    gapY 水印之间的垂直间距 number - -
    offsetLeft 水印在 canvas 画布上绘制的水平偏移量 number - -
    offsetTop 水印在 canvas 画布上绘制的垂直偏移量 number - -
    width 单个水印宽度 number - -
    height 单个水印宽度 number - -
    opacity 水印透明度 number - -
    rotate 旋转的角度 number - -
    fontSize 设置字体大小 number - -
    fontColor 设置字体颜色 string - -
    fontFamily 设置水印文字的字体 string - -
    monitor 是否开启监视模式 boolean - true
    text 水印文本, 为数组时表示多行水印 string | string[] - -
    zIndex 样式层级 number - -

    # ScopedSlots

    名称 说明 参数
    headerLeft 顶部栏左侧内容插槽 {position}
    headerRight 顶部栏右侧内容插槽 {position}
    menuTitle 导航名称插槽 {position,path,name,...}

    # Events

    事件 说明 参数
    collapseChange 左侧栏折叠按钮切换时触发 (collapsed)=>{}
    collapseTransitionEnd 折叠过渡完了之后触发 (collapsed)=>{}
    上次更新: 2024/09/06, 16:30:44
    YbLayoutPro 布局
    YbAppMain 应用主页

    ← YbLayoutPro 布局 YbAppMain 应用主页→

    Theme by Vdoing | Copyright © 2021-2025 YB-GZ | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式