const date = new Date() const years = [] const months = [] for (let i = 1990; i <= date.getFullYear(); i++) { years.push(i) } for (let i = 1; i <= 12; i++) { months.push(i) } Component({ /** * 组件的属性列表 */ properties: { // 是否弹出显示 visible: { type: Boolean, value: false }, //点击外部的遮罩层是否允许关闭 outClickCanClose: { type: Boolean, value: false }, // 模式,年或者月,默认只有年 mode: { type: String, value: 'year' } }, /** * 组件的初始数据 */ data: { years: years, year: date.getFullYear(), months: months, month: 2, value: [9999, 1, 1], }, /** * 组件的方法列表 */ methods: { closePopup() { this.triggerEvent("close", { visibleDate: this.data.visibleDate }) }, outClick(){ if (this.data.outClickCanClose){ this.triggerEvent("close", { visibleDate: this.data.visibleDate }) } }, // 日期改变 bindChange: function (e) { const val = e.detail.value this.setData({ year: this.data.years[val[0]], month: this.data.months[val[1]], }) }, ok(e){ let value = '' if(this.properties.mode === 'month'){ value = this.data.year + '-' + this.data.month }else { value = this.data.year } this.triggerEvent("ok", value) } } })