xiaoe_mp_npm 1.0.0-live9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/miniprogram_dist/Task/TaskBubble/index.js +18 -18
- package/miniprogram_dist/Task/TaskBubble/index.wxml +2 -7
- package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.js +10 -0
- package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.scss +40 -0
- package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.wxml +8 -1
- package/miniprogram_dist/Task/TaskPopup/component/RewardList/index.wxss +18 -0
- package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.js +31 -9
- package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.scss +6 -1
- package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.wxml +2 -2
- package/miniprogram_dist/Task/TaskPopup/component/TaskItem/index.wxss +24 -4
- package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.js +43 -16
- package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.scss +4 -0
- package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.wxml +11 -3
- package/miniprogram_dist/Task/TaskPopup/component/TaskList/index.wxss +20 -0
- package/miniprogram_dist/Task/TaskPopup/component/TaskType/index.js +39 -3
- package/miniprogram_dist/Task/TaskPopup/component/TaskType/index.wxml +1 -1
- package/miniprogram_dist/Task/TaskPopup/index.js +45 -2
- package/miniprogram_dist/Task/TaskPopup/index.scss +14 -1
- package/miniprogram_dist/Task/TaskPopup/index.wxml +25 -13
- package/miniprogram_dist/Task/TaskPopup/index.wxss +60 -4
- package/miniprogram_dist/Task/taskReceivePopup/index.wxml +2 -1
- package/package.json +1 -1
- package/src/Task/TaskBubble/index.js +18 -18
- package/src/Task/TaskBubble/index.wxml +2 -7
- package/src/Task/TaskBubble/index.wxss +289 -1
- package/src/Task/TaskIcon/index.wxss +130 -1
- package/src/Task/TaskPopup/component/RewardList/index.js +10 -0
- package/src/Task/TaskPopup/component/RewardList/index.scss +40 -0
- package/src/Task/TaskPopup/component/RewardList/index.wxml +8 -1
- package/src/Task/TaskPopup/component/RewardList/index.wxss +18 -0
- package/src/Task/TaskPopup/component/TaskItem/index.js +31 -9
- package/src/Task/TaskPopup/component/TaskItem/index.scss +6 -1
- package/src/Task/TaskPopup/component/TaskItem/index.wxml +2 -2
- package/src/Task/TaskPopup/component/TaskItem/index.wxss +394 -1
- package/src/Task/TaskPopup/component/TaskList/index.js +43 -16
- package/src/Task/TaskPopup/component/TaskList/index.scss +4 -0
- package/src/Task/TaskPopup/component/TaskList/index.wxml +11 -3
- package/src/Task/TaskPopup/component/TaskList/index.wxss +118 -98
- package/src/Task/TaskPopup/component/TaskType/index.js +39 -3
- package/src/Task/TaskPopup/component/TaskType/index.wxml +1 -1
- package/src/Task/TaskPopup/component/TaskType/index.wxss +98 -98
- package/src/Task/TaskPopup/index.js +45 -2
- package/src/Task/TaskPopup/index.scss +14 -1
- package/src/Task/TaskPopup/index.wxml +25 -13
- package/src/Task/TaskPopup/index.wxss +306 -250
- package/src/Task/taskReceivePopup/coupon/index.wxss +187 -1
- package/src/Task/taskReceivePopup/index.wxml +2 -1
- package/src/Task/taskReceivePopup/index.wxss +1 -1
- package/src/Task/taskReceivePopup/integral/index.wxss +94 -94
|
@@ -9,6 +9,10 @@ Component({
|
|
|
9
9
|
type: Object,
|
|
10
10
|
value: {},
|
|
11
11
|
},
|
|
12
|
+
zIndex: {
|
|
13
|
+
type: Number,
|
|
14
|
+
value: 1,
|
|
15
|
+
},
|
|
12
16
|
},
|
|
13
17
|
|
|
14
18
|
/**
|
|
@@ -25,7 +29,20 @@ Component({
|
|
|
25
29
|
computed: {
|
|
26
30
|
// 奖品类型
|
|
27
31
|
rewardValue(data){
|
|
28
|
-
|
|
32
|
+
if(data.taskMsg.live_task?.task_type === 1){
|
|
33
|
+
const hours = Math.floor(data.taskMsg.live_task?.task_condition / 60);
|
|
34
|
+
const remainingMinutes = data.taskMsg.live_task?.task_condition % 60;
|
|
35
|
+
|
|
36
|
+
if (hours === 0) {
|
|
37
|
+
return `达${remainingMinutes}分钟`;
|
|
38
|
+
} else if (remainingMinutes === 0) {
|
|
39
|
+
return `达${hours}小时`;
|
|
40
|
+
} else {
|
|
41
|
+
return `达${hours}小时${remainingMinutes}分钟`;
|
|
42
|
+
}
|
|
43
|
+
}else {
|
|
44
|
+
return ['', '发表评论', '转发直播间', '完成点赞'][data.taskMsg.live_task?.task_condition] || ''
|
|
45
|
+
}
|
|
29
46
|
},
|
|
30
47
|
// 奖品icon
|
|
31
48
|
taskIconImg(data){
|
|
@@ -96,22 +113,5 @@ Component({
|
|
|
96
113
|
animationData: animation.export(),
|
|
97
114
|
})
|
|
98
115
|
},
|
|
99
|
-
|
|
100
|
-
convertMinutesToHoursAndMinutes(minutes) {
|
|
101
|
-
if (isNaN(minutes) || minutes < 0) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
const hours = Math.floor(minutes / 60);
|
|
106
|
-
const remainingMinutes = minutes % 60;
|
|
107
|
-
|
|
108
|
-
if (hours === 0) {
|
|
109
|
-
return `达${remainingMinutes}分钟`;
|
|
110
|
-
} else if (remainingMinutes === 0) {
|
|
111
|
-
return `达${hours}小时`;
|
|
112
|
-
} else {
|
|
113
|
-
return `达${hours}小时${remainingMinutes}分钟`;
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
116
|
},
|
|
117
117
|
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<view class="barrage-container" catch:tap="bubbleClick">
|
|
1
|
+
<view class="barrage-container" catch:tap="bubbleClick" style="{{zIndex?'z-index:'+zIndex:''}}">
|
|
2
2
|
<view class="barrage-wrap">
|
|
3
3
|
<view class="barrage-item" animation="{{animationData}}">
|
|
4
4
|
<view class="barrage-content">
|
|
@@ -9,11 +9,7 @@
|
|
|
9
9
|
/>
|
|
10
10
|
<view wx:if="{{taskMsg.live_task.task_type === 1}}" class="task-type">观看时长</view>
|
|
11
11
|
<view>{{ rewardValue }}</view>
|
|
12
|
-
<image
|
|
13
|
-
class="prize-icon"
|
|
14
|
-
src="{{taskIconImg}}"
|
|
15
|
-
alt="奖励"
|
|
16
|
-
/>
|
|
12
|
+
<image class="prize-icon" src="{{taskIconImg}}" alt="奖励" />
|
|
17
13
|
<view class="prize-num">+{{ prizeNum }}</view>
|
|
18
14
|
<image
|
|
19
15
|
class="right-arrow-icon"
|
|
@@ -24,4 +20,3 @@
|
|
|
24
20
|
</view>
|
|
25
21
|
</view>
|
|
26
22
|
</view>
|
|
27
|
-
|
|
@@ -8,6 +8,10 @@ Component({
|
|
|
8
8
|
return []
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
|
+
refreshStatus:{
|
|
12
|
+
type:Boolean,
|
|
13
|
+
value: false
|
|
14
|
+
}
|
|
11
15
|
},
|
|
12
16
|
data: {
|
|
13
17
|
activeNames:["1"],
|
|
@@ -24,6 +28,12 @@ Component({
|
|
|
24
28
|
btnClick(e){
|
|
25
29
|
this.triggerEvent("btnClick",e.detail)
|
|
26
30
|
},
|
|
31
|
+
onLoad(){
|
|
32
|
+
this.triggerEvent("onLoad","rewardList")
|
|
33
|
+
},
|
|
34
|
+
getMoreList(){
|
|
35
|
+
this.triggerEvent("getMoreList","rewardList")
|
|
36
|
+
}
|
|
27
37
|
},
|
|
28
38
|
observers: {},
|
|
29
39
|
})
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
$deviceWidth: 750;
|
|
2
|
+
|
|
3
|
+
@function vmin($rpx) {
|
|
4
|
+
@return #{$rpx * 100 / $deviceWidth}vmin;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@mixin reward-list{
|
|
8
|
+
height: 100%;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.reward-list {
|
|
12
|
+
@include reward-list;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 竖屏pad
|
|
16
|
+
@media screen and (min-width: 768px) and (orientation: portrait) {
|
|
17
|
+
$deviceWidth: 1536 !global;
|
|
18
|
+
|
|
19
|
+
.reward-list {
|
|
20
|
+
@include reward-list;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// PC 放大适配
|
|
25
|
+
@media screen and (min-height: 630px) and (orientation: landscape) {
|
|
26
|
+
$deviceWidth: 1260 !global;
|
|
27
|
+
|
|
28
|
+
.reward-list {
|
|
29
|
+
@include reward-list;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// 横屏pad
|
|
34
|
+
@media screen and (min-height: 768px) and (orientation: landscape) {
|
|
35
|
+
$deviceWidth: 1536 !global;
|
|
36
|
+
|
|
37
|
+
.reward-list {
|
|
38
|
+
@include reward-list;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
<scroll-view
|
|
1
|
+
<scroll-view
|
|
2
|
+
class="reward-list"
|
|
3
|
+
scroll-y="true"
|
|
4
|
+
bindrefresherrefresh="onLoad"
|
|
5
|
+
refresher-enabled="{{true}}"
|
|
6
|
+
refresher-triggered="{{ refreshStatus }}"
|
|
7
|
+
bindscrolltolower="getMoreList"
|
|
8
|
+
>
|
|
2
9
|
<task-item
|
|
3
10
|
wx:for="{{rewardList}}"
|
|
4
11
|
wx:for-item="item"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.reward-list {
|
|
2
|
+
height: 100%;
|
|
3
|
+
}
|
|
4
|
+
@media screen and (min-width: 768px) and (orientation: portrait) {
|
|
5
|
+
.reward-list {
|
|
6
|
+
height: 100%;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
@media screen and (min-height: 630px) and (orientation: landscape) {
|
|
10
|
+
.reward-list {
|
|
11
|
+
height: 100%;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
@media screen and (min-height: 768px) and (orientation: landscape) {
|
|
15
|
+
.reward-list {
|
|
16
|
+
height: 100%;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -25,6 +25,13 @@ const TASK_TYPE_TEXT = {
|
|
|
25
25
|
4: "去点赞",
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
const taskType = {
|
|
29
|
+
1: "view",
|
|
30
|
+
2: "input",
|
|
31
|
+
3: "share",
|
|
32
|
+
4: "like"
|
|
33
|
+
}
|
|
34
|
+
|
|
28
35
|
Component({
|
|
29
36
|
behaviors: [computedBehavior],
|
|
30
37
|
properties: {
|
|
@@ -114,21 +121,25 @@ Component({
|
|
|
114
121
|
return "去使用"
|
|
115
122
|
}
|
|
116
123
|
|
|
117
|
-
// 任务状态已结束
|
|
118
|
-
if(data.taskItem.state === 2){
|
|
119
|
-
return "已结束"
|
|
120
|
-
}
|
|
121
|
-
|
|
122
124
|
// 任务同步失败列表
|
|
123
125
|
if(data.listType === LIST_TYPE.ERROR){
|
|
124
126
|
return "领奖励"
|
|
125
127
|
}
|
|
126
128
|
|
|
127
|
-
//
|
|
128
|
-
if
|
|
129
|
-
return
|
|
129
|
+
// 任务状态已结束
|
|
130
|
+
if(data.taskItem.join_state === 2){
|
|
131
|
+
return "已完成"
|
|
130
132
|
}
|
|
131
133
|
|
|
134
|
+
// 任务状态已结束
|
|
135
|
+
if(data.taskItem.state === 2){
|
|
136
|
+
return "已结束"
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if(data.taskItem.join_state === 0){
|
|
140
|
+
return "未开始"
|
|
141
|
+
}
|
|
142
|
+
|
|
132
143
|
// 正常参与任务
|
|
133
144
|
return TASK_TYPE_TEXT[data.taskBelongType] || "去参与"
|
|
134
145
|
},
|
|
@@ -160,6 +171,7 @@ Component({
|
|
|
160
171
|
return `${hours>0?hours+'小时':''}${remainingMinutes>0?remainingMinutes+'分钟':''}`
|
|
161
172
|
},
|
|
162
173
|
btnClick(){
|
|
174
|
+
const { reward_type } = this.data.taskItem
|
|
163
175
|
if(this.data.btnText === TASK_TYPE_TEXT[2]){
|
|
164
176
|
// 去评论
|
|
165
177
|
this.triggerEvent("btnClick","toComment")
|
|
@@ -169,8 +181,18 @@ Component({
|
|
|
169
181
|
this.triggerEvent("btnClick","toShare")
|
|
170
182
|
return
|
|
171
183
|
}else if(this.data.btnText === "去使用"){
|
|
184
|
+
// 去使用
|
|
185
|
+
this.triggerEvent("btnClick",{
|
|
186
|
+
type:"reward",
|
|
187
|
+
reward_type
|
|
188
|
+
})
|
|
189
|
+
return
|
|
190
|
+
}else if(this.data.btnText === "领奖励"){
|
|
172
191
|
// 去转发
|
|
173
|
-
this.triggerEvent("btnClick",
|
|
192
|
+
this.triggerEvent("btnClick",{
|
|
193
|
+
type:"toRetry",
|
|
194
|
+
taskBelongType: taskType[this.data.taskBelongType]
|
|
195
|
+
})
|
|
174
196
|
return
|
|
175
197
|
}
|
|
176
198
|
|
|
@@ -35,7 +35,7 @@ $deviceWidth: 750;
|
|
|
35
35
|
margin-bottom: vmin(24);
|
|
36
36
|
}
|
|
37
37
|
.left{
|
|
38
|
-
max-width: vmin(
|
|
38
|
+
max-width: vmin(485);
|
|
39
39
|
.first{
|
|
40
40
|
line-height: vmin(40);
|
|
41
41
|
display: flex;
|
|
@@ -44,6 +44,9 @@ $deviceWidth: 750;
|
|
|
44
44
|
font-size: vmin(28);
|
|
45
45
|
font-weight: 500;
|
|
46
46
|
color: #333333;
|
|
47
|
+
word-wrap: break-word;
|
|
48
|
+
word-break: break-all;
|
|
49
|
+
max-width: vmin(290);
|
|
47
50
|
}
|
|
48
51
|
.reward{
|
|
49
52
|
margin-left: vmin(16);
|
|
@@ -57,6 +60,8 @@ $deviceWidth: 750;
|
|
|
57
60
|
}
|
|
58
61
|
.reward-text{
|
|
59
62
|
margin-left: vmin(8);
|
|
63
|
+
word-wrap: break-word;
|
|
64
|
+
word-break: break-all;
|
|
60
65
|
}
|
|
61
66
|
}
|
|
62
67
|
}
|
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
<!-- 观看剩余时间 -->
|
|
32
32
|
<view
|
|
33
33
|
class="residue-time"
|
|
34
|
-
wx:if="{{taskItem.task_type === 1 && listType === 'task' && taskItem.join_state === 1}}"
|
|
34
|
+
wx:if="{{taskItem.task_type === 1 && listType === 'task' && taskItem.join_state === 1 && taskItem.residue_time && taskItem.state !==2}}"
|
|
35
35
|
>{{taskItem.residue_time > 60 ? '再观看 '+ filter.secondsToMinutes(taskItem.residue_time) + '分钟 '+ '获得奖励':'即将获得奖励'}}</view>
|
|
36
36
|
</view>
|
|
37
37
|
|
|
38
38
|
<!-- 右侧按钮 -->
|
|
39
39
|
<view
|
|
40
|
-
class="btn {{listType === 'reward'?'reward-btn':''}} {{listType==='task' && (taskItem.join_state === 2 || taskItem.join_state === 3 || taskItem.join_state === 0)?'gray-btn':''}}"
|
|
40
|
+
class="btn {{listType === 'reward'?'reward-btn':''}} {{listType==='task' && (taskItem.join_state === 2 || taskItem.join_state === 3 || taskItem.join_state === 0 || taskItem.state === 2)?'gray-btn':''}}"
|
|
41
41
|
catch:tap="btnClick"
|
|
42
42
|
>{{btnText}}</view>
|
|
43
43
|
</view>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
margin-bottom: 3.2vmin;
|
|
31
31
|
}
|
|
32
32
|
.item-box .left {
|
|
33
|
-
max-width:
|
|
33
|
+
max-width: 64.66667vmin;
|
|
34
34
|
}
|
|
35
35
|
.item-box .left .first {
|
|
36
36
|
line-height: 5.33333vmin;
|
|
@@ -41,6 +41,9 @@
|
|
|
41
41
|
font-size: 3.73333vmin;
|
|
42
42
|
font-weight: 500;
|
|
43
43
|
color: #333333;
|
|
44
|
+
word-wrap: break-word;
|
|
45
|
+
word-break: break-all;
|
|
46
|
+
max-width: 38.66667vmin;
|
|
44
47
|
}
|
|
45
48
|
.item-box .left .first .reward {
|
|
46
49
|
margin-left: 2.13333vmin;
|
|
@@ -55,6 +58,8 @@
|
|
|
55
58
|
}
|
|
56
59
|
.item-box .left .first .reward .reward-text {
|
|
57
60
|
margin-left: 1.06667vmin;
|
|
61
|
+
word-wrap: break-word;
|
|
62
|
+
word-break: break-all;
|
|
58
63
|
}
|
|
59
64
|
.item-box .left .time {
|
|
60
65
|
margin-top: 1.06667vmin;
|
|
@@ -123,7 +128,7 @@
|
|
|
123
128
|
margin-bottom: 1.5625vmin;
|
|
124
129
|
}
|
|
125
130
|
.item-box .left {
|
|
126
|
-
max-width:
|
|
131
|
+
max-width: 31.57552vmin;
|
|
127
132
|
}
|
|
128
133
|
.item-box .left .first {
|
|
129
134
|
line-height: 2.60417vmin;
|
|
@@ -134,6 +139,9 @@
|
|
|
134
139
|
font-size: 1.82292vmin;
|
|
135
140
|
font-weight: 500;
|
|
136
141
|
color: #333333;
|
|
142
|
+
word-wrap: break-word;
|
|
143
|
+
word-break: break-all;
|
|
144
|
+
max-width: 18.88021vmin;
|
|
137
145
|
}
|
|
138
146
|
.item-box .left .first .reward {
|
|
139
147
|
margin-left: 1.04167vmin;
|
|
@@ -148,6 +156,8 @@
|
|
|
148
156
|
}
|
|
149
157
|
.item-box .left .first .reward .reward-text {
|
|
150
158
|
margin-left: 0.52083vmin;
|
|
159
|
+
word-wrap: break-word;
|
|
160
|
+
word-break: break-all;
|
|
151
161
|
}
|
|
152
162
|
.item-box .left .time {
|
|
153
163
|
margin-top: 0.52083vmin;
|
|
@@ -217,7 +227,7 @@
|
|
|
217
227
|
margin-bottom: 1.90476vmin;
|
|
218
228
|
}
|
|
219
229
|
.item-box .left {
|
|
220
|
-
max-width:
|
|
230
|
+
max-width: 38.49206vmin;
|
|
221
231
|
}
|
|
222
232
|
.item-box .left .first {
|
|
223
233
|
line-height: 3.1746vmin;
|
|
@@ -228,6 +238,9 @@
|
|
|
228
238
|
font-size: 2.22222vmin;
|
|
229
239
|
font-weight: 500;
|
|
230
240
|
color: #333333;
|
|
241
|
+
word-wrap: break-word;
|
|
242
|
+
word-break: break-all;
|
|
243
|
+
max-width: 23.01587vmin;
|
|
231
244
|
}
|
|
232
245
|
.item-box .left .first .reward {
|
|
233
246
|
margin-left: 1.26984vmin;
|
|
@@ -242,6 +255,8 @@
|
|
|
242
255
|
}
|
|
243
256
|
.item-box .left .first .reward .reward-text {
|
|
244
257
|
margin-left: 0.63492vmin;
|
|
258
|
+
word-wrap: break-word;
|
|
259
|
+
word-break: break-all;
|
|
245
260
|
}
|
|
246
261
|
.item-box .left .time {
|
|
247
262
|
margin-top: 0.63492vmin;
|
|
@@ -311,7 +326,7 @@
|
|
|
311
326
|
margin-bottom: 1.5625vmin;
|
|
312
327
|
}
|
|
313
328
|
.item-box .left {
|
|
314
|
-
max-width:
|
|
329
|
+
max-width: 31.57552vmin;
|
|
315
330
|
}
|
|
316
331
|
.item-box .left .first {
|
|
317
332
|
line-height: 2.60417vmin;
|
|
@@ -322,6 +337,9 @@
|
|
|
322
337
|
font-size: 1.82292vmin;
|
|
323
338
|
font-weight: 500;
|
|
324
339
|
color: #333333;
|
|
340
|
+
word-wrap: break-word;
|
|
341
|
+
word-break: break-all;
|
|
342
|
+
max-width: 18.88021vmin;
|
|
325
343
|
}
|
|
326
344
|
.item-box .left .first .reward {
|
|
327
345
|
margin-left: 1.04167vmin;
|
|
@@ -336,6 +354,8 @@
|
|
|
336
354
|
}
|
|
337
355
|
.item-box .left .first .reward .reward-text {
|
|
338
356
|
margin-left: 0.52083vmin;
|
|
357
|
+
word-wrap: break-word;
|
|
358
|
+
word-break: break-all;
|
|
339
359
|
}
|
|
340
360
|
.item-box .left .time {
|
|
341
361
|
margin-top: 0.52083vmin;
|
|
@@ -14,21 +14,28 @@ Component({
|
|
|
14
14
|
return []
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
+
refreshStatus:{
|
|
18
|
+
type:Boolean,
|
|
19
|
+
value: false
|
|
20
|
+
}
|
|
17
21
|
},
|
|
18
22
|
data: {
|
|
19
23
|
showTaskList: [],
|
|
20
24
|
typeList: [],
|
|
21
|
-
|
|
25
|
+
showErrorList: [],
|
|
22
26
|
},
|
|
23
27
|
observers: {
|
|
24
28
|
taskList: function (newVal) {
|
|
29
|
+
let showList = newVal
|
|
30
|
+
if(this.data.showErrorList.length){
|
|
31
|
+
showList = newVal.filter(item1 => !this.data.showErrorList.some(item2 => item2.id === item1.id))
|
|
32
|
+
}
|
|
25
33
|
this.setData({
|
|
26
|
-
showTaskList:
|
|
34
|
+
showTaskList: showList
|
|
27
35
|
})
|
|
28
36
|
},
|
|
29
37
|
showTaskList: function (newVal) {
|
|
30
38
|
// 先给任务列表排个序,观看直播-评论-分享-点赞
|
|
31
|
-
newVal.sort(this.customSort);
|
|
32
39
|
let typeList = []
|
|
33
40
|
typeList = newVal.reduce((acc,obj)=>{
|
|
34
41
|
let found = acc.find(item => item.task_type === obj.task_type && (item.task_type === 1 || item.task_condition === obj.task_condition))
|
|
@@ -64,27 +71,25 @@ Component({
|
|
|
64
71
|
|
|
65
72
|
return acc;
|
|
66
73
|
},[])
|
|
74
|
+
typeList.sort(this.customSort)
|
|
67
75
|
this.setData({
|
|
68
76
|
typeList
|
|
69
77
|
})
|
|
70
78
|
},
|
|
71
79
|
errorList: function (newVal) {
|
|
72
80
|
let list = [];
|
|
73
|
-
let filteredTaskList =
|
|
74
|
-
return !newVal.includes(item.id);
|
|
75
|
-
});
|
|
81
|
+
let filteredTaskList = []
|
|
76
82
|
|
|
77
83
|
this.properties.taskList.forEach(item=>{
|
|
78
|
-
newVal.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
84
|
+
if(newVal.includes(item.id)){
|
|
85
|
+
list.push(item)
|
|
86
|
+
}else{
|
|
87
|
+
filteredTaskList.push(item)
|
|
88
|
+
}
|
|
83
89
|
})
|
|
84
90
|
|
|
85
|
-
this.showTaskList = filteredTaskList
|
|
86
91
|
this.setData({
|
|
87
|
-
|
|
92
|
+
showErrorList: list,
|
|
88
93
|
showTaskList: filteredTaskList
|
|
89
94
|
})
|
|
90
95
|
}
|
|
@@ -98,6 +103,29 @@ Component({
|
|
|
98
103
|
detached: function () { },
|
|
99
104
|
},
|
|
100
105
|
methods: {
|
|
106
|
+
customSort(a,b){
|
|
107
|
+
const orderMap = {
|
|
108
|
+
1: 0,
|
|
109
|
+
'2-1': 2,
|
|
110
|
+
'2-2': 3,
|
|
111
|
+
'2-3': 4
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
const getTypeOrder = (item) => {
|
|
115
|
+
if (item.task_type === 1) {
|
|
116
|
+
return 1;
|
|
117
|
+
} else if (item.task_type === 2 && item.task_condition) {
|
|
118
|
+
return orderMap[`2-${item.task_condition}`];
|
|
119
|
+
} else {
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const typeOrderA = getTypeOrder(a);
|
|
125
|
+
const typeOrderB = getTypeOrder(b);
|
|
126
|
+
|
|
127
|
+
return typeOrderA - typeOrderB;
|
|
128
|
+
},
|
|
101
129
|
toReward(){
|
|
102
130
|
this.setData({
|
|
103
131
|
isShowTaskList: false
|
|
@@ -111,9 +139,8 @@ Component({
|
|
|
111
139
|
btnClick(e){
|
|
112
140
|
this.triggerEvent("btnClick",e.detail)
|
|
113
141
|
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return order[a.task_type] - order[b.task_type];
|
|
142
|
+
onLoad(){
|
|
143
|
+
this.triggerEvent("onLoad","taskList")
|
|
117
144
|
}
|
|
118
145
|
},
|
|
119
146
|
})
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
<scroll-view
|
|
1
|
+
<scroll-view
|
|
2
|
+
class="task-list"
|
|
3
|
+
scroll-y="true"
|
|
4
|
+
bindrefresherrefresh="onLoad"
|
|
5
|
+
refresher-enabled="{{true}}"
|
|
6
|
+
refresher-triggered="{{ refreshStatus }}"
|
|
7
|
+
>
|
|
2
8
|
<!-- 任务同步失败列表 -->
|
|
3
|
-
<view class="error-box" wx:if="{{
|
|
9
|
+
<view class="error-box" wx:if="{{showErrorList.length}}">
|
|
4
10
|
<task-item
|
|
5
|
-
wx:for="{{
|
|
11
|
+
wx:for="{{showErrorList}}"
|
|
6
12
|
wx:for-item="item"
|
|
7
13
|
wx:for-index="index"
|
|
8
14
|
taskItem="{{item}}"
|
|
9
15
|
listType="error"
|
|
10
16
|
isRadius="{{true}}"
|
|
11
17
|
itemIndex="{{index}}"
|
|
18
|
+
wx:key="id"
|
|
12
19
|
bind:btnClick="btnClick"
|
|
13
20
|
/>
|
|
14
21
|
</view>
|
|
@@ -20,6 +27,7 @@
|
|
|
20
27
|
wx:for-index="index"
|
|
21
28
|
typeItem="{{item}}"
|
|
22
29
|
typeIndex="{{index}}"
|
|
30
|
+
wx:key="id"
|
|
23
31
|
bind:btnClick="btnClick"
|
|
24
32
|
></task-type>
|
|
25
33
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
.task-list {
|
|
2
|
+
height: 100%;
|
|
3
|
+
min-height: 40vmin;
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
}
|
|
1
6
|
.task-list .error-box {
|
|
2
7
|
background: #fff;
|
|
3
8
|
padding: 0.26667vmin 0.26667vmin 0 0.26667vmin;
|
|
@@ -22,6 +27,11 @@
|
|
|
22
27
|
margin-top: 4.26667vmin;
|
|
23
28
|
}
|
|
24
29
|
@media screen and (min-width: 768px) and (orientation: portrait) {
|
|
30
|
+
.task-list {
|
|
31
|
+
height: 100%;
|
|
32
|
+
min-height: 40vmin;
|
|
33
|
+
box-sizing: border-box;
|
|
34
|
+
}
|
|
25
35
|
.task-list .error-box {
|
|
26
36
|
background: #fff;
|
|
27
37
|
padding: 0.13021vmin 0.13021vmin 0 0.13021vmin;
|
|
@@ -47,6 +57,11 @@
|
|
|
47
57
|
}
|
|
48
58
|
}
|
|
49
59
|
@media screen and (min-height: 630px) and (orientation: landscape) {
|
|
60
|
+
.task-list {
|
|
61
|
+
height: 100%;
|
|
62
|
+
min-height: 40vmin;
|
|
63
|
+
box-sizing: border-box;
|
|
64
|
+
}
|
|
50
65
|
.task-list .error-box {
|
|
51
66
|
background: #fff;
|
|
52
67
|
padding: 0.15873vmin 0.15873vmin 0 0.15873vmin;
|
|
@@ -72,6 +87,11 @@
|
|
|
72
87
|
}
|
|
73
88
|
}
|
|
74
89
|
@media screen and (min-height: 768px) and (orientation: landscape) {
|
|
90
|
+
.task-list {
|
|
91
|
+
height: 100%;
|
|
92
|
+
min-height: 40vmin;
|
|
93
|
+
box-sizing: border-box;
|
|
94
|
+
}
|
|
75
95
|
.task-list .error-box {
|
|
76
96
|
background: #fff;
|
|
77
97
|
padding: 0.13021vmin 0.13021vmin 0 0.13021vmin;
|
|
@@ -14,7 +14,8 @@ Component({
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
data: {
|
|
17
|
-
activeNames:[1]
|
|
17
|
+
activeNames:[1],
|
|
18
|
+
detailList:[]
|
|
18
19
|
},
|
|
19
20
|
lifetimes: {
|
|
20
21
|
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
|
|
@@ -26,14 +27,49 @@ Component({
|
|
|
26
27
|
},
|
|
27
28
|
methods: {
|
|
28
29
|
onChange(event){
|
|
29
|
-
console.log("event.detail",event.detail)
|
|
30
30
|
this.setData({
|
|
31
31
|
activeNames: event.detail
|
|
32
32
|
})
|
|
33
33
|
},
|
|
34
34
|
btnClick(e){
|
|
35
35
|
this.triggerEvent("btnClick",e.detail)
|
|
36
|
+
},
|
|
37
|
+
customSort(a,b){
|
|
38
|
+
// 根据参与状态和状态排序顺序
|
|
39
|
+
const stateOrder = { "1": 0, "0": 1, "2": 2 };
|
|
40
|
+
const stateComparison = stateOrder[a.join_state.toString()] - stateOrder[b.join_state.toString()];
|
|
41
|
+
if (stateComparison !== 0) return stateComparison;
|
|
42
|
+
|
|
43
|
+
const liveState = stateOrder[a.state.toString()] - stateOrder[b.state.toString()];
|
|
44
|
+
if (liveState !== 0) return liveState;
|
|
45
|
+
|
|
46
|
+
// 参与中和未参与按开始时间升序排
|
|
47
|
+
if ((a.join_state === 1 || a.join_state === 0) && (b.join_state === 1 || b.join_state === 0)) {
|
|
48
|
+
const startComparison = new Date(a.start_at) - new Date(b.start_at);
|
|
49
|
+
if (startComparison !== 0) return startComparison;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 已结束按结束时间降序排
|
|
53
|
+
if (a.state === 2 && b.state === 2) {
|
|
54
|
+
const endComparison = new Date(b.end_at) - new Date(a.end_at);
|
|
55
|
+
if (endComparison !== 0) return endComparison;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// 已完成按完成时间降序排
|
|
59
|
+
if (a.join_state === 2 && b.join_state === 2 && a.complete_at && b.complete_at) {
|
|
60
|
+
return new Date(b.complete_at) - new Date(a.complete_at);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
observers: {
|
|
67
|
+
"typeItem.detailList"(newVal) {
|
|
68
|
+
let list = JSON.parse(JSON.stringify(newVal))
|
|
69
|
+
list.sort(this.customSort)
|
|
70
|
+
this.setData({
|
|
71
|
+
detailList: list
|
|
72
|
+
})
|
|
36
73
|
}
|
|
37
74
|
},
|
|
38
|
-
observers: {},
|
|
39
75
|
})
|