Commit cc87c251858d1b9a8310c10f8b0517a31768ec5f
1 parent
6b377744
每日签到
Showing
5 changed files
with
786 additions
and
0 deletions
packageA/pages/checkin/checkin.js
0 → 100644
1 | +// packageA//pages/checkin/checkin.js | |
2 | +const app = getApp(); | |
3 | + | |
4 | +Page({ | |
5 | + | |
6 | + /** | |
7 | + * 页面的初始数据 | |
8 | + */ | |
9 | + data: { | |
10 | + year: '', | |
11 | + month: '', | |
12 | + day: '', | |
13 | + weekArr: ['日', '一', '二', '三', '四', '五', '六'], | |
14 | + dateArr: [], | |
15 | + firstDay: '', | |
16 | + lastDay: '', | |
17 | + param: null, | |
18 | + clockNum: 3, | |
19 | + | |
20 | + res: null, | |
21 | + isShowRules: false, | |
22 | + isCheckIn: false, | |
23 | + checkInDays: 0, //连续签到天数 | |
24 | + integral: 0, //积分 | |
25 | + checkInNums: 0, //补签次数 | |
26 | + isCheckInDay: '', | |
27 | + | |
28 | + | |
29 | + flag: true, | |
30 | + }, | |
31 | + | |
32 | + loadQd(callback) { | |
33 | + let self = this; | |
34 | + app.request.get('/api/weshop/qdrecord/getUser/'+ app.globalData.setting.stoid + '/' + app.globalData.user_id, { | |
35 | + success: function (res) { | |
36 | + if(callback) callback(); | |
37 | + self.setData({ | |
38 | + res: res.data.data | |
39 | + }); | |
40 | + self.loadCheckedRecord(); | |
41 | + }, | |
42 | + }); | |
43 | + }, | |
44 | + | |
45 | + /** | |
46 | + * 生命周期函数--监听页面加载 | |
47 | + */ | |
48 | + onLoad: function(options) { | |
49 | + let self = this; | |
50 | + this.getDate(); | |
51 | + this.setDate(); | |
52 | + var res = wx.getSystemInfoSync(); | |
53 | + this.setData({ | |
54 | + param: res.windowHeight / 12, | |
55 | + }) | |
56 | + | |
57 | + this.loadQd(); | |
58 | + | |
59 | + }, | |
60 | + | |
61 | + | |
62 | + // 点击"我的积分"和"去购物"进行跳转 | |
63 | + goto(e) { | |
64 | + let url = e.target.dataset.url; | |
65 | + app.goto(url); | |
66 | + }, | |
67 | + | |
68 | + | |
69 | + // 点击显示签到规则 | |
70 | + showRules() { | |
71 | + if(this.data.isShowRules) { | |
72 | + this.setData({ | |
73 | + isShowRules: false | |
74 | + }); | |
75 | + } else { | |
76 | + this.setData({ | |
77 | + isShowRules: true | |
78 | + }); | |
79 | + } | |
80 | + }, | |
81 | + | |
82 | + | |
83 | + // 加载签到记录 | |
84 | + loadCheckedRecord() { | |
85 | + let newDateArr = this.data.dateArr; | |
86 | + let list; | |
87 | + let bqlist; | |
88 | + if(this.data.res.qddaylist) { | |
89 | + list = this.data.res.qddaylist.split(','); | |
90 | + for(let item of list) { | |
91 | + newDateArr[item-1].isCheckIn = true; | |
92 | + }; | |
93 | + } | |
94 | + if(this.data.res.curbqdaynum) { | |
95 | + bqlist = this.data.res.curbqdaynum.split(','); | |
96 | + for(let item of bqlist) { | |
97 | + var date = new Date(item); | |
98 | + newDateArr[date.getDate()-1].isBq = true; | |
99 | + } | |
100 | + } | |
101 | + this.setData({ | |
102 | + dateArr: newDateArr | |
103 | + }); | |
104 | + }, | |
105 | + | |
106 | + // 点击签到 | |
107 | + checkInToday() { | |
108 | + const self = this; | |
109 | + // 获取今天的签到状态 | |
110 | + let isCheckInToday = this.data.dateArr[this.data.day-1].isCheckIn; | |
111 | + // 如果还没签到, 可以点击签到 | |
112 | + if(!isCheckInToday) { | |
113 | + app.request.promisePost('/api/weshop/qdrecord/saveQd', { | |
114 | + data: { | |
115 | + store_id: app.globalData.setting.stoid, | |
116 | + user_id: app.globalData.user_id, | |
117 | + } | |
118 | + }).then(res => { | |
119 | + // 改变签到状态,由false置为true | |
120 | + // let newDateArr = self.data.dateArr; | |
121 | + // newDateArr[self.data.day-1].isCheckIn = true; | |
122 | + | |
123 | + self.loadQd(function() { | |
124 | + wx.showToast({ | |
125 | + title: self.data.res.qdintro, | |
126 | + icon: 'none', | |
127 | + duration: 1500, | |
128 | + success: function() { | |
129 | + | |
130 | + } | |
131 | + }); | |
132 | + }); | |
133 | + | |
134 | + }) | |
135 | + } | |
136 | + }, | |
137 | + | |
138 | + | |
139 | + // 补签 | |
140 | + reCheckIn() { | |
141 | + var self = this; | |
142 | + // var i = 0; | |
143 | + console.log('补签~'); | |
144 | + if(this.data.flag) { | |
145 | + this.data.flag = false; | |
146 | + app.request.promisePost('/api/weshop/qdrecord/saveBQd', { | |
147 | + data: { | |
148 | + store_id: app.globalData.setting.stoid, | |
149 | + user_id: app.globalData.user_id, | |
150 | + daynum: self.data.res.getBQIntegral, | |
151 | + bqnum: self.data.res.getbqnum2, | |
152 | + bqintegral: self.data.res.getBQIntegral1, | |
153 | + } | |
154 | + }).then(res => { | |
155 | + // 改变签到状态,由false置为true | |
156 | + // let newDateArr = self.data.dateArr; | |
157 | + // newDateArr[self.data.day-1].isCheckIn = true; | |
158 | + var bqlist = self.data.res.curbqdaynum.split(',').sort(); | |
159 | + var list = []; | |
160 | + for(let item of bqlist) { | |
161 | + var date = new Date(item); | |
162 | + list.push(date.getDate()); | |
163 | + } | |
164 | + | |
165 | + self.data.dateArr[list[0]-1].isBq = false; | |
166 | + self.setData({ | |
167 | + dateArr: self.data.dateArr | |
168 | + }); | |
169 | + | |
170 | + self.loadQd(function() { | |
171 | + self.data.flag = true; | |
172 | + wx.showToast({ | |
173 | + title: '补签成功', | |
174 | + icon: 'success', | |
175 | + duration: 1500, | |
176 | + success: function() { | |
177 | + | |
178 | + } | |
179 | + }); | |
180 | + }); | |
181 | + }) | |
182 | + } | |
183 | + }, | |
184 | + | |
185 | + | |
186 | + | |
187 | + | |
188 | + | |
189 | + getDate: function() { //获取当月日期 | |
190 | + var mydate = new Date(); | |
191 | + var year = mydate.getFullYear(); | |
192 | + var month = mydate.getMonth(); //0~11: 一月至十二月 | |
193 | + var months = month + 1; //1~12:一月至十二月 | |
194 | + this.data.year = year; | |
195 | + this.data.month = months; | |
196 | + this.data.day = mydate.getDate(); //获取当月日期: 1~31 | |
197 | + var fist = new Date(year, month, 1); | |
198 | + this.data.firstDay = fist.getDay(); //获取当月第一天 | |
199 | + var last = new Date(year, months, 0); //0表示当月最后一天 | |
200 | + this.data.lastDay = last.getDate(); //获取当月最后一天 | |
201 | + | |
202 | + this.setData({ | |
203 | + year: this.data.year, | |
204 | + month: this.data.month, | |
205 | + day: this.data.day, | |
206 | + firstDay: this.data.firstDay, | |
207 | + lastDay: this.data.lastDay | |
208 | + }) | |
209 | + console.log("今天:" + this.data.day); | |
210 | + }, | |
211 | + | |
212 | + setDate: function() { | |
213 | + var day; | |
214 | + for (var i = 1; i < this.data.lastDay + 1; i++) { | |
215 | + day = { | |
216 | + num: i, | |
217 | + }; | |
218 | + this.data.dateArr.push(day); | |
219 | + } | |
220 | + this.setData({ | |
221 | + dateArr: this.data.dateArr, | |
222 | + // firstDay: this.data.firstDay | |
223 | + }); | |
224 | + }, | |
225 | + | |
226 | + // prevMonth: function() { //上一月 | |
227 | + // var months = ""; | |
228 | + // var years = ""; | |
229 | + // if (this.data.month == 1) { | |
230 | + // years = this.data.year - 1 | |
231 | + // this.data.month = 12; | |
232 | + // months = this.data.month; | |
233 | + // } else { | |
234 | + // years = this.data.year; | |
235 | + // months = this.data.month - 1; | |
236 | + // } | |
237 | + | |
238 | + // var first = new Date(years, months - 1, 1); | |
239 | + // this.data.firstDay = first.getDay(); | |
240 | + // var last = new Date(years, months, 0); | |
241 | + // this.data.lastDay = last.getDate(); | |
242 | + | |
243 | + // this.setData({ | |
244 | + // month: months, | |
245 | + // year: years, | |
246 | + // firstDay: this.data.firstDay, | |
247 | + // lastDay: this.data.lastDay | |
248 | + // }) | |
249 | + | |
250 | + // this.data.dateArr = []; | |
251 | + // for (var i = 1; i < this.data.lastDay + 1; i++) { | |
252 | + // this.data.dateArr.push(i); | |
253 | + // } | |
254 | + // this.setData({ | |
255 | + // dateArr: this.data.dateArr | |
256 | + // }) | |
257 | + // }, | |
258 | + | |
259 | + // nextMonth: function() { //下一月 | |
260 | + // var months = ""; | |
261 | + // var years = ""; | |
262 | + // if (this.data.month == 12) { | |
263 | + // this.data.month = 0; | |
264 | + // months = this.data.month; | |
265 | + // years = this.data.year + 1; | |
266 | + // } else { | |
267 | + // months = this.data.month + 1; | |
268 | + // years = this.data.year; | |
269 | + // } | |
270 | + // var months = this.data.month + 1; | |
271 | + // var first = new Date(years, months - 1, 1); | |
272 | + // this.data.firstDay = first.getDay(); | |
273 | + // var last = new Date(years, months, 0); | |
274 | + // this.data.lastDay = last.getDate(); | |
275 | + // this.setData({ | |
276 | + // month: months, | |
277 | + // year: years, | |
278 | + // firstDay: this.data.firstDay, | |
279 | + // lastDay: this.data.lastDay | |
280 | + // }) | |
281 | + | |
282 | + // this.data.dateArr = []; | |
283 | + // for (var i = 1; i < this.data.lastDay + 1; i++) { | |
284 | + // this.data.dateArr.push(i); | |
285 | + // } | |
286 | + // this.setData({ | |
287 | + // dateArr: this.data.dateArr | |
288 | + // }) | |
289 | + // }, | |
290 | + | |
291 | +}) | ... | ... |
packageA/pages/checkin/checkin.json
0 → 100644
packageA/pages/checkin/checkin.wxml
0 → 100644
1 | +<!--packageA//pages/checkin/checkin.wxml--> | |
2 | +<wxs src="checkin.wxs" module="myUtil"></wxs> | |
3 | +<view class="checkin-container"> | |
4 | + <view class="rule-container flex"> | |
5 | + <view class="points" bindtap="goto" data-url="/pages/user/integral/integral"><image class="coin" src="https://mshop-lib.yolipai.net/template/mobile/new/static/images/integral/coins.png"></image>我的积分</view> | |
6 | + <view class="rule" bindtap="showRules">规则</view> | |
7 | + </view> | |
8 | + | |
9 | + <view class="list flex"> | |
10 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 0)-1].isCheckIn ? 'active':''}}"> | |
11 | + <view class="circle">+{{res.cday1}}</view> | |
12 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 0)}}日</view> | |
13 | + </view> | |
14 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 1)-1].isCheckIn ? 'active':''}}"> | |
15 | + <view class="circle">+{{res.daynum}}</view> | |
16 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 1)}}日</view> | |
17 | + </view> | |
18 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 2)-1].isCheckIn ? 'active':''}}"> | |
19 | + <view class="circle">+{{res.tdayc1}}</view> | |
20 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 2)}}日</view> | |
21 | + </view> | |
22 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 3)-1].isCheckIn ? 'active':''}}"> | |
23 | + <view class="circle">+{{res.tdayc2}}</view> | |
24 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 3)}}日</view> | |
25 | + </view> | |
26 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 4)-1].isCheckIn ? 'active':''}}"> | |
27 | + <view class="circle">+{{res.tdayc3}}</view> | |
28 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 4)}}日</view> | |
29 | + </view> | |
30 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 5)-1].isCheckIn ? 'active':''}}"> | |
31 | + <view class="circle">+{{res.tdayc4}}</view> | |
32 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 5)}}日</view> | |
33 | + </view> | |
34 | + <view class="list-item {{dateArr[myUtil.setDate(year, res.sday2, 6)-1].isCheckIn ? 'active':''}}"> | |
35 | + <view class="circle">+{{res.tdayc5}}</view> | |
36 | + <view class="fs26">{{myUtil.setDate(year, res.sday2, 6)}}日</view> | |
37 | + </view> | |
38 | + </view> | |
39 | + | |
40 | + <view class="btn-container"> | |
41 | + <view class="btn" bindtap="checkInToday"> | |
42 | + <text class="iconfont icon-rili"></text>{{!dateArr[day-1].isCheckIn ? '立即签到':'今日已签到'}} | |
43 | + </view> | |
44 | + <view class="btn" wx:if="{{res.curbqdaynum}}" bindtap="reCheckIn"><text class="iconfont icon-buqian"></text>补签(-10分)</view> | |
45 | + </view> | |
46 | + | |
47 | + | |
48 | + <!-- <view class="current"> | |
49 | + <view class="f-vc">当前连续签到:<text class="days fs34">{{res.getlxnum}}</text> 天</view> | |
50 | + <view class="f-vc">当前积分:<text class="fs34">{{integral}}</text></view> | |
51 | + </view> --> | |
52 | + | |
53 | + <!-- <view class="goleft iconfont icon-jianzuo" bindtap="prevMonth">a</view> --> | |
54 | + | |
55 | + <view class="calendar-container"> | |
56 | + <view class="calendar-wrapper"> | |
57 | + <view class="calendar-title"> | |
58 | + <view>{{year}}年{{month}}月</view> | |
59 | + <view class="fs24" style="color:#999;">补签卡:{{res.getkbqnum}}</view> | |
60 | + </view> | |
61 | + <view class="calendar"> | |
62 | + <!-- <view class="selectDate"> --> | |
63 | + <!-- <view class="goleft iconfont icon-jianzuo" bindtap="prevMonth">a</view> --> | |
64 | + <!-- <view class="date-wrap"> | |
65 | + {{year}}年{{month}}月 | |
66 | + </view> --> | |
67 | + <!-- <view class="goright iconfont icon-jianzuo" bindtap="nextMonth">b</view> --> | |
68 | + <!-- </view> --> | |
69 | + <view class="week"> | |
70 | + <view wx:for="{{weekArr}}" wx:for-index="index" wx:for-item="item" wx:key="key" style="height:{{param-17}}px;line-height:{{param-17}}px;flex:1;">{{item}}</view> | |
71 | + </view> | |
72 | + | |
73 | + <view class="date"> | |
74 | + <block wx:for="{{dateArr}}" wx:for-index="index" wx:for-item="item" wx:key="key"> | |
75 | + <!-- <view style="{{index ==0?'margin-left:calc(100%/7 * ' + firstDay + ');':''}}width:calc(100%/7);line-height:80rpx;" class="{{index+1==day?'today':''}} {{index+1==day&&isClock?'clockOn':''}}" ><view class="day">{{item}}</view></view> --> | |
76 | + <view style="{{index ==0?'margin-left:calc(100%/7 * ' + firstDay + ');':''}}width:calc(100%/7);line-height:80rpx;" class="{{item.isCheckIn ? 'active':''}} {{res.curbqdaynum&&item.isBq ? 'bq':''}}" bindtap="clickDay" data-day="{{item.num}}"> | |
77 | + <view class="day">{{item.num}}</view> | |
78 | + </view> | |
79 | + </block> | |
80 | + </view> | |
81 | + | |
82 | + </view> | |
83 | + </view> | |
84 | + | |
85 | + </view> | |
86 | + | |
87 | + <view class="jfbuy-container"> | |
88 | + <view class="jfbuy flex"> | |
89 | + <image class="jfbuy-img" src="https://mshop-lib.yolipai.net/template/mobile/new/static/images/integral/liwu.png"></image> | |
90 | + <view class="right"> | |
91 | + <view> | |
92 | + <view class="t1">小积分大作为</view> | |
93 | + <view class="t2">积分抵用现金,积少成多</view> | |
94 | + </view> | |
95 | + <view class="t-c"> | |
96 | + <view class="btn-buy" bindtap="goto" data-url="/packageA/pages/jfbuy/jfbuy">去购物 Go!</view> | |
97 | + </view> | |
98 | + </view> | |
99 | + </view> | |
100 | + </view> | |
101 | + | |
102 | + <view class="popup-container" wx:if="{{isShowRules}}"> | |
103 | + <view class="popup-wrapper"> | |
104 | + <view class="popup"> | |
105 | + <view class="popup-title">签到规则</view> | |
106 | + <view class="popup-content">1.每日签到领积分</view> | |
107 | + </view> | |
108 | + <view class="popup-close"> | |
109 | + <text class="btn-close" bindtap="showRules">X</text> | |
110 | + </view> | |
111 | + </view> | |
112 | + </view> | |
113 | + | |
114 | +</view> | ... | ... |
packageA/pages/checkin/checkin.wxs
0 → 100644
1 | +var myUtil = { | |
2 | + setDate: function(year, startDate, num) { | |
3 | + var date = getDate(year + '-' + startDate); | |
4 | + date.setDate(date.getDate() + num); | |
5 | + date = getDate(date).getDate(); | |
6 | + return date; | |
7 | + }, | |
8 | + | |
9 | + // dateDiff: function(firstDate,secondDate) { | |
10 | + // var firstDate = new Date(firstDate); | |
11 | + // var secondDate = new Date(secondDate); | |
12 | + // var diff = Math.abs(firstDate.getTime() - secondDate.getTime()); | |
13 | + // var result = parseInt(diff / (1000 * 60 * 60 * 24)); | |
14 | + // return result; | |
15 | + // }, | |
16 | +}; | |
17 | + | |
18 | +module.exports = { | |
19 | + setDate: myUtil.setDate, | |
20 | +}; | |
0 | 21 | \ No newline at end of file | ... | ... |
packageA/pages/checkin/checkin.wxss
0 → 100644
1 | +/* packageA//pages/checkin/checkin.wxss */ | |
2 | +@charset "utf-8"; | |
3 | +page, | |
4 | +.checkin-container { | |
5 | + /* height: 100%; | |
6 | + overflow: hidden; */ | |
7 | +} | |
8 | + | |
9 | +.checkin-container { | |
10 | + background: linear-gradient(#FF7A07, #FF980F, white 95%); | |
11 | + background-repeat: no-repeat; | |
12 | +} | |
13 | + | |
14 | +.checkin-container { | |
15 | + /* background-color: #3F7EFF; */ | |
16 | +} | |
17 | + | |
18 | +.rule-container { | |
19 | + padding-top: 40rpx; | |
20 | + align-items: center; | |
21 | + justify-content: space-between; | |
22 | + position: relative; | |
23 | +} | |
24 | +.points { | |
25 | + background-color: #FFBC47; | |
26 | + color: #333; | |
27 | + font-size: 26rpx; | |
28 | + border-top-right-radius: 25rpx; | |
29 | + border-bottom-right-radius: 25rpx; | |
30 | + display: flex; | |
31 | + align-items: center; | |
32 | + padding-right: 20rpx; | |
33 | + line-height: 50rpx; | |
34 | +} | |
35 | +.rule { | |
36 | + padding: 10rpx 20rpx; | |
37 | + color: #FFBC47; | |
38 | + font-size: 26rpx; | |
39 | +} | |
40 | + | |
41 | +.coin { | |
42 | + width: 30rpx; | |
43 | + height: 25rpx; | |
44 | + padding-left: 10rpx; | |
45 | + padding-right: 6rpx; | |
46 | +} | |
47 | + | |
48 | +.current { | |
49 | + display: flex; | |
50 | + justify-content: space-between; | |
51 | + padding: 60rpx 30rpx 30rpx; | |
52 | + color: white; | |
53 | + font-size: 28rpx; | |
54 | +} | |
55 | + | |
56 | +.days { | |
57 | + font-weight: bold; | |
58 | + color: #FFE749; | |
59 | +} | |
60 | + | |
61 | +.f-vc { | |
62 | + display: flex; | |
63 | + align-items: center; | |
64 | +} | |
65 | + | |
66 | +.btn-container { | |
67 | + display: flex; | |
68 | + justify-content: space-around; | |
69 | + margin-bottom: 80rpx; | |
70 | +} | |
71 | + | |
72 | +.icon-rili, | |
73 | +.icon-buqian { | |
74 | + margin-right: 10rpx; | |
75 | + font-size: 40rpx; | |
76 | + font-weight: normal; | |
77 | +} | |
78 | + | |
79 | + | |
80 | +.btn { | |
81 | + width: 260rpx; | |
82 | + line-height: 76rpx; | |
83 | + padding-left: 30rpx; | |
84 | + padding-right: 30rpx; | |
85 | + background-color: #FFBC47; | |
86 | + border-radius: 38rpx; | |
87 | + color: white; | |
88 | + text-align: center; | |
89 | + box-shadow: 0 7px 0 #FF9A45, 0 8px 3px rgba(0, 0, 0, 0.3); | |
90 | + margin: 0 auto; | |
91 | + display: flex; | |
92 | + align-items: center; | |
93 | + justify-content: center; | |
94 | + font-weight: bold; | |
95 | +} | |
96 | + | |
97 | +.list { | |
98 | + margin: 80rpx 20rpx 60rpx; | |
99 | + color: rgba(255,255,255,.3); | |
100 | + align-items: center; | |
101 | + position: relative; | |
102 | +} | |
103 | +.list::after { | |
104 | + content: ''; | |
105 | + position: absolute; | |
106 | + left: 0; | |
107 | + right: 0; | |
108 | + top: 30rpx; | |
109 | + margin: 0 auto; | |
110 | + width: 94%; | |
111 | + height: 10rpx; | |
112 | + background-color: rgba(255,255,255,.3); | |
113 | +} | |
114 | +.list-item { | |
115 | + width: calc(100% / 7); | |
116 | + text-align: center; | |
117 | +} | |
118 | +.circle { | |
119 | + width: 68rpx; | |
120 | + height: 68rpx; | |
121 | + line-height: 68rpx; | |
122 | + font-size: 26rpx; | |
123 | + color: white; | |
124 | + background-color: #FF9A45; | |
125 | + margin: 0 auto 10rpx auto; | |
126 | + position: relative; | |
127 | + z-index: 3; | |
128 | +} | |
129 | +.list-item.active { | |
130 | + color: white; | |
131 | + /* font-weight: bold; */ | |
132 | +} | |
133 | +.list-item.active .circle { | |
134 | + box-sizing: border-box; | |
135 | + background-color: #FFBC47; | |
136 | + /* color: white; */ | |
137 | + border: 4rpx solid white; | |
138 | + line-height: 64rpx; | |
139 | + /* box-shadow: 2rpx 2rpx 16rpx #ddd; */ | |
140 | +} | |
141 | + | |
142 | +.calendar-container { | |
143 | + position: relative; | |
144 | + padding: 0 60rpx; | |
145 | +} | |
146 | +.calendar-container::before { | |
147 | + content: ''; | |
148 | + position: absolute; | |
149 | + left: 0; | |
150 | + right: 0; | |
151 | + top: 0; | |
152 | + margin: 0 auto; | |
153 | + width: 680rpx; | |
154 | + height: 24rpx; | |
155 | + border-radius: 12rpx; | |
156 | + /* background-color: #8AAFFC; */ | |
157 | + background: linear-gradient(#CBDAFC, #6E9CFD); | |
158 | + box-shadow: 0 2rpx 10rpx #6C98F4; | |
159 | +} | |
160 | +.calendar-wrapper { | |
161 | + background: linear-gradient(#BAD4FD, white 6rpx); | |
162 | + position: relative; | |
163 | + z-index: 2; | |
164 | + width: 100%; | |
165 | + top: 12rpx; | |
166 | + left: 0; | |
167 | + border-bottom-left-radius: 16rpx; | |
168 | + border-bottom-right-radius: 16rpx; | |
169 | + box-shadow: 0 2rpx 16rpx #999; | |
170 | +} | |
171 | +.calendar-title { | |
172 | + text-align: center; | |
173 | + line-height: 86rpx; | |
174 | + border-bottom: 2rpx solid #E0E6EE; | |
175 | + display: flex; | |
176 | + align-items: center; | |
177 | + padding: 0 20rpx; | |
178 | + justify-content: space-between; | |
179 | +} | |
180 | + | |
181 | +.calendar { | |
182 | + /* height: 400rpx; */ | |
183 | + font-size: 26rpx; | |
184 | + color: #838E9C; | |
185 | + padding-bottom: 20rpx; | |
186 | +} | |
187 | +.week { | |
188 | + display: flex; | |
189 | + flex-wrap: wrap; | |
190 | + text-align: center; | |
191 | +} | |
192 | + | |
193 | + | |
194 | +.jfbuy-container { | |
195 | + padding: 60rpx 40rpx 40rpx; | |
196 | +} | |
197 | +.jfbuy { | |
198 | + /* border: 2rpx solid black; */ | |
199 | + border-radius: 16rpx; | |
200 | + padding: 40rpx 30rpx; | |
201 | + background-color: #FF980F; | |
202 | + box-shadow: 0 2rpx 16rpx #FF7A07; | |
203 | + /* position: fixed; | |
204 | + width: 100%; | |
205 | + bottom: 0; */ | |
206 | + /* padding: 40rpx 20rpx; */ | |
207 | +} | |
208 | + | |
209 | +.jfbuy-img { | |
210 | + width: 260rpx; | |
211 | + height: 180rpx; | |
212 | + padding-right: 40rpx; | |
213 | +} | |
214 | +.t1 { | |
215 | + font-weight: bolder; | |
216 | + color: white; | |
217 | +} | |
218 | +.t2 { | |
219 | + color: white; | |
220 | + font-size: 24rpx; | |
221 | + padding-top: 10rpx; | |
222 | +} | |
223 | +.right { | |
224 | + display: flex; | |
225 | + flex-direction: column; | |
226 | + justify-content: space-between; | |
227 | + flex: 1; | |
228 | +} | |
229 | +.btn-buy { | |
230 | + /* padding: 20rpx 10rpx; */ | |
231 | + border: 2rpx solid white; | |
232 | + color: white; | |
233 | + line-height: 60rpx; | |
234 | + border-radius: 30rpx; | |
235 | +} | |
236 | + | |
237 | +.today .day { | |
238 | + /* background-color: skyblue; | |
239 | + border-radius: 50%; */ | |
240 | + /* color: white; */ | |
241 | + /* width: 44rpx; | |
242 | + height: 44rpx; | |
243 | + line-height: 44rpx; */ | |
244 | + /* border-radius: 50%; */ | |
245 | + /* background-color: rgba(255,188,71,.6); */ | |
246 | + /* box-shadow: 0 2rpx 12rpx #FFBC47; */ | |
247 | +} | |
248 | + | |
249 | +.active .day, | |
250 | +.bq .day { | |
251 | + position: relative; | |
252 | +} | |
253 | + | |
254 | +.active .day::after { | |
255 | + content: ''; | |
256 | + position: absolute; | |
257 | + width: 10rpx; | |
258 | + height: 10rpx; | |
259 | + border-radius: 50%; | |
260 | + background-color: #FFBC47; | |
261 | + left: 0; | |
262 | + right: 0; | |
263 | + bottom: 12rpx; | |
264 | + margin: auto; | |
265 | + box-shadow: 0 2rpx 12rpx #FFBC47; | |
266 | +} | |
267 | + | |
268 | +.bq .day { | |
269 | + background-color: #eee; | |
270 | +} | |
271 | + | |
272 | +.bq .day::before { | |
273 | + position: absolute; | |
274 | + top: 4rpx; | |
275 | + right: 0; | |
276 | + content: '补'; | |
277 | + color: white; | |
278 | + font-size: 16rpx; | |
279 | + line-height: 16rpx; | |
280 | + z-index: 5; | |
281 | +} | |
282 | +.bq .day::after { | |
283 | + position: absolute; | |
284 | + top: 0; | |
285 | + right: 0; | |
286 | + content: ''; | |
287 | + width: 0; | |
288 | + border-top: 34rpx solid #ccc; | |
289 | + border-left: 34rpx solid transparent; | |
290 | + | |
291 | +} | |
292 | + | |
293 | + | |
294 | +.popup-container { | |
295 | + position: fixed; | |
296 | + top: 0; | |
297 | + bottom: 0; | |
298 | + left: 0; | |
299 | + right: 0; | |
300 | + z-index: 99; | |
301 | + background-color: rgba(0,0,0,.5); | |
302 | +} | |
303 | + | |
304 | +.popup-wrapper { | |
305 | + position: absolute; | |
306 | + width: 80%; | |
307 | + max-height: 880rpx; | |
308 | + top: 0; | |
309 | + bottom: 0; | |
310 | + left: 0; | |
311 | + right: 0; | |
312 | + margin: auto; | |
313 | + display: flex; | |
314 | + flex-direction: column; | |
315 | + justify-content: center; | |
316 | + align-items: center; | |
317 | +} | |
318 | + | |
319 | +.popup { | |
320 | + padding: 30rpx; | |
321 | + background-color: white; | |
322 | + border-radius: 20rpx; | |
323 | + max-height: 800rpx; | |
324 | + overflow: auto; | |
325 | +} | |
326 | + | |
327 | +.popup-title { | |
328 | + font-weight: 28rpx; | |
329 | + font-weight: bold; | |
330 | + padding-bottom: 20rpx; | |
331 | +} | |
332 | + | |
333 | +.popup-content { | |
334 | + text-align: justify; | |
335 | +} | |
336 | + | |
337 | +.popup-close { | |
338 | + color: white; | |
339 | + text-align: center; | |
340 | + padding-top: 20rpx; | |
341 | +} | |
342 | +.btn-close { | |
343 | + display: inline-block; | |
344 | + width: 50rpx; | |
345 | + height: 50rpx; | |
346 | + line-height: 50rpx; | |
347 | + border-radius: 50%; | |
348 | + border: 4rpx solid white; | |
349 | +} | |
350 | + | |
351 | +.date { | |
352 | + width: 100%; | |
353 | + display: flex; | |
354 | + flex-wrap: wrap; | |
355 | + text-align:center; | |
356 | +} | ... | ... |