立即注册
 找回密码
 立即注册

梦幻岛

搜索
热搜: 活动 交友
返回列表
查看: 618|回复: 0

小程序-自定义日历控件

[复制链接]

35

主题

35

帖子

340

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
340
发表于 2019-6-14 09:12:20 | 显示全部楼层 |阅读模式
<p><strong>微信小程序开发过程,需求用到日历控件,方便选日期安排事情,我们只能通过自定义实现日历组件。毕竟不像js,jquery那么多的先例直接引用方便,我们只有通过组件形式来实现。</strong></p><p><strong>效果如图:</strong></p><p><img src="http://img.domystery.com/Mys/M00/07/B5/cxwu3l0C8yaAHtFHAABUqtqsrtA630.png" title="1560474406673711.png" alt="image.png"/></p><p><br/></p><p><strong>代码结构:</strong><br/></p><p><img src="http://img.domystery.com/Mys/M00/07/B5/cxwu3l0C8zyAOXyVAAAvG1RbMZU546.png" title="1560474428941958.png" alt="image.png"/></p><p><br/></p><p><strong>组件页面文件:calendar.wxml</strong></p><p><span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&quot;calendar&quot;</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&#39;tit&#39;</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&#39;pre&#39;</span> <span style="color: #9cdcfe;">bindtap</span>=<span style="color: #ce9178;">&#39;gotoPreMonth&#39;</span><span style="color: #808080;">&gt;</span>{{&#39;&lt;&#39;}}<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&#39;current&#39;</span><span style="color: #808080;">&gt;</span>{{currentYear}}年{{currentMonth}}月<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&#39;next&#39;</span> <span style="color: #9cdcfe;">bindtap</span>=<span style="color: #ce9178;">&#39;gotoNextMonth&#39;</span><span style="color: #808080;">&gt;</span>{{&#39;&gt;&#39;}}<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&#39;content&#39;</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>日<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>一<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>二<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>三<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>四<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>五<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span>六<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&lt;</span><span style="color: #569cd6;">view</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #9cdcfe;">wx:for</span>=<span style="color: #ce9178;">&quot;{{allArr}}&quot;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #9cdcfe;">wx:key</span>=<span style="color: #ce9178;">&quot;{{index}}&quot;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">&quot;{{item.month == &#39;current&#39; ? &#39;&#39; : &#39;gray&#39;}}&quot;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #808080;">&gt;&lt;</span><span style="color: #569cd6;">text</span> <span style="color: #9cdcfe;">catchtap</span>=<span style="color: #ce9178;">&#39;dateclick&#39;</span> <span style="color: #9cdcfe;">data-date</span>=<span style="color: #ce9178;">&quot;{{currentMonth+&#39;月&#39;+item.date}}&quot;</span><span style="color: #808080;">&gt;</span>{{item.date}}<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">text</span><span style="color: #808080;">&gt;&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p>&nbsp;&nbsp;<span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p><span style="color: #808080;">&lt;/</span><span style="color: #569cd6;">view</span><span style="color: #808080;">&gt;</span></p><p><br/></p><p><strong>组件样式文件:calendar.wxss</strong></p><p><span style="color: #569cd6;">.calendar</span><span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">width:</span> <span style="color: #b5cea8;">100%</span><span style="color: #dcdcdc;">;</span></p><p><span style="color: #dcdcdc;">}</span></p><p><span style="color: #569cd6;">.calendar</span> <span style="color: #569cd6;">.tit</span><span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">display:</span> <span style="color: #ce9178;">flex</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">justify-content:</span> <span style="color: #ce9178;">center</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">align-items:</span> <span style="color: #ce9178;">center</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">font-size:</span> <span style="color: #b5cea8;">36</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">color:</span> #2A2A2A<span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">padding:</span> <span style="color: #b5cea8;">40</span><span style="color: #ce9178;">rpx</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">;</span></p><p><span style="color: #dcdcdc;">}</span></p><p><span style="color: #569cd6;">.calendar</span> <span style="color: #569cd6;">.tit</span> <span style="color: #569cd6;">.current</span><span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">margin:</span> <span style="color: #b5cea8;">0</span> <span style="color: #b5cea8;">40</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p><span style="color: #dcdcdc;">}</span></p><p><span style="color: #569cd6;">.calendar</span> <span style="color: #569cd6;">.content</span><span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">display:</span> <span style="color: #ce9178;">flex</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">flex-wrap:</span> <span style="color: #ce9178;">wrap</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">box-sizing:</span> <span style="color: #ce9178;">border-box</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">padding-left:</span> <span style="color: #b5cea8;">25</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p><span style="color: #dcdcdc;">}</span></p><p><span style="color: #569cd6;">.calendar</span> <span style="color: #569cd6;">.content</span> <span style="color: #569cd6;">view</span><span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">width:</span> <span style="color: #b5cea8;">100</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">height:</span> <span style="color: #b5cea8;">80</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">line-height:</span> <span style="color: #b5cea8;">80</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">text-align:</span> <span style="color: #ce9178;">center</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">flex-shrink:</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">font-size:</span> <span style="color: #b5cea8;">34</span><span style="color: #ce9178;">rpx</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">color:</span> #2A2A2A<span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;<span style="color: #608b4e;">/* background: rgb(224, 199, 199); */</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">margin:</span> <span style="color: #b5cea8;">14</span><span style="color: #ce9178;">rpx</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">;</span></p><p><span style="color: #dcdcdc;">}</span></p><p><span style="color: #569cd6;">.calendar</span> <span style="color: #569cd6;">.content</span> <span style="color: #569cd6;">.gray</span><span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">color:</span> #999<span style="color: #dcdcdc;">;</span></p><p><span style="color: #dcdcdc;">}</span></p><p><br/></p><p><strong>组件JS文件:calendar.js</strong></p><p><span style="color: #608b4e;">// components/calendar/calendar.js</span></p><p><span style="color: #3dc9b0;">Component</span><span style="color: #dcdcdc;">({</span></p><p><span style="color: #608b4e;">/**</span></p><p><span style="color: #608b4e;"> &nbsp; &nbsp; * 组件的属性列表</span></p><p><span style="color: #608b4e;"> &nbsp; &nbsp; */</span></p><p>&nbsp;&nbsp;properties<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;currentYear<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">{</span> <span style="color: #608b4e;">// 当前显示的年</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<span style="color: #dcdcdc;">:</span> <span style="color: #3dc9b0;">Number</span><span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value<span style="color: #dcdcdc;">:</span> <span style="color: #569cd6;">new</span> <span style="color: #3dc9b0;">Date</span><span style="color: #dcdcdc;">().</span>getFullYear<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;currentMonth<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">{</span> <span style="color: #608b4e;">// // 当前显示的月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type<span style="color: #dcdcdc;">:</span> <span style="color: #3dc9b0;">Number</span><span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value<span style="color: #dcdcdc;">:</span> <span style="color: #569cd6;">new</span> <span style="color: #3dc9b0;">Date</span><span style="color: #dcdcdc;">().</span>getMonth<span style="color: #dcdcdc;">()</span> <span style="color: #dcdcdc;">+</span> <span style="color: #b5cea8;">1</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p><br/></p><p><span style="color: #608b4e;">/**</span></p><p><span style="color: #608b4e;"> &nbsp; &nbsp; * 组件的初始数据</span></p><p><span style="color: #608b4e;"> &nbsp; &nbsp; */</span></p><p>&nbsp;&nbsp;data<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;currentMonthDateLen<span style="color: #dcdcdc;">:</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">,</span> <span style="color: #608b4e;">// 当月天数</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;preMonthDateLen<span style="color: #dcdcdc;">:</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">,</span> <span style="color: #608b4e;">// 当月中,上月多余天数</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;allArr<span style="color: #dcdcdc;">:[],</span> <span style="color: #608b4e;">// 当月所有数据</span></p><p>&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;ready<span style="color: #dcdcdc;">(){</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getAllArr<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p><br/></p><p><span style="color: #608b4e;">/**</span></p><p><span style="color: #608b4e;"> &nbsp; &nbsp; * 组件的方法列表</span></p><p><span style="color: #608b4e;"> &nbsp; &nbsp; */</span></p><p>&nbsp;&nbsp;methods<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 获取某年某月总共多少天</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;getDateLen<span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month<span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> actualMonth <span style="color: #dcdcdc;">=</span> month <span style="color: #dcdcdc;">-</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">;</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> timeDistance <span style="color: #dcdcdc;">=</span> <span style="color: #dcdcdc;">+</span><span style="color: #569cd6;">new</span> <span style="color: #3dc9b0;">Date</span><span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month<span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">-</span> <span style="color: #dcdcdc;">+</span><span style="color: #569cd6;">new</span> <span style="color: #3dc9b0;">Date</span><span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> actualMonth<span style="color: #dcdcdc;">);</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> timeDistance <span style="color: #dcdcdc;">/</span> <span style="color: #dcdcdc;">(</span><span style="color: #b5cea8;">1000</span> <span style="color: #dcdcdc;">*</span> <span style="color: #b5cea8;">60</span> <span style="color: #dcdcdc;">*</span> <span style="color: #b5cea8;">60</span> <span style="color: #dcdcdc;">*</span> <span style="color: #b5cea8;">24</span><span style="color: #dcdcdc;">);</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 获取某月1号是周几</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;getFirstDateWeek<span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month<span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> <span style="color: #569cd6;">new</span> <span style="color: #3dc9b0;">Date</span><span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month <span style="color: #dcdcdc;">-</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">,</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">).</span>getDay<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 上月 年、月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;preMonth<span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month<span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">if</span> <span style="color: #dcdcdc;">(</span>month <span style="color: #dcdcdc;">==</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;year<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">--</span>year<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month<span style="color: #dcdcdc;">:</span> <span style="color: #b5cea8;">12</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span> <span style="color: #569cd6;">else</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;year<span style="color: #dcdcdc;">:</span> year<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">--</span>month</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 下月 年、月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;nextMonth<span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month<span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">if</span> <span style="color: #dcdcdc;">(</span>month <span style="color: #dcdcdc;">==</span> <span style="color: #b5cea8;">12</span><span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;year<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">++</span>year<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month<span style="color: #dcdcdc;">:</span> <span style="color: #b5cea8;">1</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span> <span style="color: #569cd6;">else</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;year<span style="color: #dcdcdc;">:</span> year<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">++</span>month</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 获取当月数据,返回数组</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;getCurrentArr<span style="color: #dcdcdc;">(){</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> currentMonthDateLen <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getDateLen<span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentYear<span style="color: #dcdcdc;">,</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonth<span style="color: #dcdcdc;">)</span> <span style="color: #608b4e;">// 获取当月天数</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> currentMonthDateArr <span style="color: #dcdcdc;">=</span> <span style="color: #dcdcdc;">[]</span> <span style="color: #608b4e;">// 定义空数组</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">if</span> <span style="color: #dcdcdc;">(</span>currentMonthDateLen <span style="color: #dcdcdc;">&gt;</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">for</span> <span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">let</span> i <span style="color: #dcdcdc;">=</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">;</span> i <span style="color: #dcdcdc;">&lt;=</span> currentMonthDateLen<span style="color: #dcdcdc;">;</span> i<span style="color: #dcdcdc;">++)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentMonthDateArr<span style="color: #dcdcdc;">.</span>push<span style="color: #dcdcdc;">({</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;month<span style="color: #dcdcdc;">:</span> <span style="color: #ce9178;">&#39;current&#39;</span><span style="color: #dcdcdc;">,</span> <span style="color: #608b4e;">// 只是为了增加标识,区分上下月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date<span style="color: #dcdcdc;">:</span> i</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>setData<span style="color: #dcdcdc;">({</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentMonthDateLen</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> currentMonthDateArr</p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 获取当月中,上月多余数据,返回数组</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;getPreArr<span style="color: #dcdcdc;">(){</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> preMonthDateLen <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getFirstDateWeek<span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentYear<span style="color: #dcdcdc;">,</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonth<span style="color: #dcdcdc;">)</span> <span style="color: #608b4e;">// 当月1号是周几 == 上月残余天数)</span></p><p><span style="color: #569cd6;">let</span> preMonthDateArr <span style="color: #dcdcdc;">=</span> <span style="color: #dcdcdc;">[]</span> <span style="color: #608b4e;">// 定义空数组</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">if</span> <span style="color: #dcdcdc;">(</span>preMonthDateLen <span style="color: #dcdcdc;">&gt;</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> <span style="color: #dcdcdc;">{</span> year<span style="color: #dcdcdc;">,</span> month <span style="color: #dcdcdc;">}</span> <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>preMonth<span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentYear<span style="color: #dcdcdc;">,</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonth<span style="color: #dcdcdc;">)</span> <span style="color: #608b4e;">// 获取上月 年、月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> date <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getDateLen<span style="color: #dcdcdc;">(</span>year<span style="color: #dcdcdc;">,</span> month<span style="color: #dcdcdc;">)</span> <span style="color: #608b4e;">// 获取上月天数</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">for</span> <span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">let</span> i <span style="color: #dcdcdc;">=</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">;</span> i <span style="color: #dcdcdc;">&lt;</span> preMonthDateLen<span style="color: #dcdcdc;">;</span> i<span style="color: #dcdcdc;">++)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preMonthDateArr<span style="color: #dcdcdc;">.</span>unshift<span style="color: #dcdcdc;">({</span> <span style="color: #608b4e;">// 尾部追加</span></p><p>month<span style="color: #dcdcdc;">:</span> <span style="color: #ce9178;">&#39;pre&#39;</span><span style="color: #dcdcdc;">,</span> <span style="color: #608b4e;">// 只是为了增加标识,区分当、下月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date<span style="color: #dcdcdc;">:</span> date</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date<span style="color: #dcdcdc;">--</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>setData<span style="color: #dcdcdc;">({</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preMonthDateLen</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> preMonthDateArr</p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 获取当月中,下月多余数据,返回数组</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;getNextArr<span style="color: #dcdcdc;">()</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> nextMonthDateLen <span style="color: #dcdcdc;">=</span> <span style="color: #b5cea8;">42</span> <span style="color: #dcdcdc;">-</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>preMonthDateLen <span style="color: #dcdcdc;">-</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonthDateLen <span style="color: #608b4e;">// 下月多余天数</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> nextMonthDateArr <span style="color: #dcdcdc;">=</span> <span style="color: #dcdcdc;">[]</span> <span style="color: #608b4e;">// 定义空数组</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">if</span> <span style="color: #dcdcdc;">(</span>nextMonthDateLen <span style="color: #dcdcdc;">&gt;</span> <span style="color: #b5cea8;">0</span><span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">for</span> <span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">let</span> i <span style="color: #dcdcdc;">=</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">;</span> i <span style="color: #dcdcdc;">&lt;=</span> nextMonthDateLen<span style="color: #dcdcdc;">;</span> i<span style="color: #dcdcdc;">++)</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nextMonthDateArr<span style="color: #dcdcdc;">.</span>push<span style="color: #dcdcdc;">({</span></p><p>month<span style="color: #dcdcdc;">:</span> <span style="color: #ce9178;">&#39;next&#39;</span><span style="color: #dcdcdc;">,</span><span style="color: #608b4e;">// 只是为了增加标识,区分当、上月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date<span style="color: #dcdcdc;">:</span> i</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">return</span> nextMonthDateArr</p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 整合当月所有数据</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;getAllArr<span style="color: #dcdcdc;">(){</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> preArr <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getPreArr<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> currentArr <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getCurrentArr<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> nextArr <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getNextArr<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> allArr <span style="color: #dcdcdc;">=</span> <span style="color: #dcdcdc;">[...</span>preArr<span style="color: #dcdcdc;">,</span> <span style="color: #dcdcdc;">...</span>currentArr<span style="color: #dcdcdc;">,</span> <span style="color: #dcdcdc;">...</span>nextArr<span style="color: #dcdcdc;">]</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>setData<span style="color: #dcdcdc;">({</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allArr</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> sendObj <span style="color: #dcdcdc;">=</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentYear<span style="color: #dcdcdc;">:</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentYear<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentMonth<span style="color: #dcdcdc;">:</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonth<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allArr<span style="color: #dcdcdc;">:</span> allArr</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// console.log(sendObj)</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>triggerEvent<span style="color: #dcdcdc;">(</span><span style="color: #ce9178;">&#39;sendObj&#39;</span><span style="color: #dcdcdc;">,</span> sendObj<span style="color: #dcdcdc;">)</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 点击 上月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;gotoPreMonth<span style="color: #dcdcdc;">(){</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> <span style="color: #dcdcdc;">{</span> year<span style="color: #dcdcdc;">,</span> month <span style="color: #dcdcdc;">}</span> <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>preMonth<span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentYear<span style="color: #dcdcdc;">,</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonth<span style="color: #dcdcdc;">)</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>setData<span style="color: #dcdcdc;">({</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentYear<span style="color: #dcdcdc;">:</span> year<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentMonth<span style="color: #dcdcdc;">:</span> month</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getAllArr<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #608b4e;">// 点击 下月</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;gotoNextMonth<span style="color: #dcdcdc;">()</span> <span style="color: #dcdcdc;">{</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">let</span> <span style="color: #dcdcdc;">{</span> year<span style="color: #dcdcdc;">,</span> month <span style="color: #dcdcdc;">}</span> <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>nextMonth<span style="color: #dcdcdc;">(</span><span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentYear<span style="color: #dcdcdc;">,</span> <span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>data<span style="color: #dcdcdc;">.</span>currentMonth<span style="color: #dcdcdc;">)</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>setData<span style="color: #dcdcdc;">({</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentYear<span style="color: #dcdcdc;">:</span> year<span style="color: #dcdcdc;">,</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentMonth<span style="color: #dcdcdc;">:</span> month</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">})</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>getAllArr<span style="color: #dcdcdc;">()</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #dcdcdc;">},</span></p><p>dateclick<span style="color: #dcdcdc;">:</span><span style="color: #569cd6;">function</span><span style="color: #dcdcdc;">(</span>e<span style="color: #dcdcdc;">){</span></p><p>console<span style="color: #dcdcdc;">.</span>log<span style="color: #dcdcdc;">(</span>e<span style="color: #dcdcdc;">.</span>currentTarget<span style="color: #dcdcdc;">.</span>dataset<span style="color: #dcdcdc;">.</span>date<span style="color: #dcdcdc;">);</span></p><p><span style="color: #dcdcdc;">}</span></p><p>&nbsp;&nbsp;<span style="color: #dcdcdc;">}</span></p><p><span style="color: #dcdcdc;">})</span></p><p><br/></p><p><strong>以上已经完成了组件的主体内容,接下来是页面引用</strong></p><p><strong>一个使用组件的页面,引用很简单:</strong></p><p><span style="color: #808080;">&lt;</span><span style="color: #569cd6;">calendar</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">currentYear</span>=<span style="color: #ce9178;">&#39;{{currentyear}}&#39;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">currentMonth</span>=<span style="color: #ce9178;">&quot;{{currentmonth}}&quot;</span></p><p>&nbsp;&nbsp;<span style="color: #9cdcfe;">bindsendObj</span>=<span style="color: #ce9178;">&#39;getCalendarData&#39;</span>&nbsp;</p><p><span style="color: #808080;">&gt;&lt;/</span><span style="color: #569cd6;">calendar</span><span style="color: #808080;">&gt;</span></p><p><br/></p><p><strong>对应的js文件也是一些初始化参数的传递:</strong><br/></p><p>data<span style="color: #dcdcdc;">:</span> <span style="color: #dcdcdc;">{</span></p><p>currentyear<span style="color: #dcdcdc;">:</span> <span style="color: #ce9178;">&#39;&#39;</span><span style="color: #dcdcdc;">,</span></p><p>currentmonth<span style="color: #dcdcdc;">:</span> <span style="color: #ce9178;">&#39;&#39;</span><span style="color: #dcdcdc;">,</span></p><p>currentday<span style="color: #dcdcdc;">:</span> <span style="color: #ce9178;">&#39;&#39;</span></p><p><span style="color: #dcdcdc;">},</span></p><p><br/></p><p><span style="color: #608b4e;">/**</span></p><p><span style="color: #608b4e;"> &nbsp; * 生命周期函数--监听页面加载</span></p><p><span style="color: #608b4e;"> &nbsp; */</span></p><p>onLoad<span style="color: #dcdcdc;">:</span> <span style="color: #569cd6;">function</span><span style="color: #dcdcdc;">(</span>options<span style="color: #dcdcdc;">)</span> <span style="color: #dcdcdc;">{</span></p><p><span style="color: #569cd6;">var</span> da <span style="color: #dcdcdc;">=</span> <span style="color: #569cd6;">new</span> <span style="color: #3dc9b0;">Date</span><span style="color: #dcdcdc;">();</span></p><p><span style="color: #569cd6;">var</span> year <span style="color: #dcdcdc;">=</span> da<span style="color: #dcdcdc;">.</span>getFullYear<span style="color: #dcdcdc;">();</span></p><p><span style="color: #569cd6;">var</span> month <span style="color: #dcdcdc;">=</span> da<span style="color: #dcdcdc;">.</span>getMonth<span style="color: #dcdcdc;">()</span> <span style="color: #dcdcdc;">+</span> <span style="color: #b5cea8;">1</span><span style="color: #dcdcdc;">;</span></p><p><span style="color: #569cd6;">var</span> day <span style="color: #dcdcdc;">=</span> da<span style="color: #dcdcdc;">.</span>getDay<span style="color: #dcdcdc;">();</span></p><p><span style="color: #569cd6;">this</span><span style="color: #dcdcdc;">.</span>setData<span style="color: #dcdcdc;">({</span></p><p>currentyear<span style="color: #dcdcdc;">:</span> year<span style="color: #dcdcdc;">,</span></p><p>currentmonth<span style="color: #dcdcdc;">:</span> month<span style="color: #dcdcdc;">,</span></p><p>currentday<span style="color: #dcdcdc;">:</span> day</p><p><span style="color: #dcdcdc;">})</span></p><p><span style="color: #dcdcdc;">},</span></p><p><br/></p><p><strong>这样进到页面引用组件,会有默认当前日期。通过以上这些文件就实现了一套日历页面,其它就不写了,没什么内容。</strong></p><p><br/></p><p><strong>另外提供一个demo下载地址</strong></p><p><br/></p><p>链接:https://pan.baidu.com/s/17sEPdni99fRcsNA7DHtGMA&nbsp;</p><p>提取码:m7my&nbsp;</p><p><br/></p><p>转载请注明来源:梦幻岛 dreamisland.wang</p><p><br/></p>
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表