ant-design vue日期选择封装为年份选择组件

因为ant design vue 里面没有原生的年份选择器,需要使用date-picker去改造

html:

<a-date-picker
 mode="year"
 v-decorator="['year']"
 placeholder="请输入年份"
 format="YYYY"
 style="width: 200px"
 :open="yearShowOne"
@openChange="openChangeOne"
@panelChange="panelChangeOne"
/>

属性说明,mode设置year后选择器面板变成年份选择器,v-decorator 将year交给form控制,format格式化为年如果在方法里面给v-model或者value、v-decorator绑定的变量都赋值后,回显还是年月日,要看看这个格式化有没有打开),open控制年份选择面板的显示与消失 yearShowOne初始值为false。openChang控制年份选择面板的打开与关闭,panelChange控制面板内选择值的变化

1. mode 用于设置日期组件显示的类型 这里设置为年份

2. ref 设置组件引用

3. fromat 设置年份显示格式

4. placeholder 按情况设置

5. class 组件的类名

6. value 组件值 moment类型

7. locale 组件中文包

8. open 年份组件面板打开状态

9. getCalendarContainer的值是一个函数 作用是决定组件面板挂载的位置 需要return一个el

10 openChange事件是弹出日历和关闭日历的回调

11 panelChange事件是日期面板变化时的回调

12 change事件选择的年份变化的回调

js:

// 弹出日历和关闭日历的回调
    openChangeOne(status) {
      if (status) {
        this.yearShowOne = true;
      }
    },
    // 得到年份选择器的值
    panelChangeOne(value) {
      this.yearShowOne = false;
      this.year = value;
      this.$nextTick(() => {
        this.form.setFieldsValue({
          year: value,
        });
      });
    },

这里为什么要用form.setFieldsValue在给form监控的year给赋值呢,其实form并没有年份选择器做到真正的监听,这里赋值只是为了,当选择之后有一个回显。同理既然监听不了我们可以试一下value和v-model,都是能够完成的,但是要注意的是v-decorator不能跟他们共同使用。

效果图:

————————————————

版权声明:本文为CSDN博主「胖某人der~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_43468165/article/details/120042544

Ant Design Vue 是一个优秀的 Vue 组件库,如果你想要封装一个组件,可以按照以下步骤进行: 1. 创建一个 Vue 组件,可以使用 `Vue.extend` 或 `Vue.component` 方法,例如: ```vue <template> <div> <input v-model="inputValue" /> <button @click="handleClick">Click me</button> </div> </template> <script> export default { data() { return { inputValue: '', }; }, methods: { handleClick() { this.$emit('click', this.inputValue); }, }, }; </script> ``` 2. 根据 Ant Design Vue 的设计规范,对组件进行样式设计和布局,可以参考官方文档的设计原则和样式规范。 3. 添加组件的 props,使得组件可以接受外部递的参数,例如: ```vue <script> export default { props: { label: String, disabled: Boolean, }, data() { return { inputValue: '', }; }, methods: { handleClick() { this.$emit('click', this.inputValue); }, }, }; </script> ``` 4. 对组件进行功能拓展,例如添加验证逻辑、支持多语言等。 5. 如果需要,可以使用 `Vue.use` 方法将组件注册为插件,例如: ```js import MyComponent from './MyComponent.vue'; const MyPlugin = { install(Vue) { Vue.component(MyComponent.name, MyComponent); }, }; export default MyPlugin; ``` 在使用时,可以通过 `Vue.use(MyPlugin)` 来注册组件。 6. 最后,可以将组件发布到 npm 上,方便其他人使用。 以上就是封装 Ant Design Vue 组件的基本步骤,不同的组件可能还需要针对具体的需求进行额外的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值