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 轮播
    • 组件
    • 数据录入
    liaoyingmin
    2024-02-22

    YbQuarterPicker 季度选择器

    # 基本使用

    <template>
        <div>
            <yb-quarter-picker
                v-model="quarter"
                placeholder="请选择"
                :defaultValue="defaultValue"
                :pickerOptions="pickerOptions"
                valueFormat="yyyyq"
                format="yyyy年q季度"
            />
        </div>
    </template>
    <script>
        export default {
            data() {
                return {
                    quarter: '', // 需与 valueFormat 格式一致
                    defaultValue: '20223', // 2022第3季度,选择器打开时默认面板时间,需与 valueFormat 格式一致
                    pickerOptions: {
                        disabledDate: (time) => {
                            // 这个用于年份选择时的禁用判断
                            if (time instanceof Date) {
                                return time.getTime() > Date.now();
                            }
                            // 这个用于季度的禁用判断 { maxDate, minDate }
                            return time.minDate.getTime() > Date.now();
                        },
                        onPick: ({ maxDate, minDate }) => {
                            console.log(maxDate, minDate);
                        },
                    },
                };
            },
        };
    </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
    显示 复制 复制

    # 表单中使用

    <template>
        <div>
            <yb-form
                ref="form"
                :formItems="formItems"
                :model="formModel"
                label-width="100px"
                @submit.native.prevent="onSubmit"
            >
                <template v-slot:project="formItem">
                    <el-input
                        v-model="formModel[formItem.prop]"
                        clearable
                    ></el-input>
                </template>
                <template v-slot:quarter="formItem">
                    <yb-quarter-picker
                        v-model="formModel[formItem.prop]"
                        placeholder="请选择"
                    />
                </template>
                <template v-slot:buttons="formItem">
                    <el-button type="primary" native-type="submit"
                        >立即创建</el-button
                    >
                    <el-button>取消</el-button>
                </template>
            </yb-form>
        </div>
    </template>
    <script>
        export default {
            data() {
                const formItems = [
                    {
                        label: '项目',
                        prop: 'project',
                        rules: [
                            {
                                required: true,
                                message: '请填写项目名称',
                                trigger: 'blur',
                            },
                        ],
                    },
                    {
                        label: '回款季度',
                        prop: 'quarter',
                        defaultValue: '2022-1',
                        rules: [
                            {
                                required: true,
                                message: '请选择回款季度',
                                trigger: 'blur',
                            },
                        ],
                    },
                    {
                        label: '',
                        prop: 'buttons',
                    },
                ];
                const formModel = formItems.reduce((tol, item) => {
                    return {
                        ...tol,
                        [item.prop]:
                            typeof item.defaultValue !== 'undefined'
                                ? item.defaultValue
                                : null,
                    };
                }, {});
                return {
                    labelWidth: 100,
                    formItems,
                    formModel,
                };
            },
            methods: {
                onSubmit() {
                    this.$refs['form']
                        .getForm()
                        .validate()
                        .then(() => {
                            console.log('验证成功', this.formModel);
                        })
                        .catch((err, errFields) => {
                            console.log('验证失败', err, errFields);
                        });
                },
            },
        };
    </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
    显示 复制 复制

    # YbQuarterPicker Attributes

    参数 说明 类型 可选值 默认值
    value/v-model 绑定值,需与 valueFormat 格式一致,Date 会自动转成季度 string/Date -- --
    readonly 完全只读 boolean -- false
    disabled 禁用 boolean -- false
    editable 文本框可输入 boolean -- true
    clearable 是否显示清除按钮 boolean -- true
    size 输入框尺寸 string large/small/mini --
    placeholder 占位内容 string -- --
    format 显示在输入框中的格式 string 详见YbQuarterPicker format yyyy 年 q 季度
    align 对齐方式 string left/center/right left
    popperClass 下拉框的类名 string -- --
    pickerOptions 选项配置 object 详见YbQuarterPicker pickerOptions {}
    defaultValue 选择器打开时默认面板时间,需与 valueFormat 格式一致 string -- --
    valueFormat 绑定值的格式 string 详见YbQuarterPicker format yyyyq
    name 原生属性 string -- --
    prefixIcon 自定义头部图标的类名 string -- el-icon-date
    clearIcon 自定义清空图标的类名 string -- el-icon-circle-close
    validate-event 输入时是否触发表单的校验 boolean -- true
    append-to-body DetePicker 自身是否插入至 body 元素上 boolean -- true

    # YbQuarterPicker format

    以 UTC 2017 年 4 月 2 日 03:04:05 为例

    格式 含义 举例
    yyyy 年 2017
    q 季度 2

    # YbQuarterPicker pickerOptions

    参数 说明 类型 可选值 默认值
    disabledDate 设置禁用状态,参数为当前日期或者{ maxDate, minDate },要求返回 Boolean Function -- --
    cellClassName 设置的 className Function({ maxDate, minDate }) -- --
    onPick 选中季度后会执行的回调 Function({ maxDate, minDate }) -- --

    # YbQuarterPicker Events

    事件名称 说明 回调参数
    change 用户确认选定的值时触发 组件绑定值。格式与绑定值一致,可受 value-format 控制
    blur 当 input 失去焦点时触发 组件实例
    focus 当 input 获得焦点时触发 组件实例

    # YbQuarterPicker Methods

    方法名 说明 参数
    focus 使 input 获取焦点
    上次更新: 2024/04/30, 16:23:47
    YbCombiDatepicker 组合时间
    YbRangeQuarterPicker 季度范围选择器

    ← YbCombiDatepicker 组合时间 YbRangeQuarterPicker 季度范围选择器→

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