完成简易版的充值和充值记录查询页面,简单的我的页面
This commit is contained in:
		
							
								
								
									
										2
									
								
								app.js
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								app.js
									
									
									
									
									
								
							| @@ -10,6 +10,6 @@ App({ | |||||||
|     this.globalData = { ...this.globalData, api, } |     this.globalData = { ...this.globalData, api, } | ||||||
|   }, |   }, | ||||||
|   globalData: { |   globalData: { | ||||||
|     userInfo: null |     primaryColor: '#52c41a' | ||||||
|   } |   } | ||||||
| }) | }) | ||||||
|   | |||||||
							
								
								
									
										32
									
								
								app.json
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								app.json
									
									
									
									
									
								
							| @@ -1,7 +1,26 @@ | |||||||
| { | { | ||||||
|   "pages": [ |   "pages": [ | ||||||
|     "pages/index/index" |     "pages/rechargeRecord/index", | ||||||
|  |     "pages/my/index", | ||||||
|  |     "pages/home/index", | ||||||
|  |     "pages/login/index", | ||||||
|  |     "pages/recharge/index", | ||||||
|  |     "pages/index/index", | ||||||
|  |     "pages/meterList/index", | ||||||
|  |     "pages/questions/index" | ||||||
|   ], |   ], | ||||||
|  |   "tabBar": { | ||||||
|  |     "list": [ | ||||||
|  |       { | ||||||
|  |         "pagePath": "pages/home/index", | ||||||
|  |         "text": "首页" | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         "pagePath": "pages/my/index", | ||||||
|  |         "text": "我的" | ||||||
|  |       } | ||||||
|  |     ] | ||||||
|  |   }, | ||||||
|   "window": { |   "window": { | ||||||
|     "navigationBarTextStyle": "black", |     "navigationBarTextStyle": "black", | ||||||
|     "navigationBarTitleText": "Weixin", |     "navigationBarTitleText": "Weixin", | ||||||
| @@ -10,8 +29,13 @@ | |||||||
|   "componentFramework": "glass-easel", |   "componentFramework": "glass-easel", | ||||||
|   "sitemapLocation": "sitemap.json", |   "sitemapLocation": "sitemap.json", | ||||||
|   "lazyCodeLoading": "requiredComponents", |   "lazyCodeLoading": "requiredComponents", | ||||||
|   "usingComponents": { |   "renderer": "skyline", | ||||||
|     "van-button": "@vant/weapp/button/index", |   "rendererOptions": { | ||||||
|     "van-loading": "@vant/weapp/loading/index" |     "skyline": { | ||||||
|  |       "defaultContentBox": true, | ||||||
|  |       "defaultDisplayBlock": true | ||||||
|     } |     } | ||||||
|  |   }, | ||||||
|  |   "disableScroll": true, | ||||||
|  |   "navigationStyle": "custom" | ||||||
| } | } | ||||||
							
								
								
									
										22
									
								
								app.wxss
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								app.wxss
									
									
									
									
									
								
							| @@ -1,10 +1,18 @@ | |||||||
| /**app.wxss**/ | /**app.wxss**/ | ||||||
| .container { | .wrapper { | ||||||
|   height: 100%; |   padding: 0 24rpx; | ||||||
|   display: flex; |  | ||||||
|   flex-direction: column; |  | ||||||
|   align-items: center; |  | ||||||
|   justify-content: space-between; |  | ||||||
|   padding: 200rpx 0; |  | ||||||
|   box-sizing: border-box; |   box-sizing: border-box; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .border { | ||||||
|  |   border: 1rpx solid #f0f0f0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .radius12 { | ||||||
|  |   border-radius: 12rpx; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | page { | ||||||
|  |   font-size: 36rpx; | ||||||
|  |   background-color: #f0f0f0; | ||||||
|  | } | ||||||
							
								
								
									
										
											BIN
										
									
								
								assets/images/down.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/images/down.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/left.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/images/left.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.5 KiB | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/right.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/images/right.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.5 KiB | 
							
								
								
									
										29
									
								
								components/cell/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								components/cell/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | |||||||
|  | // components/cell/index.js | ||||||
|  | Component({ | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的属性列表 | ||||||
|  |    */ | ||||||
|  |   properties: { | ||||||
|  |     title: String, | ||||||
|  |     rightArrow: { type: Boolean, value: true }, | ||||||
|  |     borderBottom: Boolean, | ||||||
|  |     openType: String, | ||||||
|  |   }, | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的初始数据 | ||||||
|  |    */ | ||||||
|  |   data: { | ||||||
|  |  | ||||||
|  |   }, | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的方法列表 | ||||||
|  |    */ | ||||||
|  |   methods: { | ||||||
|  |     click() { | ||||||
|  |       this.triggerEvent("click") | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | }) | ||||||
							
								
								
									
										28
									
								
								components/cell/index.wxml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								components/cell/index.wxml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | <!--components/cell/index.wxml--> | ||||||
|  |  | ||||||
|  | <template name="rightIcon"> | ||||||
|  |   <image src="/assets/images/right.png" class="rightIcon" /> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <template name="content"> | ||||||
|  |   <view wx:if="{{!rightArrow}}"> | ||||||
|  |       {{title}} | ||||||
|  |     </view> | ||||||
|  |     <view wx:else style="display: flex; justify-content: space-between;align-items: center; width: 100%;"> | ||||||
|  |       {{title}} | ||||||
|  |       <template is="rightIcon" /> | ||||||
|  |     </view> | ||||||
|  | </template> | ||||||
|  |  | ||||||
|  | <view class="cellWrapper" wx:if="{{!openType}}" bind:tap="click"> | ||||||
|  |   <view class="content"> | ||||||
|  |     <template is="content" data="{{title, rightArrow}}" /> | ||||||
|  |   </view> | ||||||
|  |   <view class="borderBottom border" wx:if="{{borderBottom}}"></view> | ||||||
|  | </view> | ||||||
|  | <view wx:else  bind:tap="click"> | ||||||
|  |   <button class="button" open-type="{{openType}}" 	plain="true"> | ||||||
|  |     <template is="content" data="{{title, rightArrow}}" /> | ||||||
|  |   </button> | ||||||
|  |   <view class="borderBottom border" wx:if="{{borderBottom}}"></view> | ||||||
|  | </view> | ||||||
							
								
								
									
										24
									
								
								components/cell/index.wxss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								components/cell/index.wxss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | /* components/cell/index.wxss */ | ||||||
|  | @import "/app.wxss"; | ||||||
|  | .content { | ||||||
|  |   padding: 20rpx 24rpx; | ||||||
|  |   background-color: #fff; | ||||||
|  |   line-height: 42rpx; | ||||||
|  |   font-size: 36rpx; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .button { | ||||||
|  |   background-color: #fff !important; | ||||||
|  |   padding: 20rpx 24rpx !important; | ||||||
|  |   border: none !important; | ||||||
|  |   line-height: 42rpx !important; | ||||||
|  |   font-size: 36rpx !important; | ||||||
|  |   display: flex !important; | ||||||
|  |   justify-content: left !important; | ||||||
|  |   border-radius: 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .rightIcon { | ||||||
|  |   width: 32rpx; | ||||||
|  |   height: 32rpx; | ||||||
|  | } | ||||||
							
								
								
									
										41
									
								
								components/navigator/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								components/navigator/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,41 @@ | |||||||
|  | // components/navigator/index.js | ||||||
|  | Component({ | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的属性列表 | ||||||
|  |    */ | ||||||
|  |   properties: { | ||||||
|  |     title: String, | ||||||
|  |     canBack: Boolean, | ||||||
|  |   }, | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的初始数据 | ||||||
|  |    */ | ||||||
|  |   data: { | ||||||
|  |  | ||||||
|  |   }, | ||||||
|  |   lifetimes: { | ||||||
|  |     attached: function() { | ||||||
|  |       const that = this; | ||||||
|  |       wx.getSystemInfo({ | ||||||
|  |         success: function (res) { | ||||||
|  |           that.setData({ | ||||||
|  |             statusBarHeight : res.statusBarHeight, | ||||||
|  |             navBarHeight : res.statusBarHeight , // 顶部导航栏高度为 44px | ||||||
|  |             jiaonangheight: wx.getMenuButtonBoundingClientRect().height, // 胶囊高度 | ||||||
|  |             jiaonangwidth:wx.getMenuButtonBoundingClientRect().width, | ||||||
|  |           }) | ||||||
|  |         }, | ||||||
|  |       }) | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   /** | ||||||
|  |    * 组件的方法列表 | ||||||
|  |    */ | ||||||
|  |   methods: { | ||||||
|  |     back() { | ||||||
|  |       wx.navigateBack(); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | }) | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "component": true, |   "component": true, | ||||||
|   "usingComponents": { |   "usingComponents": { | ||||||
|     "van-tag": "../tag/index" | 
 | ||||||
|   } |   } | ||||||
| } | } | ||||||
							
								
								
									
										9
									
								
								components/navigator/index.wxml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								components/navigator/index.wxml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | <view class="navigator" style="height: {{(statusBarHeight + 46)}}px;"> | ||||||
|  |   <view class="navigatorTitle"> | ||||||
|  |  | ||||||
|  |     {{title}} | ||||||
|  |   </view> | ||||||
|  |   <view style="display: flex; width: 100%; background-color: transparent;height: 46px;position: absolute;bottom: 0;left: 0;;align-items:center;"> | ||||||
|  |     <image src="/assets/images/left.png" bind:tap="back" wx:if="{{canBack}}" class="back" /> | ||||||
|  |   </view> | ||||||
|  | </view> | ||||||
							
								
								
									
										23
									
								
								components/navigator/index.wxss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								components/navigator/index.wxss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | /* components/navigator/index.wxss */ | ||||||
|  | .navigator { | ||||||
|  |   overflow: hidden; | ||||||
|  |   display: flex; | ||||||
|  |   align-items: flex-end; | ||||||
|  |   position: relative; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .navigatorTitle { | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: center; | ||||||
|  |   align-items: center; | ||||||
|  |   height: 46px; | ||||||
|  |   width: 100%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .back { | ||||||
|  |   width: 40rpx; | ||||||
|  |   height: 40rpx; | ||||||
|  |   margin-left: 30rpx; | ||||||
|  |   margin-top: 10rpx; | ||||||
|  |   z-index: 100; | ||||||
|  | } | ||||||
							
								
								
									
										24
									
								
								components/scrollPageWrapper/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								components/scrollPageWrapper/index.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | // components/scrollPageWrapper/index.js | ||||||
|  | Component({ | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的属性列表 | ||||||
|  |    */ | ||||||
|  |   properties: { | ||||||
|  |  | ||||||
|  |   }, | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的初始数据 | ||||||
|  |    */ | ||||||
|  |   data: { | ||||||
|  |  | ||||||
|  |   }, | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 组件的方法列表 | ||||||
|  |    */ | ||||||
|  |   methods: { | ||||||
|  |  | ||||||
|  |   } | ||||||
|  | }) | ||||||
							
								
								
									
										4
									
								
								components/scrollPageWrapper/index.wxml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								components/scrollPageWrapper/index.wxml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | |||||||
|  | <!--components/scrollPageWrapper/index.wxml--> | ||||||
|  | <view style="display:flex; flex-direction: column;width: 100vw;height: 100vh;"> | ||||||
|  |   <slot /> | ||||||
|  | </view> | ||||||
							
								
								
									
										1
									
								
								components/scrollPageWrapper/index.wxss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								components/scrollPageWrapper/index.wxss
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | /* components/scrollPageWrapper/index.wxss */ | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,78 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| var button_1 = require("../mixins/button"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     classes: ['list-class'], |  | ||||||
|     mixins: [button_1.button], |  | ||||||
|     props: { |  | ||||||
|         show: Boolean, |  | ||||||
|         title: String, |  | ||||||
|         cancelText: String, |  | ||||||
|         description: String, |  | ||||||
|         round: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         zIndex: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 100, |  | ||||||
|         }, |  | ||||||
|         actions: { |  | ||||||
|             type: Array, |  | ||||||
|             value: [], |  | ||||||
|         }, |  | ||||||
|         overlay: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         closeOnClickOverlay: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         closeOnClickAction: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         safeAreaInsetBottom: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         rootPortal: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: false, |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         onSelect: function (event) { |  | ||||||
|             var _this = this; |  | ||||||
|             var index = event.currentTarget.dataset.index; |  | ||||||
|             var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile; |  | ||||||
|             var item = actions[index]; |  | ||||||
|             if (item) { |  | ||||||
|                 this.$emit('select', item); |  | ||||||
|                 if (closeOnClickAction) { |  | ||||||
|                     this.onClose(); |  | ||||||
|                 } |  | ||||||
|                 if (item.openType === 'getUserInfo' && canIUseGetUserProfile) { |  | ||||||
|                     wx.getUserProfile({ |  | ||||||
|                         desc: item.getUserProfileDesc || '  ', |  | ||||||
|                         complete: function (userProfile) { |  | ||||||
|                             _this.$emit('getuserinfo', userProfile); |  | ||||||
|                         }, |  | ||||||
|                     }); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         onCancel: function () { |  | ||||||
|             this.$emit('cancel'); |  | ||||||
|         }, |  | ||||||
|         onClose: function () { |  | ||||||
|             this.$emit('close'); |  | ||||||
|         }, |  | ||||||
|         onClickOverlay: function () { |  | ||||||
|             this.$emit('click-overlay'); |  | ||||||
|             this.onClose(); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "van-icon": "../icon/index", |  | ||||||
|     "van-popup": "../popup/index", |  | ||||||
|     "van-loading": "../loading/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,70 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <van-popup |  | ||||||
|   show="{{ show }}" |  | ||||||
|   position="bottom" |  | ||||||
|   round="{{ round }}" |  | ||||||
|   z-index="{{ zIndex }}" |  | ||||||
|   overlay="{{ overlay }}" |  | ||||||
|   custom-class="van-action-sheet custom-class" |  | ||||||
|   safe-area-inset-bottom="{{ safeAreaInsetBottom }}" |  | ||||||
|   close-on-click-overlay="{{ closeOnClickOverlay }}" |  | ||||||
|   root-portal="{{ rootPortal }}" |  | ||||||
|   bind:close="onClickOverlay" |  | ||||||
| > |  | ||||||
|   <view wx:if="{{ title }}" class="van-action-sheet__header"> |  | ||||||
|     {{ title }} |  | ||||||
|     <van-icon |  | ||||||
|       name="cross" |  | ||||||
|       custom-class="van-action-sheet__close" |  | ||||||
|       bind:click="onClose" |  | ||||||
|     /> |  | ||||||
|   </view> |  | ||||||
|   <view wx:if="{{ description }}" class="van-action-sheet__description van-hairline--bottom"> |  | ||||||
|     {{ description }} |  | ||||||
|   </view> |  | ||||||
|   <view wx:if="{{ actions && actions.length }}" class="list-class"> |  | ||||||
|     <!-- button外包一层view,防止actions动态变化,导致渲染时button被打散 --> |  | ||||||
|     <button |  | ||||||
|       wx:for="{{ actions }}" |  | ||||||
|       wx:key="index" |  | ||||||
|       open-type="{{ item.disabled || item.loading || (canIUseGetUserProfile && item.openType === 'getUserInfo') ? '' : item.openType }}" |  | ||||||
|       style="{{ item.color ? 'color: ' + item.color : '' }}" |  | ||||||
|       class="{{ utils.bem('action-sheet__item', { disabled: item.disabled || item.loading }) }} {{ item.className || '' }}" |  | ||||||
|       hover-class="van-action-sheet__item--hover" |  | ||||||
|       data-index="{{ index }}" |  | ||||||
|       bindtap="{{ item.disabled || item.loading ? '' : 'onSelect' }}" |  | ||||||
|       bindgetuserinfo="onGetUserInfo" |  | ||||||
|       bindcontact="onContact" |  | ||||||
|       bindgetphonenumber="onGetPhoneNumber" |  | ||||||
|       binderror="onError" |  | ||||||
|       bindlaunchapp="onLaunchApp" |  | ||||||
|       bindopensetting="onOpenSetting" |  | ||||||
|       lang="{{ lang }}" |  | ||||||
|       session-from="{{ sessionFrom }}" |  | ||||||
|       send-message-title="{{ sendMessageTitle }}" |  | ||||||
|       send-message-path="{{ sendMessagePath }}" |  | ||||||
|       send-message-img="{{ sendMessageImg }}" |  | ||||||
|       show-message-card="{{ showMessageCard }}" |  | ||||||
|       app-parameter="{{ appParameter }}" |  | ||||||
|     > |  | ||||||
|       <block wx:if="{{ !item.loading }}"> |  | ||||||
|         {{ item.name }} |  | ||||||
|         <view wx:if="{{ item.subname }}" class="van-action-sheet__subname" >{{ item.subname }}</view> |  | ||||||
|       </block> |  | ||||||
|       <van-loading wx:else custom-class="van-action-sheet__loading" size="22px" /> |  | ||||||
|     </button> |  | ||||||
|   </view> |  | ||||||
|   <slot /> |  | ||||||
|   <block wx:if="{{ cancelText }}"> |  | ||||||
|     <view class="van-action-sheet__gap" /> |  | ||||||
|     <view |  | ||||||
|       class="van-action-sheet__cancel" |  | ||||||
|       hover-class="van-action-sheet__cancel--hover" |  | ||||||
|       hover-stay-time="70" |  | ||||||
|       bind:tap="onCancel" |  | ||||||
|     > |  | ||||||
|       {{ cancelText }} |  | ||||||
|     </view> |  | ||||||
|   </block> |  | ||||||
| </van-popup> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important} |  | ||||||
							
								
								
									
										1
									
								
								miniprogram_npm/@vant/weapp/area/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								miniprogram_npm/@vant/weapp/area/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,235 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| var __assign = (this && this.__assign) || function () { |  | ||||||
|     __assign = Object.assign || function(t) { |  | ||||||
|         for (var s, i = 1, n = arguments.length; i < n; i++) { |  | ||||||
|             s = arguments[i]; |  | ||||||
|             for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) |  | ||||||
|                 t[p] = s[p]; |  | ||||||
|         } |  | ||||||
|         return t; |  | ||||||
|     }; |  | ||||||
|     return __assign.apply(this, arguments); |  | ||||||
| }; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| var shared_1 = require("../picker/shared"); |  | ||||||
| var utils_1 = require("../common/utils"); |  | ||||||
| var EMPTY_CODE = '000000'; |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     classes: ['active-class', 'toolbar-class', 'column-class'], |  | ||||||
|     props: __assign(__assign({}, shared_1.pickerProps), { showToolbar: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, value: { |  | ||||||
|             type: String, |  | ||||||
|             observer: function (value) { |  | ||||||
|                 this.code = value; |  | ||||||
|                 this.setValues(); |  | ||||||
|             }, |  | ||||||
|         }, areaList: { |  | ||||||
|             type: Object, |  | ||||||
|             value: {}, |  | ||||||
|             observer: 'setValues', |  | ||||||
|         }, columnsNum: { |  | ||||||
|             type: null, |  | ||||||
|             value: 3, |  | ||||||
|         }, columnsPlaceholder: { |  | ||||||
|             type: Array, |  | ||||||
|             observer: function (val) { |  | ||||||
|                 this.setData({ |  | ||||||
|                     typeToColumnsPlaceholder: { |  | ||||||
|                         province: val[0] || '', |  | ||||||
|                         city: val[1] || '', |  | ||||||
|                         county: val[2] || '', |  | ||||||
|                     }, |  | ||||||
|                 }); |  | ||||||
|             }, |  | ||||||
|         } }), |  | ||||||
|     data: { |  | ||||||
|         columns: [{ values: [] }, { values: [] }, { values: [] }], |  | ||||||
|         typeToColumnsPlaceholder: {}, |  | ||||||
|     }, |  | ||||||
|     mounted: function () { |  | ||||||
|         var _this = this; |  | ||||||
|         (0, utils_1.requestAnimationFrame)(function () { |  | ||||||
|             _this.setValues(); |  | ||||||
|         }); |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         getPicker: function () { |  | ||||||
|             if (this.picker == null) { |  | ||||||
|                 this.picker = this.selectComponent('.van-area__picker'); |  | ||||||
|             } |  | ||||||
|             return this.picker; |  | ||||||
|         }, |  | ||||||
|         onCancel: function (event) { |  | ||||||
|             this.emit('cancel', event.detail); |  | ||||||
|         }, |  | ||||||
|         onConfirm: function (event) { |  | ||||||
|             var index = event.detail.index; |  | ||||||
|             var value = event.detail.value; |  | ||||||
|             value = this.parseValues(value); |  | ||||||
|             this.emit('confirm', { value: value, index: index }); |  | ||||||
|         }, |  | ||||||
|         emit: function (type, detail) { |  | ||||||
|             detail.values = detail.value; |  | ||||||
|             delete detail.value; |  | ||||||
|             this.$emit(type, detail); |  | ||||||
|         }, |  | ||||||
|         parseValues: function (values) { |  | ||||||
|             var columnsPlaceholder = this.data.columnsPlaceholder; |  | ||||||
|             return values.map(function (value, index) { |  | ||||||
|                 if (value && |  | ||||||
|                     (!value.code || value.name === columnsPlaceholder[index])) { |  | ||||||
|                     return __assign(__assign({}, value), { code: '', name: '' }); |  | ||||||
|                 } |  | ||||||
|                 return value; |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         onChange: function (event) { |  | ||||||
|             var _this = this; |  | ||||||
|             var _a; |  | ||||||
|             var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value; |  | ||||||
|             this.code = value[index].code; |  | ||||||
|             (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () { |  | ||||||
|                 _this.$emit('change', { |  | ||||||
|                     picker: picker, |  | ||||||
|                     values: _this.parseValues(picker.getValues()), |  | ||||||
|                     index: index, |  | ||||||
|                 }); |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         getConfig: function (type) { |  | ||||||
|             var areaList = this.data.areaList; |  | ||||||
|             return (areaList && areaList["".concat(type, "_list")]) || {}; |  | ||||||
|         }, |  | ||||||
|         getList: function (type, code) { |  | ||||||
|             if (type !== 'province' && !code) { |  | ||||||
|                 return []; |  | ||||||
|             } |  | ||||||
|             var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder; |  | ||||||
|             var list = this.getConfig(type); |  | ||||||
|             var result = Object.keys(list).map(function (code) { return ({ |  | ||||||
|                 code: code, |  | ||||||
|                 name: list[code], |  | ||||||
|             }); }); |  | ||||||
|             if (code != null) { |  | ||||||
|                 // oversea code |  | ||||||
|                 if (code[0] === '9' && type === 'city') { |  | ||||||
|                     code = '9'; |  | ||||||
|                 } |  | ||||||
|                 result = result.filter(function (item) { return item.code.indexOf(code) === 0; }); |  | ||||||
|             } |  | ||||||
|             if (typeToColumnsPlaceholder[type] && result.length) { |  | ||||||
|                 // set columns placeholder |  | ||||||
|                 var codeFill = type === 'province' |  | ||||||
|                     ? '' |  | ||||||
|                     : type === 'city' |  | ||||||
|                         ? EMPTY_CODE.slice(2, 4) |  | ||||||
|                         : EMPTY_CODE.slice(4, 6); |  | ||||||
|                 result.unshift({ |  | ||||||
|                     code: "".concat(code).concat(codeFill), |  | ||||||
|                     name: typeToColumnsPlaceholder[type], |  | ||||||
|                 }); |  | ||||||
|             } |  | ||||||
|             return result; |  | ||||||
|         }, |  | ||||||
|         getIndex: function (type, code) { |  | ||||||
|             var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6; |  | ||||||
|             var list = this.getList(type, code.slice(0, compareNum - 2)); |  | ||||||
|             // oversea code |  | ||||||
|             if (code[0] === '9' && type === 'province') { |  | ||||||
|                 compareNum = 1; |  | ||||||
|             } |  | ||||||
|             code = code.slice(0, compareNum); |  | ||||||
|             for (var i = 0; i < list.length; i++) { |  | ||||||
|                 if (list[i].code.slice(0, compareNum) === code) { |  | ||||||
|                     return i; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             return 0; |  | ||||||
|         }, |  | ||||||
|         setValues: function () { |  | ||||||
|             var picker = this.getPicker(); |  | ||||||
|             if (!picker) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             var code = this.code || this.getDefaultCode(); |  | ||||||
|             var provinceList = this.getList('province'); |  | ||||||
|             var cityList = this.getList('city', code.slice(0, 2)); |  | ||||||
|             var stack = []; |  | ||||||
|             var indexes = []; |  | ||||||
|             var columnsNum = this.data.columnsNum; |  | ||||||
|             if (columnsNum >= 1) { |  | ||||||
|                 stack.push(picker.setColumnValues(0, provinceList, false)); |  | ||||||
|                 indexes.push(this.getIndex('province', code)); |  | ||||||
|             } |  | ||||||
|             if (columnsNum >= 2) { |  | ||||||
|                 stack.push(picker.setColumnValues(1, cityList, false)); |  | ||||||
|                 indexes.push(this.getIndex('city', code)); |  | ||||||
|                 if (cityList.length && code.slice(2, 4) === '00') { |  | ||||||
|                     code = cityList[0].code; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             if (columnsNum === 3) { |  | ||||||
|                 stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false)); |  | ||||||
|                 indexes.push(this.getIndex('county', code)); |  | ||||||
|             } |  | ||||||
|             return Promise.all(stack) |  | ||||||
|                 .catch(function () { }) |  | ||||||
|                 .then(function () { return picker.setIndexes(indexes); }) |  | ||||||
|                 .catch(function () { }); |  | ||||||
|         }, |  | ||||||
|         getDefaultCode: function () { |  | ||||||
|             var columnsPlaceholder = this.data.columnsPlaceholder; |  | ||||||
|             if (columnsPlaceholder.length) { |  | ||||||
|                 return EMPTY_CODE; |  | ||||||
|             } |  | ||||||
|             var countyCodes = Object.keys(this.getConfig('county')); |  | ||||||
|             if (countyCodes[0]) { |  | ||||||
|                 return countyCodes[0]; |  | ||||||
|             } |  | ||||||
|             var cityCodes = Object.keys(this.getConfig('city')); |  | ||||||
|             if (cityCodes[0]) { |  | ||||||
|                 return cityCodes[0]; |  | ||||||
|             } |  | ||||||
|             return ''; |  | ||||||
|         }, |  | ||||||
|         getValues: function () { |  | ||||||
|             var picker = this.getPicker(); |  | ||||||
|             if (!picker) { |  | ||||||
|                 return []; |  | ||||||
|             } |  | ||||||
|             return this.parseValues(picker.getValues().filter(function (value) { return !!value; })); |  | ||||||
|         }, |  | ||||||
|         getDetail: function () { |  | ||||||
|             var values = this.getValues(); |  | ||||||
|             var area = { |  | ||||||
|                 code: '', |  | ||||||
|                 country: '', |  | ||||||
|                 province: '', |  | ||||||
|                 city: '', |  | ||||||
|                 county: '', |  | ||||||
|             }; |  | ||||||
|             if (!values.length) { |  | ||||||
|                 return area; |  | ||||||
|             } |  | ||||||
|             var names = values.map(function (item) { return item.name; }); |  | ||||||
|             area.code = values[values.length - 1].code; |  | ||||||
|             if (area.code[0] === '9') { |  | ||||||
|                 area.country = names[1] || ''; |  | ||||||
|                 area.province = names[2] || ''; |  | ||||||
|             } |  | ||||||
|             else { |  | ||||||
|                 area.province = names[0] || ''; |  | ||||||
|                 area.city = names[1] || ''; |  | ||||||
|                 area.county = names[2] || ''; |  | ||||||
|             } |  | ||||||
|             return area; |  | ||||||
|         }, |  | ||||||
|         reset: function (code) { |  | ||||||
|             this.code = code || ''; |  | ||||||
|             return this.setValues(); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "van-picker": "../picker/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
|  |  | ||||||
| <van-picker |  | ||||||
|   class="van-area__picker" |  | ||||||
|   active-class="active-class" |  | ||||||
|   toolbar-class="toolbar-class" |  | ||||||
|   column-class="column-class" |  | ||||||
|   show-toolbar="{{ showToolbar }}" |  | ||||||
|   value-key="name" |  | ||||||
|   title="{{ title }}" |  | ||||||
|   loading="{{ loading }}" |  | ||||||
|   columns="{{ computed.displayColumns(columns, columnsNum) }}" |  | ||||||
|   item-height="{{ itemHeight }}" |  | ||||||
|   visible-item-count="{{ visibleItemCount }}" |  | ||||||
|   cancel-button-text="{{ cancelButtonText }}" |  | ||||||
|   confirm-button-text="{{ confirmButtonText }}" |  | ||||||
|   bind:change="onChange" |  | ||||||
|   bind:confirm="onConfirm" |  | ||||||
|   bind:cancel="onCancel" |  | ||||||
| /> |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| function displayColumns(columns, columnsNum) { |  | ||||||
|   return columns.slice(0, +columnsNum); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   displayColumns: displayColumns, |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss'; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,67 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| var button_1 = require("../mixins/button"); |  | ||||||
| var version_1 = require("../common/version"); |  | ||||||
| var mixins = [button_1.button]; |  | ||||||
| if ((0, version_1.canIUseFormFieldButton)()) { |  | ||||||
|     mixins.push('wx://form-field-button'); |  | ||||||
| } |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     mixins: mixins, |  | ||||||
|     classes: ['hover-class', 'loading-class'], |  | ||||||
|     data: { |  | ||||||
|         baseStyle: '', |  | ||||||
|     }, |  | ||||||
|     props: { |  | ||||||
|         formType: String, |  | ||||||
|         icon: String, |  | ||||||
|         classPrefix: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'van-icon', |  | ||||||
|         }, |  | ||||||
|         plain: Boolean, |  | ||||||
|         block: Boolean, |  | ||||||
|         round: Boolean, |  | ||||||
|         square: Boolean, |  | ||||||
|         loading: Boolean, |  | ||||||
|         hairline: Boolean, |  | ||||||
|         disabled: Boolean, |  | ||||||
|         loadingText: String, |  | ||||||
|         customStyle: String, |  | ||||||
|         loadingType: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'circular', |  | ||||||
|         }, |  | ||||||
|         type: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'default', |  | ||||||
|         }, |  | ||||||
|         dataset: null, |  | ||||||
|         size: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'normal', |  | ||||||
|         }, |  | ||||||
|         loadingSize: { |  | ||||||
|             type: String, |  | ||||||
|             value: '20px', |  | ||||||
|         }, |  | ||||||
|         color: String, |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         onClick: function (event) { |  | ||||||
|             var _this = this; |  | ||||||
|             this.$emit('click', event); |  | ||||||
|             var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang; |  | ||||||
|             if (openType === 'getUserInfo' && canIUseGetUserProfile) { |  | ||||||
|                 wx.getUserProfile({ |  | ||||||
|                     desc: getUserProfileDesc || '  ', |  | ||||||
|                     lang: lang || 'en', |  | ||||||
|                     complete: function (userProfile) { |  | ||||||
|                         _this.$emit('getuserinfo', userProfile); |  | ||||||
|                     }, |  | ||||||
|                 }); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,7 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "van-icon": "../icon/index", |  | ||||||
|     "van-loading": "../loading/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,56 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
|  |  | ||||||
| <button |  | ||||||
|   id="{{ id || buttonId }}" |  | ||||||
|   data-detail="{{ dataset }}" |  | ||||||
|   class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}" |  | ||||||
|   hover-class="{{ disabled || loading ? '' : 'van-button--active hover-class'}}" |  | ||||||
|   lang="{{ lang }}" |  | ||||||
|   form-type="{{ formType }}" |  | ||||||
|   style="{{ computed.rootStyle({ plain, color, customStyle }) }}" |  | ||||||
|   open-type="{{ disabled || loading || (canIUseGetUserProfile && openType === 'getUserInfo') ? '' : openType }}" |  | ||||||
|   business-id="{{ businessId }}" |  | ||||||
|   session-from="{{ sessionFrom }}" |  | ||||||
|   send-message-title="{{ sendMessageTitle }}" |  | ||||||
|   send-message-path="{{ sendMessagePath }}" |  | ||||||
|   send-message-img="{{ sendMessageImg }}" |  | ||||||
|   show-message-card="{{ showMessageCard }}" |  | ||||||
|   app-parameter="{{ appParameter }}" |  | ||||||
|   aria-label="{{ ariaLabel }}" |  | ||||||
|   bindtap="{{ disabled || loading ? '' : 'onClick' }}" |  | ||||||
|   bindgetuserinfo="onGetUserInfo" |  | ||||||
|   bindcontact="onContact" |  | ||||||
|   bindgetphonenumber="onGetPhoneNumber" |  | ||||||
|   bindgetrealtimephonenumber="onGetRealTimePhoneNumber" |  | ||||||
|   bindagreeprivacyauthorization="onAgreePrivacyAuthorization" |  | ||||||
|   binderror="onError" |  | ||||||
|   bindlaunchapp="onLaunchApp" |  | ||||||
|   bindopensetting="onOpenSetting" |  | ||||||
|   bindchooseavatar="onChooseAvatar" |  | ||||||
| > |  | ||||||
|   <block wx:if="{{ loading }}"> |  | ||||||
|     <van-loading |  | ||||||
|       custom-class="loading-class" |  | ||||||
|       size="{{ loadingSize }}" |  | ||||||
|       type="{{ loadingType }}" |  | ||||||
|       color="{{ computed.loadingColor({ type, color, plain }) }}" |  | ||||||
|     /> |  | ||||||
|     <view wx:if="{{ loadingText }}" class="van-button__loading-text"> |  | ||||||
|       {{ loadingText }} |  | ||||||
|     </view> |  | ||||||
|   </block> |  | ||||||
|   <block wx:else> |  | ||||||
|     <van-icon |  | ||||||
|       wx:if="{{ icon }}" |  | ||||||
|       size="1.2em" |  | ||||||
|       name="{{ icon }}" |  | ||||||
|       class-prefix="{{ classPrefix }}" |  | ||||||
|       class="van-button__icon" |  | ||||||
|       custom-style="line-height: inherit;" |  | ||||||
|     /> |  | ||||||
|     <view class="van-button__text"> |  | ||||||
|       <slot /> |  | ||||||
|     </view> |  | ||||||
|   </block> |  | ||||||
| </button> |  | ||||||
| @@ -1,39 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| var style = require('../wxs/style.wxs'); |  | ||||||
|  |  | ||||||
| function rootStyle(data) { |  | ||||||
|   if (!data.color) { |  | ||||||
|     return data.customStyle; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   var properties = { |  | ||||||
|     color: data.plain ? data.color : '#fff', |  | ||||||
|     background: data.plain ? null : data.color, |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   // hide border when color is linear-gradient |  | ||||||
|   if (data.color.indexOf('gradient') !== -1) { |  | ||||||
|     properties.border = 0; |  | ||||||
|   } else { |  | ||||||
|     properties['border-color'] = data.color; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return style([properties, data.customStyle]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function loadingColor(data) { |  | ||||||
|   if (data.plain) { |  | ||||||
|     return data.color ? data.color : '#c9c9c9'; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   if (data.type === 'default') { |  | ||||||
|     return '#c9c9c9'; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return '#fff'; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   rootStyle: rootStyle, |  | ||||||
|   loadingColor: loadingColor, |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0} |  | ||||||
| @@ -1,70 +0,0 @@ | |||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
| <view class="van-calendar"> |  | ||||||
|   <header |  | ||||||
|     title="{{ title }}" |  | ||||||
|     showTitle="{{ showTitle }}" |  | ||||||
|     subtitle="{{ subtitle }}" |  | ||||||
|     showSubtitle="{{ showSubtitle }}" |  | ||||||
|     firstDayOfWeek="{{ firstDayOfWeek }}" |  | ||||||
|     bind:click-subtitle="onClickSubtitle" |  | ||||||
|   > |  | ||||||
|     <slot name="title" slot="title"></slot> |  | ||||||
|   </header> |  | ||||||
|  |  | ||||||
|   <scroll-view |  | ||||||
|     class="van-calendar__body" |  | ||||||
|     scroll-y |  | ||||||
|     scroll-into-view="{{ scrollIntoView }}" |  | ||||||
|   > |  | ||||||
|     <month |  | ||||||
|       wx:for="{{ computed.getMonths(minDate, maxDate) }}" |  | ||||||
|       wx:key="index" |  | ||||||
|       id="month{{ index }}" |  | ||||||
|       class="month" |  | ||||||
|       data-date="{{ item }}" |  | ||||||
|       date="{{ item }}" |  | ||||||
|       type="{{ type }}" |  | ||||||
|       color="{{ color }}" |  | ||||||
|       minDate="{{ minDate }}" |  | ||||||
|       maxDate="{{ maxDate }}" |  | ||||||
|       showMark="{{ showMark }}" |  | ||||||
|       formatter="{{ formatter }}" |  | ||||||
|       rowHeight="{{ rowHeight }}" |  | ||||||
|       currentDate="{{ currentDate }}" |  | ||||||
|       showSubtitle="{{ showSubtitle }}" |  | ||||||
|       allowSameDay="{{ allowSameDay }}" |  | ||||||
|       showMonthTitle="{{ index !== 0 || !showSubtitle }}" |  | ||||||
|       firstDayOfWeek="{{ firstDayOfWeek }}" |  | ||||||
|       bind:click="onClickDay" |  | ||||||
|     /> |  | ||||||
|   </scroll-view> |  | ||||||
|  |  | ||||||
|   <view |  | ||||||
|     class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}" |  | ||||||
|   > |  | ||||||
|     <slot name="footer"></slot> |  | ||||||
|   </view> |  | ||||||
|  |  | ||||||
|   <view |  | ||||||
|     class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}" |  | ||||||
|   > |  | ||||||
|     <van-button |  | ||||||
|       wx:if="{{ showConfirm }}" |  | ||||||
|       round |  | ||||||
|       block |  | ||||||
|       type="danger" |  | ||||||
|       color="{{ color }}" |  | ||||||
|       custom-class="van-calendar__confirm" |  | ||||||
|       disabled="{{ computed.getButtonDisabled(type, currentDate, minRange) }}" |  | ||||||
|       nativeType="text" |  | ||||||
|       bind:click="onConfirm" |  | ||||||
|     > |  | ||||||
|       {{ |  | ||||||
|         computed.getButtonDisabled(type, currentDate, minRange) |  | ||||||
|           ? confirmDisabledText |  | ||||||
|           : confirmText |  | ||||||
|       }} |  | ||||||
|     </van-button> |  | ||||||
|   </view> |  | ||||||
| </view> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,45 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { |  | ||||||
|     if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { |  | ||||||
|         if (ar || !(i in from)) { |  | ||||||
|             if (!ar) ar = Array.prototype.slice.call(from, 0, i); |  | ||||||
|             ar[i] = from[i]; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     return to.concat(ar || Array.prototype.slice.call(from)); |  | ||||||
| }; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../../../common/component"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     props: { |  | ||||||
|         title: { |  | ||||||
|             type: String, |  | ||||||
|             value: '日期选择', |  | ||||||
|         }, |  | ||||||
|         subtitle: String, |  | ||||||
|         showTitle: Boolean, |  | ||||||
|         showSubtitle: Boolean, |  | ||||||
|         firstDayOfWeek: { |  | ||||||
|             type: Number, |  | ||||||
|             observer: 'initWeekDay', |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     data: { |  | ||||||
|         weekdays: [], |  | ||||||
|     }, |  | ||||||
|     created: function () { |  | ||||||
|         this.initWeekDay(); |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         initWeekDay: function () { |  | ||||||
|             var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六']; |  | ||||||
|             var firstDayOfWeek = this.data.firstDayOfWeek || 0; |  | ||||||
|             this.setData({ |  | ||||||
|                 weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true), |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         onClickSubtitle: function (event) { |  | ||||||
|             this.$emit('click-subtitle', event); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true |  | ||||||
| } |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| <view class="van-calendar__header"> |  | ||||||
|   <block wx:if="{{ showTitle }}"> |  | ||||||
|     <view class="van-calendar__header-title"><slot name="title"></slot></view> |  | ||||||
|     <view class="van-calendar__header-title">{{ title }}</view> |  | ||||||
|   </block> |  | ||||||
|  |  | ||||||
|   <view wx:if="{{ showSubtitle }}" class="van-calendar__header-subtitle" bind:tap="onClickSubtitle"> |  | ||||||
|     {{ subtitle }} |  | ||||||
|   </view> |  | ||||||
|  |  | ||||||
|   <view class="van-calendar__weekdays"> |  | ||||||
|     <view wx:for="{{ weekdays }}" wx:key="index" class="van-calendar__weekday"> |  | ||||||
|       {{ item }} |  | ||||||
|     </view> |  | ||||||
|   </view> |  | ||||||
| </view> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center} |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| export interface Day { |  | ||||||
|     date: Date; |  | ||||||
|     type: string; |  | ||||||
|     text: number; |  | ||||||
|     bottomInfo?: string; |  | ||||||
| } |  | ||||||
| @@ -1,158 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../../../common/component"); |  | ||||||
| var utils_1 = require("../../utils"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     props: { |  | ||||||
|         date: { |  | ||||||
|             type: null, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         type: { |  | ||||||
|             type: String, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         color: String, |  | ||||||
|         minDate: { |  | ||||||
|             type: null, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         maxDate: { |  | ||||||
|             type: null, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         showMark: Boolean, |  | ||||||
|         rowHeight: null, |  | ||||||
|         formatter: { |  | ||||||
|             type: null, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         currentDate: { |  | ||||||
|             type: null, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         firstDayOfWeek: { |  | ||||||
|             type: Number, |  | ||||||
|             observer: 'setDays', |  | ||||||
|         }, |  | ||||||
|         allowSameDay: Boolean, |  | ||||||
|         showSubtitle: Boolean, |  | ||||||
|         showMonthTitle: Boolean, |  | ||||||
|     }, |  | ||||||
|     data: { |  | ||||||
|         visible: true, |  | ||||||
|         days: [], |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         onClick: function (event) { |  | ||||||
|             var index = event.currentTarget.dataset.index; |  | ||||||
|             var item = this.data.days[index]; |  | ||||||
|             if (item.type !== 'disabled') { |  | ||||||
|                 this.$emit('click', item); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         setDays: function () { |  | ||||||
|             var days = []; |  | ||||||
|             var startDate = new Date(this.data.date); |  | ||||||
|             var year = startDate.getFullYear(); |  | ||||||
|             var month = startDate.getMonth(); |  | ||||||
|             var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1); |  | ||||||
|             for (var day = 1; day <= totalDay; day++) { |  | ||||||
|                 var date = new Date(year, month, day); |  | ||||||
|                 var type = this.getDayType(date); |  | ||||||
|                 var config = { |  | ||||||
|                     date: date, |  | ||||||
|                     type: type, |  | ||||||
|                     text: day, |  | ||||||
|                     bottomInfo: this.getBottomInfo(type), |  | ||||||
|                 }; |  | ||||||
|                 if (this.data.formatter) { |  | ||||||
|                     config = this.data.formatter(config); |  | ||||||
|                 } |  | ||||||
|                 days.push(config); |  | ||||||
|             } |  | ||||||
|             this.setData({ days: days }); |  | ||||||
|         }, |  | ||||||
|         getMultipleDayType: function (day) { |  | ||||||
|             var currentDate = this.data.currentDate; |  | ||||||
|             if (!Array.isArray(currentDate)) { |  | ||||||
|                 return ''; |  | ||||||
|             } |  | ||||||
|             var isSelected = function (date) { |  | ||||||
|                 return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; }); |  | ||||||
|             }; |  | ||||||
|             if (isSelected(day)) { |  | ||||||
|                 var prevDay = (0, utils_1.getPrevDay)(day); |  | ||||||
|                 var nextDay = (0, utils_1.getNextDay)(day); |  | ||||||
|                 var prevSelected = isSelected(prevDay); |  | ||||||
|                 var nextSelected = isSelected(nextDay); |  | ||||||
|                 if (prevSelected && nextSelected) { |  | ||||||
|                     return 'multiple-middle'; |  | ||||||
|                 } |  | ||||||
|                 if (prevSelected) { |  | ||||||
|                     return 'end'; |  | ||||||
|                 } |  | ||||||
|                 return nextSelected ? 'start' : 'multiple-selected'; |  | ||||||
|             } |  | ||||||
|             return ''; |  | ||||||
|         }, |  | ||||||
|         getRangeDayType: function (day) { |  | ||||||
|             var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; |  | ||||||
|             if (!Array.isArray(currentDate)) { |  | ||||||
|                 return ''; |  | ||||||
|             } |  | ||||||
|             var startDay = currentDate[0], endDay = currentDate[1]; |  | ||||||
|             if (!startDay) { |  | ||||||
|                 return ''; |  | ||||||
|             } |  | ||||||
|             var compareToStart = (0, utils_1.compareDay)(day, startDay); |  | ||||||
|             if (!endDay) { |  | ||||||
|                 return compareToStart === 0 ? 'start' : ''; |  | ||||||
|             } |  | ||||||
|             var compareToEnd = (0, utils_1.compareDay)(day, endDay); |  | ||||||
|             if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) { |  | ||||||
|                 return 'start-end'; |  | ||||||
|             } |  | ||||||
|             if (compareToStart === 0) { |  | ||||||
|                 return 'start'; |  | ||||||
|             } |  | ||||||
|             if (compareToEnd === 0) { |  | ||||||
|                 return 'end'; |  | ||||||
|             } |  | ||||||
|             if (compareToStart > 0 && compareToEnd < 0) { |  | ||||||
|                 return 'middle'; |  | ||||||
|             } |  | ||||||
|             return ''; |  | ||||||
|         }, |  | ||||||
|         getDayType: function (day) { |  | ||||||
|             var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate; |  | ||||||
|             if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) { |  | ||||||
|                 return 'disabled'; |  | ||||||
|             } |  | ||||||
|             if (type === 'single') { |  | ||||||
|                 return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : ''; |  | ||||||
|             } |  | ||||||
|             if (type === 'multiple') { |  | ||||||
|                 return this.getMultipleDayType(day); |  | ||||||
|             } |  | ||||||
|             /* istanbul ignore else */ |  | ||||||
|             if (type === 'range') { |  | ||||||
|                 return this.getRangeDayType(day); |  | ||||||
|             } |  | ||||||
|             return ''; |  | ||||||
|         }, |  | ||||||
|         getBottomInfo: function (type) { |  | ||||||
|             if (this.data.type === 'range') { |  | ||||||
|                 if (type === 'start') { |  | ||||||
|                     return '开始'; |  | ||||||
|                 } |  | ||||||
|                 if (type === 'end') { |  | ||||||
|                     return '结束'; |  | ||||||
|                 } |  | ||||||
|                 if (type === 'start-end') { |  | ||||||
|                     return '开始/结束'; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true |  | ||||||
| } |  | ||||||
| @@ -1,39 +0,0 @@ | |||||||
| <wxs src="./index.wxs" module="computed"></wxs> |  | ||||||
| <wxs src="../../../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <view class="van-calendar__month" style="{{ computed.getMonthStyle(visible, date, rowHeight) }}"> |  | ||||||
|   <view wx:if="{{ showMonthTitle }}" class="van-calendar__month-title"> |  | ||||||
|     {{ computed.formatMonthTitle(date) }} |  | ||||||
|   </view> |  | ||||||
|  |  | ||||||
|   <view wx:if="{{ visible }}" class="van-calendar__days"> |  | ||||||
|     <view wx:if="{{ showMark }}" class="van-calendar__month-mark"> |  | ||||||
|       {{ computed.getMark(date) }} |  | ||||||
|     </view> |  | ||||||
|  |  | ||||||
|     <view |  | ||||||
|       wx:for="{{ days }}" |  | ||||||
|       wx:key="index" |  | ||||||
|       style="{{ computed.getDayStyle(item.type, index, date, rowHeight, color, firstDayOfWeek) }}" |  | ||||||
|       class="{{ utils.bem('calendar__day', [item.type]) }} {{ item.className }}" |  | ||||||
|       data-index="{{ index }}" |  | ||||||
|       bindtap="onClick" |  | ||||||
|     > |  | ||||||
|       <view wx:if="{{ item.type === 'selected' }}" class="van-calendar__selected-day" style="width: {{ rowHeight }}px; height: {{ rowHeight }}px; background: {{ color }}"> |  | ||||||
|         <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view> |  | ||||||
|         {{ item.text }} |  | ||||||
|         <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info"> |  | ||||||
|           {{ item.bottomInfo }} |  | ||||||
|         </view> |  | ||||||
|       </view> |  | ||||||
|  |  | ||||||
|       <view wx:else> |  | ||||||
|         <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view> |  | ||||||
|         {{ item.text }} |  | ||||||
|         <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info"> |  | ||||||
|           {{ item.bottomInfo }} |  | ||||||
|         </view> |  | ||||||
|       </view> |  | ||||||
|     </view> |  | ||||||
|   </view> |  | ||||||
| </view> |  | ||||||
| @@ -1,71 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| var utils = require('../../utils.wxs'); |  | ||||||
|  |  | ||||||
| function getMark(date) { |  | ||||||
|   return getDate(date).getMonth() + 1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| var ROW_HEIGHT = 64; |  | ||||||
|  |  | ||||||
| function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) { |  | ||||||
|   var style = []; |  | ||||||
|   var current = getDate(date).getDay() || 7; |  | ||||||
|   var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) : |  | ||||||
|                current === 7 && firstDayOfWeek === 0 ? 0 : |  | ||||||
|                (current - firstDayOfWeek); |  | ||||||
|  |  | ||||||
|   if (index === 0) { |  | ||||||
|     style.push(['margin-left', (100 * offset) / 7 + '%']); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   if (rowHeight !== ROW_HEIGHT) { |  | ||||||
|     style.push(['height', rowHeight + 'px']); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   if (color) { |  | ||||||
|     if ( |  | ||||||
|       type === 'start' || |  | ||||||
|       type === 'end' || |  | ||||||
|       type === 'start-end' || |  | ||||||
|       type === 'multiple-selected' || |  | ||||||
|       type === 'multiple-middle' |  | ||||||
|     ) { |  | ||||||
|       style.push(['background', color]); |  | ||||||
|     } else if (type === 'middle') { |  | ||||||
|       style.push(['color', color]); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return style |  | ||||||
|     .map(function(item) { |  | ||||||
|       return item.join(':'); |  | ||||||
|     }) |  | ||||||
|     .join(';'); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function formatMonthTitle(date) { |  | ||||||
|   date = getDate(date); |  | ||||||
|   return date.getFullYear() + '年' + (date.getMonth() + 1) + '月'; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function getMonthStyle(visible, date, rowHeight) { |  | ||||||
|   if (!visible) { |  | ||||||
|     date = getDate(date); |  | ||||||
|  |  | ||||||
|     var totalDay = utils.getMonthEndDay( |  | ||||||
|       date.getFullYear(), |  | ||||||
|       date.getMonth() + 1 |  | ||||||
|     ); |  | ||||||
|     var offset = getDate(date).getDay(); |  | ||||||
|     var padding = Math.ceil((totalDay + offset) / 7) * rowHeight; |  | ||||||
|  |  | ||||||
|     return 'padding-bottom:' + padding + 'px'; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   getMark: getMark, |  | ||||||
|   getDayStyle: getDayStyle, |  | ||||||
|   formatMonthTitle: formatMonthTitle, |  | ||||||
|   getMonthStyle: getMonthStyle |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,383 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { |  | ||||||
|     if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { |  | ||||||
|         if (ar || !(i in from)) { |  | ||||||
|             if (!ar) ar = Array.prototype.slice.call(from, 0, i); |  | ||||||
|             ar[i] = from[i]; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     return to.concat(ar || Array.prototype.slice.call(from)); |  | ||||||
| }; |  | ||||||
| var __importDefault = (this && this.__importDefault) || function (mod) { |  | ||||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; |  | ||||||
| }; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| var utils_1 = require("./utils"); |  | ||||||
| var toast_1 = __importDefault(require("../toast/toast")); |  | ||||||
| var utils_2 = require("../common/utils"); |  | ||||||
| var initialMinDate = (0, utils_1.getToday)().getTime(); |  | ||||||
| var initialMaxDate = (function () { |  | ||||||
|     var now = (0, utils_1.getToday)(); |  | ||||||
|     return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime(); |  | ||||||
| })(); |  | ||||||
| var getTime = function (date) { |  | ||||||
|     return date instanceof Date ? date.getTime() : date; |  | ||||||
| }; |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     props: { |  | ||||||
|         title: { |  | ||||||
|             type: String, |  | ||||||
|             value: '日期选择', |  | ||||||
|         }, |  | ||||||
|         color: String, |  | ||||||
|         show: { |  | ||||||
|             type: Boolean, |  | ||||||
|             observer: function (val) { |  | ||||||
|                 if (val) { |  | ||||||
|                     this.initRect(); |  | ||||||
|                     this.scrollIntoView(); |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         formatter: null, |  | ||||||
|         confirmText: { |  | ||||||
|             type: String, |  | ||||||
|             value: '确定', |  | ||||||
|         }, |  | ||||||
|         confirmDisabledText: { |  | ||||||
|             type: String, |  | ||||||
|             value: '确定', |  | ||||||
|         }, |  | ||||||
|         rangePrompt: String, |  | ||||||
|         showRangePrompt: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         defaultDate: { |  | ||||||
|             type: null, |  | ||||||
|             value: (0, utils_1.getToday)().getTime(), |  | ||||||
|             observer: function (val) { |  | ||||||
|                 this.setData({ currentDate: val }); |  | ||||||
|                 this.scrollIntoView(); |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         allowSameDay: Boolean, |  | ||||||
|         type: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'single', |  | ||||||
|             observer: 'reset', |  | ||||||
|         }, |  | ||||||
|         minDate: { |  | ||||||
|             type: Number, |  | ||||||
|             value: initialMinDate, |  | ||||||
|         }, |  | ||||||
|         maxDate: { |  | ||||||
|             type: Number, |  | ||||||
|             value: initialMaxDate, |  | ||||||
|         }, |  | ||||||
|         position: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'bottom', |  | ||||||
|         }, |  | ||||||
|         rowHeight: { |  | ||||||
|             type: null, |  | ||||||
|             value: utils_1.ROW_HEIGHT, |  | ||||||
|         }, |  | ||||||
|         round: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         poppable: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         showMark: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         showTitle: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         showConfirm: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         showSubtitle: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         safeAreaInsetBottom: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         closeOnClickOverlay: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         maxRange: { |  | ||||||
|             type: null, |  | ||||||
|             value: null, |  | ||||||
|         }, |  | ||||||
|         minRange: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 1, |  | ||||||
|         }, |  | ||||||
|         firstDayOfWeek: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 0, |  | ||||||
|         }, |  | ||||||
|         readonly: Boolean, |  | ||||||
|         rootPortal: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: false, |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     data: { |  | ||||||
|         subtitle: '', |  | ||||||
|         currentDate: null, |  | ||||||
|         scrollIntoView: '', |  | ||||||
|     }, |  | ||||||
|     watch: { |  | ||||||
|         minDate: function () { |  | ||||||
|             this.initRect(); |  | ||||||
|         }, |  | ||||||
|         maxDate: function () { |  | ||||||
|             this.initRect(); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     created: function () { |  | ||||||
|         this.setData({ |  | ||||||
|             currentDate: this.getInitialDate(this.data.defaultDate), |  | ||||||
|         }); |  | ||||||
|     }, |  | ||||||
|     mounted: function () { |  | ||||||
|         if (this.data.show || !this.data.poppable) { |  | ||||||
|             this.initRect(); |  | ||||||
|             this.scrollIntoView(); |  | ||||||
|         } |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         reset: function () { |  | ||||||
|             this.setData({ currentDate: this.getInitialDate(this.data.defaultDate) }); |  | ||||||
|             this.scrollIntoView(); |  | ||||||
|         }, |  | ||||||
|         initRect: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             if (this.contentObserver != null) { |  | ||||||
|                 this.contentObserver.disconnect(); |  | ||||||
|             } |  | ||||||
|             var contentObserver = this.createIntersectionObserver({ |  | ||||||
|                 thresholds: [0, 0.1, 0.9, 1], |  | ||||||
|                 observeAll: true, |  | ||||||
|             }); |  | ||||||
|             this.contentObserver = contentObserver; |  | ||||||
|             contentObserver.relativeTo('.van-calendar__body'); |  | ||||||
|             contentObserver.observe('.month', function (res) { |  | ||||||
|                 if (res.boundingClientRect.top <= res.relativeRect.top) { |  | ||||||
|                     // @ts-ignore |  | ||||||
|                     _this.setData({ subtitle: (0, utils_1.formatMonthTitle)(res.dataset.date) }); |  | ||||||
|                 } |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         limitDateRange: function (date, minDate, maxDate) { |  | ||||||
|             if (minDate === void 0) { minDate = null; } |  | ||||||
|             if (maxDate === void 0) { maxDate = null; } |  | ||||||
|             minDate = minDate || this.data.minDate; |  | ||||||
|             maxDate = maxDate || this.data.maxDate; |  | ||||||
|             if ((0, utils_1.compareDay)(date, minDate) === -1) { |  | ||||||
|                 return minDate; |  | ||||||
|             } |  | ||||||
|             if ((0, utils_1.compareDay)(date, maxDate) === 1) { |  | ||||||
|                 return maxDate; |  | ||||||
|             } |  | ||||||
|             return date; |  | ||||||
|         }, |  | ||||||
|         getInitialDate: function (defaultDate) { |  | ||||||
|             var _this = this; |  | ||||||
|             if (defaultDate === void 0) { defaultDate = null; } |  | ||||||
|             var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, allowSameDay = _a.allowSameDay; |  | ||||||
|             if (!defaultDate) |  | ||||||
|                 return []; |  | ||||||
|             var now = (0, utils_1.getToday)().getTime(); |  | ||||||
|             if (type === 'range') { |  | ||||||
|                 if (!Array.isArray(defaultDate)) { |  | ||||||
|                     defaultDate = []; |  | ||||||
|                 } |  | ||||||
|                 var _b = defaultDate || [], startDay = _b[0], endDay = _b[1]; |  | ||||||
|                 var startDate = getTime(startDay || now); |  | ||||||
|                 var start = this.limitDateRange(startDate, minDate, allowSameDay ? startDate : (0, utils_1.getPrevDay)(new Date(maxDate)).getTime()); |  | ||||||
|                 var date = getTime(endDay || now); |  | ||||||
|                 var end = this.limitDateRange(date, allowSameDay ? date : (0, utils_1.getNextDay)(new Date(minDate)).getTime()); |  | ||||||
|                 return [start, end]; |  | ||||||
|             } |  | ||||||
|             if (type === 'multiple') { |  | ||||||
|                 if (Array.isArray(defaultDate)) { |  | ||||||
|                     return defaultDate.map(function (date) { return _this.limitDateRange(date); }); |  | ||||||
|                 } |  | ||||||
|                 return [this.limitDateRange(now)]; |  | ||||||
|             } |  | ||||||
|             if (!defaultDate || Array.isArray(defaultDate)) { |  | ||||||
|                 defaultDate = now; |  | ||||||
|             } |  | ||||||
|             return this.limitDateRange(defaultDate); |  | ||||||
|         }, |  | ||||||
|         scrollIntoView: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             (0, utils_2.requestAnimationFrame)(function () { |  | ||||||
|                 var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate; |  | ||||||
|                 if (!currentDate) |  | ||||||
|                     return; |  | ||||||
|                 // @ts-ignore |  | ||||||
|                 var targetDate = type === 'single' ? currentDate : currentDate[0]; |  | ||||||
|                 var displayed = show || !poppable; |  | ||||||
|                 if (!targetDate || !displayed) { |  | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
|                 var months = (0, utils_1.getMonths)(minDate, maxDate); |  | ||||||
|                 months.some(function (month, index) { |  | ||||||
|                     if ((0, utils_1.compareMonth)(month, targetDate) === 0) { |  | ||||||
|                         _this.setData({ scrollIntoView: "month".concat(index) }); |  | ||||||
|                         return true; |  | ||||||
|                     } |  | ||||||
|                     return false; |  | ||||||
|                 }); |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         onOpen: function () { |  | ||||||
|             this.$emit('open'); |  | ||||||
|         }, |  | ||||||
|         onOpened: function () { |  | ||||||
|             this.$emit('opened'); |  | ||||||
|         }, |  | ||||||
|         onClose: function () { |  | ||||||
|             this.$emit('close'); |  | ||||||
|         }, |  | ||||||
|         onClosed: function () { |  | ||||||
|             this.$emit('closed'); |  | ||||||
|         }, |  | ||||||
|         onClickDay: function (event) { |  | ||||||
|             if (this.data.readonly) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             var date = event.detail.date; |  | ||||||
|             var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay; |  | ||||||
|             if (type === 'range') { |  | ||||||
|                 // @ts-ignore |  | ||||||
|                 var startDay_1 = currentDate[0], endDay = currentDate[1]; |  | ||||||
|                 if (startDay_1 && !endDay) { |  | ||||||
|                     var compareToStart = (0, utils_1.compareDay)(date, startDay_1); |  | ||||||
|                     if (compareToStart === 1) { |  | ||||||
|                         var days_1 = this.selectComponent('.month').data.days; |  | ||||||
|                         days_1.some(function (day, index) { |  | ||||||
|                             var isDisabled = day.type === 'disabled' && |  | ||||||
|                                 getTime(startDay_1) < getTime(day.date) && |  | ||||||
|                                 getTime(day.date) < getTime(date); |  | ||||||
|                             if (isDisabled) { |  | ||||||
|                                 (date = days_1[index - 1].date); |  | ||||||
|                             } |  | ||||||
|                             return isDisabled; |  | ||||||
|                         }); |  | ||||||
|                         this.select([startDay_1, date], true); |  | ||||||
|                     } |  | ||||||
|                     else if (compareToStart === -1) { |  | ||||||
|                         this.select([date, null]); |  | ||||||
|                     } |  | ||||||
|                     else if (allowSameDay) { |  | ||||||
|                         this.select([date, date], true); |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 else { |  | ||||||
|                     this.select([date, null]); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             else if (type === 'multiple') { |  | ||||||
|                 var selectedIndex_1; |  | ||||||
|                 // @ts-ignore |  | ||||||
|                 var selected = currentDate.some(function (dateItem, index) { |  | ||||||
|                     var equal = (0, utils_1.compareDay)(dateItem, date) === 0; |  | ||||||
|                     if (equal) { |  | ||||||
|                         selectedIndex_1 = index; |  | ||||||
|                     } |  | ||||||
|                     return equal; |  | ||||||
|                 }); |  | ||||||
|                 if (selected) { |  | ||||||
|                     // @ts-ignore |  | ||||||
|                     var cancelDate = currentDate.splice(selectedIndex_1, 1); |  | ||||||
|                     this.setData({ currentDate: currentDate }); |  | ||||||
|                     this.unselect(cancelDate); |  | ||||||
|                 } |  | ||||||
|                 else { |  | ||||||
|                     // @ts-ignore |  | ||||||
|                     this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false)); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             else { |  | ||||||
|                 this.select(date, true); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         unselect: function (dateArray) { |  | ||||||
|             var date = dateArray[0]; |  | ||||||
|             if (date) { |  | ||||||
|                 this.$emit('unselect', (0, utils_1.copyDates)(date)); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         select: function (date, complete) { |  | ||||||
|             if (complete && this.data.type === 'range') { |  | ||||||
|                 var valid = this.checkRange(date); |  | ||||||
|                 if (!valid) { |  | ||||||
|                     // auto selected to max range if showConfirm |  | ||||||
|                     if (this.data.showConfirm) { |  | ||||||
|                         this.emit([ |  | ||||||
|                             date[0], |  | ||||||
|                             (0, utils_1.getDayByOffset)(date[0], this.data.maxRange - 1), |  | ||||||
|                         ]); |  | ||||||
|                     } |  | ||||||
|                     else { |  | ||||||
|                         this.emit(date); |  | ||||||
|                     } |  | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             this.emit(date); |  | ||||||
|             if (complete && !this.data.showConfirm) { |  | ||||||
|                 this.onConfirm(); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         emit: function (date) { |  | ||||||
|             this.setData({ |  | ||||||
|                 currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date), |  | ||||||
|             }); |  | ||||||
|             this.$emit('select', (0, utils_1.copyDates)(date)); |  | ||||||
|         }, |  | ||||||
|         checkRange: function (date) { |  | ||||||
|             var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt; |  | ||||||
|             if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) { |  | ||||||
|                 if (showRangePrompt) { |  | ||||||
|                     (0, toast_1.default)({ |  | ||||||
|                         context: this, |  | ||||||
|                         message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"), |  | ||||||
|                     }); |  | ||||||
|                 } |  | ||||||
|                 this.$emit('over-range'); |  | ||||||
|                 return false; |  | ||||||
|             } |  | ||||||
|             return true; |  | ||||||
|         }, |  | ||||||
|         onConfirm: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             if (this.data.type === 'range' && |  | ||||||
|                 !this.checkRange(this.data.currentDate)) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             wx.nextTick(function () { |  | ||||||
|                 // @ts-ignore |  | ||||||
|                 _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate)); |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         onClickSubtitle: function (event) { |  | ||||||
|             this.$emit('click-subtitle', event); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,10 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "header": "./components/header/index", |  | ||||||
|     "month": "./components/month/index", |  | ||||||
|     "van-button": "../button/index", |  | ||||||
|     "van-popup": "../popup/index", |  | ||||||
|     "van-toast": "../toast/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,27 +0,0 @@ | |||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <import src="./calendar.wxml" /> |  | ||||||
|  |  | ||||||
| <van-popup |  | ||||||
|   wx:if="{{ poppable }}" |  | ||||||
|   custom-class="van-calendar__popup--{{ position }}" |  | ||||||
|   close-icon-class="van-calendar__close-icon" |  | ||||||
|   show="{{ show }}" |  | ||||||
|   round="{{ round }}" |  | ||||||
|   position="{{ position }}" |  | ||||||
|   closeable="{{ showTitle || showSubtitle }}" |  | ||||||
|   close-on-click-overlay="{{ closeOnClickOverlay }}" |  | ||||||
|   safe-area-inset-bottom="{{ safeAreaInsetBottom }}" |  | ||||||
|   root-portal="{{ rootPortal }}" |  | ||||||
|   bind:enter="onOpen" |  | ||||||
|   bind:close="onClose" |  | ||||||
|   bind:after-enter="onOpened" |  | ||||||
|   bind:after-leave="onClosed" |  | ||||||
| > |  | ||||||
|   <include src="./calendar.wxml" /> |  | ||||||
| </van-popup> |  | ||||||
|  |  | ||||||
| <include wx:else src="./calendar.wxml" /> |  | ||||||
|  |  | ||||||
| <van-toast id="van-toast" /> |  | ||||||
| @@ -1,37 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| var utils = require('./utils.wxs'); |  | ||||||
|  |  | ||||||
| function getMonths(minDate, maxDate) { |  | ||||||
|   var months = []; |  | ||||||
|   var cursor = getDate(minDate); |  | ||||||
|  |  | ||||||
|   cursor.setDate(1); |  | ||||||
|  |  | ||||||
|   do { |  | ||||||
|     months.push(cursor.getTime()); |  | ||||||
|     cursor.setMonth(cursor.getMonth() + 1); |  | ||||||
|   } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1); |  | ||||||
|  |  | ||||||
|   return months; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function getButtonDisabled(type, currentDate, minRange) { |  | ||||||
|   if (currentDate == null) { |  | ||||||
|     return true; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   if (type === 'range') { |  | ||||||
|     return !currentDate[0] || !currentDate[1]; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   if (type === 'multiple') { |  | ||||||
|     return currentDate.length < minRange; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return !currentDate; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   getMonths: getMonths, |  | ||||||
|   getButtonDisabled: getButtonDisabled |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,90%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important} |  | ||||||
							
								
								
									
										12
									
								
								miniprogram_npm/@vant/weapp/calendar/utils.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								miniprogram_npm/@vant/weapp/calendar/utils.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,12 +0,0 @@ | |||||||
| export declare const ROW_HEIGHT = 64; |  | ||||||
| export declare function formatMonthTitle(date: Date): string; |  | ||||||
| export declare function compareMonth(date1: Date | number, date2: Date | number): 0 | 1 | -1; |  | ||||||
| export declare function compareDay(day1: Date | number, day2: Date | number): 0 | 1 | -1; |  | ||||||
| export declare function getDayByOffset(date: Date, offset: number): Date; |  | ||||||
| export declare function getPrevDay(date: Date): Date; |  | ||||||
| export declare function getNextDay(date: Date): Date; |  | ||||||
| export declare function getToday(): Date; |  | ||||||
| export declare function calcDateNum(date: [Date, Date]): number; |  | ||||||
| export declare function copyDates(dates: Date | Date[]): Date | Date[]; |  | ||||||
| export declare function getMonthEndDay(year: number, month: number): number; |  | ||||||
| export declare function getMonths(minDate: number, maxDate: number): number[]; |  | ||||||
| @@ -1,97 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0; |  | ||||||
| exports.ROW_HEIGHT = 64; |  | ||||||
| function formatMonthTitle(date) { |  | ||||||
|     if (!(date instanceof Date)) { |  | ||||||
|         date = new Date(date); |  | ||||||
|     } |  | ||||||
|     return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708"); |  | ||||||
| } |  | ||||||
| exports.formatMonthTitle = formatMonthTitle; |  | ||||||
| function compareMonth(date1, date2) { |  | ||||||
|     if (!(date1 instanceof Date)) { |  | ||||||
|         date1 = new Date(date1); |  | ||||||
|     } |  | ||||||
|     if (!(date2 instanceof Date)) { |  | ||||||
|         date2 = new Date(date2); |  | ||||||
|     } |  | ||||||
|     var year1 = date1.getFullYear(); |  | ||||||
|     var year2 = date2.getFullYear(); |  | ||||||
|     var month1 = date1.getMonth(); |  | ||||||
|     var month2 = date2.getMonth(); |  | ||||||
|     if (year1 === year2) { |  | ||||||
|         return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; |  | ||||||
|     } |  | ||||||
|     return year1 > year2 ? 1 : -1; |  | ||||||
| } |  | ||||||
| exports.compareMonth = compareMonth; |  | ||||||
| function compareDay(day1, day2) { |  | ||||||
|     if (!(day1 instanceof Date)) { |  | ||||||
|         day1 = new Date(day1); |  | ||||||
|     } |  | ||||||
|     if (!(day2 instanceof Date)) { |  | ||||||
|         day2 = new Date(day2); |  | ||||||
|     } |  | ||||||
|     var compareMonthResult = compareMonth(day1, day2); |  | ||||||
|     if (compareMonthResult === 0) { |  | ||||||
|         var date1 = day1.getDate(); |  | ||||||
|         var date2 = day2.getDate(); |  | ||||||
|         return date1 === date2 ? 0 : date1 > date2 ? 1 : -1; |  | ||||||
|     } |  | ||||||
|     return compareMonthResult; |  | ||||||
| } |  | ||||||
| exports.compareDay = compareDay; |  | ||||||
| function getDayByOffset(date, offset) { |  | ||||||
|     date = new Date(date); |  | ||||||
|     date.setDate(date.getDate() + offset); |  | ||||||
|     return date; |  | ||||||
| } |  | ||||||
| exports.getDayByOffset = getDayByOffset; |  | ||||||
| function getPrevDay(date) { |  | ||||||
|     return getDayByOffset(date, -1); |  | ||||||
| } |  | ||||||
| exports.getPrevDay = getPrevDay; |  | ||||||
| function getNextDay(date) { |  | ||||||
|     return getDayByOffset(date, 1); |  | ||||||
| } |  | ||||||
| exports.getNextDay = getNextDay; |  | ||||||
| function getToday() { |  | ||||||
|     var today = new Date(); |  | ||||||
|     today.setHours(0, 0, 0, 0); |  | ||||||
|     return today; |  | ||||||
| } |  | ||||||
| exports.getToday = getToday; |  | ||||||
| function calcDateNum(date) { |  | ||||||
|     var day1 = new Date(date[0]).getTime(); |  | ||||||
|     var day2 = new Date(date[1]).getTime(); |  | ||||||
|     return (day2 - day1) / (1000 * 60 * 60 * 24) + 1; |  | ||||||
| } |  | ||||||
| exports.calcDateNum = calcDateNum; |  | ||||||
| function copyDates(dates) { |  | ||||||
|     if (Array.isArray(dates)) { |  | ||||||
|         return dates.map(function (date) { |  | ||||||
|             if (date === null) { |  | ||||||
|                 return date; |  | ||||||
|             } |  | ||||||
|             return new Date(date); |  | ||||||
|         }); |  | ||||||
|     } |  | ||||||
|     return new Date(dates); |  | ||||||
| } |  | ||||||
| exports.copyDates = copyDates; |  | ||||||
| function getMonthEndDay(year, month) { |  | ||||||
|     return 32 - new Date(year, month - 1, 32).getDate(); |  | ||||||
| } |  | ||||||
| exports.getMonthEndDay = getMonthEndDay; |  | ||||||
| function getMonths(minDate, maxDate) { |  | ||||||
|     var months = []; |  | ||||||
|     var cursor = new Date(minDate); |  | ||||||
|     cursor.setDate(1); |  | ||||||
|     do { |  | ||||||
|         months.push(cursor.getTime()); |  | ||||||
|         cursor.setMonth(cursor.getMonth() + 1); |  | ||||||
|     } while (compareMonth(cursor, maxDate) !== 1); |  | ||||||
|     return months; |  | ||||||
| } |  | ||||||
| exports.getMonths = getMonths; |  | ||||||
| @@ -1,25 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| function getMonthEndDay(year, month) { |  | ||||||
|   return 32 -  getDate(year, month - 1, 32).getDate(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function compareMonth(date1, date2) { |  | ||||||
|   date1 = getDate(date1); |  | ||||||
|   date2 = getDate(date2); |  | ||||||
|  |  | ||||||
|   var year1 = date1.getFullYear(); |  | ||||||
|   var year2 = date2.getFullYear(); |  | ||||||
|   var month1 = date1.getMonth(); |  | ||||||
|   var month2 = date2.getMonth(); |  | ||||||
|  |  | ||||||
|   if (year1 === year2) { |  | ||||||
|     return month1 === month2 ? 0 : month1 > month2 ? 1 : -1; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return year1 > year2 ? 1 : -1; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   getMonthEndDay: getMonthEndDay, |  | ||||||
|   compareMonth: compareMonth |  | ||||||
| }; |  | ||||||
							
								
								
									
										1
									
								
								miniprogram_npm/@vant/weapp/card/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								miniprogram_npm/@vant/weapp/card/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,51 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var link_1 = require("../mixins/link"); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     classes: [ |  | ||||||
|         'num-class', |  | ||||||
|         'desc-class', |  | ||||||
|         'thumb-class', |  | ||||||
|         'title-class', |  | ||||||
|         'price-class', |  | ||||||
|         'origin-price-class', |  | ||||||
|     ], |  | ||||||
|     mixins: [link_1.link], |  | ||||||
|     props: { |  | ||||||
|         tag: String, |  | ||||||
|         num: String, |  | ||||||
|         desc: String, |  | ||||||
|         thumb: String, |  | ||||||
|         title: String, |  | ||||||
|         price: { |  | ||||||
|             type: String, |  | ||||||
|             observer: 'updatePrice', |  | ||||||
|         }, |  | ||||||
|         centered: Boolean, |  | ||||||
|         lazyLoad: Boolean, |  | ||||||
|         thumbLink: String, |  | ||||||
|         originPrice: String, |  | ||||||
|         thumbMode: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'aspectFit', |  | ||||||
|         }, |  | ||||||
|         currency: { |  | ||||||
|             type: String, |  | ||||||
|             value: '¥', |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         updatePrice: function () { |  | ||||||
|             var price = this.data.price; |  | ||||||
|             var priceArr = price.toString().split('.'); |  | ||||||
|             this.setData({ |  | ||||||
|                 integerStr: priceArr[0], |  | ||||||
|                 decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '', |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         onClickThumb: function () { |  | ||||||
|             this.jumpLink('thumbLink'); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,56 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <view class="custom-class van-card"> |  | ||||||
|   <view class="{{ utils.bem('card__header', { center: centered }) }}"> |  | ||||||
|     <view class="van-card__thumb" bind:tap="onClickThumb"> |  | ||||||
|       <image |  | ||||||
|         wx:if="{{ thumb }}" |  | ||||||
|         src="{{ thumb }}" |  | ||||||
|         mode="{{ thumbMode }}" |  | ||||||
|         lazy-load="{{ lazyLoad }}" |  | ||||||
|         class="van-card__img thumb-class" |  | ||||||
|       /> |  | ||||||
|       <slot wx:else name="thumb" /> |  | ||||||
|       <van-tag |  | ||||||
|         wx:if="{{ tag }}" |  | ||||||
|         mark |  | ||||||
|         type="danger" |  | ||||||
|         custom-class="van-card__tag" |  | ||||||
|       > |  | ||||||
|         {{ tag }} |  | ||||||
|       </van-tag> |  | ||||||
|       <slot wx:else name="tag" /> |  | ||||||
|     </view> |  | ||||||
|  |  | ||||||
|     <view class="van-card__content {{ utils.bem('card__content', { center: centered }) }}"> |  | ||||||
|       <view> |  | ||||||
|         <view wx:if="{{ title }}" class="van-card__title title-class">{{ title }}</view> |  | ||||||
|         <slot wx:else name="title" /> |  | ||||||
|  |  | ||||||
|         <view wx:if="{{ desc }}" class="van-card__desc desc-class">{{ desc }}</view> |  | ||||||
|         <slot wx:else name="desc" /> |  | ||||||
|  |  | ||||||
|         <slot name="tags" /> |  | ||||||
|       </view> |  | ||||||
|  |  | ||||||
|       <view class="van-card__bottom"> |  | ||||||
|         <slot name="price-top" /> |  | ||||||
|         <view wx:if="{{ price || price === 0 }}" class="van-card__price price-class"> |  | ||||||
|           <text>{{ currency }}</text> |  | ||||||
|           <text class="van-card__price-integer">{{ integerStr }}</text> |  | ||||||
|           <text class="van-card__price-decimal">{{ decimalStr }}</text> |  | ||||||
|         </view> |  | ||||||
|         <slot wx:else name="price" /> |  | ||||||
|         <view wx:if="{{ originPrice || originPrice === 0 }}" class="van-card__origin-price origin-price-class">{{ currency }} {{ originPrice }}</view> |  | ||||||
|         <slot wx:else name="origin-price" /> |  | ||||||
|         <view wx:if="{{ num }}" class="van-card__num num-class">x {{ num }}</view> |  | ||||||
|         <slot wx:else  name="num" /> |  | ||||||
|         <slot name="bottom" /> |  | ||||||
|       </view> |  | ||||||
|     </view> |  | ||||||
|   </view> |  | ||||||
|  |  | ||||||
|   <view class="van-card__footer"> |  | ||||||
|     <slot name="footer" /> |  | ||||||
|   </view> |  | ||||||
| </view> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,223 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { |  | ||||||
|     if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { |  | ||||||
|         if (ar || !(i in from)) { |  | ||||||
|             if (!ar) ar = Array.prototype.slice.call(from, 0, i); |  | ||||||
|             ar[i] = from[i]; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
|     return to.concat(ar || Array.prototype.slice.call(from)); |  | ||||||
| }; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| var FieldName; |  | ||||||
| (function (FieldName) { |  | ||||||
|     FieldName["TEXT"] = "text"; |  | ||||||
|     FieldName["VALUE"] = "value"; |  | ||||||
|     FieldName["CHILDREN"] = "children"; |  | ||||||
| })(FieldName || (FieldName = {})); |  | ||||||
| var defaultFieldNames = { |  | ||||||
|     text: FieldName.TEXT, |  | ||||||
|     value: FieldName.VALUE, |  | ||||||
|     children: FieldName.CHILDREN, |  | ||||||
| }; |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     props: { |  | ||||||
|         title: String, |  | ||||||
|         value: { |  | ||||||
|             type: String, |  | ||||||
|         }, |  | ||||||
|         placeholder: { |  | ||||||
|             type: String, |  | ||||||
|             value: '请选择', |  | ||||||
|         }, |  | ||||||
|         activeColor: { |  | ||||||
|             type: String, |  | ||||||
|             value: '#1989fa', |  | ||||||
|         }, |  | ||||||
|         options: { |  | ||||||
|             type: Array, |  | ||||||
|             value: [], |  | ||||||
|         }, |  | ||||||
|         swipeable: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: false, |  | ||||||
|         }, |  | ||||||
|         closeable: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         showHeader: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         closeIcon: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'cross', |  | ||||||
|         }, |  | ||||||
|         fieldNames: { |  | ||||||
|             type: Object, |  | ||||||
|             value: defaultFieldNames, |  | ||||||
|             observer: 'updateFieldNames', |  | ||||||
|         }, |  | ||||||
|         useTitleSlot: Boolean, |  | ||||||
|     }, |  | ||||||
|     data: { |  | ||||||
|         tabs: [], |  | ||||||
|         activeTab: 0, |  | ||||||
|         textKey: FieldName.TEXT, |  | ||||||
|         valueKey: FieldName.VALUE, |  | ||||||
|         childrenKey: FieldName.CHILDREN, |  | ||||||
|         innerValue: '', |  | ||||||
|     }, |  | ||||||
|     watch: { |  | ||||||
|         options: function () { |  | ||||||
|             this.updateTabs(); |  | ||||||
|         }, |  | ||||||
|         value: function (newVal) { |  | ||||||
|             this.updateValue(newVal); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     created: function () { |  | ||||||
|         this.updateTabs(); |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         updateValue: function (val) { |  | ||||||
|             var _this = this; |  | ||||||
|             if (val !== undefined) { |  | ||||||
|                 var values = this.data.tabs.map(function (tab) { return tab.selected && tab.selected[_this.data.valueKey]; }); |  | ||||||
|                 if (values.indexOf(val) > -1) { |  | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             this.innerValue = val; |  | ||||||
|             this.updateTabs(); |  | ||||||
|         }, |  | ||||||
|         updateFieldNames: function () { |  | ||||||
|             var _a = this.data.fieldNames || defaultFieldNames, _b = _a.text, text = _b === void 0 ? 'text' : _b, _c = _a.value, value = _c === void 0 ? 'value' : _c, _d = _a.children, children = _d === void 0 ? 'children' : _d; |  | ||||||
|             this.setData({ |  | ||||||
|                 textKey: text, |  | ||||||
|                 valueKey: value, |  | ||||||
|                 childrenKey: children, |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         getSelectedOptionsByValue: function (options, value) { |  | ||||||
|             for (var i = 0; i < options.length; i++) { |  | ||||||
|                 var option = options[i]; |  | ||||||
|                 if (option[this.data.valueKey] === value) { |  | ||||||
|                     return [option]; |  | ||||||
|                 } |  | ||||||
|                 if (option[this.data.childrenKey]) { |  | ||||||
|                     var selectedOptions = this.getSelectedOptionsByValue(option[this.data.childrenKey], value); |  | ||||||
|                     if (selectedOptions) { |  | ||||||
|                         return __spreadArray([option], selectedOptions, true); |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         updateTabs: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             var options = this.data.options; |  | ||||||
|             var innerValue = this.innerValue; |  | ||||||
|             if (!options.length) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             if (innerValue !== undefined) { |  | ||||||
|                 var selectedOptions = this.getSelectedOptionsByValue(options, innerValue); |  | ||||||
|                 if (selectedOptions) { |  | ||||||
|                     var optionsCursor_1 = options; |  | ||||||
|                     var tabs_1 = selectedOptions.map(function (option) { |  | ||||||
|                         var tab = { |  | ||||||
|                             options: optionsCursor_1, |  | ||||||
|                             selected: option, |  | ||||||
|                         }; |  | ||||||
|                         var next = optionsCursor_1.find(function (item) { return item[_this.data.valueKey] === option[_this.data.valueKey]; }); |  | ||||||
|                         if (next) { |  | ||||||
|                             optionsCursor_1 = next[_this.data.childrenKey]; |  | ||||||
|                         } |  | ||||||
|                         return tab; |  | ||||||
|                     }); |  | ||||||
|                     if (optionsCursor_1) { |  | ||||||
|                         tabs_1.push({ |  | ||||||
|                             options: optionsCursor_1, |  | ||||||
|                             selected: null, |  | ||||||
|                         }); |  | ||||||
|                     } |  | ||||||
|                     this.setData({ |  | ||||||
|                         tabs: tabs_1, |  | ||||||
|                     }); |  | ||||||
|                     wx.nextTick(function () { |  | ||||||
|                         _this.setData({ |  | ||||||
|                             activeTab: tabs_1.length - 1, |  | ||||||
|                         }); |  | ||||||
|                     }); |  | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             this.setData({ |  | ||||||
|                 tabs: [ |  | ||||||
|                     { |  | ||||||
|                         options: options, |  | ||||||
|                         selected: null, |  | ||||||
|                     }, |  | ||||||
|                 ], |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         onClose: function () { |  | ||||||
|             this.$emit('close'); |  | ||||||
|         }, |  | ||||||
|         onClickTab: function (e) { |  | ||||||
|             var _a = e.detail, tabIndex = _a.index, title = _a.title; |  | ||||||
|             this.$emit('click-tab', { title: title, tabIndex: tabIndex }); |  | ||||||
|             this.setData({ |  | ||||||
|                 activeTab: tabIndex, |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         // 选中 |  | ||||||
|         onSelect: function (e) { |  | ||||||
|             var _this = this; |  | ||||||
|             var _a = e.currentTarget.dataset, option = _a.option, tabIndex = _a.tabIndex; |  | ||||||
|             if (option && option.disabled) { |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             var _b = this.data, valueKey = _b.valueKey, childrenKey = _b.childrenKey; |  | ||||||
|             var tabs = this.data.tabs; |  | ||||||
|             tabs[tabIndex].selected = option; |  | ||||||
|             if (tabs.length > tabIndex + 1) { |  | ||||||
|                 tabs = tabs.slice(0, tabIndex + 1); |  | ||||||
|             } |  | ||||||
|             if (option[childrenKey]) { |  | ||||||
|                 var nextTab = { |  | ||||||
|                     options: option[childrenKey], |  | ||||||
|                     selected: null, |  | ||||||
|                 }; |  | ||||||
|                 if (tabs[tabIndex + 1]) { |  | ||||||
|                     tabs[tabIndex + 1] = nextTab; |  | ||||||
|                 } |  | ||||||
|                 else { |  | ||||||
|                     tabs.push(nextTab); |  | ||||||
|                 } |  | ||||||
|                 wx.nextTick(function () { |  | ||||||
|                     _this.setData({ |  | ||||||
|                         activeTab: tabIndex + 1, |  | ||||||
|                     }); |  | ||||||
|                 }); |  | ||||||
|             } |  | ||||||
|             this.setData({ |  | ||||||
|                 tabs: tabs, |  | ||||||
|             }); |  | ||||||
|             var selectedOptions = tabs.map(function (tab) { return tab.selected; }).filter(Boolean); |  | ||||||
|             var value = option[valueKey]; |  | ||||||
|             var params = { |  | ||||||
|                 value: value, |  | ||||||
|                 tabIndex: tabIndex, |  | ||||||
|                 selectedOptions: selectedOptions, |  | ||||||
|             }; |  | ||||||
|             this.innerValue = value; |  | ||||||
|             this.$emit('change', params); |  | ||||||
|             if (!option[childrenKey]) { |  | ||||||
|                 this.$emit('finish', params); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,8 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "van-icon": "../icon/index", |  | ||||||
|     "van-tab":  "../tab/index", |  | ||||||
|     "van-tabs": "../tabs/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,54 +0,0 @@ | |||||||
| <wxs src="./index.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <view wx:if="{{ showHeader }}" class="van-cascader__header"> |  | ||||||
|   <slot name="title" wx:if="{{ useTitleSlot }}"></slot> |  | ||||||
|   <text class="van-cascader__title" wx:else>{{ title }}</text> |  | ||||||
|   <van-icon |  | ||||||
|     wx:if="{{ closeable }}" |  | ||||||
|     name="{{ closeIcon }}" |  | ||||||
|     class="van-cascader__close-icon" |  | ||||||
|     bind:tap="onClose" |  | ||||||
|   /> |  | ||||||
| </view> |  | ||||||
|  |  | ||||||
| <van-tabs |  | ||||||
|   active="{{ activeTab }}" |  | ||||||
|   custom-class="van-cascader__tabs" |  | ||||||
|   wrap-class="van-cascader__tabs-wrap" |  | ||||||
|   tab-class="van-cascader__tab" |  | ||||||
|   color="{{ activeColor }}" |  | ||||||
|   border="{{ false }}" |  | ||||||
|   swipeable="{{ swipeable }}" |  | ||||||
|   bind:click="onClickTab" |  | ||||||
| > |  | ||||||
|   <van-tab |  | ||||||
|     wx:for="{{ tabs }}" |  | ||||||
|     wx:for-item="tab" |  | ||||||
|     wx:for-index="tabIndex" |  | ||||||
|     wx:key="tabIndex" |  | ||||||
|     title="{{ tab.selected ? tab.selected[textKey] : placeholder }}" |  | ||||||
|     style="width: 100%;" |  | ||||||
|     title-style="{{ !tab.selected ? 'color: #969799;font-weight:normal;' : '' }}" |  | ||||||
|   > |  | ||||||
|     <!-- 暂不支持 --> |  | ||||||
|     <!-- <slot name="options-top"></slot> --> |  | ||||||
|  |  | ||||||
|     <view class="van-cascader__options"> |  | ||||||
|       <view |  | ||||||
|         wx:for="{{ tab.options }}" |  | ||||||
|         wx:for-item="option" |  | ||||||
|         wx:key="index" |  | ||||||
|         class="{{ option.className }} {{ utils.optionClass(tab, valueKey, option) }}" |  | ||||||
|         style="{{ utils.optionStyle({ tab, valueKey, option, activeColor }) }}" |  | ||||||
|         data-option="{{ option }}" |  | ||||||
|         data-tab-index="{{ tabIndex }}" |  | ||||||
|         bind:tap="onSelect" |  | ||||||
|       > |  | ||||||
|         <text>{{ option[textKey] }}</text> |  | ||||||
|         <van-icon wx:if="{{ utils.isSelected(tab, valueKey, option) }}" name="success" size="18" /> |  | ||||||
|       </view> |  | ||||||
|     </view> |  | ||||||
|     <!-- 暂不支持 --> |  | ||||||
|     <!-- <slot name="options-bottom"></slot> --> |  | ||||||
|   </van-tab> |  | ||||||
| </van-tabs> |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| var utils = require('../wxs/utils.wxs'); |  | ||||||
| var style = require('../wxs/style.wxs'); |  | ||||||
|  |  | ||||||
| function isSelected(tab, valueKey, option) { |  | ||||||
|   return tab.selected && tab.selected[valueKey] === option[valueKey] |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function optionClass(tab, valueKey, option) { |  | ||||||
|   return utils.bem('cascader__option', { selected: isSelected(tab, valueKey, option), disabled: option.disabled }) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function optionStyle(data) { |  | ||||||
|   var color = data.option.color || (isSelected(data.tab, data.valueKey, data.option) ? data.activeColor : undefined); |  | ||||||
|   return style({ |  | ||||||
|     color |  | ||||||
|   }); |  | ||||||
| } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   isSelected: isSelected, |  | ||||||
|   optionClass: optionClass, |  | ||||||
|   optionStyle: optionStyle, |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 16px}.van-cascader__title{font-size:16px;font-weight:600;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px;height:22px}.van-cascader__tabs-wrap{height:48px!important;padding:0 8px}.van-cascader__tab{color:#323233!important;flex:none!important;font-weight:600!important;padding:0 8px!important}.van-cascader__tab--unselected{color:#969799!important;font-weight:400!important}.van-cascader__option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;line-height:20px;padding:10px 16px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#1989fa;font-weight:600}.van-cascader__option--disabled{color:#c8c9cc;cursor:not-allowed}.van-cascader__option--disabled:active{background-color:initial}.van-cascader__options{-webkit-overflow-scrolling:touch;box-sizing:border-box;height:384px;overflow-y:auto;padding-top:6px} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     props: { |  | ||||||
|         title: String, |  | ||||||
|         border: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         inset: Boolean, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true |  | ||||||
| } |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <view |  | ||||||
|   wx:if="{{ title }}" |  | ||||||
|   class="{{ utils.bem('cell-group__title', { inset }) }}" |  | ||||||
| > |  | ||||||
|   {{ title }} |  | ||||||
| </view> |  | ||||||
| <view class="custom-class {{ utils.bem('cell-group', { inset }) }} {{ border ? 'van-hairline--top-bottom' : '' }}"> |  | ||||||
|   <slot /> |  | ||||||
| </view> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)} |  | ||||||
							
								
								
									
										1
									
								
								miniprogram_npm/@vant/weapp/cell/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								miniprogram_npm/@vant/weapp/cell/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,40 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var link_1 = require("../mixins/link"); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     classes: [ |  | ||||||
|         'title-class', |  | ||||||
|         'label-class', |  | ||||||
|         'value-class', |  | ||||||
|         'right-icon-class', |  | ||||||
|         'hover-class', |  | ||||||
|     ], |  | ||||||
|     mixins: [link_1.link], |  | ||||||
|     props: { |  | ||||||
|         title: null, |  | ||||||
|         value: null, |  | ||||||
|         icon: String, |  | ||||||
|         size: String, |  | ||||||
|         label: String, |  | ||||||
|         center: Boolean, |  | ||||||
|         isLink: Boolean, |  | ||||||
|         required: Boolean, |  | ||||||
|         clickable: Boolean, |  | ||||||
|         titleWidth: String, |  | ||||||
|         customStyle: String, |  | ||||||
|         arrowDirection: String, |  | ||||||
|         useLabelSlot: Boolean, |  | ||||||
|         border: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|         titleStyle: String, |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         onClick: function (event) { |  | ||||||
|             this.$emit('click', event.detail); |  | ||||||
|             this.jumpLink(); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "van-icon": "../icon/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,47 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
|  |  | ||||||
| <view |  | ||||||
|   class="custom-class {{ utils.bem('cell', [size, { center, required, borderless: !border, clickable: isLink || clickable }]) }}" |  | ||||||
|   hover-class="van-cell--hover hover-class" |  | ||||||
|   hover-stay-time="70" |  | ||||||
|   style="{{ customStyle }}" |  | ||||||
|   bind:tap="onClick" |  | ||||||
| > |  | ||||||
|   <van-icon |  | ||||||
|     wx:if="{{ icon }}" |  | ||||||
|     name="{{ icon }}" |  | ||||||
|     class="van-cell__left-icon-wrap" |  | ||||||
|     custom-class="van-cell__left-icon" |  | ||||||
|   /> |  | ||||||
|   <slot wx:else name="icon" /> |  | ||||||
|  |  | ||||||
|   <view |  | ||||||
|     style="{{ computed.titleStyle({ titleWidth, titleStyle }) }}" |  | ||||||
|     class="van-cell__title title-class" |  | ||||||
|   > |  | ||||||
|  |  | ||||||
|     <block wx:if="{{ title }}">{{ title }}</block> |  | ||||||
|     <slot wx:else name="title" /> |  | ||||||
|  |  | ||||||
|     <view wx:if="{{ label || useLabelSlot }}" class="van-cell__label label-class"> |  | ||||||
|       <slot wx:if="{{ useLabelSlot }}" name="label" /> |  | ||||||
|       <block wx:elif="{{ label }}">{{ label }}</block> |  | ||||||
|     </view> |  | ||||||
|   </view> |  | ||||||
|  |  | ||||||
|   <view class="van-cell__value value-class"> |  | ||||||
|     <block wx:if="{{ value || value === 0 }}">{{ value }}</block> |  | ||||||
|     <slot wx:else /> |  | ||||||
|   </view> |  | ||||||
|  |  | ||||||
|   <van-icon |  | ||||||
|     wx:if="{{ isLink }}" |  | ||||||
|     name="{{ arrowDirection ? 'arrow' + '-' + arrowDirection : 'arrow' }}" |  | ||||||
|     class="van-cell__right-icon-wrap right-icon-class" |  | ||||||
|     custom-class="van-cell__right-icon" |  | ||||||
|   /> |  | ||||||
|   <slot wx:else name="right-icon" /> |  | ||||||
|  |  | ||||||
|   <slot name="extra" /> |  | ||||||
| </view> |  | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| var style = require('../wxs/style.wxs'); |  | ||||||
| var addUnit = require('../wxs/add-unit.wxs'); |  | ||||||
|  |  | ||||||
| function titleStyle(data) { |  | ||||||
|   return style([ |  | ||||||
|     { |  | ||||||
|       'max-width': addUnit(data.titleWidth), |  | ||||||
|       'min-width': addUnit(data.titleWidth), |  | ||||||
|     }, |  | ||||||
|     data.titleStyle, |  | ||||||
|   ]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   titleStyle: titleStyle, |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,39 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var relation_1 = require("../common/relation"); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     field: true, |  | ||||||
|     relation: (0, relation_1.useChildren)('checkbox', function (target) { |  | ||||||
|         this.updateChild(target); |  | ||||||
|     }), |  | ||||||
|     props: { |  | ||||||
|         max: Number, |  | ||||||
|         value: { |  | ||||||
|             type: Array, |  | ||||||
|             observer: 'updateChildren', |  | ||||||
|         }, |  | ||||||
|         disabled: { |  | ||||||
|             type: Boolean, |  | ||||||
|             observer: 'updateChildren', |  | ||||||
|         }, |  | ||||||
|         direction: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'vertical', |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         updateChildren: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             this.children.forEach(function (child) { return _this.updateChild(child); }); |  | ||||||
|         }, |  | ||||||
|         updateChild: function (child) { |  | ||||||
|             var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction; |  | ||||||
|             child.setData({ |  | ||||||
|                 value: value.indexOf(child.data.name) !== -1, |  | ||||||
|                 parentDisabled: disabled, |  | ||||||
|                 direction: direction, |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true |  | ||||||
| } |  | ||||||
| @@ -1,5 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <view class="{{ utils.bem('checkbox-group', [{ horizontal: direction === 'horizontal' }]) }}"> |  | ||||||
|   <slot /> |  | ||||||
| </view> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap} |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,79 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var relation_1 = require("../common/relation"); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| function emit(target, value) { |  | ||||||
|     target.$emit('input', value); |  | ||||||
|     target.$emit('change', value); |  | ||||||
| } |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     field: true, |  | ||||||
|     relation: (0, relation_1.useParent)('checkbox-group'), |  | ||||||
|     classes: ['icon-class', 'label-class'], |  | ||||||
|     props: { |  | ||||||
|         value: Boolean, |  | ||||||
|         disabled: Boolean, |  | ||||||
|         useIconSlot: Boolean, |  | ||||||
|         checkedColor: String, |  | ||||||
|         labelPosition: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'right', |  | ||||||
|         }, |  | ||||||
|         labelDisabled: Boolean, |  | ||||||
|         shape: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'round', |  | ||||||
|         }, |  | ||||||
|         iconSize: { |  | ||||||
|             type: null, |  | ||||||
|             value: 20, |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     data: { |  | ||||||
|         parentDisabled: false, |  | ||||||
|         direction: 'vertical', |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         emitChange: function (value) { |  | ||||||
|             if (this.parent) { |  | ||||||
|                 this.setParentValue(this.parent, value); |  | ||||||
|             } |  | ||||||
|             else { |  | ||||||
|                 emit(this, value); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         toggle: function () { |  | ||||||
|             var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; |  | ||||||
|             if (!disabled && !parentDisabled) { |  | ||||||
|                 this.emitChange(!value); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         onClickLabel: function () { |  | ||||||
|             var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value; |  | ||||||
|             if (!disabled && !labelDisabled && !parentDisabled) { |  | ||||||
|                 this.emitChange(!value); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         setParentValue: function (parent, value) { |  | ||||||
|             var parentValue = parent.data.value.slice(); |  | ||||||
|             var name = this.data.name; |  | ||||||
|             var max = parent.data.max; |  | ||||||
|             if (value) { |  | ||||||
|                 if (max && parentValue.length >= max) { |  | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
|                 if (parentValue.indexOf(name) === -1) { |  | ||||||
|                     parentValue.push(name); |  | ||||||
|                     emit(parent, parentValue); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|             else { |  | ||||||
|                 var index = parentValue.indexOf(name); |  | ||||||
|                 if (index !== -1) { |  | ||||||
|                     parentValue.splice(index, 1); |  | ||||||
|                     emit(parent, parentValue); |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true, |  | ||||||
|   "usingComponents": { |  | ||||||
|     "van-icon": "../icon/index" |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
|  |  | ||||||
| <view class="{{ utils.bem('checkbox', [{ horizontal: direction === 'horizontal' }]) }} custom-class"> |  | ||||||
|   <view |  | ||||||
|     wx:if="{{ labelPosition === 'left' }}" |  | ||||||
|     class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}" |  | ||||||
|     bindtap="onClickLabel" |  | ||||||
|   > |  | ||||||
|     <slot /> |  | ||||||
|   </view> |  | ||||||
|   <view class="van-checkbox__icon-wrap" bindtap="toggle"> |  | ||||||
|     <slot wx:if="{{ useIconSlot }}" name="icon" /> |  | ||||||
|     <van-icon |  | ||||||
|       wx:else |  | ||||||
|       name="success" |  | ||||||
|       size="0.8em" |  | ||||||
|       class="{{ utils.bem('checkbox__icon', [shape, { disabled: disabled || parentDisabled, checked: value }]) }}" |  | ||||||
|       style="{{ computed.iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) }}" |  | ||||||
|       custom-class="icon-class" |  | ||||||
|       custom-style="line-height: 1.25em;" |  | ||||||
|     /> |  | ||||||
|   </view> |  | ||||||
|   <view |  | ||||||
|     wx:if="{{ labelPosition === 'right' }}" |  | ||||||
|     class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}" |  | ||||||
|     bindtap="onClickLabel" |  | ||||||
|   > |  | ||||||
|     <slot /> |  | ||||||
|   </view> |  | ||||||
| </view> |  | ||||||
| @@ -1,20 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| var style = require('../wxs/style.wxs'); |  | ||||||
| var addUnit = require('../wxs/add-unit.wxs'); |  | ||||||
|  |  | ||||||
| function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) { |  | ||||||
|   var styles = { |  | ||||||
|     'font-size': addUnit(iconSize), |  | ||||||
|   }; |  | ||||||
|  |  | ||||||
|   if (checkedColor && value && !disabled && !parentDisabled) { |  | ||||||
|     styles['border-color'] = checkedColor; |  | ||||||
|     styles['background-color'] = checkedColor; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return style(styles); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   iconStyle: iconStyle, |  | ||||||
| }; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0} |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| /// <reference types="miniprogram-api-typings" /> |  | ||||||
| type CanvasContext = WechatMiniprogram.CanvasContext; |  | ||||||
| export declare function adaptor(ctx: CanvasContext & Record<string, unknown>): CanvasContext; |  | ||||||
| export {}; |  | ||||||
| @@ -1,47 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| exports.adaptor = void 0; |  | ||||||
| function adaptor(ctx) { |  | ||||||
|     // @ts-ignore |  | ||||||
|     return Object.assign(ctx, { |  | ||||||
|         setStrokeStyle: function (val) { |  | ||||||
|             ctx.strokeStyle = val; |  | ||||||
|         }, |  | ||||||
|         setLineWidth: function (val) { |  | ||||||
|             ctx.lineWidth = val; |  | ||||||
|         }, |  | ||||||
|         setLineCap: function (val) { |  | ||||||
|             ctx.lineCap = val; |  | ||||||
|         }, |  | ||||||
|         setFillStyle: function (val) { |  | ||||||
|             ctx.fillStyle = val; |  | ||||||
|         }, |  | ||||||
|         setFontSize: function (val) { |  | ||||||
|             ctx.font = String(val); |  | ||||||
|         }, |  | ||||||
|         setGlobalAlpha: function (val) { |  | ||||||
|             ctx.globalAlpha = val; |  | ||||||
|         }, |  | ||||||
|         setLineJoin: function (val) { |  | ||||||
|             ctx.lineJoin = val; |  | ||||||
|         }, |  | ||||||
|         setTextAlign: function (val) { |  | ||||||
|             ctx.textAlign = val; |  | ||||||
|         }, |  | ||||||
|         setMiterLimit: function (val) { |  | ||||||
|             ctx.miterLimit = val; |  | ||||||
|         }, |  | ||||||
|         setShadow: function (offsetX, offsetY, blur, color) { |  | ||||||
|             ctx.shadowOffsetX = offsetX; |  | ||||||
|             ctx.shadowOffsetY = offsetY; |  | ||||||
|             ctx.shadowBlur = blur; |  | ||||||
|             ctx.shadowColor = color; |  | ||||||
|         }, |  | ||||||
|         setTextBaseline: function (val) { |  | ||||||
|             ctx.textBaseline = val; |  | ||||||
|         }, |  | ||||||
|         createCircularGradient: function () { }, |  | ||||||
|         draw: function () { }, |  | ||||||
|     }); |  | ||||||
| } |  | ||||||
| exports.adaptor = adaptor; |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,207 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var color_1 = require("../common/color"); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| var utils_1 = require("../common/utils"); |  | ||||||
| var validator_1 = require("../common/validator"); |  | ||||||
| var version_1 = require("../common/version"); |  | ||||||
| var canvas_1 = require("./canvas"); |  | ||||||
| function format(rate) { |  | ||||||
|     return Math.min(Math.max(rate, 0), 100); |  | ||||||
| } |  | ||||||
| var PERIMETER = 2 * Math.PI; |  | ||||||
| var BEGIN_ANGLE = -Math.PI / 2; |  | ||||||
| var STEP = 1; |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     props: { |  | ||||||
|         text: String, |  | ||||||
|         lineCap: { |  | ||||||
|             type: String, |  | ||||||
|             value: 'round', |  | ||||||
|         }, |  | ||||||
|         value: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 0, |  | ||||||
|             observer: 'reRender', |  | ||||||
|         }, |  | ||||||
|         speed: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 50, |  | ||||||
|         }, |  | ||||||
|         size: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 100, |  | ||||||
|             observer: function () { |  | ||||||
|                 this.drawCircle(this.currentValue); |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         fill: String, |  | ||||||
|         layerColor: { |  | ||||||
|             type: String, |  | ||||||
|             value: color_1.WHITE, |  | ||||||
|         }, |  | ||||||
|         color: { |  | ||||||
|             type: null, |  | ||||||
|             value: color_1.BLUE, |  | ||||||
|             observer: function () { |  | ||||||
|                 var _this = this; |  | ||||||
|                 this.setHoverColor().then(function () { |  | ||||||
|                     _this.drawCircle(_this.currentValue); |  | ||||||
|                 }); |  | ||||||
|             }, |  | ||||||
|         }, |  | ||||||
|         type: { |  | ||||||
|             type: String, |  | ||||||
|             value: '', |  | ||||||
|         }, |  | ||||||
|         strokeWidth: { |  | ||||||
|             type: Number, |  | ||||||
|             value: 4, |  | ||||||
|         }, |  | ||||||
|         clockwise: { |  | ||||||
|             type: Boolean, |  | ||||||
|             value: true, |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     data: { |  | ||||||
|         hoverColor: color_1.BLUE, |  | ||||||
|     }, |  | ||||||
|     methods: { |  | ||||||
|         getContext: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             var _a = this.data, type = _a.type, size = _a.size; |  | ||||||
|             if (type === '' || !(0, version_1.canIUseCanvas2d)()) { |  | ||||||
|                 var ctx = wx.createCanvasContext('van-circle', this); |  | ||||||
|                 return Promise.resolve(ctx); |  | ||||||
|             } |  | ||||||
|             var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio; |  | ||||||
|             return new Promise(function (resolve) { |  | ||||||
|                 wx.createSelectorQuery() |  | ||||||
|                     .in(_this) |  | ||||||
|                     .select('#van-circle') |  | ||||||
|                     .node() |  | ||||||
|                     .exec(function (res) { |  | ||||||
|                     var canvas = res[0].node; |  | ||||||
|                     var ctx = canvas.getContext(type); |  | ||||||
|                     if (!_this.inited) { |  | ||||||
|                         _this.inited = true; |  | ||||||
|                         canvas.width = size * dpr; |  | ||||||
|                         canvas.height = size * dpr; |  | ||||||
|                         ctx.scale(dpr, dpr); |  | ||||||
|                     } |  | ||||||
|                     resolve((0, canvas_1.adaptor)(ctx)); |  | ||||||
|                 }); |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         setHoverColor: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             var _a = this.data, color = _a.color, size = _a.size; |  | ||||||
|             if ((0, validator_1.isObj)(color)) { |  | ||||||
|                 return this.getContext().then(function (context) { |  | ||||||
|                     if (!context) |  | ||||||
|                         return; |  | ||||||
|                     var LinearColor = context.createLinearGradient(size, 0, 0, 0); |  | ||||||
|                     Object.keys(color) |  | ||||||
|                         .sort(function (a, b) { return parseFloat(a) - parseFloat(b); }) |  | ||||||
|                         .map(function (key) { |  | ||||||
|                         return LinearColor.addColorStop(parseFloat(key) / 100, color[key]); |  | ||||||
|                     }); |  | ||||||
|                     _this.hoverColor = LinearColor; |  | ||||||
|                 }); |  | ||||||
|             } |  | ||||||
|             this.hoverColor = color; |  | ||||||
|             return Promise.resolve(); |  | ||||||
|         }, |  | ||||||
|         presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) { |  | ||||||
|             var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size; |  | ||||||
|             var position = size / 2; |  | ||||||
|             var radius = position - strokeWidth / 2; |  | ||||||
|             context.setStrokeStyle(strokeStyle); |  | ||||||
|             context.setLineWidth(strokeWidth); |  | ||||||
|             context.setLineCap(lineCap); |  | ||||||
|             context.beginPath(); |  | ||||||
|             context.arc(position, position, radius, beginAngle, endAngle, !clockwise); |  | ||||||
|             context.stroke(); |  | ||||||
|             if (fill) { |  | ||||||
|                 context.setFillStyle(fill); |  | ||||||
|                 context.fill(); |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         renderLayerCircle: function (context) { |  | ||||||
|             var _a = this.data, layerColor = _a.layerColor, fill = _a.fill; |  | ||||||
|             this.presetCanvas(context, layerColor, 0, PERIMETER, fill); |  | ||||||
|         }, |  | ||||||
|         renderHoverCircle: function (context, formatValue) { |  | ||||||
|             var clockwise = this.data.clockwise; |  | ||||||
|             // 结束角度 |  | ||||||
|             var progress = PERIMETER * (formatValue / 100); |  | ||||||
|             var endAngle = clockwise |  | ||||||
|                 ? BEGIN_ANGLE + progress |  | ||||||
|                 : 3 * Math.PI - (BEGIN_ANGLE + progress); |  | ||||||
|             this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle); |  | ||||||
|         }, |  | ||||||
|         drawCircle: function (currentValue) { |  | ||||||
|             var _this = this; |  | ||||||
|             var size = this.data.size; |  | ||||||
|             this.getContext().then(function (context) { |  | ||||||
|                 if (!context) |  | ||||||
|                     return; |  | ||||||
|                 context.clearRect(0, 0, size, size); |  | ||||||
|                 _this.renderLayerCircle(context); |  | ||||||
|                 var formatValue = format(currentValue); |  | ||||||
|                 if (formatValue !== 0) { |  | ||||||
|                     _this.renderHoverCircle(context, formatValue); |  | ||||||
|                 } |  | ||||||
|                 context.draw(); |  | ||||||
|             }); |  | ||||||
|         }, |  | ||||||
|         reRender: function () { |  | ||||||
|             var _this = this; |  | ||||||
|             // tofector 动画暂时没有想到好的解决方案 |  | ||||||
|             var _a = this.data, value = _a.value, speed = _a.speed; |  | ||||||
|             if (speed <= 0 || speed > 1000) { |  | ||||||
|                 this.drawCircle(value); |  | ||||||
|                 return; |  | ||||||
|             } |  | ||||||
|             this.clearMockInterval(); |  | ||||||
|             this.currentValue = this.currentValue || 0; |  | ||||||
|             var run = function () { |  | ||||||
|                 _this.interval = setTimeout(function () { |  | ||||||
|                     if (_this.currentValue !== value) { |  | ||||||
|                         if (Math.abs(_this.currentValue - value) < STEP) { |  | ||||||
|                             _this.currentValue = value; |  | ||||||
|                         } |  | ||||||
|                         else if (_this.currentValue < value) { |  | ||||||
|                             _this.currentValue += STEP; |  | ||||||
|                         } |  | ||||||
|                         else { |  | ||||||
|                             _this.currentValue -= STEP; |  | ||||||
|                         } |  | ||||||
|                         _this.drawCircle(_this.currentValue); |  | ||||||
|                         run(); |  | ||||||
|                     } |  | ||||||
|                     else { |  | ||||||
|                         _this.clearMockInterval(); |  | ||||||
|                     } |  | ||||||
|                 }, 1000 / speed); |  | ||||||
|             }; |  | ||||||
|             run(); |  | ||||||
|         }, |  | ||||||
|         clearMockInterval: function () { |  | ||||||
|             if (this.interval) { |  | ||||||
|                 clearTimeout(this.interval); |  | ||||||
|                 this.interval = null; |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|     }, |  | ||||||
|     mounted: function () { |  | ||||||
|         var _this = this; |  | ||||||
|         this.currentValue = this.data.value; |  | ||||||
|         this.setHoverColor().then(function () { |  | ||||||
|             _this.drawCircle(_this.currentValue); |  | ||||||
|         }); |  | ||||||
|     }, |  | ||||||
|     destroyed: function () { |  | ||||||
|         this.clearMockInterval(); |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true |  | ||||||
| } |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
|  |  | ||||||
| <view class="van-circle"> |  | ||||||
|   <canvas class="van-circle__canvas" type="{{ type }}" style="width: {{ utils.addUnit(size) }};height:{{ utils.addUnit(size) }}" id="van-circle" canvas-id="van-circle"></canvas> |  | ||||||
|   <view wx:if="{{ !text }}" class="van-circle__text"> |  | ||||||
|     <slot></slot> |  | ||||||
|   </view> |  | ||||||
|   <cover-view wx:else class="van-circle__text">{{ text }}</cover-view> |  | ||||||
| </view> |  | ||||||
| @@ -1 +0,0 @@ | |||||||
| @import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%} |  | ||||||
							
								
								
									
										1
									
								
								miniprogram_npm/@vant/weapp/col/index.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								miniprogram_npm/@vant/weapp/col/index.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | |||||||
| export {}; |  | ||||||
| @@ -1,11 +0,0 @@ | |||||||
| "use strict"; |  | ||||||
| Object.defineProperty(exports, "__esModule", { value: true }); |  | ||||||
| var relation_1 = require("../common/relation"); |  | ||||||
| var component_1 = require("../common/component"); |  | ||||||
| (0, component_1.VantComponent)({ |  | ||||||
|     relation: (0, relation_1.useParent)('row'), |  | ||||||
|     props: { |  | ||||||
|         span: Number, |  | ||||||
|         offset: Number, |  | ||||||
|     }, |  | ||||||
| }); |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
|   "component": true |  | ||||||
| } |  | ||||||
| @@ -1,9 +0,0 @@ | |||||||
| <wxs src="../wxs/utils.wxs" module="utils" /> |  | ||||||
| <wxs src="./index.wxs" module="computed" /> |  | ||||||
|  |  | ||||||
| <view |  | ||||||
|   class="custom-class {{ utils.bem('col', [span]) }} {{ offset ? 'van-col--offset-' + offset : '' }}" |  | ||||||
|   style="{{ computed.rootStyle({ gutter }) }}" |  | ||||||
| > |  | ||||||
|   <slot /> |  | ||||||
| </view> |  | ||||||
| @@ -1,18 +0,0 @@ | |||||||
| /* eslint-disable */ |  | ||||||
| var style = require('../wxs/style.wxs'); |  | ||||||
| var addUnit = require('../wxs/add-unit.wxs'); |  | ||||||
|  |  | ||||||
| function rootStyle(data) { |  | ||||||
|   if (!data.gutter) { |  | ||||||
|     return ''; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   return style({ |  | ||||||
|     'padding-right': addUnit(data.gutter / 2), |  | ||||||
|     'padding-left': addUnit(data.gutter / 2), |  | ||||||
|   }); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| module.exports = { |  | ||||||
|   rootStyle: rootStyle, |  | ||||||
| }; |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user