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 | \ No newline at end of file | 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 | +} |