Procházet zdrojové kódy

圣卫士小程序

yq1 před 1 měsícem
revize
c70869de47
100 změnil soubory, kde provedl 4049 přidání a 0 odebrání
  1. binární
      .DS_Store
  2. 20 0
      .hbuilderx/launch.json
  3. 23 0
      App.vue
  4. binární
      __MACOSX/._components
  5. binární
      __MACOSX/components/._.DS_Store
  6. binární
      __MACOSX/components/._yy-refresh
  7. 121 0
      api/api.js
  8. binární
      components/.DS_Store
  9. 36 0
      components/emptyPage.vue
  10. 378 0
      components/more.vue
  11. 254 0
      components/ren-dropdown-filter/ren-dropdown-filter.vue
  12. binární
      components/zyq-movableRefresh/go_top.png
  13. binární
      components/zyq-movableRefresh/loading.gif
  14. 281 0
      components/zyq-movableRefresh/zyq-movableRefresh.vue
  15. 16 0
      main.js
  16. 86 0
      manifest.json
  17. 27 0
      mixins/SendVerifyCode.js
  18. 31 0
      mixins/share.js
  19. 448 0
      mockdata/demodata.json
  20. 1 0
      mockdata/mapdata.json
  21. binární
      node_modules/.DS_Store
  22. binární
      node_modules/@vant/weapp/.DS_Store
  23. 7 0
      node_modules/@vant/weapp/LICENSE
  24. 116 0
      node_modules/@vant/weapp/README.md
  25. 29 0
      node_modules/@vant/weapp/changelog.generated.md
  26. 1 0
      node_modules/@vant/weapp/dist/action-sheet/index.d.ts
  27. 70 0
      node_modules/@vant/weapp/dist/action-sheet/index.js
  28. 8 0
      node_modules/@vant/weapp/dist/action-sheet/index.json
  29. 69 0
      node_modules/@vant/weapp/dist/action-sheet/index.wxml
  30. 1 0
      node_modules/@vant/weapp/dist/action-sheet/index.wxss
  31. 1 0
      node_modules/@vant/weapp/dist/area/index.d.ts
  32. 217 0
      node_modules/@vant/weapp/dist/area/index.js
  33. 6 0
      node_modules/@vant/weapp/dist/area/index.json
  34. 20 0
      node_modules/@vant/weapp/dist/area/index.wxml
  35. 8 0
      node_modules/@vant/weapp/dist/area/index.wxs
  36. 1 0
      node_modules/@vant/weapp/dist/area/index.wxss
  37. 1 0
      node_modules/@vant/weapp/dist/button/index.d.ts
  38. 64 0
      node_modules/@vant/weapp/dist/button/index.js
  39. 7 0
      node_modules/@vant/weapp/dist/button/index.json
  40. 53 0
      node_modules/@vant/weapp/dist/button/index.wxml
  41. 39 0
      node_modules/@vant/weapp/dist/button/index.wxs
  42. 1 0
      node_modules/@vant/weapp/dist/button/index.wxss
  43. 68 0
      node_modules/@vant/weapp/dist/calendar/calendar.wxml
  44. 1 0
      node_modules/@vant/weapp/dist/calendar/components/header/index.d.ts
  45. 37 0
      node_modules/@vant/weapp/dist/calendar/components/header/index.js
  46. 3 0
      node_modules/@vant/weapp/dist/calendar/components/header/index.json
  47. 16 0
      node_modules/@vant/weapp/dist/calendar/components/header/index.wxml
  48. 1 0
      node_modules/@vant/weapp/dist/calendar/components/header/index.wxss
  49. 1 0
      node_modules/@vant/weapp/dist/calendar/components/month/index.d.ts
  50. 154 0
      node_modules/@vant/weapp/dist/calendar/components/month/index.js
  51. 3 0
      node_modules/@vant/weapp/dist/calendar/components/month/index.json
  52. 39 0
      node_modules/@vant/weapp/dist/calendar/components/month/index.wxml
  53. 71 0
      node_modules/@vant/weapp/dist/calendar/components/month/index.wxs
  54. 1 0
      node_modules/@vant/weapp/dist/calendar/components/month/index.wxss
  55. 1 0
      node_modules/@vant/weapp/dist/calendar/index.d.ts
  56. 323 0
      node_modules/@vant/weapp/dist/calendar/index.js
  57. 10 0
      node_modules/@vant/weapp/dist/calendar/index.json
  58. 25 0
      node_modules/@vant/weapp/dist/calendar/index.wxml
  59. 37 0
      node_modules/@vant/weapp/dist/calendar/index.wxs
  60. 1 0
      node_modules/@vant/weapp/dist/calendar/index.wxss
  61. 12 0
      node_modules/@vant/weapp/dist/calendar/utils.d.ts
  62. 83 0
      node_modules/@vant/weapp/dist/calendar/utils.js
  63. 25 0
      node_modules/@vant/weapp/dist/calendar/utils.wxs
  64. 1 0
      node_modules/@vant/weapp/dist/card/index.d.ts
  65. 49 0
      node_modules/@vant/weapp/dist/card/index.js
  66. 6 0
      node_modules/@vant/weapp/dist/card/index.json
  67. 56 0
      node_modules/@vant/weapp/dist/card/index.wxml
  68. 1 0
      node_modules/@vant/weapp/dist/card/index.wxss
  69. 1 0
      node_modules/@vant/weapp/dist/cell-group/index.d.ts
  70. 11 0
      node_modules/@vant/weapp/dist/cell-group/index.js
  71. 3 0
      node_modules/@vant/weapp/dist/cell-group/index.json
  72. 11 0
      node_modules/@vant/weapp/dist/cell-group/index.wxml
  73. 1 0
      node_modules/@vant/weapp/dist/cell-group/index.wxss
  74. 1 0
      node_modules/@vant/weapp/dist/cell/index.d.ts
  75. 38 0
      node_modules/@vant/weapp/dist/cell/index.js
  76. 6 0
      node_modules/@vant/weapp/dist/cell/index.json
  77. 47 0
      node_modules/@vant/weapp/dist/cell/index.wxml
  78. 17 0
      node_modules/@vant/weapp/dist/cell/index.wxs
  79. 1 0
      node_modules/@vant/weapp/dist/cell/index.wxss
  80. 1 0
      node_modules/@vant/weapp/dist/checkbox-group/index.d.ts
  81. 36 0
      node_modules/@vant/weapp/dist/checkbox-group/index.js
  82. 3 0
      node_modules/@vant/weapp/dist/checkbox-group/index.json
  83. 5 0
      node_modules/@vant/weapp/dist/checkbox-group/index.wxml
  84. 1 0
      node_modules/@vant/weapp/dist/checkbox-group/index.wxss
  85. 1 0
      node_modules/@vant/weapp/dist/checkbox/index.d.ts
  86. 77 0
      node_modules/@vant/weapp/dist/checkbox/index.js
  87. 6 0
      node_modules/@vant/weapp/dist/checkbox/index.json
  88. 31 0
      node_modules/@vant/weapp/dist/checkbox/index.wxml
  89. 20 0
      node_modules/@vant/weapp/dist/checkbox/index.wxs
  90. 1 0
      node_modules/@vant/weapp/dist/checkbox/index.wxss
  91. 4 0
      node_modules/@vant/weapp/dist/circle/canvas.d.ts
  92. 43 0
      node_modules/@vant/weapp/dist/circle/canvas.js
  93. 1 0
      node_modules/@vant/weapp/dist/circle/index.d.ts
  94. 193 0
      node_modules/@vant/weapp/dist/circle/index.js
  95. 3 0
      node_modules/@vant/weapp/dist/circle/index.json
  96. 9 0
      node_modules/@vant/weapp/dist/circle/index.wxml
  97. 1 0
      node_modules/@vant/weapp/dist/circle/index.wxss
  98. 1 0
      node_modules/@vant/weapp/dist/col/index.d.ts
  99. 9 0
      node_modules/@vant/weapp/dist/col/index.js
  100. 0 0
      node_modules/@vant/weapp/dist/col/index.json

binární
.DS_Store Zobrazit soubor


+ 20 - 0
.hbuilderx/launch.json Zobrazit soubor

@@ -0,0 +1,20 @@
1
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
2
+  // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
3
+    "version": "0.0",
4
+    "configurations": [{
5
+     	"app-plus" : 
6
+     	{
7
+     		"launchtype" : "remote"
8
+     	},
9
+     	"default" : 
10
+     	{
11
+     		"launchtype" : "remote"
12
+     	},
13
+     	"mp-weixin" : 
14
+     	{
15
+     		"launchtype" : "remote"
16
+     	},
17
+     	"type" : "uniCloud"
18
+     }
19
+    ]
20
+}

+ 23 - 0
App.vue Zobrazit soubor

@@ -0,0 +1,23 @@
1
+<script>
2
+	// import { mapMutations } from 'vuex'
3
+	export default {
4
+		onLaunch: function() {
5
+			// console.log('App Launch')
6
+			
7
+		},
8
+		onShow: function() {
9
+			// console.log('App Show')
10
+		},
11
+		onHide: function() {
12
+			// console.log('App Hide')
13
+		},
14
+		// methods:{
15
+		// 	...mapMutations(['login'])
16
+		// }
17
+	}
18
+</script>
19
+
20
+<style>
21
+	/*每个页面公共css */
22
+	@import "wxcomponents/vant/common/index.wxss";
23
+</style>

binární
__MACOSX/._components Zobrazit soubor


binární
__MACOSX/components/._.DS_Store Zobrazit soubor


binární
__MACOSX/components/._yy-refresh Zobrazit soubor


+ 121 - 0
api/api.js Zobrazit soubor

@@ -0,0 +1,121 @@
1
+import request from '@/request/index.js'
2
+
3
+// 获取key
4
+export function getKey(params, boolean){
5
+	return request.get('/xcx/api/mobile/getappid', params, boolean)
6
+}
7
+
8
+// 获取密钥code
9
+export function getCode(params, boolean){
10
+	return request.get('/xcx/m/api/code', params, boolean)
11
+}
12
+
13
+// 登录
14
+export function login(params){
15
+	return request.get('/xcx/api/mobile/login', params)
16
+}
17
+
18
+// 获取验证码
19
+export function sendCode(params, boolean){
20
+	return request.post('/xcx/api/mobile/code', params, boolean)
21
+}
22
+
23
+// 解析手机号
24
+export function getMobile(params, boolean){
25
+	return request.get('/xcx/api/mobile/getdatainfo', params, boolean)
26
+}
27
+
28
+// 解析手机号
29
+export function bindMobile(params, boolean){
30
+	return request.get('/xcx/api/mobile/register', params, boolean)
31
+}
32
+
33
+// 获取上周 本周 下周排班 模式
34
+export function getSchedule(params, boolean){
35
+	return request.get('/xcx/api/mobile/schedule', params, boolean)
36
+}
37
+
38
+// 获取电子病历
39
+export function getRecord(params, boolean){
40
+	return request.get('/xcx/api/mobile/getpatientinfo', params, boolean)
41
+}
42
+
43
+// 获取机构
44
+export function getOrg(params, boolean){
45
+	return request.get('/xcx/api/mobile/getorginfo', params, boolean)
46
+}
47
+
48
+// 获取透析记录
49
+export function getDialysisRecord(params, boolean){
50
+	return request.get('/xcx/api/mobile/dialysis', params, boolean)
51
+}
52
+
53
+// 获取医嘱
54
+export function getAdvice(params, boolean){
55
+	return request.get('/xcx/api/mobile/getdoctoradvice', params, boolean)
56
+}
57
+
58
+// 获取宣教信息
59
+export function getEducation(params, boolean){
60
+	return request.get('/xcx/api/mobile/geteducation', params, boolean)
61
+}
62
+
63
+// 获取机构人员
64
+export function getDoctor(params, boolean){
65
+	return request.get('/xcx/api/mobile/getdoctorname', params, boolean)
66
+}
67
+
68
+// 获取显示配置
69
+export function getFieldConfig(params, boolean){
70
+	return request.get('/xcx/api/moible/getfieldconfig', params, boolean)
71
+}
72
+
73
+// 获取数据字典数据
74
+export function getDataConfig(params, boolean){
75
+	return request.get('/xcx/api/mobile/getdataconfig', params, boolean)
76
+}
77
+
78
+// 获取检验检查
79
+export function getInspection(params, boolean){
80
+	return request.get('/xcx/api/mobile/getinspectionlist', params, boolean)
81
+}
82
+
83
+// 获取检验检查详情
84
+export function getInspectioninfo(params, boolean){
85
+	return request.get('/xcx/api/mobile/getinspectioninfo', params, boolean)
86
+}
87
+
88
+// 获取精选故事
89
+export function getStoryScore(params, boolean){
90
+	return request.get('/xcx/api/mobile/getstoryscore', params, boolean)
91
+}
92
+
93
+// 获取肾友杯列表
94
+export function getArticList(params, boolean){
95
+	return request.get('/xcx/api/mobile/getarticlist', params, boolean)
96
+}
97
+
98
+// 获取肾友杯列表详情
99
+export function getArticListDetail(params, boolean){
100
+	return request.get('/xcx/api/mobile/getarticlistdetail', params, boolean)
101
+}
102
+
103
+// 获取用户体重信息
104
+export function getweight(start,end,patient_id,org_id){
105
+	return request.get('/xcx/api/mobile/signweight', start,end,patient_id,org_id)
106
+}
107
+
108
+// 获取血压体重信息
109
+export function getbloods(start,end,patient_id,org_id){
110
+	return request.get('/xcx/api/mobile/signblood', start,end,patient_id,org_id)
111
+}
112
+
113
+// 获取预交金信息
114
+export function getgetbalance(patient_id,org_id){
115
+	return request.get('/xcx/api/mobile/getbalance', patient_id,org_id)
116
+}
117
+
118
+// 获取预交金流水信息
119
+export function getgetbalanceinfo(start,end,patient_id,org_id){
120
+	return request.get('/xcx/api/mobile/getbalanceinfo', start,end,patient_id,org_id)
121
+}

binární
components/.DS_Store Zobrazit soubor


+ 36 - 0
components/emptyPage.vue Zobrazit soubor

@@ -0,0 +1,36 @@
1
+<template>
2
+	<view class="empty-box">
3
+		<image src="/static/images/noData.png"></image>
4
+		<!-- <image src="../subPackages/static/images/noData.png" mode=""></image> -->
5
+		<view class="txt">{{title}}</view>
6
+	</view>
7
+</template>
8
+
9
+<script>
10
+	export default{
11
+		props: {
12
+			title: {
13
+				type: String,
14
+				default: '暂无记录',
15
+			},
16
+		},
17
+	}
18
+	
19
+</script>
20
+
21
+<style lang="scss">
22
+	.empty-box{
23
+		display: flex;
24
+		flex-direction: column;
25
+		justify-content: center;
26
+		align-items: center;
27
+		margin: 100rpx 0;
28
+		image{
29
+			width: 600rpx;
30
+			height: 440rpx;
31
+		}
32
+		.txt{
33
+			color: #03BE5E;
34
+		}
35
+	}
36
+</style>

Diff nebyl zobrazen, protože je příliš veliký
+ 378 - 0
components/more.vue


+ 254 - 0
components/ren-dropdown-filter/ren-dropdown-filter.vue Zobrazit soubor

@@ -0,0 +1,254 @@
1
+<template>
2
+    <view class="filter-wrapper" :style="{ height: height + 'rpx', top: top,'border-top':border?'1rpx solid #f2f2f2':'none' }" @touchmove.stop.prevent="discard">
3
+        <view class="inner-wrapper">
4
+            <view class="mask" :class="showMask ? 'show' : 'hide'" @tap="tapMask"></view>
5
+            <view class="navs">
6
+                <view class="c-flex-align" :class="{ 'c-flex-center': index > 0, actNav: index === actNav }" v-for="(item, index) in navData" :key="index" @click="navClick(index)">
7
+                    <view v-for="(child, childx) in item" :key="childx" v-if="child.select">{{ child.text }}</view>
8
+                    <image src="https://i.loli.net/2020/07/15/QsHxlr1gbSImvWt.png" mode="" class="icon-triangle" v-if="index === actNav"></image>
9
+                    <image src="https://i.loli.net/2020/07/15/xjVSvzWcH9NO7al.png" mode="" class="icon-triangle" v-else></image>
10
+                </view>
11
+
12
+                <view class="date-wrapper" v-if="Date=='true' ">
13
+                    <picker mode="date" @change="handleDate">
14
+                        <view class="date c-flex-align" :style="{ height: height + 'rpx' }" @click="dateClick">
15
+                            <view>{{ selDate }}</view>
16
+                            <image src="https://i.loli.net/2020/07/15/xjVSvzWcH9NO7al.png" mode="" class="icon-triangle"></image>
17
+                        </view>
18
+                    </picker>
19
+                </view>
20
+            </view>
21
+            <scroll-view scroll-y="true" class="popup" :class="popupShow ? 'popupShow' : ''">
22
+                <view class="item-opt c-flex-align" :class="item.select ? 'actOpt' : ''" v-for="(item, index) in navData[actNav]" :key="index" @click="handleOpt(index)">
23
+                    {{ item.text }}
24
+                </view>
25
+            </scroll-view>
26
+        </view>
27
+    </view>
28
+</template>
29
+
30
+<script>
31
+// import { getCurDateTime } from '@/libs/utils.js';
32
+export default {
33
+    props: {
34
+        height: {
35
+            type: Number,
36
+            default: 108
37
+        },
38
+        top: {
39
+            type: String,
40
+            default: 'calc(var(--window-statsu-bar) + 44px)'
41
+        },
42
+        border: {
43
+            type: Boolean,
44
+            default: false
45
+        },
46
+		Date: {
47
+		    type: String,
48
+		    default: ''
49
+		},
50
+        filterData: {
51
+            //必填
52
+            type: Array,
53
+            // default: () => {
54
+            //     return [];
55
+            // }
56
+            default: () => {
57
+                return [
58
+                    [{ text: '全部状态', value: '' }, { text: '状态1', value: 1 }, { text: '状态2', value: 2 }, { text: '状态3', value: 3 }],
59
+                    [{ text: '全部类型', value: '' }, { text: '类型1', value: 1 }, { text: '类型2', value: 2 }, { text: '类型3', value: 3 }]
60
+                ];
61
+            }
62
+        },
63
+        defaultIndex: {
64
+            //默认选中条件索引,超出一类时必填
65
+            type: Array,
66
+            default: () => {
67
+                return [0];
68
+            }
69
+        }
70
+    },
71
+    data() {
72
+        return {
73
+            navData: [],
74
+            popupShow: false,
75
+            showMask: false,
76
+            actNav: null,
77
+            selDate: '选择日期',
78
+            selIndex: [] //选中条件索引
79
+        };
80
+    },
81
+    created() {
82
+        this.navData = this.filterData;
83
+        this.selIndex = this.defaultIndex;
84
+		if(this.Date != ''){
85
+			this.dateshow = true
86
+		}else{
87
+			this.dateshow = false
88
+		}
89
+		console.log(this.dateshow,'日期控件')
90
+        this.keepStatus();
91
+    },
92
+    mounted() {
93
+        // this.selDate = getCurDateTime().formatDate;
94
+    },
95
+    methods: {
96
+        keepStatus() {
97
+            this.navData.forEach(itemnavData => {
98
+                itemnavData.map(child => {
99
+                    child.select = false;
100
+                });
101
+                return itemnavData;
102
+            });
103
+            for (let i = 0; i < this.selIndex.length; i++) {
104
+                let selindex = this.selIndex[i];
105
+                this.navData[i][selindex].select = true;
106
+            }
107
+        },
108
+        navClick(index) {
109
+            if (index === this.actNav) {
110
+                this.tapMask();
111
+                return;
112
+            }
113
+            this.popupShow = true;
114
+            this.showMask = true;
115
+            this.actNav = index;
116
+        },
117
+        handleOpt(index) {
118
+            this.selIndex[this.actNav] = index;
119
+            this.keepStatus();
120
+            setTimeout(() => {
121
+                this.tapMask();
122
+            }, 100);
123
+            let data = [];
124
+            let res = this.navData.forEach(item => {
125
+                let sel = item.filter(child => child.select);
126
+                data.push(sel);
127
+            });
128
+            // console.log(data);
129
+            this.$emit('onSelected', data);
130
+        },
131
+        dateClick() {
132
+            this.tapMask();
133
+        },
134
+        tapMask() {
135
+            this.showMask = false;
136
+            this.popupShow = false;
137
+            this.actNav = null;
138
+        },
139
+        handleDate(e) {
140
+            let d = e.detail.value;
141
+            this.selDate = d;
142
+            this.$emit('dateChange', d);
143
+        },
144
+        discard() {}
145
+    }
146
+};
147
+</script>
148
+
149
+<style lang="scss" scoped>
150
+page {
151
+    font-size: 28rpx;
152
+}
153
+.c-flex-align {
154
+    display: flex;
155
+    align-items: center;
156
+}
157
+.c-flex-center {
158
+    display: flex;
159
+    align-items: center;
160
+    justify-content: center;
161
+    flex-direction: column;
162
+}
163
+.filter-wrapper {
164
+    position: fixed;
165
+    left: 0;
166
+    width: 750rpx;
167
+    z-index: 999;
168
+    .inner-wrapper {
169
+        // position: relative;
170
+        .navs {
171
+            position: relative;
172
+            height: 110rpx;
173
+            padding: 0 40rpx;
174
+            display: flex;
175
+            align-items: center;
176
+            justify-content: space-between;
177
+            background-color: #fff;
178
+            border-bottom: 2rpx solid #f5f6f9;
179
+            color: #8b9aae;
180
+            z-index: 999;
181
+            box-sizing: border-box;
182
+            & > view {
183
+                flex: 1;
184
+                height: 100%;
185
+                flex-direction: row;
186
+                z-index: 999;
187
+            }
188
+            .date {
189
+                justify-content: flex-end;
190
+            }
191
+            .actNav {
192
+                color: #4d7df9;
193
+                font-weight: bold;
194
+            }
195
+        }
196
+        .mask {
197
+            z-index: 666;
198
+            position: fixed;
199
+            top: calc(var(--status-bar-height) + 44px);
200
+            left: 0;
201
+            right: 0;
202
+            bottom: 0;
203
+            background-color: rgba(0, 0, 0, 0);
204
+            transition: background-color 0.15s linear;
205
+            &.show {
206
+                background-color: rgba(0, 0, 0, 0.4);
207
+            }
208
+            &.hide {
209
+                display: none;
210
+            }
211
+        }
212
+        .popup {
213
+            position: relative;
214
+            max-height: 500rpx;
215
+            background-color: #fff;
216
+            border-bottom-left-radius: 20rpx;
217
+            border-bottom-right-radius: 20rpx;
218
+            overflow: scroll;
219
+            z-index: 999;
220
+            transition: all 1s linear;
221
+            opacity: 0;
222
+            display: none;
223
+            .item-opt {
224
+                height: 100rpx;
225
+                padding: 0 40rpx;
226
+                color: #8b9aae;
227
+                border-bottom: 2rpx solid #f5f6f9;
228
+            }
229
+            .actOpt {
230
+                color: #4d7df9;
231
+                font-weight: bold;
232
+                position: relative;
233
+                &::after {
234
+                    content: '✓';
235
+                    font-weight: bold;
236
+                    font-size: 36rpx;
237
+                    position: absolute;
238
+                    right: 40rpx;
239
+                }
240
+            }
241
+        }
242
+        .popupShow {
243
+            display: block;
244
+            opacity: 1;
245
+        }
246
+    }
247
+
248
+    .icon-triangle {
249
+        width: 16rpx;
250
+        height: 16rpx;
251
+        margin-left: 10rpx;
252
+    }
253
+}
254
+</style>

binární
components/zyq-movableRefresh/go_top.png Zobrazit soubor


binární
components/zyq-movableRefresh/loading.gif Zobrazit soubor


+ 281 - 0
components/zyq-movableRefresh/zyq-movableRefresh.vue Zobrazit soubor

@@ -0,0 +1,281 @@
1
+<template>
2
+	<view>
3
+		<movable-area style="width: 100%;" :style="{'height':scrollHeight+50+'px'}">
4
+			<view class="display_flex_center" style="height: 40px;font-size: 15px;color:#6b6a6a;">
5
+				<view v-if="refreshSuccess">
6
+					{{refreshSuccessText}}
7
+				</view>
8
+				<block v-else>
9
+					<view v-if="!refreshing" class="refresh-icon display_flex_center" :class="{'refresh-icon-active': refreshFlag}">↓</view>
10
+					<view v-if="!refreshing">{{refreshFlag?refreshReady:refreshText}}</view>
11
+					<view v-else class="display_flex_center">
12
+						<image src="./loading.gif" class="loading_img"></image>
13
+						<text>{{refreshingText}}</text>
14
+					</view>
15
+				</block>
16
+			</view>
17
+			<movable-view :x="x" :y="y" :direction="isRefresh?'vertical':'none'" :out-of-bounds='false' style="width:100%;" :style="{'height':scrollHeight+'px'}"
18
+			 @change="onChange" @touchend="touchend">
19
+				<view :style="{'height':scrollHeight+'px'}">
20
+					<scroll-view :scroll-y="scrollStatus" :style="{'height':scrollHeight+'px','background':backgroundColor}" :scroll-into-view="top_viewId" :upper-threshold="10" @scroll="onScroll" @scrolltoupper="scrollToTop" @scrolltolower="loadMore">
21
+						<view id="top_view" @touchstart="touchstart" @touchmove="touchMove">
22
+							<slot></slot>
23
+						</view>
24
+						<view class="display_flex_center" style="height: 40px;font-size: 15px;color:#999">
25
+							<block v-if="noMore">
26
+								{{noMoreText}}
27
+							</block>
28
+							<block v-else-if="isLoading!=2">
29
+								{{loadingMoreText}}
30
+							</block>
31
+							<block v-else>
32
+								{{loadingText}}
33
+							</block>
34
+						</view>
35
+						<view v-if="showGoTop && scrollTop>scrollHeight" class="go_top_icon_back" @click.stop="goTop">
36
+							<image src="./go_top.png" class="top_icon"></image>
37
+						</view>
38
+					</scroll-view>
39
+				</view>
40
+			</movable-view>
41
+		</movable-area>
42
+	</view>
43
+</template>
44
+
45
+<script>
46
+export default {
47
+	name:"zyq-movableRefresh",
48
+	props: {
49
+		isRefresh: {
50
+			type: Boolean,
51
+			default: true
52
+		},
53
+		scrollHeight: {
54
+			type: Number,
55
+			default: 300
56
+		},
57
+		refreshText: {
58
+			type: String,
59
+			default:'下拉可以刷新'
60
+		},
61
+		refreshReady: {
62
+			type: String,
63
+			default:'释放立即刷新'
64
+		},
65
+		refreshingText: {
66
+			type: String,
67
+			default:'正在刷新...'
68
+		},
69
+		refreshSuccessText: {
70
+			type: String,
71
+			default:'刷新完成'
72
+		},
73
+		loadingMoreText: {
74
+			type: String,
75
+			default:'上拉加载更多'
76
+		},
77
+		loadingText: {
78
+			type: String,
79
+			default:'正在加载...'
80
+		},
81
+		noMoreText: {
82
+			type: String,
83
+			default:'无更多数据'
84
+		},
85
+		pullHeight: {
86
+			type: Number,
87
+			default: 40
88
+		},
89
+		noMore: {
90
+			type:Boolean,
91
+			default:false
92
+		},
93
+		backgroundColor:{
94
+			type: String,
95
+			default:'#fff'
96
+		},
97
+		showGoTop: {
98
+			type:Boolean,
99
+			default:false
100
+		}
101
+	},
102
+	data() {
103
+		return {
104
+			x: 50,
105
+			y: 0,
106
+			old: {
107
+			    x: 0,
108
+			    y: 0
109
+			},
110
+			refreshFlag: false,
111
+			refreshing: false,
112
+			scrollStatus: true,
113
+			isLoading: 0,	//加载状态,1:正在下拉刷新,2:正在触底加载
114
+			refreshSuccess: false,
115
+			scrollTop: 0,
116
+			startX: 0,
117
+			startY: 0,
118
+			inTop: true,
119
+			moveHeight: 0	,//下拉刷新移动距离
120
+			showLoadingMore: false,
121
+			top_viewId: ''
122
+		};
123
+	},
124
+	methods:{
125
+		onChange(e){
126
+			 let y = e.detail.y
127
+			 this.old.x = e.detail.x
128
+			 this.old.y = y
129
+			 this.moveHeight = y
130
+			 if(y<this.pullHeight){
131
+				 this.refreshFlag = false
132
+			 }else{
133
+				 this.refreshFlag = true
134
+			 }
135
+		},
136
+		touchstart(e){
137
+			let obj = e.changedTouches[0]
138
+			this.startX = obj.pageX
139
+			this.startY = obj.pageY
140
+		},
141
+		touchMove(e){
142
+			if(!this.isRefresh){
143
+				 return
144
+			}
145
+			this.refreshSuccess = false
146
+			let obj = e.changedTouches[0]
147
+			let endX = obj.pageX
148
+			let endY = obj.pageY
149
+			let distanceX = endX - this.startX
150
+			let distanceY = endY - this.startY
151
+			if((this.inTop || this.scrollTop==0) && Math.abs(distanceX)<Math.abs(distanceY) && distanceY>0){
152
+				this.scrollStatus = false
153
+			}
154
+		},
155
+		touchend(e){
156
+			 let that = this
157
+			 let moveHeight = this.moveHeight
158
+			 if(moveHeight<this.pullHeight){
159
+				 this.x = this.old.x
160
+				 this.y = this.old.y
161
+				 this.$nextTick(function() {
162
+					 this.x = 0
163
+					 this.y = 0
164
+				 })
165
+				 this.refreshFlag = false
166
+				 this.refreshing = false
167
+			 }else{
168
+				 this.refreshing = true
169
+				 this.refreshFlag = true
170
+				 this.refresh()
171
+			 }
172
+			 this.scrollStatus = true
173
+		},
174
+		scrollToTop(e){
175
+			if(this.scrollTop<5){
176
+				this.inTop = true
177
+			}
178
+		},
179
+		onScroll(e){
180
+			let scrollTop = e.detail.scrollTop
181
+			this.scrollTop = scrollTop
182
+			this.$emit('onScroll',scrollTop);
183
+			if(scrollTop>3){
184
+				this.inTop = false
185
+			}else{
186
+				this.inTop = true
187
+			}
188
+		},
189
+		goTop(){
190
+			this.top_viewId = ""
191
+			this.$nextTick(function() {
192
+				this.top_viewId = "top_view"
193
+			})
194
+		},
195
+		runRefresh(callback=false){
196
+			let that = this
197
+			this.x = this.old.x
198
+			this.y = this.old.y
199
+			this.$nextTick(function() {
200
+				this.scrollTop = 0
201
+				this.x = that.pullHeight
202
+				this.y = that.pullHeight
203
+				that.refreshing = true
204
+				that.refreshFlag = true
205
+				that.refresh()
206
+			})
207
+		},
208
+		refresh(){
209
+			if(this.isLoading){
210
+				return
211
+			}
212
+			this.isLoading = 1
213
+			this.$emit('refresh');
214
+		},
215
+		loadMore(){
216
+			if(this.noMore || this.isLoading){
217
+				return
218
+			}
219
+			this.isLoading = 2
220
+			this.$emit('loadMore');
221
+		},
222
+		endLoad(){
223
+			let that = this
224
+			this.refreshSuccess = true
225
+			setTimeout(function(){
226
+				that.refreshSuccess = false
227
+			},800)
228
+			this.x = this.old.x
229
+			this.y = this.old.y
230
+			this.$nextTick(function() {
231
+				 this.x = 0
232
+				 this.y = 0
233
+			})
234
+			this.scrollStatus = true
235
+			this.refreshing = false
236
+			this.refreshFlag = false
237
+			this.isLoading = 0
238
+		}
239
+	}
240
+}
241
+</script>
242
+
243
+<style>
244
+.display_flex_center{
245
+	display: flex;
246
+	justify-content: center;
247
+	align-items: center;
248
+}
249
+.refresh-icon {
250
+	width: 20px;
251
+	height: 20px;
252
+	font-weight: 700;
253
+	transition-duration: .5s;
254
+	transition-property: transform;
255
+	transform: rotate(0deg);
256
+}
257
+.refresh-icon-active {
258
+	transform: rotate(180deg);
259
+}
260
+.loading_img{
261
+	width: 20px;
262
+	height: 20px;
263
+	margin-right: 5px;
264
+}
265
+.go_top_icon_back{
266
+	position: fixed;
267
+	right: 40px;
268
+	bottom: 40px;
269
+	height: 40px;
270
+	width: 40px;
271
+	border-radius: 50%;
272
+	background: #fff;
273
+	display: flex;
274
+	justify-content: center;
275
+	align-items: center;
276
+}
277
+.top_icon{
278
+	height: 30px;
279
+	width: 30px;
280
+}
281
+</style>

+ 16 - 0
main.js Zobrazit soubor

@@ -0,0 +1,16 @@
1
+import Vue from 'vue'
2
+import App from './App'
3
+import store from './store'
4
+import request from './request/index.js'
5
+
6
+Vue.config.productionTip = false
7
+Vue.prototype.$request = request
8
+// Vue.prototype.$store = store
9
+
10
+App.mpType = 'app'
11
+
12
+const app = new Vue({
13
+    ...App,
14
+	store
15
+})
16
+app.$mount()

+ 86 - 0
manifest.json Zobrazit soubor

@@ -0,0 +1,86 @@
1
+{
2
+    "name" : "sws",
3
+    "appid" : "__UNI__7D5316C",
4
+    "description" : "",
5
+    "versionName" : "1.0.0",
6
+    "versionCode" : "100",
7
+    "transformPx" : false,
8
+    /* 5+App特有相关 */
9
+    "app-plus" : {
10
+        "usingComponents" : true,
11
+        "nvueStyleCompiler" : "uni-app",
12
+        "compilerVersion" : 3,
13
+        "splashscreen" : {
14
+            "alwaysShowBeforeRender" : true,
15
+            "waiting" : true,
16
+            "autoclose" : true,
17
+            "delay" : 0
18
+        },
19
+        /* 模块配置 */
20
+        "modules" : {},
21
+        /* 应用发布信息 */
22
+        "distribute" : {
23
+            /* android打包配置 */
24
+            "android" : {
25
+                "permissions" : [
26
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
27
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
28
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
29
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
30
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
31
+                    "<uses-permission android:name=\"android.permission.BLUETOOTH\"/>",
32
+                    "<uses-permission android:name=\"android.permission.BLUETOOTH_ADMIN\"/>",
33
+                    "<uses-permission android:name=\"android.permission.BLUETOOTH_PRIVILEGED\"/>",
34
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
35
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
36
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
37
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
38
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
39
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
40
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
41
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
42
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
43
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
44
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
45
+                ]
46
+            },
47
+            /* ios打包配置 */
48
+            "ios" : {},
49
+            /* SDK配置 */
50
+            "sdkConfigs" : {
51
+                "oauth" : {}
52
+            }
53
+        }
54
+    },
55
+    /* 快应用特有相关 */
56
+    "quickapp" : {},
57
+    /* 小程序特有相关 */
58
+    "mp-weixin" : {
59
+        "appid" : "wxcdf53b48b7df107e",
60
+        "setting" : {
61
+            "urlCheck" : true,
62
+            "es6" : true,
63
+            "postcss" : true,
64
+            "minified" : true
65
+        },
66
+        "optimization" : {
67
+            "subPackages" : true
68
+        },
69
+        "usingComponents" : true,
70
+        "permission" : {},
71
+        "cloudfunctionRoot" : "cloudfunctions/", // 配置云开发目录
72
+        "lazyCodeLoading" : "requiredComponents"
73
+    },
74
+    "mp-alipay" : {
75
+        "usingComponents" : true
76
+    },
77
+    "mp-baidu" : {
78
+        "usingComponents" : true
79
+    },
80
+    "mp-toutiao" : {
81
+        "usingComponents" : true
82
+    },
83
+    "uniStatistics" : {
84
+        "enable" : false
85
+    }
86
+}

+ 27 - 0
mixins/SendVerifyCode.js Zobrazit soubor

@@ -0,0 +1,27 @@
1
+export default {
2
+  data() {
3
+    return {
4
+      disabled: false,
5
+      text: "获取验证码"
6
+    };
7
+  },
8
+  methods: {
9
+    sendCode() {
10
+      if (this.disabled) return;
11
+      this.disabled = true;
12
+      let n = 60;
13
+      this.text = "剩余 " + n + "s";
14
+      const run = setInterval(() => {
15
+        n = n - 1;
16
+        if (n < 0) {
17
+          clearInterval(run);
18
+        }
19
+        this.text = "剩余 " + n + "s";
20
+        if (this.text < "剩余 " + 0 + "s") {
21
+          this.disabled = false;
22
+          this.text = "重新获取";
23
+        }
24
+      }, 1000);
25
+    }
26
+  }
27
+};

+ 31 - 0
mixins/share.js Zobrazit soubor

@@ -0,0 +1,31 @@
1
+export const shareMixins = {
2
+    data () {
3
+        return {
4
+            shareData: {
5
+                title: '',
6
+                path: '',
7
+                imageUrl: '',
8
+                content: '',
9
+                desc: ''
10
+            }
11
+        }
12
+    },
13
+
14
+    //#ifdef MP-WEIXIN
15
+    onShareAppMessage () {
16
+        return {
17
+            title: this.shareData.title,
18
+            path: this.shareData.path,
19
+            imageUrl: this.shareData.imageUrl,
20
+            content: this.shareData.content,
21
+            desc: this.shareData.desc,
22
+            // success: res = {
23
+                
24
+            // }
25
+        }
26
+    },
27
+    //#endif
28
+
29
+    onLoad(option) {
30
+    }
31
+}

+ 448 - 0
mockdata/demodata.json Zobrazit soubor

@@ -0,0 +1,448 @@
1
+{
2
+	"localdata": [
3
+    {"value":35, "text":"2016", "group":"目标值"},
4
+    {"value":18, "text":"2016", "group":"完成量"},
5
+    {"value":36, "text":"2017", "group":"目标值"},
6
+    {"value":27, "text":"2017", "group":"完成量"},
7
+    {"value":31, "text":"2018", "group":"目标值"},
8
+    {"value":21, "text":"2018", "group":"完成量"},
9
+    {"value":33, "text":"2019", "group":"目标值"},
10
+    {"value":24, "text":"2019", "group":"完成量"},
11
+    {"value":13, "text":"2020", "group":"目标值"},
12
+    {"value":6, "text":"2020", "group":"完成量"},
13
+    {"value":34, "text":"2021", "group":"目标值"},
14
+    {"value":28, "text":"2021", "group":"完成量"}
15
+  ],
16
+  "localdataB": [
17
+    {"value":50, "text":"一班"},
18
+    {"value":30, "text":"二班"},
19
+    {"value":20, "text":"三班"},
20
+    {"value":18, "text":"四班"},
21
+    {"value":8, "text":"五班"}
22
+  ],
23
+  "TLine": {
24
+  	"series": [{
25
+  		"name": "时间轴1",
26
+  		"data": [[10000,55],[30000,25],[50000,55],[70000,25],[90000,55]]
27
+  	}, {
28
+  		"name": "时间轴2",
29
+  		"data": [[0,25],[20000,55],[40000,25],[60000,55],[80000,25]]
30
+  	}, {
31
+  		"name": "时间轴3",
32
+  		"data": [[0,55],[15000,25],[30000,55],[45000,25],[60000,55]]
33
+  	}]
34
+  },
35
+  "Scatter": {
36
+  	"series": [{
37
+  		"name": "散点一",
38
+  		"data": [[10.0, 8.04],
39
+            [8.07, 6.95],
40
+            [13.0, 7.58],
41
+            [9.05, 8.81],
42
+            [11.0, 8.33],
43
+            [14.0, 7.66],
44
+            [13.4, 6.81],
45
+            [10.0, 6.33],
46
+            [14.0, 8.96],
47
+            [12.5, 6.82]]
48
+  	}, {
49
+  		"name": "散点二",
50
+  		"data": [[9.15, 7.20],
51
+            [11.5, 7.20],
52
+            [3.03, 4.23],
53
+            [12.2, 7.83],
54
+            [2.02, 4.47],
55
+            [1.05, 3.33],
56
+            [4.05, 4.96],
57
+            [6.03, 7.24],
58
+            [12.0, 6.26],
59
+            [12.0, 8.84],
60
+            [7.08, 5.82],
61
+            [5.02, 5.68]]
62
+  	}]
63
+  },
64
+  "Bubble": {
65
+  	"series": [{
66
+  		"name": "气泡一",
67
+  		"data": [[95,95,23,"标题1"],[30,55,33,"标题2"]]
68
+  	}, {
69
+  		"name": "气泡二",
70
+  		"data": [[130,30,30,"标题3"],[200,90,40,"标题4"]]
71
+  	}]
72
+  },
73
+  "Column": {
74
+		"categories": ["2016", "2017", "2018", "2019", "2020", "2021"],
75
+		"series": [{
76
+			"name": "目标值",
77
+			"data": [35, 36, 31, 33, 13, 34]
78
+		}, {
79
+			"name": "完成量",
80
+			"data": [18, 27, 21, 24, 6, 28]
81
+		}]
82
+	},
83
+	"ColumnA": {
84
+		"categories": ["2016", "2017", "2018", "2019", "2020", "2021"],
85
+		"series": [{
86
+			"name": "成交量1",
87
+			"data": [15, {"value": 20,"color": "#f04864"}, 45, 37, 43, 34]
88
+		}, {
89
+			"name": "成交量2",
90
+			"data": [30, {"value": 40,"color": "#facc14"}, 25, 14, 34, 18]
91
+		}]
92
+	},
93
+	"Mix": {
94
+		"categories": ["2016", "2017", "2018", "2019", "2020", "2021"],
95
+		"series": [{
96
+			"name": "曲面",
97
+			"data": [70, 50, 85, 130, 64, 88],
98
+			"type": "area",
99
+			"style": "curve"
100
+		}, {
101
+			"name": "柱1",
102
+      "index":1,
103
+			"data": [40, {"value": 30,"color": "#f04864"}, 55, 110, 24, 58],
104
+			"type": "column"
105
+		}, {
106
+			"name": "柱2",
107
+      "index":1,
108
+			"data": [50, 20, 75, 60, 34, 38],
109
+			"type": "column"
110
+		}, {
111
+			"name": "曲线",
112
+			"data": [70, 50, 85, 130, 64, 88],
113
+			"type": "line",
114
+			"style": "curve",
115
+			"color": "#1890ff",
116
+			"disableLegend": true
117
+		}, {
118
+			"name": "折线",
119
+			"data": [120, 140, 105, 170, 95, 160],
120
+			"type": "line",
121
+			"color": "#2fc25b"
122
+		}, {
123
+			"name": "点",
124
+      "index":2,
125
+			"data": [100, 80, 125, 150, 112, 132],
126
+			"type": "point",
127
+			"color": "#f04864"
128
+		}]
129
+	},
130
+	"Line": {
131
+		"categories": ["2016", "2017", "2018", "2019", "2020", "2021"],
132
+		"series": [{
133
+			"name": "成交量A",
134
+			"data": [35, 8, 25, 37, 4, 20]
135
+		}, {
136
+			"name": "成交量B",
137
+			"data": [70, 40, 65, 100, 44, 68]
138
+		}, {
139
+			"name": "成交量C",
140
+			"data": [100, 80, 95, 150, 112, 132]
141
+		}]
142
+	},
143
+  "Pie": {
144
+    "series": [{
145
+      "name": "一班",
146
+      "data": 50
147
+    }, {
148
+      "name": "二班",
149
+      "data": 30
150
+    }, {
151
+      "name": "三班",
152
+      "data": 20
153
+    }, {
154
+      "name": "四班",
155
+      "data": 18
156
+    }, {
157
+      "name": "五班",
158
+      "data": 8
159
+    }]
160
+  },
161
+  "PieA": {
162
+  	"series": [{
163
+  		"data": [
164
+        {
165
+        	"name": "一班",
166
+        	"value": 50
167
+        }, {
168
+        	"name": "二班",
169
+        	"value": 30
170
+        }, {
171
+        	"name": "三班",
172
+        	"value": 20
173
+        }, {
174
+        	"name": "四班",
175
+        	"value": 18
176
+        }, {
177
+        	"name": "五班",
178
+        	"value": 8
179
+        }
180
+      ]
181
+  	}]
182
+  },
183
+  "Mount": {
184
+  	"series": [{
185
+  		"data": [
186
+        {
187
+        	"name": "一班",
188
+        	"value": 82
189
+        }, {
190
+        	"name": "二班",
191
+        	"value": 63
192
+        }, {
193
+        	"name": "三班",
194
+        	"value": 86
195
+        }, {
196
+        	"name": "四班",
197
+        	"value": 65
198
+        }, {
199
+        	"name": "五班",
200
+        	"value": 79
201
+        }
202
+      ]
203
+  	}]
204
+  },
205
+	"Radar": {
206
+		"categories": ["维度1", "维度2", "维度3", "维度4", "维度5", "维度6"],
207
+		"series": [{
208
+			"name": "成交量1",
209
+			"data": [90, 110, 165, 195, 187, 172]
210
+		}, {
211
+			"name": "成交量2",
212
+			"data": [190, 210, 105, 35, 27, 102]
213
+		}]
214
+	},
215
+	"Arcbar1": {
216
+		"series": [{
217
+			"name": "正确率",
218
+			"data": 0.8,
219
+			"color": "#2fc25b"
220
+		}]
221
+	},
222
+	"Arcbar2": {
223
+		"series": [{
224
+			"name": "一班",
225
+			"data": 0.8
226
+		}, {
227
+			"name": "二班",
228
+			"data": 0.6
229
+		}, {
230
+			"name": "三班",
231
+			"data": 0.45
232
+		}, {
233
+			"name": "四班",
234
+			"data": 0.3
235
+		}, {
236
+			"name": "五班",
237
+			"data": 0.15
238
+		}]
239
+	},
240
+	"Gauge": {
241
+		"categories": [{
242
+			"value": 0.2,
243
+			"color": "#1890ff"
244
+		}, {
245
+			"value": 0.8,
246
+			"color": "#2fc25b"
247
+		}, {
248
+			"value": 1,
249
+			"color": "#f04864"
250
+		}],
251
+		"series": [{
252
+			"name": "完成率",
253
+			"data": 0.66
254
+		}]
255
+	},
256
+	"Candle": {
257
+		"categories": [
258
+			"2020/1/24", "2020/1/25", "2020/1/28", "2020/1/29", "2020/1/30",
259
+			"2020/1/31", "2020/2/1", "2020/2/4", "2020/2/5", "2020/2/6",
260
+			"2020/2/7", "2020/2/8", "2020/2/18", "2020/2/19", "2020/2/20",
261
+			"2020/2/21", "2020/2/22", "2020/2/25", "2020/2/26", "2020/2/27",
262
+			"2020/2/28", "2020/3/1", "2020/3/4", "2020/3/5", "2020/3/6",
263
+			"2020/3/7", "2020/3/8", "2020/3/11", "2020/3/12", "2020/3/13",
264
+			"2020/3/14", "2020/3/15", "2020/3/18", "2020/3/19", "2020/3/20",
265
+			"2020/3/21", "2020/3/22", "2020/3/25", "2020/3/26", "2020/3/27",
266
+			"2020/3/28", "2020/3/29", "2020/4/1", "2020/4/2", "2020/4/3",
267
+			"2020/4/8", "2020/4/9", "2020/4/10", "2020/4/11", "2020/4/12",
268
+			"2020/4/15", "2020/4/16", "2020/4/17", "2020/4/18", "2020/4/19",
269
+			"2020/4/22", "2020/4/23", "2020/4/24", "2020/4/25", "2020/4/26",
270
+			"2020/5/2", "2020/5/3", "2020/5/6", "2020/5/7", "2020/5/8",
271
+			"2020/5/9", "2020/5/10", "2020/5/13", "2020/5/14", "2020/5/15",
272
+			"2020/5/16", "2020/5/17", "2020/5/20", "2020/5/21", "2020/5/22",
273
+			"2020/5/23", "2020/5/24", "2020/5/27", "2020/5/28", "2020/5/29",
274
+			"2020/5/30", "2020/5/31", "2020/6/3", "2020/6/4", "2020/6/5",
275
+			"2020/6/6", "2020/6/7", "2020/6/13"
276
+		],
277
+		"series": [{
278
+			"name": "上证指数",
279
+			"data": [
280
+				[2320.26, 2302.6, 2287.3, 2362.94],
281
+				[2300, 2291.3, 2288.26, 2308.38],
282
+				[2295.35, 2346.5, 2295.35, 2346.92],
283
+				[2347.22, 2358.98, 2337.35, 2363.8],
284
+				[2360.75, 2382.48, 2347.89, 2383.76],
285
+				[2383.43, 2385.42, 2371.23, 2391.82],
286
+				[2377.41, 2419.02, 2369.57, 2421.15],
287
+				[2425.92, 2428.15, 2417.58, 2440.38],
288
+				[2411, 2433.13, 2403.3, 2437.42],
289
+				[2432.68, 2434.48, 2427.7, 2441.73],
290
+				[2430.69, 2418.53, 2394.22, 2433.89],
291
+				[2416.62, 2432.4, 2414.4, 2443.03],
292
+				[2441.91, 2421.56, 2415.43, 2444.8],
293
+				[2420.26, 2382.91, 2373.53, 2427.07],
294
+				[2383.49, 2397.18, 2370.61, 2397.94],
295
+				[2378.82, 2325.95, 2309.17, 2378.82],
296
+				[2322.94, 2314.16, 2308.76, 2330.88],
297
+				[2320.62, 2325.82, 2315.01, 2338.78],
298
+				[2313.74, 2293.34, 2289.89, 2340.71],
299
+				[2297.77, 2313.22, 2292.03, 2324.63],
300
+				[2322.32, 2365.59, 2308.92, 2366.16],
301
+				[2364.54, 2359.51, 2330.86, 2369.65],
302
+				[2332.08, 2273.4, 2259.25, 2333.54],
303
+				[2274.81, 2326.31, 2270.1, 2328.14],
304
+				[2333.61, 2347.18, 2321.6, 2351.44],
305
+				[2340.44, 2324.29, 2304.27, 2352.02],
306
+				[2326.42, 2318.61, 2314.59, 2333.67],
307
+				[2314.68, 2310.59, 2296.58, 2320.96],
308
+				[2309.16, 2286.6, 2264.83, 2333.29],
309
+				[2282.17, 2263.97, 2253.25, 2286.33],
310
+				[2255.77, 2270.28, 2253.31, 2276.22],
311
+				[2269.31, 2278.4, 2250, 2312.08],
312
+				[2267.29, 2240.02, 2239.21, 2276.05],
313
+				[2244.26, 2257.43, 2232.02, 2261.31],
314
+				[2257.74, 2317.37, 2257.42, 2317.86],
315
+				[2318.21, 2324.24, 2311.6, 2330.81],
316
+				[2321.4, 2328.28, 2314.97, 2332],
317
+				[2334.74, 2326.72, 2319.91, 2344.89],
318
+				[2318.58, 2297.67, 2281.12, 2319.99],
319
+				[2299.38, 2301.26, 2289, 2323.48],
320
+				[2273.55, 2236.3, 2232.91, 2273.55],
321
+				[2238.49, 2236.62, 2228.81, 2246.87],
322
+				[2229.46, 2234.4, 2227.31, 2243.95],
323
+				[2234.9, 2227.74, 2220.44, 2253.42],
324
+				[2232.69, 2225.29, 2217.25, 2241.34],
325
+				[2196.24, 2211.59, 2180.67, 2212.59],
326
+				[2215.47, 2225.77, 2215.47, 2234.73],
327
+				[2224.93, 2226.13, 2212.56, 2233.04],
328
+				[2236.98, 2219.55, 2217.26, 2242.48],
329
+				[2218.09, 2206.78, 2204.44, 2226.26],
330
+				[2199.91, 2181.94, 2177.39, 2204.99],
331
+				[2169.63, 2194.85, 2165.78, 2196.43],
332
+				[2195.03, 2193.8, 2178.47, 2197.51],
333
+				[2181.82, 2197.6, 2175.44, 2206.03],
334
+				[2201.12, 2244.64, 2200.58, 2250.11],
335
+				[2236.4, 2242.17, 2232.26, 2245.12],
336
+				[2242.62, 2184.54, 2182.81, 2242.62],
337
+				[2187.35, 2218.32, 2184.11, 2226.12],
338
+				[2213.19, 2199.31, 2191.85, 2224.63],
339
+				[2203.89, 2177.91, 2173.86, 2210.58],
340
+				[2170.78, 2174.12, 2161.14, 2179.65],
341
+				[2179.05, 2205.5, 2179.05, 2222.81],
342
+				[2212.5, 2231.17, 2212.5, 2236.07],
343
+				[2227.86, 2235.57, 2219.44, 2240.26],
344
+				[2242.39, 2246.3, 2235.42, 2255.21],
345
+				[2246.96, 2232.97, 2221.38, 2247.86],
346
+				[2228.82, 2246.83, 2225.81, 2247.67],
347
+				[2247.68, 2241.92, 2231.36, 2250.85],
348
+				[2238.9, 2217.01, 2205.87, 2239.93],
349
+				[2217.09, 2224.8, 2213.58, 2225.19],
350
+				[2221.34, 2251.81, 2210.77, 2252.87],
351
+				[2249.81, 2282.87, 2248.41, 2288.09],
352
+				[2286.33, 2299.99, 2281.9, 2309.39],
353
+				[2297.11, 2305.11, 2290.12, 2305.3],
354
+				[2303.75, 2302.4, 2292.43, 2314.18],
355
+				[2293.81, 2275.67, 2274.1, 2304.95],
356
+				[2281.45, 2288.53, 2270.25, 2292.59],
357
+				[2286.66, 2293.08, 2283.94, 2301.7],
358
+				[2293.4, 2321.32, 2281.47, 2322.1],
359
+				[2323.54, 2324.02, 2321.17, 2334.33],
360
+				[2316.25, 2317.75, 2310.49, 2325.72],
361
+				[2320.74, 2300.59, 2299.37, 2325.53],
362
+				[2300.21, 2299.25, 2294.11, 2313.43],
363
+				[2297.1, 2272.42, 2264.76, 2297.1],
364
+				[2270.71, 2270.93, 2260.87, 2276.86],
365
+				[2264.43, 2242.11, 2240.07, 2266.69],
366
+				[2242.26, 2210.9, 2205.07, 2250.63],
367
+				[2190.1, 2148.35, 2126.22, 2190.1]
368
+			]
369
+		}]
370
+	},
371
+	"CandleColumn": {
372
+		"categories": [
373
+			"2020/1/24", "2020/1/25", "2020/1/28", "2020/1/29", "2020/1/30",
374
+			"2020/1/31", "2020/2/1", "2020/2/4", "2020/2/5", "2020/2/6",
375
+			"2020/2/7", "2020/2/8", "2020/2/18", "2020/2/19", "2020/2/20",
376
+			"2020/2/21", "2020/2/22", "2020/2/25", "2020/2/26", "2020/2/27",
377
+			"2020/2/28", "2020/3/1", "2020/3/4", "2020/3/5", "2020/3/6",
378
+			"2020/3/7", "2020/3/8", "2020/3/11", "2020/3/12", "2020/3/13",
379
+			"2020/3/14", "2020/3/15", "2020/3/18", "2020/3/19", "2020/3/20",
380
+			"2020/3/21", "2020/3/22", "2020/3/25", "2020/3/26", "2020/3/27",
381
+			"2020/3/28", "2020/3/29", "2020/4/1", "2020/4/2", "2020/4/3",
382
+			"2020/4/8", "2020/4/9", "2020/4/10", "2020/4/11", "2020/4/12",
383
+			"2020/4/15", "2020/4/16", "2020/4/17", "2020/4/18", "2020/4/19",
384
+			"2020/4/22", "2020/4/23", "2020/4/24", "2020/4/25", "2020/4/26",
385
+			"2020/5/2", "2020/5/3", "2020/5/6", "2020/5/7", "2020/5/8",
386
+			"2020/5/9", "2020/5/10", "2020/5/13", "2020/5/14", "2020/5/15",
387
+			"2020/5/16", "2020/5/17", "2020/5/20", "2020/5/21", "2020/5/22",
388
+			"2020/5/23", "2020/5/24", "2020/5/27", "2020/5/28", "2020/5/29",
389
+			"2020/5/30", "2020/5/31", "2020/6/3", "2020/6/4", "2020/6/5",
390
+			"2020/6/6", "2020/6/7", "2020/6/13"
391
+		],
392
+		"series": [{
393
+			"name": "成交量1",
394
+			"data": [15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45, 37, 43, 15, 20, 45]
395
+		}]
396
+	},
397
+	"Word":{
398
+		"series": [{
399
+			"name": "跨全端图表",
400
+			"textSize": 25
401
+			}, {
402
+			"name": "微信小程序",
403
+			"textSize": 20
404
+			},{
405
+			"name": "支付宝小程序",
406
+			"textSize":20
407
+			},{
408
+			"name": "百度小程序",
409
+			"textSize":20
410
+			}, {
411
+			"name": "QQ小程序",
412
+			"textSize": 20
413
+			}, {
414
+			"name": "头条小程序",
415
+			"textSize": 20
416
+			},{
417
+			"name": "抖音小程序",
418
+			"textSize":20
419
+			}, {
420
+			"name": "360小程序",
421
+			"textSize": 20
422
+			}, {
423
+			"name": "跨全端",
424
+			"textSize": 10
425
+			},{
426
+			"name": "跨全端",
427
+			"textSize":12
428
+			}, {
429
+			"name": "跨全端",
430
+			"textSize": 10
431
+			},{
432
+			"name": "跨全端",
433
+			"textSize":12
434
+			}, {
435
+			"name": "跨全端",
436
+			"textSize": 10
437
+			},{
438
+			"name": "跨全端",
439
+			"textSize":12
440
+			}, {
441
+			"name": "跨全端",
442
+			"textSize": 10
443
+			},{
444
+			"name": "跨全端",
445
+			"textSize":12
446
+			}]
447
+	}
448
+}

Diff nebyl zobrazen, protože je příliš veliký
+ 1 - 0
mockdata/mapdata.json


binární
node_modules/.DS_Store Zobrazit soubor


binární
node_modules/@vant/weapp/.DS_Store Zobrazit soubor


+ 7 - 0
node_modules/@vant/weapp/LICENSE Zobrazit soubor

@@ -0,0 +1,7 @@
1
+Copyright 2016-present Youzan
2
+
3
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 116 - 0
node_modules/@vant/weapp/README.md Zobrazit soubor

@@ -0,0 +1,116 @@
1
+<p align="center">
2
+  <img alt="logo" src="https://img.yzcdn.cn/vant/logo.png" width="120" style="margin-bottom: 10px;">
3
+</p>
4
+<h3 align="center">轻量、可靠的小程序 UI 组件库</h3>
5
+
6
+<p align="center">
7
+  <img src="https://img.shields.io/npm/v/@vant/weapp.svg?style=for-the-badge" alt="npm version" />
8
+  <img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge&color=#4fc08d" />
9
+  <img src="https://img.shields.io/npm/dt/@vant/weapp.svg?style=for-the-badge&color=#4fc08d" alt="downloads" />
10
+  <img src="https://img.shields.io/npm/dm/@vant/weapp.svg?style=for-the-badge&color=#4fc08d" alt="downloads" />
11
+</p>
12
+
13
+<p align="center">
14
+  🔥 <a href="https://vant-contrib.gitee.io/vant-weapp">文档网站(国内)</a>
15
+  &nbsp;
16
+  🌈 <a href="https://youzan.github.io/vant-weapp">文档网站(GitHub)</a>
17
+  &nbsp;
18
+  🚀 <a href="https://github.com/youzan/vant" target="_blank">Vue 版</a>
19
+</p>
20
+
21
+---
22
+
23
+### 介绍
24
+
25
+Vant 是**有赞前端团队**开源的移动端组件库,于 2017 年开源,已持续维护 4 年时间。Vant 对内承载了有赞所有核心业务,对外服务十多万开发者,是业界主流的移动端组件库之一。
26
+
27
+目前 Vant 官方提供了 [Vue 2 版本](https://vant-contrib.gitee.io/vant)、[Vue 3 版本](https://vant-contrib.gitee.io/vant/v3)和[微信小程序版本](http://vant-contrib.gitee.io/vant-weapp),并由社区团队维护 [React 版本](https://github.com/mxdi9i7/vant-react)和[支付宝小程序版本](https://github.com/ant-move/Vant-Aliapp)。
28
+
29
+## 预览
30
+
31
+扫描下方小程序二维码,体验组件库示例:
32
+
33
+<img src="https://img.yzcdn.cn/vant-weapp/qrcode-201808101114.jpg" width="200" height="200" style="margin-top: 10px;" >
34
+
35
+## 使用之前
36
+
37
+使用 Vant Weapp 前,请确保你已经学习过微信官方的 [小程序简易教程](https://developers.weixin.qq.com/miniprogram/dev/framework/) 和 [自定义组件介绍](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/)。
38
+
39
+## 安装
40
+
41
+### 方式一. 通过 npm 安装 (推荐)
42
+
43
+小程序已经支持使用 npm 安装第三方包,详见 [npm 支持](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html?search-key=npm)
44
+
45
+```bash
46
+# 通过 npm 安装
47
+npm i @vant/weapp -S --production
48
+
49
+# 通过 yarn 安装
50
+yarn add @vant/weapp --production
51
+
52
+# 安装 0.x 版本
53
+npm i vant-weapp -S --production
54
+```
55
+
56
+### 方式二. 下载代码
57
+
58
+直接通过 git 下载 Vant Weapp 源代码,并将`dist`目录拷贝到自己的项目中
59
+```bash
60
+git clone https://github.com/youzan/vant-weapp.git
61
+```
62
+
63
+## 使用组件
64
+
65
+以按钮组件为例,只需要在 json 文件中引入按钮对应的自定义组件即可
66
+
67
+```json
68
+{
69
+  "usingComponents": {
70
+    "van-button": "/path/to/vant-weapp/dist/button/index"
71
+  }
72
+}
73
+```
74
+
75
+接着就可以在 wxml 中直接使用组件
76
+
77
+```html
78
+<van-button type="primary">按钮</van-button>
79
+```
80
+
81
+## 在开发者工具中预览
82
+
83
+```bash
84
+# 安装项目依赖
85
+npm install
86
+
87
+# 执行组件编译
88
+npm run dev
89
+```
90
+
91
+打开[微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html),把`vant-weapp/example`目录添加进去就可以预览示例了。
92
+
93
+PS:关于 `van-area`  Area 省市区选择组件,地区数据初始化可以直接在云开发环境中导入`vant-weapp/example/database_area.JSON`文件使用
94
+
95
+## 基础库版本
96
+
97
+Vant Weapp 最低支持到小程序基础库 2.6.5 版本
98
+
99
+## 链接
100
+
101
+* [更新日志](https://github.com/youzan/vant-weapp/blob/dev/docs/markdown/changelog.md)
102
+* [意见反馈](https://github.com/youzan/vant-weapp/issues)
103
+* [加入我们](https://job.youzan.com)
104
+* [Vant Vue 版](https://github.com/youzan/vant)
105
+
106
+## 开源协议
107
+
108
+本项目基于 [MIT](https://zh.wikipedia.org/wiki/MIT%E8%A8%B1%E5%8F%AF%E8%AD%89)协议,请自由地享受和参与开源。
109
+
110
+[vant-weapp]: https://github.com/youzan/vant-weapp
111
+[issue]: https://github.com/youzan/vant-weapp/issues/new
112
+[PR]: https://github.com/youzan/vant-weapp/compare
113
+[MIT]: http://opensource.org/licenses/MIT
114
+[小程序简易教程]: https://developers.weixin.qq.com/miniprogram/dev/framework/
115
+[小程序框架介绍]: https://developers.weixin.qq.com/miniprogram/dev/framework/MINA.html
116
+[微信开发者工具]: https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

+ 29 - 0
node_modules/@vant/weapp/changelog.generated.md Zobrazit soubor

@@ -0,0 +1,29 @@
1
+
2
+**release**
3
+
4
+- 1.8.2 [e37d3f](https://github.com/youzan/vant-weapp/commit/e37d3f19aced32ed3578e2429a935952d5f0afa9)
5
+### [v1.8.1](https://github.com/youzan/vant-weapp/compare/v1.8.0...v1.8.1)
6
+
7
+`2021-08-18`
8
+
9
+**Bug Fixes**
10
+
11
+- Picker: template url should be relative path [#4408](https://github.com/youzan/vant-weapp/issues/4408)
12
+
13
+**build**
14
+
15
+- compile 1.8.1 [abad85](https://github.com/youzan/vant-weapp/commit/abad8571554a64f8abfb614d4068a4d9ad655c92)
16
+- no longer push to master [c94800](https://github.com/youzan/vant-weapp/commit/c948002445a768a062459af8d56150f486b0266d)
17
+
18
+**Document**
19
+
20
+- changelog: 1.8.0 [cdd1fc](https://github.com/youzan/vant-weapp/commit/cdd1fc3a7b340500ef2614732b6818a386a771cf)
21
+
22
+**Feature**
23
+
24
+- Calendar: add click-subtitle event [#4385](https://github.com/youzan/vant-weapp/issues/4385)
25
+- Circle: using setTimeout instead of setInterval [#4401](https://github.com/youzan/vant-weapp/issues/4401)
26
+
27
+**release**
28
+
29
+- 1.8.1 [246ee2](https://github.com/youzan/vant-weapp/commit/246ee27ef709f639d65473b195c50c1b07fc5133)

+ 1 - 0
node_modules/@vant/weapp/dist/action-sheet/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 70 - 0
node_modules/@vant/weapp/dist/action-sheet/index.js Zobrazit soubor

@@ -0,0 +1,70 @@
1
+import { VantComponent } from '../common/component';
2
+import { button } from '../mixins/button';
3
+VantComponent({
4
+    mixins: [button],
5
+    props: {
6
+        show: Boolean,
7
+        title: String,
8
+        cancelText: String,
9
+        description: String,
10
+        round: {
11
+            type: Boolean,
12
+            value: true,
13
+        },
14
+        zIndex: {
15
+            type: Number,
16
+            value: 100,
17
+        },
18
+        actions: {
19
+            type: Array,
20
+            value: [],
21
+        },
22
+        overlay: {
23
+            type: Boolean,
24
+            value: true,
25
+        },
26
+        closeOnClickOverlay: {
27
+            type: Boolean,
28
+            value: true,
29
+        },
30
+        closeOnClickAction: {
31
+            type: Boolean,
32
+            value: true,
33
+        },
34
+        safeAreaInsetBottom: {
35
+            type: Boolean,
36
+            value: true,
37
+        },
38
+    },
39
+    methods: {
40
+        onSelect(event) {
41
+            const { index } = event.currentTarget.dataset;
42
+            const { actions, closeOnClickAction, canIUseGetUserProfile } = this.data;
43
+            const item = actions[index];
44
+            if (item) {
45
+                this.$emit('select', item);
46
+                if (closeOnClickAction) {
47
+                    this.onClose();
48
+                }
49
+                if (item.openType === 'getUserInfo' && canIUseGetUserProfile) {
50
+                    wx.getUserProfile({
51
+                        desc: item.getUserProfileDesc || '  ',
52
+                        complete: (userProfile) => {
53
+                            this.$emit('getuserinfo', userProfile);
54
+                        },
55
+                    });
56
+                }
57
+            }
58
+        },
59
+        onCancel() {
60
+            this.$emit('cancel');
61
+        },
62
+        onClose() {
63
+            this.$emit('close');
64
+        },
65
+        onClickOverlay() {
66
+            this.$emit('click-overlay');
67
+            this.onClose();
68
+        },
69
+    },
70
+});

+ 8 - 0
node_modules/@vant/weapp/dist/action-sheet/index.json Zobrazit soubor

@@ -0,0 +1,8 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "van-icon": "../icon/index",
5
+    "van-popup": "../popup/index",
6
+    "van-loading": "../loading/index"
7
+  }
8
+}

+ 69 - 0
node_modules/@vant/weapp/dist/action-sheet/index.wxml Zobrazit soubor

@@ -0,0 +1,69 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+
3
+<van-popup
4
+  show="{{ show }}"
5
+  position="bottom"
6
+  round="{{ round }}"
7
+  z-index="{{ zIndex }}"
8
+  overlay="{{ overlay }}"
9
+  custom-class="van-action-sheet"
10
+  safe-area-inset-bottom="{{ safeAreaInsetBottom }}"
11
+  close-on-click-overlay="{{ closeOnClickOverlay }}"
12
+  bind:close="onClickOverlay"
13
+>
14
+  <view wx:if="{{ title }}" class="van-action-sheet__header">
15
+    {{ title }}
16
+    <van-icon
17
+      name="cross"
18
+      custom-class="van-action-sheet__close"
19
+      bind:click="onClose"
20
+    />
21
+  </view>
22
+  <view wx:if="{{ description }}" class="van-action-sheet__description van-hairline--bottom">
23
+    {{ description }}
24
+  </view>
25
+  <view wx:if="{{ actions && actions.length }}">
26
+    <!-- button外包一层view,防止actions动态变化,导致渲染时button被打散 -->
27
+    <button
28
+      wx:for="{{ actions }}"
29
+      wx:key="index"
30
+      open-type="{{ item.disabled || item.loading || (canIUseGetUserProfile && item.openType === 'getUserInfo') ? '' : item.openType }}"
31
+      style="{{ item.color ? 'color: ' + item.color : '' }}"
32
+      class="{{ utils.bem('action-sheet__item', { disabled: item.disabled || item.loading }) }} {{ item.className || '' }}"
33
+      hover-class="van-action-sheet__item--hover"
34
+      data-index="{{ index }}"
35
+      bindtap="{{ item.disabled || item.loading ? '' : 'onSelect' }}"
36
+      bindgetuserinfo="onGetUserInfo"
37
+      bindcontact="onContact"
38
+      bindgetphonenumber="onGetPhoneNumber"
39
+      binderror="onError"
40
+      bindlaunchapp="onLaunchApp"
41
+      bindopensetting="onOpenSetting"
42
+      lang="{{ lang }}"
43
+      session-from="{{ sessionFrom }}"
44
+      send-message-title="{{ sendMessageTitle }}"
45
+      send-message-path="{{ sendMessagePath }}"
46
+      send-message-img="{{ sendMessageImg }}"
47
+      show-message-card="{{ showMessageCard }}"
48
+      app-parameter="{{ appParameter }}"
49
+    >
50
+      <block wx:if="{{ !item.loading }}">
51
+        {{ item.name }}
52
+        <view wx:if="{{ item.subname }}" class="van-action-sheet__subname" >{{ item.subname }}</view>
53
+      </block>
54
+      <van-loading wx:else custom-class="van-action-sheet__loading" size="22px" />
55
+    </button>
56
+  </view>
57
+  <slot />
58
+  <block wx:if="{{ cancelText }}">
59
+    <view class="van-action-sheet__gap" />
60
+    <view
61
+      class="van-action-sheet__cancel"
62
+      hover-class="van-action-sheet__cancel--hover"
63
+      hover-stay-time="70"
64
+      bind:tap="onCancel"
65
+    >
66
+      {{ cancelText }}
67
+    </view>
68
+  </block>
69
+</van-popup>

+ 1 - 0
node_modules/@vant/weapp/dist/action-sheet/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-action-sheet{max-height:90%!important;max-height:var(--action-sheet-max-height,90%)!important;color:#323233;color:var(--action-sheet-item-text-color,#323233)}.van-action-sheet__cancel,.van-action-sheet__item{padding:14px 16px;text-align:center;font-size:16px;font-size:var(--action-sheet-item-font-size,16px);line-height:22px;line-height:var(--action-sheet-item-line-height,22px);background-color:#fff;background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5;background-color:var(--active-color,#f2f3f5)}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:#646566;color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{display:block;height:8px;height:var(--action-sheet-cancel-padding-top,8px);background-color:#f7f8fa;background-color:var(--action-sheet-cancel-padding-color,#f7f8fa)}.van-action-sheet__item--disabled{color:#c8c9cc;color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:#fff;background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{margin-top:8px;margin-top:var(--padding-xs,8px);font-size:12px;font-size:var(--action-sheet-subname-font-size,12px);color:#969799;color:var(--action-sheet-subname-color,#969799);line-height:20px;line-height:var(--action-sheet-subname-line-height,20px)}.van-action-sheet__header{text-align:center;font-weight:500;font-weight:var(--font-weight-bold,500);font-size:16px;font-size:var(--action-sheet-header-font-size,16px);line-height:48px;line-height:var(--action-sheet-header-height,48px)}.van-action-sheet__description{text-align:center;padding:20px 16px;padding:20px var(--padding-md,16px);color:#969799;color:var(--action-sheet-description-color,#969799);font-size:14px;font-size:var(--action-sheet-description-font-size,14px);line-height:20px;line-height:var(--action-sheet-description-line-height,20px)}.van-action-sheet__close{position:absolute!important;top:0;right:0;line-height:inherit!important;padding:0 16px;padding:var(--action-sheet-close-icon-padding,0 16px);font-size:22px!important;font-size:var(--action-sheet-close-icon-size,22px)!important;color:#c8c9cc;color:var(--action-sheet-close-icon-color,#c8c9cc)}.van-action-sheet__loading{display:flex!important}

+ 1 - 0
node_modules/@vant/weapp/dist/area/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 217 - 0
node_modules/@vant/weapp/dist/area/index.js Zobrazit soubor

@@ -0,0 +1,217 @@
1
+import { VantComponent } from '../common/component';
2
+import { pickerProps } from '../picker/shared';
3
+import { requestAnimationFrame } from '../common/utils';
4
+const EMPTY_CODE = '000000';
5
+VantComponent({
6
+    classes: ['active-class', 'toolbar-class', 'column-class'],
7
+    props: Object.assign(Object.assign({}, pickerProps), { value: {
8
+            type: String,
9
+            observer(value) {
10
+                this.code = value;
11
+                this.setValues();
12
+            },
13
+        }, areaList: {
14
+            type: Object,
15
+            value: {},
16
+            observer: 'setValues',
17
+        }, columnsNum: {
18
+            type: null,
19
+            value: 3,
20
+        }, columnsPlaceholder: {
21
+            type: Array,
22
+            observer(val) {
23
+                this.setData({
24
+                    typeToColumnsPlaceholder: {
25
+                        province: val[0] || '',
26
+                        city: val[1] || '',
27
+                        county: val[2] || '',
28
+                    },
29
+                });
30
+            },
31
+        } }),
32
+    data: {
33
+        columns: [{ values: [] }, { values: [] }, { values: [] }],
34
+        typeToColumnsPlaceholder: {},
35
+    },
36
+    mounted() {
37
+        requestAnimationFrame(() => {
38
+            this.setValues();
39
+        });
40
+    },
41
+    methods: {
42
+        getPicker() {
43
+            if (this.picker == null) {
44
+                this.picker = this.selectComponent('.van-area__picker');
45
+            }
46
+            return this.picker;
47
+        },
48
+        onCancel(event) {
49
+            this.emit('cancel', event.detail);
50
+        },
51
+        onConfirm(event) {
52
+            const { index } = event.detail;
53
+            let { value } = event.detail;
54
+            value = this.parseValues(value);
55
+            this.emit('confirm', { value, index });
56
+        },
57
+        emit(type, detail) {
58
+            detail.values = detail.value;
59
+            delete detail.value;
60
+            this.$emit(type, detail);
61
+        },
62
+        parseValues(values) {
63
+            const { columnsPlaceholder } = this.data;
64
+            return values.map((value, index) => {
65
+                if (value &&
66
+                    (!value.code || value.name === columnsPlaceholder[index])) {
67
+                    return Object.assign(Object.assign({}, value), { code: '', name: '' });
68
+                }
69
+                return value;
70
+            });
71
+        },
72
+        onChange(event) {
73
+            var _a;
74
+            const { index, picker, value } = event.detail;
75
+            this.code = value[index].code;
76
+            (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(() => {
77
+                this.$emit('change', {
78
+                    picker,
79
+                    values: this.parseValues(picker.getValues()),
80
+                    index,
81
+                });
82
+            });
83
+        },
84
+        getConfig(type) {
85
+            const { areaList } = this.data;
86
+            return (areaList && areaList[`${type}_list`]) || {};
87
+        },
88
+        getList(type, code) {
89
+            if (type !== 'province' && !code) {
90
+                return [];
91
+            }
92
+            const { typeToColumnsPlaceholder } = this.data;
93
+            const list = this.getConfig(type);
94
+            let result = Object.keys(list).map((code) => ({
95
+                code,
96
+                name: list[code],
97
+            }));
98
+            if (code != null) {
99
+                // oversea code
100
+                if (code[0] === '9' && type === 'city') {
101
+                    code = '9';
102
+                }
103
+                result = result.filter((item) => item.code.indexOf(code) === 0);
104
+            }
105
+            if (typeToColumnsPlaceholder[type] && result.length) {
106
+                // set columns placeholder
107
+                const codeFill = type === 'province'
108
+                    ? ''
109
+                    : type === 'city'
110
+                        ? EMPTY_CODE.slice(2, 4)
111
+                        : EMPTY_CODE.slice(4, 6);
112
+                result.unshift({
113
+                    code: `${code}${codeFill}`,
114
+                    name: typeToColumnsPlaceholder[type],
115
+                });
116
+            }
117
+            return result;
118
+        },
119
+        getIndex(type, code) {
120
+            let compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6;
121
+            const list = this.getList(type, code.slice(0, compareNum - 2));
122
+            // oversea code
123
+            if (code[0] === '9' && type === 'province') {
124
+                compareNum = 1;
125
+            }
126
+            code = code.slice(0, compareNum);
127
+            for (let i = 0; i < list.length; i++) {
128
+                if (list[i].code.slice(0, compareNum) === code) {
129
+                    return i;
130
+                }
131
+            }
132
+            return 0;
133
+        },
134
+        setValues() {
135
+            const picker = this.getPicker();
136
+            if (!picker) {
137
+                return;
138
+            }
139
+            let code = this.code || this.getDefaultCode();
140
+            const provinceList = this.getList('province');
141
+            const cityList = this.getList('city', code.slice(0, 2));
142
+            const stack = [];
143
+            const indexes = [];
144
+            const { columnsNum } = this.data;
145
+            if (columnsNum >= 1) {
146
+                stack.push(picker.setColumnValues(0, provinceList, false));
147
+                indexes.push(this.getIndex('province', code));
148
+            }
149
+            if (columnsNum >= 2) {
150
+                stack.push(picker.setColumnValues(1, cityList, false));
151
+                indexes.push(this.getIndex('city', code));
152
+                if (cityList.length && code.slice(2, 4) === '00') {
153
+                    [{ code }] = cityList;
154
+                }
155
+            }
156
+            if (columnsNum === 3) {
157
+                stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false));
158
+                indexes.push(this.getIndex('county', code));
159
+            }
160
+            return Promise.all(stack)
161
+                .catch(() => { })
162
+                .then(() => picker.setIndexes(indexes))
163
+                .catch(() => { });
164
+        },
165
+        getDefaultCode() {
166
+            const { columnsPlaceholder } = this.data;
167
+            if (columnsPlaceholder.length) {
168
+                return EMPTY_CODE;
169
+            }
170
+            const countyCodes = Object.keys(this.getConfig('county'));
171
+            if (countyCodes[0]) {
172
+                return countyCodes[0];
173
+            }
174
+            const cityCodes = Object.keys(this.getConfig('city'));
175
+            if (cityCodes[0]) {
176
+                return cityCodes[0];
177
+            }
178
+            return '';
179
+        },
180
+        getValues() {
181
+            const picker = this.getPicker();
182
+            if (!picker) {
183
+                return [];
184
+            }
185
+            return this.parseValues(picker.getValues().filter((value) => !!value));
186
+        },
187
+        getDetail() {
188
+            const values = this.getValues();
189
+            const area = {
190
+                code: '',
191
+                country: '',
192
+                province: '',
193
+                city: '',
194
+                county: '',
195
+            };
196
+            if (!values.length) {
197
+                return area;
198
+            }
199
+            const names = values.map((item) => item.name);
200
+            area.code = values[values.length - 1].code;
201
+            if (area.code[0] === '9') {
202
+                area.country = names[1] || '';
203
+                area.province = names[2] || '';
204
+            }
205
+            else {
206
+                area.province = names[0] || '';
207
+                area.city = names[1] || '';
208
+                area.county = names[2] || '';
209
+            }
210
+            return area;
211
+        },
212
+        reset(code) {
213
+            this.code = code || '';
214
+            return this.setValues();
215
+        },
216
+    },
217
+});

+ 6 - 0
node_modules/@vant/weapp/dist/area/index.json Zobrazit soubor

@@ -0,0 +1,6 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "van-picker": "../picker/index"
5
+  }
6
+}

+ 20 - 0
node_modules/@vant/weapp/dist/area/index.wxml Zobrazit soubor

@@ -0,0 +1,20 @@
1
+<wxs src="./index.wxs" module="computed" />
2
+
3
+<van-picker
4
+  class="van-area__picker"
5
+  active-class="active-class"
6
+  toolbar-class="toolbar-class"
7
+  column-class="column-class"
8
+  show-toolbar
9
+  value-key="name"
10
+  title="{{ title }}"
11
+  loading="{{ loading }}"
12
+  columns="{{ computed.displayColumns(columns, columnsNum) }}"
13
+  item-height="{{ itemHeight }}"
14
+  visible-item-count="{{ visibleItemCount }}"
15
+  cancel-button-text="{{ cancelButtonText }}"
16
+  confirm-button-text="{{ confirmButtonText }}"
17
+  bind:change="onChange"
18
+  bind:confirm="onConfirm"
19
+  bind:cancel="onCancel"
20
+/>

+ 8 - 0
node_modules/@vant/weapp/dist/area/index.wxs Zobrazit soubor

@@ -0,0 +1,8 @@
1
+/* eslint-disable */
2
+function displayColumns(columns, columnsNum) {
3
+  return columns.slice(0, +columnsNum);
4
+}
5
+
6
+module.exports = {
7
+  displayColumns: displayColumns,
8
+};

+ 1 - 0
node_modules/@vant/weapp/dist/area/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';

+ 1 - 0
node_modules/@vant/weapp/dist/button/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 64 - 0
node_modules/@vant/weapp/dist/button/index.js Zobrazit soubor

@@ -0,0 +1,64 @@
1
+import { VantComponent } from '../common/component';
2
+import { button } from '../mixins/button';
3
+import { canIUseFormFieldButton } from '../common/version';
4
+const mixins = [button];
5
+if (canIUseFormFieldButton()) {
6
+    mixins.push('wx://form-field-button');
7
+}
8
+VantComponent({
9
+    mixins,
10
+    classes: ['hover-class', 'loading-class'],
11
+    data: {
12
+        baseStyle: '',
13
+    },
14
+    props: {
15
+        formType: String,
16
+        icon: String,
17
+        classPrefix: {
18
+            type: String,
19
+            value: 'van-icon',
20
+        },
21
+        plain: Boolean,
22
+        block: Boolean,
23
+        round: Boolean,
24
+        square: Boolean,
25
+        loading: Boolean,
26
+        hairline: Boolean,
27
+        disabled: Boolean,
28
+        loadingText: String,
29
+        customStyle: String,
30
+        loadingType: {
31
+            type: String,
32
+            value: 'circular',
33
+        },
34
+        type: {
35
+            type: String,
36
+            value: 'default',
37
+        },
38
+        dataset: null,
39
+        size: {
40
+            type: String,
41
+            value: 'normal',
42
+        },
43
+        loadingSize: {
44
+            type: String,
45
+            value: '20px',
46
+        },
47
+        color: String,
48
+    },
49
+    methods: {
50
+        onClick(event) {
51
+            this.$emit('click', event);
52
+            const { canIUseGetUserProfile, openType, getUserProfileDesc, lang, } = this.data;
53
+            if (openType === 'getUserInfo' && canIUseGetUserProfile) {
54
+                wx.getUserProfile({
55
+                    desc: getUserProfileDesc || '  ',
56
+                    lang: lang || 'en',
57
+                    complete: (userProfile) => {
58
+                        this.$emit('getuserinfo', userProfile);
59
+                    },
60
+                });
61
+            }
62
+        },
63
+    },
64
+});

+ 7 - 0
node_modules/@vant/weapp/dist/button/index.json Zobrazit soubor

@@ -0,0 +1,7 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "van-icon": "../icon/index",
5
+    "van-loading": "../loading/index"
6
+  }
7
+}

+ 53 - 0
node_modules/@vant/weapp/dist/button/index.wxml Zobrazit soubor

@@ -0,0 +1,53 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+<wxs src="./index.wxs" module="computed" />
3
+
4
+<button
5
+  id="{{ id }}"
6
+  data-detail="{{ dataset }}"
7
+  class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
8
+  hover-class="van-button--active hover-class"
9
+  lang="{{ lang }}"
10
+  form-type="{{ formType }}"
11
+  style="{{ computed.rootStyle({ plain, color, customStyle }) }}"
12
+  open-type="{{ disabled || loading || (canIUseGetUserProfile && openType === 'getUserInfo') ? '' : openType }}"
13
+  business-id="{{ businessId }}"
14
+  session-from="{{ sessionFrom }}"
15
+  send-message-title="{{ sendMessageTitle }}"
16
+  send-message-path="{{ sendMessagePath }}"
17
+  send-message-img="{{ sendMessageImg }}"
18
+  show-message-card="{{ showMessageCard }}"
19
+  app-parameter="{{ appParameter }}"
20
+  aria-label="{{ ariaLabel }}"
21
+  bindtap="{{ disabled || loading ? '' : 'onClick' }}"
22
+  bindgetuserinfo="onGetUserInfo"
23
+  bindcontact="onContact"
24
+  bindgetphonenumber="onGetPhoneNumber"
25
+  binderror="onError"
26
+  bindlaunchapp="onLaunchApp"
27
+  bindopensetting="onOpenSetting"
28
+>
29
+  <block wx:if="{{ loading }}">
30
+    <van-loading
31
+      custom-class="loading-class"
32
+      size="{{ loadingSize }}"
33
+      type="{{ loadingType }}"
34
+      color="{{ computed.loadingColor({ type, color, plain }) }}"
35
+    />
36
+    <view wx:if="{{ loadingText }}" class="van-button__loading-text">
37
+      {{ loadingText }}
38
+    </view>
39
+  </block>
40
+  <block wx:else>
41
+    <van-icon
42
+      wx:if="{{ icon }}"
43
+      size="1.2em"
44
+      name="{{ icon }}"
45
+      class-prefix="{{ classPrefix }}"
46
+      class="van-button__icon"
47
+      custom-style="line-height: inherit;"
48
+    />
49
+    <view class="van-button__text">
50
+      <slot />
51
+    </view>
52
+  </block>
53
+</button>

+ 39 - 0
node_modules/@vant/weapp/dist/button/index.wxs Zobrazit soubor

@@ -0,0 +1,39 @@
1
+/* eslint-disable */
2
+var style = require('../wxs/style.wxs');
3
+
4
+function rootStyle(data) {
5
+  if (!data.color) {
6
+    return data.customStyle;
7
+  }
8
+
9
+  var properties = {
10
+    color: data.plain ? data.color : '#fff',
11
+    background: data.plain ? null : data.color,
12
+  };
13
+
14
+  // hide border when color is linear-gradient
15
+  if (data.color.indexOf('gradient') !== -1) {
16
+    properties.border = 0;
17
+  } else {
18
+    properties['border-color'] = data.color;
19
+  }
20
+
21
+  return style([properties, data.customStyle]);
22
+}
23
+
24
+function loadingColor(data) {
25
+  if (data.plain) {
26
+    return data.color ? data.color : '#c9c9c9';
27
+  }
28
+
29
+  if (data.type === 'default') {
30
+    return '#c9c9c9';
31
+  }
32
+
33
+  return '#fff';
34
+}
35
+
36
+module.exports = {
37
+  rootStyle: rootStyle,
38
+  loadingColor: loadingColor,
39
+};

+ 1 - 0
node_modules/@vant/weapp/dist/button/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-button{position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0;text-align:center;vertical-align:middle;-webkit-appearance:none;-webkit-text-size-adjust:100%;height:44px;height:var(--button-default-height,44px);line-height:20px;line-height:var(--button-line-height,20px);font-size:16px;font-size:var(--button-default-font-size,16px);transition:opacity .2s;transition:opacity var(--animation-duration-fast,.2s);border-radius:2px;border-radius:var(--button-border-radius,2px)}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;border:inherit;border-radius:inherit;transform:translate(-50%,-50%);opacity:0;content:" ";background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000)}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{color:#323233;color:var(--button-default-color,#323233);background:#fff;background:var(--button-default-background-color,#fff);border:1px solid #ebedf0;border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0)}.van-button--primary{color:#fff;color:var(--button-primary-color,#fff);background:#07c160;background:var(--button-primary-background-color,#07c160);border:1px solid #07c160;border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160)}.van-button--info{color:#fff;color:var(--button-info-color,#fff);background:#1989fa;background:var(--button-info-background-color,#1989fa);border:1px solid #1989fa;border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa)}.van-button--danger{color:#fff;color:var(--button-danger-color,#fff);background:#ee0a24;background:var(--button-danger-background-color,#ee0a24);border:1px solid #ee0a24;border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24)}.van-button--warning{color:#fff;color:var(--button-warning-color,#fff);background:#ff976a;background:var(--button-warning-background-color,#ff976a);border:1px solid #ff976a;border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a)}.van-button--plain{background:#fff;background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:#07c160;color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:#1989fa;color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:#ee0a24;color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:#ff976a;color:var(--button-warning-background-color,#ff976a)}.van-button--large{width:100%;height:50px;height:var(--button-large-height,50px)}.van-button--normal{padding:0 15px;font-size:14px;font-size:var(--button-normal-font-size,14px)}.van-button--small{min-width:60px;min-width:var(--button-small-min-width,60px);height:30px;height:var(--button-small-height,30px);padding:0 8px;padding:0 var(--padding-xs,8px);font-size:12px;font-size:var(--button-small-font-size,12px)}.van-button--mini{display:inline-block;min-width:50px;min-width:var(--button-mini-min-width,50px);height:22px;height:var(--button-mini-height,22px);font-size:10px;font-size:var(--button-mini-font-size,10px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:.5;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{min-width:1em;line-height:inherit!important;vertical-align:top}.van-button--hairline{padding-top:1px;border-width:0}.van-button--hairline:after{border-color:inherit;border-width:1px;border-radius:4px;border-radius:calc(var(--button-border-radius, 2px)*2)}.van-button--hairline.van-button--round:after{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0}

+ 68 - 0
node_modules/@vant/weapp/dist/calendar/calendar.wxml Zobrazit soubor

@@ -0,0 +1,68 @@
1
+<view class="van-calendar">
2
+  <header
3
+    title="{{ title }}"
4
+    showTitle="{{ showTitle }}"
5
+    subtitle="{{ subtitle }}"
6
+    showSubtitle="{{ showSubtitle }}"
7
+    firstDayOfWeek="{{ firstDayOfWeek }}"
8
+    bind:click-subtitle="onClickSubtitle"
9
+  >
10
+    <slot name="title" slot="title"></slot>
11
+  </header>
12
+
13
+  <scroll-view
14
+    class="van-calendar__body"
15
+    scroll-y
16
+    scroll-into-view="{{ scrollIntoView }}"
17
+  >
18
+    <month
19
+      wx:for="{{ computed.getMonths(minDate, maxDate) }}"
20
+      wx:key="index"
21
+      id="month{{ index }}"
22
+      class="month"
23
+      data-date="{{ item }}"
24
+      date="{{ item }}"
25
+      type="{{ type }}"
26
+      color="{{ color }}"
27
+      minDate="{{ minDate }}"
28
+      maxDate="{{ maxDate }}"
29
+      showMark="{{ showMark }}"
30
+      formatter="{{ formatter }}"
31
+      rowHeight="{{ rowHeight }}"
32
+      currentDate="{{ currentDate }}"
33
+      showSubtitle="{{ showSubtitle }}"
34
+      allowSameDay="{{ allowSameDay }}"
35
+      showMonthTitle="{{ index !== 0 || !showSubtitle }}"
36
+      firstDayOfWeek="{{ firstDayOfWeek }}"
37
+      bind:click="onClickDay"
38
+    />
39
+  </scroll-view>
40
+
41
+  <view
42
+    class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}"
43
+  >
44
+    <slot name="footer"></slot>
45
+  </view>
46
+
47
+  <view
48
+    class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}"
49
+  >
50
+    <van-button
51
+      wx:if="{{ showConfirm }}"
52
+      round
53
+      block
54
+      type="danger"
55
+      color="{{ color }}"
56
+      custom-class="van-calendar__confirm"
57
+      disabled="{{ computed.getButtonDisabled(type, currentDate) }}"
58
+      nativeType="text"
59
+      bind:click="onConfirm"
60
+    >
61
+      {{
62
+        computed.getButtonDisabled(type, currentDate)
63
+          ? confirmDisabledText
64
+          : confirmText
65
+      }}
66
+    </van-button>
67
+  </view>
68
+</view>

+ 1 - 0
node_modules/@vant/weapp/dist/calendar/components/header/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 37 - 0
node_modules/@vant/weapp/dist/calendar/components/header/index.js Zobrazit soubor

@@ -0,0 +1,37 @@
1
+import { VantComponent } from '../../../common/component';
2
+VantComponent({
3
+    props: {
4
+        title: {
5
+            type: String,
6
+            value: '日期选择',
7
+        },
8
+        subtitle: String,
9
+        showTitle: Boolean,
10
+        showSubtitle: Boolean,
11
+        firstDayOfWeek: {
12
+            type: Number,
13
+            observer: 'initWeekDay',
14
+        },
15
+    },
16
+    data: {
17
+        weekdays: [],
18
+    },
19
+    created() {
20
+        this.initWeekDay();
21
+    },
22
+    methods: {
23
+        initWeekDay() {
24
+            const defaultWeeks = ['日', '一', '二', '三', '四', '五', '六'];
25
+            const firstDayOfWeek = this.data.firstDayOfWeek || 0;
26
+            this.setData({
27
+                weekdays: [
28
+                    ...defaultWeeks.slice(firstDayOfWeek, 7),
29
+                    ...defaultWeeks.slice(0, firstDayOfWeek),
30
+                ],
31
+            });
32
+        },
33
+        onClickSubtitle(event) {
34
+            this.$emit('click-subtitle', event);
35
+        },
36
+    },
37
+});

+ 3 - 0
node_modules/@vant/weapp/dist/calendar/components/header/index.json Zobrazit soubor

@@ -0,0 +1,3 @@
1
+{
2
+  "component": true
3
+}

+ 16 - 0
node_modules/@vant/weapp/dist/calendar/components/header/index.wxml Zobrazit soubor

@@ -0,0 +1,16 @@
1
+<view class="van-calendar__header">
2
+  <block wx:if="{{ showTitle }}">
3
+    <view class="van-calendar__header-title"><slot name="title"></slot></view>
4
+    <view class="van-calendar__header-title">{{ title }}</view>
5
+  </block>
6
+
7
+  <view wx:if="{{ showSubtitle }}" class="van-calendar__header-subtitle" bind:tap="onClickSubtitle">
8
+    {{ subtitle }}
9
+  </view>
10
+
11
+  <view class="van-calendar__weekdays">
12
+    <view wx:for="{{ weekdays }}" wx:key="index" class="van-calendar__weekday">
13
+      {{ item }}
14
+    </view>
15
+  </view>
16
+</view>

+ 1 - 0
node_modules/@vant/weapp/dist/calendar/components/header/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../../../common/index.wxss';.van-calendar__header{flex-shrink:0;box-shadow:0 2px 10px rgba(125,126,128,.16);box-shadow:var(--calendar-header-box-shadow,0 2px 10px rgba(125,126,128,.16))}.van-calendar__header-subtitle,.van-calendar__header-title{text-align:center;height:44px;height:var(--calendar-header-title-height,44px);font-weight:500;font-weight:var(--font-weight-bold,500);line-height:44px;line-height:var(--calendar-header-title-height,44px)}.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;text-align:center;font-size:12px;font-size:var(--calendar-weekdays-font-size,12px);line-height:30px;line-height:var(--calendar-weekdays-height,30px)}

+ 1 - 0
node_modules/@vant/weapp/dist/calendar/components/month/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 154 - 0
node_modules/@vant/weapp/dist/calendar/components/month/index.js Zobrazit soubor

@@ -0,0 +1,154 @@
1
+import { VantComponent } from '../../../common/component';
2
+import { getMonthEndDay, compareDay, getPrevDay, getNextDay, } from '../../utils';
3
+VantComponent({
4
+    props: {
5
+        date: {
6
+            type: null,
7
+            observer: 'setDays',
8
+        },
9
+        type: {
10
+            type: String,
11
+            observer: 'setDays',
12
+        },
13
+        color: String,
14
+        minDate: {
15
+            type: null,
16
+            observer: 'setDays',
17
+        },
18
+        maxDate: {
19
+            type: null,
20
+            observer: 'setDays',
21
+        },
22
+        showMark: Boolean,
23
+        rowHeight: null,
24
+        formatter: {
25
+            type: null,
26
+            observer: 'setDays',
27
+        },
28
+        currentDate: {
29
+            type: null,
30
+            observer: 'setDays',
31
+        },
32
+        firstDayOfWeek: {
33
+            type: Number,
34
+            observer: 'setDays',
35
+        },
36
+        allowSameDay: Boolean,
37
+        showSubtitle: Boolean,
38
+        showMonthTitle: Boolean,
39
+    },
40
+    data: {
41
+        visible: true,
42
+        days: [],
43
+    },
44
+    methods: {
45
+        onClick(event) {
46
+            const { index } = event.currentTarget.dataset;
47
+            const item = this.data.days[index];
48
+            if (item.type !== 'disabled') {
49
+                this.$emit('click', item);
50
+            }
51
+        },
52
+        setDays() {
53
+            const days = [];
54
+            const startDate = new Date(this.data.date);
55
+            const year = startDate.getFullYear();
56
+            const month = startDate.getMonth();
57
+            const totalDay = getMonthEndDay(startDate.getFullYear(), startDate.getMonth() + 1);
58
+            for (let day = 1; day <= totalDay; day++) {
59
+                const date = new Date(year, month, day);
60
+                const type = this.getDayType(date);
61
+                let config = {
62
+                    date,
63
+                    type,
64
+                    text: day,
65
+                    bottomInfo: this.getBottomInfo(type),
66
+                };
67
+                if (this.data.formatter) {
68
+                    config = this.data.formatter(config);
69
+                }
70
+                days.push(config);
71
+            }
72
+            this.setData({ days });
73
+        },
74
+        getMultipleDayType(day) {
75
+            const { currentDate } = this.data;
76
+            if (!Array.isArray(currentDate)) {
77
+                return '';
78
+            }
79
+            const isSelected = (date) => currentDate.some((item) => compareDay(item, date) === 0);
80
+            if (isSelected(day)) {
81
+                const prevDay = getPrevDay(day);
82
+                const nextDay = getNextDay(day);
83
+                const prevSelected = isSelected(prevDay);
84
+                const nextSelected = isSelected(nextDay);
85
+                if (prevSelected && nextSelected) {
86
+                    return 'multiple-middle';
87
+                }
88
+                if (prevSelected) {
89
+                    return 'end';
90
+                }
91
+                return nextSelected ? 'start' : 'multiple-selected';
92
+            }
93
+            return '';
94
+        },
95
+        getRangeDayType(day) {
96
+            const { currentDate, allowSameDay } = this.data;
97
+            if (!Array.isArray(currentDate)) {
98
+                return '';
99
+            }
100
+            const [startDay, endDay] = currentDate;
101
+            if (!startDay) {
102
+                return '';
103
+            }
104
+            const compareToStart = compareDay(day, startDay);
105
+            if (!endDay) {
106
+                return compareToStart === 0 ? 'start' : '';
107
+            }
108
+            const compareToEnd = compareDay(day, endDay);
109
+            if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) {
110
+                return 'start-end';
111
+            }
112
+            if (compareToStart === 0) {
113
+                return 'start';
114
+            }
115
+            if (compareToEnd === 0) {
116
+                return 'end';
117
+            }
118
+            if (compareToStart > 0 && compareToEnd < 0) {
119
+                return 'middle';
120
+            }
121
+            return '';
122
+        },
123
+        getDayType(day) {
124
+            const { type, minDate, maxDate, currentDate } = this.data;
125
+            if (compareDay(day, minDate) < 0 || compareDay(day, maxDate) > 0) {
126
+                return 'disabled';
127
+            }
128
+            if (type === 'single') {
129
+                return compareDay(day, currentDate) === 0 ? 'selected' : '';
130
+            }
131
+            if (type === 'multiple') {
132
+                return this.getMultipleDayType(day);
133
+            }
134
+            /* istanbul ignore else */
135
+            if (type === 'range') {
136
+                return this.getRangeDayType(day);
137
+            }
138
+            return '';
139
+        },
140
+        getBottomInfo(type) {
141
+            if (this.data.type === 'range') {
142
+                if (type === 'start') {
143
+                    return '开始';
144
+                }
145
+                if (type === 'end') {
146
+                    return '结束';
147
+                }
148
+                if (type === 'start-end') {
149
+                    return '开始/结束';
150
+                }
151
+            }
152
+        },
153
+    },
154
+});

+ 3 - 0
node_modules/@vant/weapp/dist/calendar/components/month/index.json Zobrazit soubor

@@ -0,0 +1,3 @@
1
+{
2
+  "component": true
3
+}

+ 39 - 0
node_modules/@vant/weapp/dist/calendar/components/month/index.wxml Zobrazit soubor

@@ -0,0 +1,39 @@
1
+<wxs src="./index.wxs" module="computed"></wxs>
2
+<wxs src="../../../wxs/utils.wxs" module="utils" />
3
+
4
+<view class="van-calendar__month" style="{{ computed.getMonthStyle(visible, date, rowHeight) }}">
5
+  <view wx:if="{{ showMonthTitle }}" class="van-calendar__month-title">
6
+    {{ computed.formatMonthTitle(date) }}
7
+  </view>
8
+
9
+  <view wx:if="{{ visible }}" class="van-calendar__days">
10
+    <view wx:if="{{ showMark }}" class="van-calendar__month-mark">
11
+      {{ computed.getMark(date) }}
12
+    </view>
13
+
14
+    <view
15
+      wx:for="{{ days }}"
16
+      wx:key="index"
17
+      style="{{ computed.getDayStyle(item.type, index, date, rowHeight, color, firstDayOfWeek) }}"
18
+      class="{{ utils.bem('calendar__day', [item.type]) }} {{ item.className }}"
19
+      data-index="{{ index }}"
20
+      bindtap="onClick"
21
+    >
22
+      <view wx:if="{{ item.type === 'selected' }}" class="van-calendar__selected-day" style="background: {{ color }}">
23
+        <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view>
24
+        {{ item.text }}
25
+        <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info">
26
+          {{ item.bottomInfo }}
27
+        </view>
28
+      </view>
29
+
30
+      <view wx:else>
31
+        <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view>
32
+        {{ item.text }}
33
+        <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info">
34
+          {{ item.bottomInfo }}
35
+        </view>
36
+      </view>
37
+    </view>
38
+  </view>
39
+</view>

+ 71 - 0
node_modules/@vant/weapp/dist/calendar/components/month/index.wxs Zobrazit soubor

@@ -0,0 +1,71 @@
1
+/* eslint-disable */
2
+var utils = require('../../utils.wxs');
3
+
4
+function getMark(date) {
5
+  return getDate(date).getMonth() + 1;
6
+}
7
+
8
+var ROW_HEIGHT = 64;
9
+
10
+function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) {
11
+  var style = [];
12
+  var current = getDate(date).getDay() || 7;
13
+  var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) :
14
+               current === 7 && firstDayOfWeek === 0 ? 0 :
15
+               (current - firstDayOfWeek);
16
+
17
+  if (index === 0) {
18
+    style.push(['margin-left', (100 * offset) / 7 + '%']);
19
+  }
20
+
21
+  if (rowHeight !== ROW_HEIGHT) {
22
+    style.push(['height', rowHeight + 'px']);
23
+  }
24
+
25
+  if (color) {
26
+    if (
27
+      type === 'start' ||
28
+      type === 'end' ||
29
+      type === 'start-end' ||
30
+      type === 'multiple-selected' ||
31
+      type === 'multiple-middle'
32
+    ) {
33
+      style.push(['background', color]);
34
+    } else if (type === 'middle') {
35
+      style.push(['color', color]);
36
+    }
37
+  }
38
+
39
+  return style
40
+    .map(function(item) {
41
+      return item.join(':');
42
+    })
43
+    .join(';');
44
+}
45
+
46
+function formatMonthTitle(date) {
47
+  date = getDate(date);
48
+  return date.getFullYear() + '年' + (date.getMonth() + 1) + '月';
49
+}
50
+
51
+function getMonthStyle(visible, date, rowHeight) {
52
+  if (!visible) {
53
+    date = getDate(date);
54
+
55
+    var totalDay = utils.getMonthEndDay(
56
+      date.getFullYear(),
57
+      date.getMonth() + 1
58
+    );
59
+    var offset = getDate(date).getDay();
60
+    var padding = Math.ceil((totalDay + offset) / 7) * rowHeight;
61
+
62
+    return 'padding-bottom:' + padding + 'px';
63
+  }
64
+}
65
+
66
+module.exports = {
67
+  getMark: getMark,
68
+  getDayStyle: getDayStyle,
69
+  formatMonthTitle: formatMonthTitle,
70
+  getMonthStyle: getMonthStyle
71
+};

+ 1 - 0
node_modules/@vant/weapp/dist/calendar/components/month/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../../../common/index.wxss';.van-calendar{display:flex;flex-direction:column;height:100%;background-color:#fff;background-color:var(--calendar-background-color,#fff)}.van-calendar__month-title{text-align:center;height:44px;height:var(--calendar-header-title-height,44px);font-weight:500;font-weight:var(--font-weight-bold,500);font-size:14px;font-size:var(--calendar-month-title-font-size,14px);line-height:44px;line-height:var(--calendar-header-title-height,44px)}.van-calendar__days{position:relative;display:flex;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{position:absolute;top:50%;left:50%;z-index:0;transform:translate(-50%,-50%);pointer-events:none;color:rgba(242,243,245,.8);color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:160px;font-size:var(--calendar-month-mark-font-size,160px)}.van-calendar__day,.van-calendar__selected-day{display:flex;align-items:center;justify-content:center;text-align:center}.van-calendar__day{position:relative;width:14.285%;height:64px;height:var(--calendar-day-height,64px);font-size:16px;font-size:var(--calendar-day-font-size,16px)}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{color:#fff;color:var(--calendar-range-edge-color,#fff);background-color:#ee0a24;background-color:var(--calendar-range-edge-background-color,#ee0a24)}.van-calendar__day--start{border-radius:4px 0 0 4px;border-radius:var(--border-radius-md,4px) 0 0 var(--border-radius-md,4px)}.van-calendar__day--end{border-radius:0 4px 4px 0;border-radius:0 var(--border-radius-md,4px) var(--border-radius-md,4px) 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px;border-radius:var(--border-radius-md,4px)}.van-calendar__day--middle{color:#ee0a24;color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;content:"";opacity:.1;opacity:var(--calendar-range-middle-background-opacity,.1)}.van-calendar__day--disabled{cursor:default;color:#c8c9cc;color:var(--calendar-day-disabled-color,#c8c9cc)}.van-calendar__bottom-info,.van-calendar__top-info{position:absolute;right:0;left:0;font-size:10px;font-size:var(--calendar-info-font-size,10px);line-height:14px;line-height:var(--calendar-info-line-height,14px)}@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{width:54px;width:var(--calendar-selected-day-size,54px);height:54px;height:var(--calendar-selected-day-size,54px);color:#fff;color:var(--calendar-selected-day-color,#fff);background-color:#ee0a24;background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;border-radius:var(--border-radius-md,4px)}

+ 1 - 0
node_modules/@vant/weapp/dist/calendar/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 323 - 0
node_modules/@vant/weapp/dist/calendar/index.js Zobrazit soubor

@@ -0,0 +1,323 @@
1
+import { VantComponent } from '../common/component';
2
+import { ROW_HEIGHT, getPrevDay, getNextDay, getToday, compareDay, copyDates, calcDateNum, formatMonthTitle, compareMonth, getMonths, getDayByOffset, } from './utils';
3
+import Toast from '../toast/toast';
4
+import { requestAnimationFrame } from '../common/utils';
5
+const initialMinDate = getToday().getTime();
6
+const initialMaxDate = (() => {
7
+    const now = getToday();
8
+    return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime();
9
+})();
10
+VantComponent({
11
+    props: {
12
+        title: {
13
+            type: String,
14
+            value: '日期选择',
15
+        },
16
+        color: String,
17
+        show: {
18
+            type: Boolean,
19
+            observer(val) {
20
+                if (val) {
21
+                    this.initRect();
22
+                    this.scrollIntoView();
23
+                }
24
+            },
25
+        },
26
+        formatter: null,
27
+        confirmText: {
28
+            type: String,
29
+            value: '确定',
30
+        },
31
+        confirmDisabledText: {
32
+            type: String,
33
+            value: '确定',
34
+        },
35
+        rangePrompt: String,
36
+        showRangePrompt: {
37
+            type: Boolean,
38
+            value: true,
39
+        },
40
+        defaultDate: {
41
+            type: null,
42
+            observer(val) {
43
+                this.setData({ currentDate: val });
44
+                this.scrollIntoView();
45
+            },
46
+        },
47
+        allowSameDay: Boolean,
48
+        type: {
49
+            type: String,
50
+            value: 'single',
51
+            observer: 'reset',
52
+        },
53
+        minDate: {
54
+            type: Number,
55
+            value: initialMinDate,
56
+        },
57
+        maxDate: {
58
+            type: Number,
59
+            value: initialMaxDate,
60
+        },
61
+        position: {
62
+            type: String,
63
+            value: 'bottom',
64
+        },
65
+        rowHeight: {
66
+            type: null,
67
+            value: ROW_HEIGHT,
68
+        },
69
+        round: {
70
+            type: Boolean,
71
+            value: true,
72
+        },
73
+        poppable: {
74
+            type: Boolean,
75
+            value: true,
76
+        },
77
+        showMark: {
78
+            type: Boolean,
79
+            value: true,
80
+        },
81
+        showTitle: {
82
+            type: Boolean,
83
+            value: true,
84
+        },
85
+        showConfirm: {
86
+            type: Boolean,
87
+            value: true,
88
+        },
89
+        showSubtitle: {
90
+            type: Boolean,
91
+            value: true,
92
+        },
93
+        safeAreaInsetBottom: {
94
+            type: Boolean,
95
+            value: true,
96
+        },
97
+        closeOnClickOverlay: {
98
+            type: Boolean,
99
+            value: true,
100
+        },
101
+        maxRange: {
102
+            type: null,
103
+            value: null,
104
+        },
105
+        firstDayOfWeek: {
106
+            type: Number,
107
+            value: 0,
108
+        },
109
+    },
110
+    data: {
111
+        subtitle: '',
112
+        currentDate: null,
113
+        scrollIntoView: '',
114
+    },
115
+    created() {
116
+        this.setData({
117
+            currentDate: this.getInitialDate(this.data.defaultDate),
118
+        });
119
+    },
120
+    mounted() {
121
+        if (this.data.show || !this.data.poppable) {
122
+            this.initRect();
123
+            this.scrollIntoView();
124
+        }
125
+    },
126
+    methods: {
127
+        reset() {
128
+            this.setData({ currentDate: this.getInitialDate() });
129
+            this.scrollIntoView();
130
+        },
131
+        initRect() {
132
+            if (this.contentObserver != null) {
133
+                this.contentObserver.disconnect();
134
+            }
135
+            const contentObserver = this.createIntersectionObserver({
136
+                thresholds: [0, 0.1, 0.9, 1],
137
+                observeAll: true,
138
+            });
139
+            this.contentObserver = contentObserver;
140
+            contentObserver.relativeTo('.van-calendar__body');
141
+            contentObserver.observe('.month', (res) => {
142
+                if (res.boundingClientRect.top <= res.relativeRect.top) {
143
+                    // @ts-ignore
144
+                    this.setData({ subtitle: formatMonthTitle(res.dataset.date) });
145
+                }
146
+            });
147
+        },
148
+        limitDateRange(date, minDate = null, maxDate = null) {
149
+            minDate = minDate || this.data.minDate;
150
+            maxDate = maxDate || this.data.maxDate;
151
+            if (compareDay(date, minDate) === -1) {
152
+                return minDate;
153
+            }
154
+            if (compareDay(date, maxDate) === 1) {
155
+                return maxDate;
156
+            }
157
+            return date;
158
+        },
159
+        getInitialDate(defaultDate = null) {
160
+            const { type, minDate, maxDate } = this.data;
161
+            const now = getToday().getTime();
162
+            if (type === 'range') {
163
+                if (!Array.isArray(defaultDate)) {
164
+                    defaultDate = [];
165
+                }
166
+                const [startDay, endDay] = defaultDate || [];
167
+                const start = this.limitDateRange(startDay || now, minDate, getPrevDay(new Date(maxDate)).getTime());
168
+                const end = this.limitDateRange(endDay || now, getNextDay(new Date(minDate)).getTime());
169
+                return [start, end];
170
+            }
171
+            if (type === 'multiple') {
172
+                if (Array.isArray(defaultDate)) {
173
+                    return defaultDate.map((date) => this.limitDateRange(date));
174
+                }
175
+                return [this.limitDateRange(now)];
176
+            }
177
+            if (!defaultDate || Array.isArray(defaultDate)) {
178
+                defaultDate = now;
179
+            }
180
+            return this.limitDateRange(defaultDate);
181
+        },
182
+        scrollIntoView() {
183
+            requestAnimationFrame(() => {
184
+                const { currentDate, type, show, poppable, minDate, maxDate, } = this.data;
185
+                // @ts-ignore
186
+                const targetDate = type === 'single' ? currentDate : currentDate[0];
187
+                const displayed = show || !poppable;
188
+                if (!targetDate || !displayed) {
189
+                    return;
190
+                }
191
+                const months = getMonths(minDate, maxDate);
192
+                months.some((month, index) => {
193
+                    if (compareMonth(month, targetDate) === 0) {
194
+                        this.setData({ scrollIntoView: `month${index}` });
195
+                        return true;
196
+                    }
197
+                    return false;
198
+                });
199
+            });
200
+        },
201
+        onOpen() {
202
+            this.$emit('open');
203
+        },
204
+        onOpened() {
205
+            this.$emit('opened');
206
+        },
207
+        onClose() {
208
+            this.$emit('close');
209
+        },
210
+        onClosed() {
211
+            this.$emit('closed');
212
+        },
213
+        onClickDay(event) {
214
+            const { date } = event.detail;
215
+            const { type, currentDate, allowSameDay } = this.data;
216
+            if (type === 'range') {
217
+                // @ts-ignore
218
+                const [startDay, endDay] = currentDate;
219
+                if (startDay && !endDay) {
220
+                    const compareToStart = compareDay(date, startDay);
221
+                    if (compareToStart === 1) {
222
+                        this.select([startDay, date], true);
223
+                    }
224
+                    else if (compareToStart === -1) {
225
+                        this.select([date, null]);
226
+                    }
227
+                    else if (allowSameDay) {
228
+                        this.select([date, date]);
229
+                    }
230
+                }
231
+                else {
232
+                    this.select([date, null]);
233
+                }
234
+            }
235
+            else if (type === 'multiple') {
236
+                let selectedIndex;
237
+                // @ts-ignore
238
+                const selected = currentDate.some((dateItem, index) => {
239
+                    const equal = compareDay(dateItem, date) === 0;
240
+                    if (equal) {
241
+                        selectedIndex = index;
242
+                    }
243
+                    return equal;
244
+                });
245
+                if (selected) {
246
+                    // @ts-ignore
247
+                    const cancelDate = currentDate.splice(selectedIndex, 1);
248
+                    this.setData({ currentDate });
249
+                    this.unselect(cancelDate);
250
+                }
251
+                else {
252
+                    // @ts-ignore
253
+                    this.select([...currentDate, date]);
254
+                }
255
+            }
256
+            else {
257
+                this.select(date, true);
258
+            }
259
+        },
260
+        unselect(dateArray) {
261
+            const date = dateArray[0];
262
+            if (date) {
263
+                this.$emit('unselect', copyDates(date));
264
+            }
265
+        },
266
+        select(date, complete) {
267
+            if (complete && this.data.type === 'range') {
268
+                const valid = this.checkRange(date);
269
+                if (!valid) {
270
+                    // auto selected to max range if showConfirm
271
+                    if (this.data.showConfirm) {
272
+                        this.emit([
273
+                            date[0],
274
+                            getDayByOffset(date[0], this.data.maxRange - 1),
275
+                        ]);
276
+                    }
277
+                    else {
278
+                        this.emit(date);
279
+                    }
280
+                    return;
281
+                }
282
+            }
283
+            this.emit(date);
284
+            if (complete && !this.data.showConfirm) {
285
+                this.onConfirm();
286
+            }
287
+        },
288
+        emit(date) {
289
+            const getTime = (date) => date instanceof Date ? date.getTime() : date;
290
+            this.setData({
291
+                currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date),
292
+            });
293
+            this.$emit('select', copyDates(date));
294
+        },
295
+        checkRange(date) {
296
+            const { maxRange, rangePrompt, showRangePrompt } = this.data;
297
+            if (maxRange && calcDateNum(date) > maxRange) {
298
+                if (showRangePrompt) {
299
+                    Toast({
300
+                        context: this,
301
+                        message: rangePrompt || `选择天数不能超过 ${maxRange} 天`,
302
+                    });
303
+                }
304
+                this.$emit('over-range');
305
+                return false;
306
+            }
307
+            return true;
308
+        },
309
+        onConfirm() {
310
+            if (this.data.type === 'range' &&
311
+                !this.checkRange(this.data.currentDate)) {
312
+                return;
313
+            }
314
+            wx.nextTick(() => {
315
+                // @ts-ignore
316
+                this.$emit('confirm', copyDates(this.data.currentDate));
317
+            });
318
+        },
319
+        onClickSubtitle(event) {
320
+            this.$emit('click-subtitle', event);
321
+        },
322
+    },
323
+});

+ 10 - 0
node_modules/@vant/weapp/dist/calendar/index.json Zobrazit soubor

@@ -0,0 +1,10 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "header": "./components/header/index",
5
+    "month": "./components/month/index",
6
+    "van-button": "../button/index",
7
+    "van-popup": "../popup/index",
8
+    "van-toast": "../toast/index"
9
+  }
10
+}

+ 25 - 0
node_modules/@vant/weapp/dist/calendar/index.wxml Zobrazit soubor

@@ -0,0 +1,25 @@
1
+<wxs src="./index.wxs" module="computed" />
2
+<wxs src="../wxs/utils.wxs" module="utils" />
3
+
4
+<import src="./calendar.wxml" />
5
+
6
+<van-popup
7
+  wx:if="{{ poppable }}"
8
+  custom-class="van-calendar__popup--{{ position }}"
9
+  close-icon-class="van-calendar__close-icon"
10
+  show="{{ show }}"
11
+  round="{{ round }}"
12
+  position="{{ position }}"
13
+  closeable="{{ showTitle || showSubtitle }}"
14
+  close-on-click-overlay="{{ closeOnClickOverlay }}"
15
+  bind:enter="onOpen"
16
+  bind:close="onClose"
17
+  bind:after-enter="onOpened"
18
+  bind:after-leave="onClosed"
19
+>
20
+  <include src="./calendar.wxml" />
21
+</van-popup>
22
+
23
+<include wx:else src="./calendar.wxml" />
24
+
25
+<van-toast id="van-toast" />

+ 37 - 0
node_modules/@vant/weapp/dist/calendar/index.wxs Zobrazit soubor

@@ -0,0 +1,37 @@
1
+/* eslint-disable */
2
+var utils = require('./utils.wxs');
3
+
4
+function getMonths(minDate, maxDate) {
5
+  var months = [];
6
+  var cursor = getDate(minDate);
7
+
8
+  cursor.setDate(1);
9
+
10
+  do {
11
+    months.push(cursor.getTime());
12
+    cursor.setMonth(cursor.getMonth() + 1);
13
+  } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1);
14
+
15
+  return months;
16
+}
17
+
18
+function getButtonDisabled(type, currentDate) {
19
+  if (currentDate == null) {
20
+    return true;
21
+  }
22
+
23
+  if (type === 'range') {
24
+    return !currentDate[0] || !currentDate[1];
25
+  }
26
+
27
+  if (type === 'multiple') {
28
+    return !currentDate.length;
29
+  }
30
+
31
+  return !currentDate;
32
+}
33
+
34
+module.exports = {
35
+  getMonths: getMonths,
36
+  getButtonDisabled: getButtonDisabled
37
+};

+ 1 - 0
node_modules/@vant/weapp/dist/calendar/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-calendar{display:flex;flex-direction:column;height:100%;height:var(--calendar-height,100%);background-color:#fff;background-color:var(--calendar-background-color,#fff)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:80%;height:var(--calendar-popup-height,80%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.van-calendar__footer{flex-shrink:0;padding:0 16px;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:36px!important;height:var(--calendar-confirm-button-height,36px)!important;margin:7px 0!important;margin:var(--calendar-confirm-button-margin,7px 0)!important;line-height:34px!important;line-height:var(--calendar-confirm-button-line-height,34px)!important}

+ 12 - 0
node_modules/@vant/weapp/dist/calendar/utils.d.ts Zobrazit soubor

@@ -0,0 +1,12 @@
1
+export declare const ROW_HEIGHT = 64;
2
+export declare function formatMonthTitle(date: Date): string;
3
+export declare function compareMonth(date1: Date | number, date2: Date | number): 1 | -1 | 0;
4
+export declare function compareDay(day1: Date | number, day2: Date | number): 1 | -1 | 0;
5
+export declare function getDayByOffset(date: Date, offset: number): Date;
6
+export declare function getPrevDay(date: Date): Date;
7
+export declare function getNextDay(date: Date): Date;
8
+export declare function getToday(): Date;
9
+export declare function calcDateNum(date: [Date, Date]): number;
10
+export declare function copyDates(dates: Date | Date[]): Date | Date[];
11
+export declare function getMonthEndDay(year: number, month: number): number;
12
+export declare function getMonths(minDate: number, maxDate: number): number[];

+ 83 - 0
node_modules/@vant/weapp/dist/calendar/utils.js Zobrazit soubor

@@ -0,0 +1,83 @@
1
+export const ROW_HEIGHT = 64;
2
+export function formatMonthTitle(date) {
3
+    if (!(date instanceof Date)) {
4
+        date = new Date(date);
5
+    }
6
+    return `${date.getFullYear()}年${date.getMonth() + 1}月`;
7
+}
8
+export function compareMonth(date1, date2) {
9
+    if (!(date1 instanceof Date)) {
10
+        date1 = new Date(date1);
11
+    }
12
+    if (!(date2 instanceof Date)) {
13
+        date2 = new Date(date2);
14
+    }
15
+    const year1 = date1.getFullYear();
16
+    const year2 = date2.getFullYear();
17
+    const month1 = date1.getMonth();
18
+    const month2 = date2.getMonth();
19
+    if (year1 === year2) {
20
+        return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
21
+    }
22
+    return year1 > year2 ? 1 : -1;
23
+}
24
+export function compareDay(day1, day2) {
25
+    if (!(day1 instanceof Date)) {
26
+        day1 = new Date(day1);
27
+    }
28
+    if (!(day2 instanceof Date)) {
29
+        day2 = new Date(day2);
30
+    }
31
+    const compareMonthResult = compareMonth(day1, day2);
32
+    if (compareMonthResult === 0) {
33
+        const date1 = day1.getDate();
34
+        const date2 = day2.getDate();
35
+        return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;
36
+    }
37
+    return compareMonthResult;
38
+}
39
+export function getDayByOffset(date, offset) {
40
+    date = new Date(date);
41
+    date.setDate(date.getDate() + offset);
42
+    return date;
43
+}
44
+export function getPrevDay(date) {
45
+    return getDayByOffset(date, -1);
46
+}
47
+export function getNextDay(date) {
48
+    return getDayByOffset(date, 1);
49
+}
50
+export function getToday() {
51
+    const today = new Date();
52
+    today.setHours(0, 0, 0, 0);
53
+    return today;
54
+}
55
+export function calcDateNum(date) {
56
+    const day1 = new Date(date[0]).getTime();
57
+    const day2 = new Date(date[1]).getTime();
58
+    return (day2 - day1) / (1000 * 60 * 60 * 24) + 1;
59
+}
60
+export function copyDates(dates) {
61
+    if (Array.isArray(dates)) {
62
+        return dates.map((date) => {
63
+            if (date === null) {
64
+                return date;
65
+            }
66
+            return new Date(date);
67
+        });
68
+    }
69
+    return new Date(dates);
70
+}
71
+export function getMonthEndDay(year, month) {
72
+    return 32 - new Date(year, month - 1, 32).getDate();
73
+}
74
+export function getMonths(minDate, maxDate) {
75
+    const months = [];
76
+    const cursor = new Date(minDate);
77
+    cursor.setDate(1);
78
+    do {
79
+        months.push(cursor.getTime());
80
+        cursor.setMonth(cursor.getMonth() + 1);
81
+    } while (compareMonth(cursor, maxDate) !== 1);
82
+    return months;
83
+}

+ 25 - 0
node_modules/@vant/weapp/dist/calendar/utils.wxs Zobrazit soubor

@@ -0,0 +1,25 @@
1
+/* eslint-disable */
2
+function getMonthEndDay(year, month) {
3
+  return 32 -  getDate(year, month - 1, 32).getDate();
4
+}
5
+
6
+function compareMonth(date1, date2) {
7
+  date1 = getDate(date1);
8
+  date2 = getDate(date2);
9
+
10
+  var year1 = date1.getFullYear();
11
+  var year2 = date2.getFullYear();
12
+  var month1 = date1.getMonth();
13
+  var month2 = date2.getMonth();
14
+
15
+  if (year1 === year2) {
16
+    return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
17
+  }
18
+
19
+  return year1 > year2 ? 1 : -1;
20
+}
21
+
22
+module.exports = {
23
+  getMonthEndDay: getMonthEndDay,
24
+  compareMonth: compareMonth
25
+};

+ 1 - 0
node_modules/@vant/weapp/dist/card/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 49 - 0
node_modules/@vant/weapp/dist/card/index.js Zobrazit soubor

@@ -0,0 +1,49 @@
1
+import { link } from '../mixins/link';
2
+import { VantComponent } from '../common/component';
3
+VantComponent({
4
+    classes: [
5
+        'num-class',
6
+        'desc-class',
7
+        'thumb-class',
8
+        'title-class',
9
+        'price-class',
10
+        'origin-price-class',
11
+    ],
12
+    mixins: [link],
13
+    props: {
14
+        tag: String,
15
+        num: String,
16
+        desc: String,
17
+        thumb: String,
18
+        title: String,
19
+        price: {
20
+            type: String,
21
+            observer: 'updatePrice',
22
+        },
23
+        centered: Boolean,
24
+        lazyLoad: Boolean,
25
+        thumbLink: String,
26
+        originPrice: String,
27
+        thumbMode: {
28
+            type: String,
29
+            value: 'aspectFit',
30
+        },
31
+        currency: {
32
+            type: String,
33
+            value: '¥',
34
+        },
35
+    },
36
+    methods: {
37
+        updatePrice() {
38
+            const { price } = this.data;
39
+            const priceArr = price.toString().split('.');
40
+            this.setData({
41
+                integerStr: priceArr[0],
42
+                decimalStr: priceArr[1] ? `.${priceArr[1]}` : '',
43
+            });
44
+        },
45
+        onClickThumb() {
46
+            this.jumpLink('thumbLink');
47
+        },
48
+    },
49
+});

+ 6 - 0
node_modules/@vant/weapp/dist/card/index.json Zobrazit soubor

@@ -0,0 +1,6 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "van-tag": "../tag/index"
5
+  }
6
+}

+ 56 - 0
node_modules/@vant/weapp/dist/card/index.wxml Zobrazit soubor

@@ -0,0 +1,56 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+
3
+<view class="custom-class van-card">
4
+  <view class="{{ utils.bem('card__header', { center: centered }) }}">
5
+    <view class="van-card__thumb" bind:tap="onClickThumb">
6
+      <image
7
+        wx:if="{{ thumb }}"
8
+        src="{{ thumb }}"
9
+        mode="{{ thumbMode }}"
10
+        lazy-load="{{ lazyLoad }}"
11
+        class="van-card__img thumb-class"
12
+      />
13
+      <slot wx:else name="thumb" />
14
+      <van-tag
15
+        wx:if="{{ tag }}"
16
+        mark
17
+        type="danger"
18
+        custom-class="van-card__tag"
19
+      >
20
+        {{ tag }}
21
+      </van-tag>
22
+      <slot wx:else name="tag" />
23
+    </view>
24
+
25
+    <view class="van-card__content {{ utils.bem('card__content', { center: centered }) }}">
26
+      <view>
27
+        <view wx:if="{{ title }}" class="van-card__title title-class">{{ title }}</view>
28
+        <slot wx:else name="title" />
29
+
30
+        <view wx:if="{{ desc }}" class="van-card__desc desc-class">{{ desc }}</view>
31
+        <slot wx:else name="desc" />
32
+
33
+        <slot name="tags" />
34
+      </view>
35
+
36
+      <view class="van-card__bottom">
37
+        <slot name="price-top" />
38
+        <view wx:if="{{ price || price === 0 }}" class="van-card__price price-class">
39
+          <text>{{ currency }}</text>
40
+          <text class="van-card__price-integer">{{ integerStr }}</text>
41
+          <text class="van-card__price-decimal">{{ decimalStr }}</text>
42
+        </view>
43
+        <slot wx:else name="price" />
44
+        <view wx:if="{{ originPrice || originPrice === 0 }}" class="van-card__origin-price origin-price-class">{{ currency }} {{ originPrice }}</view>
45
+        <slot wx:else name="origin-price" />
46
+        <view wx:if="{{ num }}" class="van-card__num num-class">x {{ num }}</view>
47
+        <slot wx:else  name="num" />
48
+        <slot name="bottom" />
49
+      </view>
50
+    </view>
51
+  </view>
52
+
53
+  <view class="van-card__footer">
54
+    <slot name="footer" />
55
+  </view>
56
+</view>

+ 1 - 0
node_modules/@vant/weapp/dist/card/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-card{position:relative;box-sizing:border-box;padding:8px 16px;padding:var(--card-padding,8px 16px);font-size:12px;font-size:var(--card-font-size,12px);color:#323233;color:var(--card-text-color,#323233);background-color:#fafafa;background-color:var(--card-background-color,#fafafa)}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{position:relative;flex:none;width:88px;width:var(--card-thumb-size,88px);height:88px;height:var(--card-thumb-size,88px);margin-right:8px;margin-right:var(--padding-xs,8px)}.van-card__thumb:empty{display:none}.van-card__img{width:100%;height:100%;border-radius:8px;border-radius:var(--border-radius-lg,8px)}.van-card__content{position:relative;display:flex;flex:1;flex-direction:column;justify-content:space-between;min-width:0;min-height:88px;min-height:var(--card-thumb-size,88px)}.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:16px;line-height:var(--card-title-line-height,16px)}.van-card__desc{line-height:20px;line-height:var(--card-desc-line-height,20px);color:#646566;color:var(--card-desc-color,#646566)}.van-card__bottom{line-height:20px}.van-card__price{display:inline-block;font-weight:700;color:#ee0a24;color:var(--card-price-color,#ee0a24);font-size:12px;font-size:var(--card-price-font-size,12px)}.van-card__price-integer{font-size:16px;font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif;font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{display:inline-block;margin-left:5px;text-decoration:line-through;font-size:10px;font-size:var(--card-origin-price-font-size,10px);color:#646566;color:var(--card-origin-price-color,#646566)}.van-card__num{float:right}.van-card__tag{position:absolute!important;top:2px;left:0}.van-card__footer{flex:none;width:100%;text-align:right}

+ 1 - 0
node_modules/@vant/weapp/dist/cell-group/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 11 - 0
node_modules/@vant/weapp/dist/cell-group/index.js Zobrazit soubor

@@ -0,0 +1,11 @@
1
+import { VantComponent } from '../common/component';
2
+VantComponent({
3
+    props: {
4
+        title: String,
5
+        border: {
6
+            type: Boolean,
7
+            value: true,
8
+        },
9
+        inset: Boolean,
10
+    },
11
+});

+ 3 - 0
node_modules/@vant/weapp/dist/cell-group/index.json Zobrazit soubor

@@ -0,0 +1,3 @@
1
+{
2
+  "component": true
3
+}

+ 11 - 0
node_modules/@vant/weapp/dist/cell-group/index.wxml Zobrazit soubor

@@ -0,0 +1,11 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+
3
+<view
4
+  wx:if="{{ title }}"
5
+  class="{{ utils.bem('cell-group__title', { inset }) }}"
6
+>
7
+  {{ title }}
8
+</view>
9
+<view class="custom-class {{ utils.bem('cell-group', { inset }) }} {{ border ? 'van-hairline--top-bottom' : '' }}">
10
+  <slot />
11
+</view>

+ 1 - 0
node_modules/@vant/weapp/dist/cell-group/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-cell-group--inset{margin:0 16px;margin:var(--cell-group-inset-padding,0 16px);border-radius:8px;border-radius:var(--cell-group-inset-border-radius,8px);overflow:hidden}.van-cell-group__title{padding:16px 16px 8px;padding:var(--cell-group-title-padding,16px 16px 8px);font-size:14px;font-size:var(--cell-group-title-font-size,14px);line-height:16px;line-height:var(--cell-group-title-line-height,16px);color:#969799;color:var(--cell-group-title-color,#969799)}.van-cell-group__title--inset{padding:16px 16px 8px 32px;padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)}

+ 1 - 0
node_modules/@vant/weapp/dist/cell/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 38 - 0
node_modules/@vant/weapp/dist/cell/index.js Zobrazit soubor

@@ -0,0 +1,38 @@
1
+import { link } from '../mixins/link';
2
+import { VantComponent } from '../common/component';
3
+VantComponent({
4
+    classes: [
5
+        'title-class',
6
+        'label-class',
7
+        'value-class',
8
+        'right-icon-class',
9
+        'hover-class',
10
+    ],
11
+    mixins: [link],
12
+    props: {
13
+        title: null,
14
+        value: null,
15
+        icon: String,
16
+        size: String,
17
+        label: String,
18
+        center: Boolean,
19
+        isLink: Boolean,
20
+        required: Boolean,
21
+        clickable: Boolean,
22
+        titleWidth: String,
23
+        customStyle: String,
24
+        arrowDirection: String,
25
+        useLabelSlot: Boolean,
26
+        border: {
27
+            type: Boolean,
28
+            value: true,
29
+        },
30
+        titleStyle: String,
31
+    },
32
+    methods: {
33
+        onClick(event) {
34
+            this.$emit('click', event.detail);
35
+            this.jumpLink();
36
+        },
37
+    },
38
+});

+ 6 - 0
node_modules/@vant/weapp/dist/cell/index.json Zobrazit soubor

@@ -0,0 +1,6 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "van-icon": "../icon/index"
5
+  }
6
+}

+ 47 - 0
node_modules/@vant/weapp/dist/cell/index.wxml Zobrazit soubor

@@ -0,0 +1,47 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+<wxs src="./index.wxs" module="computed" />
3
+
4
+<view
5
+  class="custom-class {{ utils.bem('cell', [size, { center, required, borderless: !border, clickable: isLink || clickable }]) }}"
6
+  hover-class="van-cell--hover hover-class"
7
+  hover-stay-time="70"
8
+  style="{{ customStyle }}"
9
+  bind:tap="onClick"
10
+>
11
+  <van-icon
12
+    wx:if="{{ icon }}"
13
+    name="{{ icon }}"
14
+    class="van-cell__left-icon-wrap"
15
+    custom-class="van-cell__left-icon"
16
+  />
17
+  <slot wx:else name="icon" />
18
+
19
+  <view
20
+    style="{{ computed.titleStyle({ titleWidth, titleStyle }) }}"
21
+    class="van-cell__title title-class"
22
+  >
23
+
24
+    <block wx:if="{{ title }}">{{ title }}</block>
25
+    <slot wx:else name="title" />
26
+
27
+    <view wx:if="{{ label || useLabelSlot }}" class="van-cell__label label-class">
28
+      <slot wx:if="{{ useLabelSlot }}" name="label" />
29
+      <block wx:elif="{{ label }}">{{ label }}</block>
30
+    </view>
31
+  </view>
32
+
33
+  <view class="van-cell__value value-class">
34
+    <block wx:if="{{ value || value === 0 }}">{{ value }}</block>
35
+    <slot wx:else />
36
+  </view>
37
+
38
+  <van-icon
39
+    wx:if="{{ isLink }}"
40
+    name="{{ arrowDirection ? 'arrow' + '-' + arrowDirection : 'arrow' }}"
41
+    class="van-cell__right-icon-wrap right-icon-class"
42
+    custom-class="van-cell__right-icon"
43
+  />
44
+  <slot wx:else name="right-icon" />
45
+
46
+  <slot name="extra" />
47
+</view>

+ 17 - 0
node_modules/@vant/weapp/dist/cell/index.wxs Zobrazit soubor

@@ -0,0 +1,17 @@
1
+/* eslint-disable */
2
+var style = require('../wxs/style.wxs');
3
+var addUnit = require('../wxs/add-unit.wxs');
4
+
5
+function titleStyle(data) {
6
+  return style([
7
+    {
8
+      'max-width': addUnit(data.titleWidth),
9
+      'min-width': addUnit(data.titleWidth),
10
+    },
11
+    data.titleStyle,
12
+  ]);
13
+}
14
+
15
+module.exports = {
16
+  titleStyle: titleStyle,
17
+};

+ 1 - 0
node_modules/@vant/weapp/dist/cell/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-cell{position:relative;display:flex;box-sizing:border-box;width:100%;padding:10px 16px;padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);font-size:14px;font-size:var(--cell-font-size,14px);line-height:24px;line-height:var(--cell-line-height,24px);color:#323233;color:var(--cell-text-color,#323233);background-color:#fff;background-color:var(--cell-background-color,#fff)}.van-cell:after{position:absolute;box-sizing:border-box;transform-origin:center;content:" ";pointer-events:none;right:16px;bottom:0;left:16px;border-bottom:1px solid #ebedf0;transform:scaleY(.5)}.van-cell--borderless:after{display:none}.van-cell-group{background-color:#fff;background-color:var(--cell-background-color,#fff)}.van-cell__label{margin-top:3px;margin-top:var(--cell-label-margin-top,3px);font-size:12px;font-size:var(--cell-label-font-size,12px);line-height:18px;line-height:var(--cell-label-line-height,18px);color:#969799;color:var(--cell-label-color,#969799)}.van-cell__value{overflow:hidden;text-align:right;vertical-align:middle;color:#969799;color:var(--cell-value-color,#969799)}.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{display:flex;align-items:center;height:24px;height:var(--cell-line-height,24px);font-size:16px;font-size:var(--cell-icon-size,16px)}.van-cell__left-icon-wrap{margin-right:4px;margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{margin-left:4px;margin-left:var(--padding-base,4px);color:#969799;color:var(--cell-right-icon-color,#969799)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:24px;line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:#f2f3f5;background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{position:absolute;content:"*";left:8px;left:var(--padding-xs,8px);font-size:14px;font-size:var(--cell-font-size,14px);color:#ee0a24;color:var(--cell-required-color,#ee0a24)}.van-cell--center{align-items:center}.van-cell--large{padding-top:12px;padding-top:var(--cell-large-vertical-padding,12px);padding-bottom:12px;padding-bottom:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:16px;font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:16px;font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:14px;font-size:var(--cell-large-label-font-size,14px)}

+ 1 - 0
node_modules/@vant/weapp/dist/checkbox-group/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 36 - 0
node_modules/@vant/weapp/dist/checkbox-group/index.js Zobrazit soubor

@@ -0,0 +1,36 @@
1
+import { useChildren } from '../common/relation';
2
+import { VantComponent } from '../common/component';
3
+VantComponent({
4
+    field: true,
5
+    relation: useChildren('checkbox', function (target) {
6
+        this.updateChild(target);
7
+    }),
8
+    props: {
9
+        max: Number,
10
+        value: {
11
+            type: Array,
12
+            observer: 'updateChildren',
13
+        },
14
+        disabled: {
15
+            type: Boolean,
16
+            observer: 'updateChildren',
17
+        },
18
+        direction: {
19
+            type: String,
20
+            value: 'vertical',
21
+        },
22
+    },
23
+    methods: {
24
+        updateChildren() {
25
+            this.children.forEach((child) => this.updateChild(child));
26
+        },
27
+        updateChild(child) {
28
+            const { value, disabled, direction } = this.data;
29
+            child.setData({
30
+                value: value.indexOf(child.data.name) !== -1,
31
+                parentDisabled: disabled,
32
+                direction,
33
+            });
34
+        },
35
+    },
36
+});

+ 3 - 0
node_modules/@vant/weapp/dist/checkbox-group/index.json Zobrazit soubor

@@ -0,0 +1,3 @@
1
+{
2
+  "component": true
3
+}

+ 5 - 0
node_modules/@vant/weapp/dist/checkbox-group/index.wxml Zobrazit soubor

@@ -0,0 +1,5 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+
3
+<view class="{{ utils.bem('checkbox-group', [{ horizontal: direction === 'horizontal' }]) }}">
4
+  <slot />
5
+</view>

+ 1 - 0
node_modules/@vant/weapp/dist/checkbox-group/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap}

+ 1 - 0
node_modules/@vant/weapp/dist/checkbox/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 77 - 0
node_modules/@vant/weapp/dist/checkbox/index.js Zobrazit soubor

@@ -0,0 +1,77 @@
1
+import { useParent } from '../common/relation';
2
+import { VantComponent } from '../common/component';
3
+function emit(target, value) {
4
+    target.$emit('input', value);
5
+    target.$emit('change', value);
6
+}
7
+VantComponent({
8
+    field: true,
9
+    relation: useParent('checkbox-group'),
10
+    classes: ['icon-class', 'label-class'],
11
+    props: {
12
+        value: Boolean,
13
+        disabled: Boolean,
14
+        useIconSlot: Boolean,
15
+        checkedColor: String,
16
+        labelPosition: {
17
+            type: String,
18
+            value: 'right',
19
+        },
20
+        labelDisabled: Boolean,
21
+        shape: {
22
+            type: String,
23
+            value: 'round',
24
+        },
25
+        iconSize: {
26
+            type: null,
27
+            value: 20,
28
+        },
29
+    },
30
+    data: {
31
+        parentDisabled: false,
32
+        direction: 'vertical',
33
+    },
34
+    methods: {
35
+        emitChange(value) {
36
+            if (this.parent) {
37
+                this.setParentValue(this.parent, value);
38
+            }
39
+            else {
40
+                emit(this, value);
41
+            }
42
+        },
43
+        toggle() {
44
+            const { parentDisabled, disabled, value } = this.data;
45
+            if (!disabled && !parentDisabled) {
46
+                this.emitChange(!value);
47
+            }
48
+        },
49
+        onClickLabel() {
50
+            const { labelDisabled, parentDisabled, disabled, value } = this.data;
51
+            if (!disabled && !labelDisabled && !parentDisabled) {
52
+                this.emitChange(!value);
53
+            }
54
+        },
55
+        setParentValue(parent, value) {
56
+            const parentValue = parent.data.value.slice();
57
+            const { name } = this.data;
58
+            const { max } = parent.data;
59
+            if (value) {
60
+                if (max && parentValue.length >= max) {
61
+                    return;
62
+                }
63
+                if (parentValue.indexOf(name) === -1) {
64
+                    parentValue.push(name);
65
+                    emit(parent, parentValue);
66
+                }
67
+            }
68
+            else {
69
+                const index = parentValue.indexOf(name);
70
+                if (index !== -1) {
71
+                    parentValue.splice(index, 1);
72
+                    emit(parent, parentValue);
73
+                }
74
+            }
75
+        },
76
+    },
77
+});

+ 6 - 0
node_modules/@vant/weapp/dist/checkbox/index.json Zobrazit soubor

@@ -0,0 +1,6 @@
1
+{
2
+  "component": true,
3
+  "usingComponents": {
4
+    "van-icon": "../icon/index"
5
+  }
6
+}

+ 31 - 0
node_modules/@vant/weapp/dist/checkbox/index.wxml Zobrazit soubor

@@ -0,0 +1,31 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+<wxs src="./index.wxs" module="computed" />
3
+
4
+<view class="{{ utils.bem('checkbox', [{ horizontal: direction === 'horizontal' }]) }} custom-class">
5
+  <view
6
+    wx:if="{{ labelPosition === 'left' }}"
7
+    class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
8
+    bindtap="onClickLabel"
9
+  >
10
+    <slot />
11
+  </view>
12
+  <view class="van-checkbox__icon-wrap" bindtap="toggle">
13
+    <slot wx:if="{{ useIconSlot }}" name="icon" />
14
+    <van-icon
15
+      wx:else
16
+      name="success"
17
+      size="0.8em"
18
+      class="{{ utils.bem('checkbox__icon', [shape, { disabled: disabled || parentDisabled, checked: value }]) }}"
19
+      style="{{ computed.iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) }}"
20
+      custom-class="icon-class"
21
+      custom-style="line-height: 1.25em;"
22
+    />
23
+  </view>
24
+  <view
25
+    wx:if="{{ labelPosition === 'right' }}"
26
+    class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
27
+    bindtap="onClickLabel"
28
+  >
29
+    <slot />
30
+  </view>
31
+</view>

+ 20 - 0
node_modules/@vant/weapp/dist/checkbox/index.wxs Zobrazit soubor

@@ -0,0 +1,20 @@
1
+/* eslint-disable */
2
+var style = require('../wxs/style.wxs');
3
+var addUnit = require('../wxs/add-unit.wxs');
4
+
5
+function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) {
6
+  var styles = {
7
+    'font-size': addUnit(iconSize),
8
+  };
9
+
10
+  if (checkedColor && value && !disabled && !parentDisabled) {
11
+    styles['border-color'] = checkedColor;
12
+    styles['background-color'] = checkedColor;
13
+  }
14
+
15
+  return style(styles);
16
+}
17
+
18
+module.exports = {
19
+  iconStyle: iconStyle,
20
+};

+ 1 - 0
node_modules/@vant/weapp/dist/checkbox/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-checkbox{display:flex;align-items:center;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:20px;line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:1em;height:1em;color:transparent;text-align:center;transition-property:color,border-color,background-color;font-size:20px;font-size:var(--checkbox-size,20px);border:1px solid #c8c9cc;border:1px solid var(--checkbox-border-color,#c8c9cc);transition-duration:.2s;transition-duration:var(--checkbox-transition-duration,.2s)}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{color:#fff;color:var(--white,#fff);background-color:#1989fa;background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:#1989fa;border-color:var(--checkbox-checked-icon-color,#1989fa)}.van-checkbox__icon--disabled{background-color:#ebedf0;background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:#c8c9cc;border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:#c8c9cc;color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;padding-left:10px;padding-left:var(--checkbox-label-margin,10px);color:#323233;color:var(--checkbox-label-color,#323233)}.van-checkbox__label--left{float:left;margin:0 10px 0 0;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:#c8c9cc;color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0}

+ 4 - 0
node_modules/@vant/weapp/dist/circle/canvas.d.ts Zobrazit soubor

@@ -0,0 +1,4 @@
1
+/// <reference types="miniprogram-api-typings" />
2
+declare type CanvasContext = WechatMiniprogram.CanvasContext;
3
+export declare function adaptor(ctx: CanvasContext & Record<string, unknown>): CanvasContext;
4
+export {};

+ 43 - 0
node_modules/@vant/weapp/dist/circle/canvas.js Zobrazit soubor

@@ -0,0 +1,43 @@
1
+export function adaptor(ctx) {
2
+    // @ts-ignore
3
+    return Object.assign(ctx, {
4
+        setStrokeStyle(val) {
5
+            ctx.strokeStyle = val;
6
+        },
7
+        setLineWidth(val) {
8
+            ctx.lineWidth = val;
9
+        },
10
+        setLineCap(val) {
11
+            ctx.lineCap = val;
12
+        },
13
+        setFillStyle(val) {
14
+            ctx.fillStyle = val;
15
+        },
16
+        setFontSize(val) {
17
+            ctx.font = String(val);
18
+        },
19
+        setGlobalAlpha(val) {
20
+            ctx.globalAlpha = val;
21
+        },
22
+        setLineJoin(val) {
23
+            ctx.lineJoin = val;
24
+        },
25
+        setTextAlign(val) {
26
+            ctx.textAlign = val;
27
+        },
28
+        setMiterLimit(val) {
29
+            ctx.miterLimit = val;
30
+        },
31
+        setShadow(offsetX, offsetY, blur, color) {
32
+            ctx.shadowOffsetX = offsetX;
33
+            ctx.shadowOffsetY = offsetY;
34
+            ctx.shadowBlur = blur;
35
+            ctx.shadowColor = color;
36
+        },
37
+        setTextBaseline(val) {
38
+            ctx.textBaseline = val;
39
+        },
40
+        createCircularGradient() { },
41
+        draw() { },
42
+    });
43
+}

+ 1 - 0
node_modules/@vant/weapp/dist/circle/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 193 - 0
node_modules/@vant/weapp/dist/circle/index.js Zobrazit soubor

@@ -0,0 +1,193 @@
1
+import { BLUE, WHITE } from '../common/color';
2
+import { VantComponent } from '../common/component';
3
+import { getSystemInfoSync } from '../common/utils';
4
+import { isObj } from '../common/validator';
5
+import { canIUseCanvas2d } from '../common/version';
6
+import { adaptor } from './canvas';
7
+function format(rate) {
8
+    return Math.min(Math.max(rate, 0), 100);
9
+}
10
+const PERIMETER = 2 * Math.PI;
11
+const BEGIN_ANGLE = -Math.PI / 2;
12
+const STEP = 1;
13
+VantComponent({
14
+    props: {
15
+        text: String,
16
+        lineCap: {
17
+            type: String,
18
+            value: 'round',
19
+        },
20
+        value: {
21
+            type: Number,
22
+            value: 0,
23
+            observer: 'reRender',
24
+        },
25
+        speed: {
26
+            type: Number,
27
+            value: 50,
28
+        },
29
+        size: {
30
+            type: Number,
31
+            value: 100,
32
+            observer() {
33
+                this.drawCircle(this.currentValue);
34
+            },
35
+        },
36
+        fill: String,
37
+        layerColor: {
38
+            type: String,
39
+            value: WHITE,
40
+        },
41
+        color: {
42
+            type: null,
43
+            value: BLUE,
44
+            observer() {
45
+                this.setHoverColor().then(() => {
46
+                    this.drawCircle(this.currentValue);
47
+                });
48
+            },
49
+        },
50
+        type: {
51
+            type: String,
52
+            value: '',
53
+        },
54
+        strokeWidth: {
55
+            type: Number,
56
+            value: 4,
57
+        },
58
+        clockwise: {
59
+            type: Boolean,
60
+            value: true,
61
+        },
62
+    },
63
+    data: {
64
+        hoverColor: BLUE,
65
+    },
66
+    methods: {
67
+        getContext() {
68
+            const { type, size } = this.data;
69
+            if (type === '' || !canIUseCanvas2d()) {
70
+                const ctx = wx.createCanvasContext('van-circle', this);
71
+                return Promise.resolve(ctx);
72
+            }
73
+            const dpr = getSystemInfoSync().pixelRatio;
74
+            return new Promise((resolve) => {
75
+                wx.createSelectorQuery()
76
+                    .in(this)
77
+                    .select('#van-circle')
78
+                    .node()
79
+                    .exec((res) => {
80
+                    const canvas = res[0].node;
81
+                    const ctx = canvas.getContext(type);
82
+                    if (!this.inited) {
83
+                        this.inited = true;
84
+                        canvas.width = size * dpr;
85
+                        canvas.height = size * dpr;
86
+                        ctx.scale(dpr, dpr);
87
+                    }
88
+                    resolve(adaptor(ctx));
89
+                });
90
+            });
91
+        },
92
+        setHoverColor() {
93
+            const { color, size } = this.data;
94
+            if (isObj(color)) {
95
+                return this.getContext().then((context) => {
96
+                    const LinearColor = context.createLinearGradient(size, 0, 0, 0);
97
+                    Object.keys(color)
98
+                        .sort((a, b) => parseFloat(a) - parseFloat(b))
99
+                        .map((key) => LinearColor.addColorStop(parseFloat(key) / 100, color[key]));
100
+                    this.hoverColor = LinearColor;
101
+                });
102
+            }
103
+            this.hoverColor = color;
104
+            return Promise.resolve();
105
+        },
106
+        presetCanvas(context, strokeStyle, beginAngle, endAngle, fill) {
107
+            const { strokeWidth, lineCap, clockwise, size } = this.data;
108
+            const position = size / 2;
109
+            const radius = position - strokeWidth / 2;
110
+            context.setStrokeStyle(strokeStyle);
111
+            context.setLineWidth(strokeWidth);
112
+            context.setLineCap(lineCap);
113
+            context.beginPath();
114
+            context.arc(position, position, radius, beginAngle, endAngle, !clockwise);
115
+            context.stroke();
116
+            if (fill) {
117
+                context.setFillStyle(fill);
118
+                context.fill();
119
+            }
120
+        },
121
+        renderLayerCircle(context) {
122
+            const { layerColor, fill } = this.data;
123
+            this.presetCanvas(context, layerColor, 0, PERIMETER, fill);
124
+        },
125
+        renderHoverCircle(context, formatValue) {
126
+            const { clockwise } = this.data;
127
+            // 结束角度
128
+            const progress = PERIMETER * (formatValue / 100);
129
+            const endAngle = clockwise
130
+                ? BEGIN_ANGLE + progress
131
+                : 3 * Math.PI - (BEGIN_ANGLE + progress);
132
+            this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle);
133
+        },
134
+        drawCircle(currentValue) {
135
+            const { size } = this.data;
136
+            this.getContext().then((context) => {
137
+                context.clearRect(0, 0, size, size);
138
+                this.renderLayerCircle(context);
139
+                const formatValue = format(currentValue);
140
+                if (formatValue !== 0) {
141
+                    this.renderHoverCircle(context, formatValue);
142
+                }
143
+                context.draw();
144
+            });
145
+        },
146
+        reRender() {
147
+            // tofector 动画暂时没有想到好的解决方案
148
+            const { value, speed } = this.data;
149
+            if (speed <= 0 || speed > 1000) {
150
+                this.drawCircle(value);
151
+                return;
152
+            }
153
+            this.clearMockInterval();
154
+            this.currentValue = this.currentValue || 0;
155
+            const run = () => {
156
+                this.interval = setTimeout(() => {
157
+                    if (this.currentValue !== value) {
158
+                        if (Math.abs(this.currentValue - value) < STEP) {
159
+                            this.currentValue = value;
160
+                        }
161
+                        else if (this.currentValue < value) {
162
+                            this.currentValue += STEP;
163
+                        }
164
+                        else {
165
+                            this.currentValue -= STEP;
166
+                        }
167
+                        this.drawCircle(this.currentValue);
168
+                        run();
169
+                    }
170
+                    else {
171
+                        this.clearMockInterval();
172
+                    }
173
+                }, 1000 / speed);
174
+            };
175
+            run();
176
+        },
177
+        clearMockInterval() {
178
+            if (this.interval) {
179
+                clearTimeout(this.interval);
180
+                this.interval = null;
181
+            }
182
+        },
183
+    },
184
+    mounted() {
185
+        this.currentValue = this.data.value;
186
+        this.setHoverColor().then(() => {
187
+            this.drawCircle(this.currentValue);
188
+        });
189
+    },
190
+    destroyed() {
191
+        this.clearMockInterval();
192
+    },
193
+});

+ 3 - 0
node_modules/@vant/weapp/dist/circle/index.json Zobrazit soubor

@@ -0,0 +1,3 @@
1
+{
2
+  "component": true
3
+}

+ 9 - 0
node_modules/@vant/weapp/dist/circle/index.wxml Zobrazit soubor

@@ -0,0 +1,9 @@
1
+<wxs src="../wxs/utils.wxs" module="utils" />
2
+
3
+<view class="van-circle">
4
+  <canvas class="van-circle__canvas" type="{{ type }}" style="width: {{ utils.addUnit(size) }};height:{{ utils.addUnit(size) }}" id="van-circle" canvas-id="van-circle"></canvas>
5
+  <view wx:if="{{ !text }}" class="van-circle__text">
6
+    <slot></slot>
7
+  </view>
8
+  <cover-view wx:else class="van-circle__text">{{ text }}</cover-view>
9
+</view>

+ 1 - 0
node_modules/@vant/weapp/dist/circle/index.wxss Zobrazit soubor

@@ -0,0 +1 @@
1
+@import '../common/index.wxss';.van-circle{position:relative;display:inline-block;text-align:center}.van-circle__text{position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);color:#323233;color:var(--circle-text-color,#323233)}

+ 1 - 0
node_modules/@vant/weapp/dist/col/index.d.ts Zobrazit soubor

@@ -0,0 +1 @@
1
+export {};

+ 9 - 0
node_modules/@vant/weapp/dist/col/index.js Zobrazit soubor

@@ -0,0 +1,9 @@
1
+import { useParent } from '../common/relation';
2
+import { VantComponent } from '../common/component';
3
+VantComponent({
4
+    relation: useParent('row'),
5
+    props: {
6
+        span: Number,
7
+        offset: Number,
8
+    },
9
+});

+ 0 - 0
node_modules/@vant/weapp/dist/col/index.json Zobrazit soubor


Některé soubory nejsou zobrazny, neboť je v této revizi změněno mnoho souborů