更新记录

1.1.0(2026-09-01) 下载此版本

  • 组件重命名为 fg-date-picker(目录、文件、id 同步更新)
  • 清理组件内非 props 注释,代码更精简
  • 范围选择新增并排布局:开始/结束两个滚轮同时显示,无需切换(rangeLayout:side 默认 / tabs 可选)

平台兼容性

uni-app(4.87)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - -

uni-app x(4.87)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

fg-date-picker 日期选择器

组件名:fg-date-picker(easycom 自动引入,也可手动引入) 版本:1.1.0

弹层式日期选择器组件,纯组件零依赖(不依赖任何第三方插件/组件),内置遮罩层与滚轮选择框,兼容 微信小程序、抖音小程序(字节跳动)、快手小程序,同时支持 H5 与 App(vue)。

特性

  • 支持 5 种选择格式:年月日年月月日
  • 支持 2 种返回类型:选择当前(单选)、选择范围(区间)
  • 范围选择默认开始/结束两个滚轮并排同时显示,无需切换;也支持 tab 切换布局(rangeLayout
  • 自定义标题、标题颜色、按钮文字与颜色、主题色
  • 自定义选择框样式(滚轮区域背景、圆角等)与弹窗面板样式
  • 可设置可选范围(start / end)与默认选中值(defaultValue)
  • 年份/月份/日期三列自动联动:2 月天数、大小月自动处理
  • 提供 confirm(选择回调)、cancelclose(关闭回调)事件
  • 中文显示文本与格式化值(YYYY-MM-DD 等)同时返回

快速使用

方式一:easycom 自动引入(推荐)

uni_modules 插件默认开启 easycom,页面中直接使用即可:

<fg-date-picker
    v-model:show="show"
    mode="date"
    type="current"
    title="请选择日期"
    @confirm="onConfirm"
    @close="onClose"
/>

方式二:手动引入

import FgDatePicker from '@/uni_modules/fg-date-picker/components/fg-date-picker/fg-date-picker.vue'
export default {
    components: { FgDatePicker }
}

属性说明

属性名 类型 默认值 说明
show Boolean false 是否显示弹层,支持 v-model:show(vue3)/ :show.sync(vue2)
mode String date 选择格式:date 年月日 / year-month 年月 / month 月 / year 年 / month-day 月日
type String current 返回类型:current 选择当前 / range 选择范围
rangeLayout String side 范围选择布局:side 开始/结束并排同时显示(无需切换)/ tabs 切换开始/结束
title String 选择日期 自定义标题
start String 1900-01-01 可选范围开始,支持 YYYY-MM-DD / YYYY-MM / YYYY / MM-DD / MM
end String 2100-12-31 可选范围结束,格式同上
defaultValue String / Array '' 默认选中值:current 传字符串(如 '2026-09-01'),range 传数组(如 ['2026-09-01', '2026-09-30']),不传默认今天
confirmText String 确定 确定按钮文字
cancelText String 取消 取消按钮文字
showTitle Boolean true 是否显示标题栏
showCancel Boolean true 是否显示取消按钮
startLabel String 开始 范围选择时「开始」切换文案
endLabel String 结束 范围选择时「结束」切换文案
titleColor String #333333 标题颜色
confirmColor String #007AFF 确定按钮颜色
cancelColor String #999999 取消按钮颜色
activeColor String #007AFF 主题色(范围切换高亮、选中指示条)
maskColor String rgba(0,0,0,0.5) 遮罩颜色
boxStyle String / Object '' 自定义选择框(滚轮区域)样式
panelStyle String / Object '' 自定义弹窗面板样式

事件说明

事件名 说明 返回值
confirm 选择回调(点击确定) 见下方返回值说明
cancel 取消回调(点击取消按钮) -
close 关闭回调(确定 / 取消 / 点击遮罩关闭时触发) { source: 'confirm' \| 'cancel' \| 'mask' }
update:show 内部关闭时同步 show(配合 v-model:show / :show.sync 使用) false

返回值说明(confirm 事件)

type = current(选择当前)

{
    mode: 'date',        // 当前选择格式
    type: 'current',
    value: '2026-09-01', // 格式化值(date: YYYY-MM-DD / year-month: YYYY-MM / month: MM / year: YYYY / month-day: MM-DD)
    values: { year: 2026, month: 9, day: 1 }, // 数值对象
    text: '2026年9月1日'  // 中文显示文本
}

type = range(选择范围)

{
    mode: 'date',
    type: 'range',
    value: ['2026-09-01', '2026-09-30'], // [开始, 结束](自动保证开始 <= 结束)
    values: [{ year: 2026, month: 9, day: 1 }, { year: 2026, month: 9, day: 30 }],
    text: '2026年9月1日 - 2026年9月30日'
}

示例

<template>
    <view>
        <button @tap="show = true">选择日期</button>
        <fg-date-picker
            v-model:show="show"
            mode="date"
            type="range"
            title="选择出行日期"
            start="2024-01-01"
            end="2030-12-31"
            :default-value="['2026-09-01', '2026-09-30']"
            @confirm="onConfirm"
            @close="onClose"
        />  </view>
</template>

<script>
export default {
    data() {
        return { show: false }
    },
    methods: {
        onConfirm(e) {
            console.log('选择结果:', e.value, e.text)
        },
        onClose(e) {
            console.log('关闭原因:', e.source)
        }
    }
}
</script>

注意事项

  • month-day(月日)模式无年份,2 月按 29 天处理(兼容闰日);范围模式下的月日区间按同一年内处理,如需跨年区间请使用 date 模式。
  • 组件不依赖任何第三方插件,可直接打包上传至 DCloud 插件市场发布。
  • 支持 Vue2 / Vue3,建议在微信开发者工具、抖音开发者工具、快手开发者工具中分别预览验证。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。