jufubao-base 1.0.105-beta2 → 1.0.105-beta6
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/package.json +1 -1
- package/src/components/JfbBaseCardInfo/JfbBaseCardInfo.vue +37 -18
- package/src/components/JfbBaseCardInfoEntry/JfbBaseCardInfoEntry.vue +37 -17
- package/src/components/JfbBaseConDialog/Api.js +35 -0
- package/src/components/JfbBaseConDialog/Attr.js +1 -0
- package/src/components/JfbBaseConDialog/JfbBaseConDialog.vue +145 -5
- package/src/components/JfbBaseConDialog/XdCouCardBind.vue +197 -0
- package/src/components/JfbBaseConList/JfbBaseConList.vue +2 -2
- package/src/components/JfbBaseConList/Mock.js +1 -0
package/package.json
CHANGED
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
|
|
107
107
|
<script>
|
|
108
108
|
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
|
|
109
|
-
import { jfbRootExec } from "@/utils/xd.event";
|
|
109
|
+
import { jfbRootExec, jfbRootFnExec } from "@/utils/xd.event";
|
|
110
110
|
import { Base64 } from "js-base64";
|
|
111
111
|
import JfbBaseCardInfoMixin from "./JfbBaseCardInfoMixin";
|
|
112
112
|
import componentsMixins from "@/mixins/componentsMixins";
|
|
@@ -162,6 +162,7 @@ export default {
|
|
|
162
162
|
|
|
163
163
|
qrcode: "", //二维码
|
|
164
164
|
showForm: true,
|
|
165
|
+
hasCon: "", //是否有优惠券
|
|
165
166
|
|
|
166
167
|
//页面跳转地址
|
|
167
168
|
backUrl: "",
|
|
@@ -174,6 +175,12 @@ export default {
|
|
|
174
175
|
},
|
|
175
176
|
created() {},
|
|
176
177
|
methods: {
|
|
178
|
+
toShowCouponDialog(){
|
|
179
|
+
// jfbRootFnExec(this, 'onCustomEvent')("@showBaseConDialog", {user_card_number: "10001000001133"})
|
|
180
|
+
if(this.info){
|
|
181
|
+
jfbRootFnExec(this, 'onCustomEvent')("@showBaseConDialog", {user_card_number: this.info.card_number})
|
|
182
|
+
}
|
|
183
|
+
},
|
|
177
184
|
handleToLink(path) {
|
|
178
185
|
if (this.qrcode) {
|
|
179
186
|
jfbRootExec("qrCardBind", {
|
|
@@ -183,14 +190,7 @@ export default {
|
|
|
183
190
|
},
|
|
184
191
|
})
|
|
185
192
|
.then((res) => {
|
|
186
|
-
this
|
|
187
|
-
content: "绑定成功",
|
|
188
|
-
close: () => {
|
|
189
|
-
this.$xdUniHelper.redirectTo({
|
|
190
|
-
url: this.backUrl,
|
|
191
|
-
});
|
|
192
|
-
},
|
|
193
|
-
});
|
|
193
|
+
this.handlerAfterBindCard();
|
|
194
194
|
})
|
|
195
195
|
.catch();
|
|
196
196
|
} else {
|
|
@@ -202,19 +202,32 @@ export default {
|
|
|
202
202
|
},
|
|
203
203
|
})
|
|
204
204
|
.then((res) => {
|
|
205
|
-
|
|
206
|
-
this.$xdAlert({
|
|
207
|
-
content: "绑定成功",
|
|
208
|
-
close: () => {
|
|
209
|
-
this.$xdUniHelper.redirectTo({
|
|
210
|
-
url: this.backUrl,
|
|
211
|
-
});
|
|
212
|
-
},
|
|
213
|
-
});
|
|
205
|
+
this.handlerAfterBindCard();
|
|
214
206
|
})
|
|
215
207
|
.catch();
|
|
216
208
|
}
|
|
217
209
|
},
|
|
210
|
+
handlerAfterBindCard(){
|
|
211
|
+
if(this.hasCon){
|
|
212
|
+
this.toShowCouponDialog();
|
|
213
|
+
this.$bus.$on("onCloseConDialog",(container_id) => {
|
|
214
|
+
if(container_id === this.hasCon){
|
|
215
|
+
this.$xdUniHelper.redirectTo({
|
|
216
|
+
url: this.backUrl,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
})
|
|
220
|
+
}else{
|
|
221
|
+
this.$xdAlert({
|
|
222
|
+
content: "票券绑定成功",
|
|
223
|
+
close: () => {
|
|
224
|
+
this.$xdUniHelper.redirectTo({
|
|
225
|
+
url: this.backUrl,
|
|
226
|
+
});
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
},
|
|
218
231
|
init() {
|
|
219
232
|
this.backUrl = getContainerPropsValue(
|
|
220
233
|
this.container,
|
|
@@ -327,6 +340,12 @@ export default {
|
|
|
327
340
|
onJfbShow(options) {
|
|
328
341
|
this.onJfbLoad(options);
|
|
329
342
|
},
|
|
343
|
+
onJfbCustomEvent({action, data}){
|
|
344
|
+
if(action === 'baseConDialog@hasCon'){
|
|
345
|
+
this.hasCon = data;
|
|
346
|
+
}
|
|
347
|
+
console.log('onJfbCustomEvent',action, data);
|
|
348
|
+
}
|
|
330
349
|
},
|
|
331
350
|
};
|
|
332
351
|
</script>
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
|
|
125
125
|
<script>
|
|
126
126
|
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
|
|
127
|
-
import { jfbRootExec } from "@/utils/xd.event";
|
|
127
|
+
import { jfbRootExec, jfbRootFnExec } from "@/utils/xd.event";
|
|
128
128
|
import JfbBaseCardInfoEntryMixin from "./JfbBaseCardInfoEntryMixin";
|
|
129
129
|
import { getContainerPropsValue } from "@/utils/xd.base";
|
|
130
130
|
import getServiceUrl from "@/common/getServiceUrl";
|
|
@@ -157,6 +157,7 @@ export default {
|
|
|
157
157
|
|
|
158
158
|
qrcode: "", //二维码
|
|
159
159
|
showForm: true,
|
|
160
|
+
hasCon: "",
|
|
160
161
|
|
|
161
162
|
//页面跳转地址
|
|
162
163
|
backUrl: "",
|
|
@@ -175,6 +176,12 @@ export default {
|
|
|
175
176
|
},
|
|
176
177
|
created() {},
|
|
177
178
|
methods: {
|
|
179
|
+
toShowCouponDialog(){
|
|
180
|
+
// jfbRootFnExec(this, 'onCustomEvent')("@showBaseConDialog", {user_card_number: "10001000001133"})
|
|
181
|
+
if(this.info){
|
|
182
|
+
jfbRootFnExec(this, 'onCustomEvent')("@showBaseConDialog", {user_card_number: this.info.card_number})
|
|
183
|
+
}
|
|
184
|
+
},
|
|
178
185
|
handleToLink() {
|
|
179
186
|
if(this.info.card_point===0) {
|
|
180
187
|
this.$xdConfirm({
|
|
@@ -200,14 +207,7 @@ export default {
|
|
|
200
207
|
},
|
|
201
208
|
})
|
|
202
209
|
.then((res) => {
|
|
203
|
-
this
|
|
204
|
-
content: "票券绑定成功",
|
|
205
|
-
close: () => {
|
|
206
|
-
this.$xdUniHelper.redirectTo({
|
|
207
|
-
url: this.backUrl,
|
|
208
|
-
});
|
|
209
|
-
},
|
|
210
|
-
});
|
|
210
|
+
this.handlerAfterBindCard();
|
|
211
211
|
})
|
|
212
212
|
.catch();
|
|
213
213
|
} else {
|
|
@@ -221,18 +221,32 @@ export default {
|
|
|
221
221
|
})
|
|
222
222
|
.then((res) => {
|
|
223
223
|
console.log(this.$xdAlert, "this.$xdAlertfsdfs");
|
|
224
|
-
this
|
|
225
|
-
content: "票券绑定成功",
|
|
226
|
-
close: () => {
|
|
227
|
-
this.$xdUniHelper.redirectTo({
|
|
228
|
-
url: this.backUrl,
|
|
229
|
-
});
|
|
230
|
-
},
|
|
231
|
-
});
|
|
224
|
+
this.handlerAfterBindCard();
|
|
232
225
|
})
|
|
233
226
|
.catch();
|
|
234
227
|
}
|
|
235
228
|
},
|
|
229
|
+
handlerAfterBindCard(){
|
|
230
|
+
if(this.hasCon){
|
|
231
|
+
this.toShowCouponDialog();
|
|
232
|
+
this.$bus.$on("onCloseConDialog",(container_id) => {
|
|
233
|
+
if(container_id === this.hasCon){
|
|
234
|
+
this.$xdUniHelper.redirectTo({
|
|
235
|
+
url: this.backUrl,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
})
|
|
239
|
+
}else{
|
|
240
|
+
this.$xdAlert({
|
|
241
|
+
content: "票券绑定成功",
|
|
242
|
+
close: () => {
|
|
243
|
+
this.$xdUniHelper.redirectTo({
|
|
244
|
+
url: this.backUrl,
|
|
245
|
+
});
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
},
|
|
236
250
|
init() {
|
|
237
251
|
this.backUrl = getContainerPropsValue(
|
|
238
252
|
this.container,
|
|
@@ -362,6 +376,12 @@ export default {
|
|
|
362
376
|
onJfbShow(options) {
|
|
363
377
|
this.onJfbLoad(options);
|
|
364
378
|
},
|
|
379
|
+
onJfbCustomEvent({action, data}){
|
|
380
|
+
if(action === 'baseConDialog@hasCon'){
|
|
381
|
+
this.hasCon = data;
|
|
382
|
+
}
|
|
383
|
+
console.log('onJfbCustomEvent',action, data);
|
|
384
|
+
}
|
|
365
385
|
},
|
|
366
386
|
};
|
|
367
387
|
</script>
|
|
@@ -16,4 +16,39 @@ module.exports = [
|
|
|
16
16
|
isConsole: true,
|
|
17
17
|
disabled: true,
|
|
18
18
|
},
|
|
19
|
+
{
|
|
20
|
+
mapFnName: 'getCouponList', //自定义方法名字(必选)
|
|
21
|
+
title: '获取优惠券列表',
|
|
22
|
+
path: '/sms-coupon/v1/activity-prizes-user/list',
|
|
23
|
+
isRule: false,
|
|
24
|
+
params: {
|
|
25
|
+
distribution_method: ['发放方式 entry=主动发放, homed=首页发放,paid=消费后发放,card_binded=绑定卡后发放', 'String', '选填'],
|
|
26
|
+
namespace: ['业务线', 'String', '必填'],
|
|
27
|
+
},
|
|
28
|
+
isConsole: true,
|
|
29
|
+
disabled: true,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
mapFnName: 'getAllCoupon', //自定义方法名字(必选)
|
|
33
|
+
title: '领取优惠券',
|
|
34
|
+
path: '/sms-coupon/v1/activity-prizes-user/set',
|
|
35
|
+
isRule: false,
|
|
36
|
+
params: {
|
|
37
|
+
distribution_method: ['发放方式 entry=主动发放, homed=首页发放,paid=消费后发放,card_binded=绑定卡后发放', 'String', '选填'],
|
|
38
|
+
namespace: ['业务线', 'String', '必填'],
|
|
39
|
+
},
|
|
40
|
+
isConsole: true,
|
|
41
|
+
disabled: true,
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
mapFnName: 'getCouponResult', //自定义方法名字(必选)
|
|
45
|
+
title: '轮询查询活动结果',
|
|
46
|
+
path: '/sms-coupon/v1/activity-prizes-user/get',
|
|
47
|
+
isRule: false,
|
|
48
|
+
params: {
|
|
49
|
+
tmp_order_number: ['tmp_order_number', 'String', '选填'],
|
|
50
|
+
},
|
|
51
|
+
isConsole: true,
|
|
52
|
+
disabled: true,
|
|
53
|
+
},
|
|
19
54
|
];
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
</view>
|
|
18
18
|
<!-- #endif -->
|
|
19
19
|
<view class="jfb-base-con-dialog__body">
|
|
20
|
-
<view class="jfb-base-con-dialog__body-dialog"
|
|
20
|
+
<view v-if="isShow" class="jfb-base-con-dialog__body-dialog">
|
|
21
21
|
<view class="jfb-base-con-dialog__body-dialog-mask"></view>
|
|
22
|
-
<view class="jfb-base-con-dialog__body-dialog-content">
|
|
22
|
+
<view v-if="distribution_method !== 'card_binded'" class="jfb-base-con-dialog__body-dialog-content">
|
|
23
23
|
<view v-if="list.length>1" class="jfb-base-con-dialog__body-dialog-content-num">
|
|
24
24
|
<text>{{ currentIndex + 1 }}/{{ list.length }}</text>
|
|
25
25
|
</view>
|
|
@@ -51,7 +51,16 @@
|
|
|
51
51
|
size="64"
|
|
52
52
|
></xd-font-icon>
|
|
53
53
|
</view>
|
|
54
|
+
<view v-else class="jfb-base-con-dialog__body-dialog-content">
|
|
55
|
+
<xd-cou-card-bind
|
|
56
|
+
:list="couponList"
|
|
57
|
+
:setting="couponOther"
|
|
58
|
+
@closeDialog="handleCardBindClose"
|
|
59
|
+
@getCoupont="handleGetCoupon"
|
|
60
|
+
></xd-cou-card-bind>
|
|
61
|
+
</view>
|
|
54
62
|
</view>
|
|
63
|
+
|
|
55
64
|
<view
|
|
56
65
|
:style="{ background: backgroundColor, color: warningColor }"
|
|
57
66
|
class="jfb-base-con-dialog__body-pop"
|
|
@@ -64,7 +73,7 @@
|
|
|
64
73
|
|
|
65
74
|
<script>
|
|
66
75
|
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
|
|
67
|
-
import { jfbRootExec, JfbEvent } from "@/utils/xd.event";
|
|
76
|
+
import { jfbRootExec, JfbEvent, jfbRootFnExec } from "@/utils/xd.event";
|
|
68
77
|
import JfbBaseConDialogMixin from "./JfbBaseConDialogMixin";
|
|
69
78
|
import componentsMixins from "@/mixins/componentsMixins";
|
|
70
79
|
import extsMixins from "@/mixins/extsMixins";
|
|
@@ -74,11 +83,13 @@ import colorCardMixins from "@/mixins/colorCardMixins";
|
|
|
74
83
|
const Color = require("color");
|
|
75
84
|
import { mapState } from "vuex";
|
|
76
85
|
import storage from "@/common/storage";
|
|
86
|
+
import XdCouCardBind from "./XdCouCardBind";
|
|
77
87
|
|
|
78
88
|
export default {
|
|
79
89
|
name: "JfbBaseConDialog",
|
|
80
90
|
components: {
|
|
81
91
|
XdFontIcon,
|
|
92
|
+
XdCouCardBind
|
|
82
93
|
},
|
|
83
94
|
mixins: [componentsMixins, extsMixins, JfbBaseConDialogMixin],
|
|
84
95
|
data() {
|
|
@@ -96,6 +107,12 @@ export default {
|
|
|
96
107
|
distribution_method: "homed", //触发事件
|
|
97
108
|
dispatchData: "", //触发事件参数
|
|
98
109
|
|
|
110
|
+
couponList: [],
|
|
111
|
+
couponOther: {},
|
|
112
|
+
order_num: null,
|
|
113
|
+
timer: null,
|
|
114
|
+
time: 0,
|
|
115
|
+
|
|
99
116
|
};
|
|
100
117
|
},
|
|
101
118
|
computed: {
|
|
@@ -125,8 +142,94 @@ export default {
|
|
|
125
142
|
this.isShow = !this.isHide;
|
|
126
143
|
}
|
|
127
144
|
},
|
|
128
|
-
|
|
145
|
+
//领取优惠券
|
|
146
|
+
handleGetCoupon(item){
|
|
147
|
+
jfbRootExec("getAllCoupon", {
|
|
148
|
+
vm: this,
|
|
149
|
+
data: {
|
|
150
|
+
prize_id: item.prize_id,
|
|
151
|
+
distribution_method: this.distribution_method,
|
|
152
|
+
...this.dispatchData
|
|
153
|
+
}
|
|
154
|
+
}).then(res => {
|
|
155
|
+
if (res.code == 400) {
|
|
156
|
+
this.$xdHideLoading();
|
|
157
|
+
this.$xdAlert({
|
|
158
|
+
content: res.message,
|
|
159
|
+
zIndex: 3200,
|
|
160
|
+
time: 2000,
|
|
161
|
+
isClose: false,
|
|
162
|
+
});
|
|
163
|
+
this.getDialogList();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
this.order_num = res.tmp_order_number;
|
|
167
|
+
setTimeout(()=>{
|
|
168
|
+
this.getResult();
|
|
169
|
+
},1000)
|
|
170
|
+
}).catch((err) => {
|
|
171
|
+
console.log(err, "err");
|
|
172
|
+
});
|
|
173
|
+
},
|
|
174
|
+
getResult() {
|
|
175
|
+
jfbRootExec("getCouponResult", {
|
|
176
|
+
vm: this,
|
|
177
|
+
data: {
|
|
178
|
+
tmp_order_number: this.order_num,
|
|
179
|
+
},
|
|
180
|
+
})
|
|
181
|
+
.then((res) => {
|
|
182
|
+
if (res.status_type === "success") {
|
|
183
|
+
this.order_num = null;
|
|
184
|
+
this.$xdHideLoading();
|
|
185
|
+
this.$xdAlert({
|
|
186
|
+
content: "领取成功",
|
|
187
|
+
zIndex: 3200,
|
|
188
|
+
time: 2000,
|
|
189
|
+
isClose: false,
|
|
190
|
+
});
|
|
191
|
+
this.getDialogList();
|
|
192
|
+
if (this.timer) {
|
|
193
|
+
this.time = 0;
|
|
194
|
+
clearTimeout(this.timer);
|
|
195
|
+
}
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (res.status_type === "error") {
|
|
199
|
+
this.$xdHideLoading();
|
|
200
|
+
this.$xdAlert({
|
|
201
|
+
content: res.message,
|
|
202
|
+
zIndex: 3200,
|
|
203
|
+
time: 2000,
|
|
204
|
+
isClose: false,
|
|
205
|
+
});
|
|
206
|
+
if (res.code == 400) {
|
|
207
|
+
this.getDialogList();
|
|
208
|
+
}
|
|
209
|
+
if (this.timer) {
|
|
210
|
+
this.time = 0;
|
|
211
|
+
clearTimeout(this.timer);
|
|
212
|
+
}
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
129
215
|
|
|
216
|
+
this.timer = setTimeout(() => {
|
|
217
|
+
this.getResult();
|
|
218
|
+
if (this.time > 5) {
|
|
219
|
+
this.$xdLog.setARMSInfo(
|
|
220
|
+
{ message: "领取中" },
|
|
221
|
+
`pay_${res.status_type}`
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
this.time++;
|
|
225
|
+
}, Math.pow(2, this.time > 5 ? 5 : this.time) * 1000);
|
|
226
|
+
})
|
|
227
|
+
.catch((err) => {
|
|
228
|
+
this.$xdHideLoading();
|
|
229
|
+
console.log(err, "err");
|
|
230
|
+
});
|
|
231
|
+
},
|
|
232
|
+
p_getDialogList(){
|
|
130
233
|
jfbRootExec("getCouponDialogList", {
|
|
131
234
|
vm: this,
|
|
132
235
|
data: {
|
|
@@ -137,6 +240,7 @@ export default {
|
|
|
137
240
|
.then((res) => {
|
|
138
241
|
console.log(res, "resresres");
|
|
139
242
|
this.list = res.list;
|
|
243
|
+
if(res.list.length === 0) return;
|
|
140
244
|
this.currentImage = getServiceUrl(
|
|
141
245
|
this.list[this.currentIndex].app_activity_url
|
|
142
246
|
);
|
|
@@ -150,6 +254,31 @@ export default {
|
|
|
150
254
|
console.log(err, "err");
|
|
151
255
|
});
|
|
152
256
|
},
|
|
257
|
+
p_getCouponList(){
|
|
258
|
+
jfbRootExec("getCouponList", {
|
|
259
|
+
vm: this,
|
|
260
|
+
data: {
|
|
261
|
+
distribution_method: this.distribution_method,
|
|
262
|
+
...this.dispatchData
|
|
263
|
+
}
|
|
264
|
+
}).then(res => {
|
|
265
|
+
const { list, ...other } = res;
|
|
266
|
+
this.couponList = list;
|
|
267
|
+
this.couponOther = other;
|
|
268
|
+
if(res.can_take === "Y" && res.has_times === "Y" && list.length > 0){
|
|
269
|
+
this.isShow = true;
|
|
270
|
+
}else{
|
|
271
|
+
this.handleCardBindClose();
|
|
272
|
+
}
|
|
273
|
+
})
|
|
274
|
+
},
|
|
275
|
+
getDialogList() {
|
|
276
|
+
if(this.distribution_method === 'card_binded'){
|
|
277
|
+
this.p_getCouponList();
|
|
278
|
+
}else{
|
|
279
|
+
this.p_getDialogList();
|
|
280
|
+
}
|
|
281
|
+
},
|
|
153
282
|
handlePop() {
|
|
154
283
|
console.log("this.time", this.time * 60 + "分钟");
|
|
155
284
|
storage.set(this.containerId, 1, this.time);
|
|
@@ -157,12 +286,23 @@ export default {
|
|
|
157
286
|
},
|
|
158
287
|
onJfbLoad(options) {
|
|
159
288
|
console.log(11111);
|
|
289
|
+
//支付跟绑卡是主动触发
|
|
160
290
|
try {
|
|
161
|
-
if (!storage.get(this.containerId)
|
|
291
|
+
if (!storage.get(this.containerId) &&
|
|
292
|
+
this.distribution_method !== "paid" &&
|
|
293
|
+
this.distribution_method !== "card_binded") this.getDialogList();
|
|
162
294
|
} catch (error) {
|
|
163
295
|
console.log(error, "errorerror");
|
|
164
296
|
}
|
|
297
|
+
if(this.distribution_method === 'card_binded'){
|
|
298
|
+
jfbRootFnExec(this, 'onCustomEvent')("baseConDialog@hasCon", this.containerId);
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
handleCardBindClose(){
|
|
302
|
+
this.isShow = false;
|
|
303
|
+
this.$bus.$emit("onCloseConDialog", this.containerId);
|
|
165
304
|
},
|
|
305
|
+
|
|
166
306
|
onJfbUpdate(data) {
|
|
167
307
|
storage.remove(this.containerId);
|
|
168
308
|
this.getDialogList();
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view class="xd-cou-card-bind">
|
|
3
|
+
<view class="ticket_box" :style="{
|
|
4
|
+
backgroundImage: dialogBackground
|
|
5
|
+
}">
|
|
6
|
+
<view class="ticket_list">
|
|
7
|
+
<view class="ticket_item" :class="item.can_take_num"
|
|
8
|
+
v-for="(item,i) in uiList" :key="i"
|
|
9
|
+
:style="{backgroundImage: item.backgroundImage}"
|
|
10
|
+
>
|
|
11
|
+
<view class="ticket_names">
|
|
12
|
+
<view class="name_main">{{item.prize_type}}</view>
|
|
13
|
+
<view class="name_sub">{{item.prize_name}}</view>
|
|
14
|
+
</view>
|
|
15
|
+
<view class="name_tit">{{item.prize_name}}</view>
|
|
16
|
+
<xd-font-icon class="ticket_icon" :icon="item.icon"></xd-font-icon>
|
|
17
|
+
<view class="btn">
|
|
18
|
+
<xd-button
|
|
19
|
+
size="small"
|
|
20
|
+
type="primary"
|
|
21
|
+
:disabled="item.remain_card_count == 0"
|
|
22
|
+
:style="{
|
|
23
|
+
backgroundImage: item.btnImage
|
|
24
|
+
}"
|
|
25
|
+
@click="getCoupont(item)"
|
|
26
|
+
>{{item.btn_txt}}</xd-button>
|
|
27
|
+
</view>
|
|
28
|
+
</view>
|
|
29
|
+
</view>
|
|
30
|
+
</view>
|
|
31
|
+
|
|
32
|
+
<xd-font-icon
|
|
33
|
+
@click="handleClose"
|
|
34
|
+
class="dialog_close"
|
|
35
|
+
icon="iconguanbi_xian"
|
|
36
|
+
color="#fff"
|
|
37
|
+
size="64"
|
|
38
|
+
></xd-font-icon>
|
|
39
|
+
</view>
|
|
40
|
+
</template>
|
|
41
|
+
<script>
|
|
42
|
+
import XdButton from "@/components/XdButton/XdButton";
|
|
43
|
+
import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
|
|
44
|
+
import getServiceUrl from "@/common/getServiceUrl";
|
|
45
|
+
export default{
|
|
46
|
+
name: "XdCouCardBind",
|
|
47
|
+
components: {
|
|
48
|
+
XdButton,
|
|
49
|
+
XdFontIcon
|
|
50
|
+
},
|
|
51
|
+
props: {
|
|
52
|
+
list: {
|
|
53
|
+
type: Array,
|
|
54
|
+
default(){
|
|
55
|
+
return []
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
setting: {}
|
|
59
|
+
},
|
|
60
|
+
computed: {
|
|
61
|
+
uiList(){
|
|
62
|
+
return this.list.map(item => {
|
|
63
|
+
let mapArr = {"Y": "去查看", "P": "领取", "N": "已发完"}
|
|
64
|
+
item.btn_txt = mapArr[item.can_take_num];
|
|
65
|
+
if(item.can_take_num === "Y" || item.can_take_num === "P"){
|
|
66
|
+
item.backgroundImage = `url(${getServiceUrl(this.setting.app_coupon_url)})`;
|
|
67
|
+
item.btnImage = `url(${getServiceUrl(this.setting.app_coupon_button_bg_url)})`;
|
|
68
|
+
item.icon = item.can_take_num === "Y" ? "iconyilingqu" : "icondailingqu";
|
|
69
|
+
}else if(item.can_take_num === "N"){
|
|
70
|
+
item.backgroundImage = `url(${getServiceUrl(this.setting.app_coupon_invalid_url)})`;
|
|
71
|
+
item.btnImage = "";
|
|
72
|
+
item.icon = "iconyifawan";
|
|
73
|
+
}
|
|
74
|
+
return item;
|
|
75
|
+
})
|
|
76
|
+
},
|
|
77
|
+
dialogBackground(){
|
|
78
|
+
return `url(${getServiceUrl(this.setting.background)})`;
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
data(){
|
|
82
|
+
return {
|
|
83
|
+
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
methods: {
|
|
87
|
+
//领取优惠券
|
|
88
|
+
getCoupont(item){
|
|
89
|
+
if(item.can_take_num === "P"){
|
|
90
|
+
this.$emit("getCoupont", item);
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
handleClose(){
|
|
94
|
+
this.$emit("closeDialog");
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
</script>
|
|
99
|
+
|
|
100
|
+
<style lang="less" scoped>
|
|
101
|
+
@ticketHeight: 180rpx;
|
|
102
|
+
@bgHeight: @ticketHeight - 40rpx;
|
|
103
|
+
.xd-cou-card-bind{
|
|
104
|
+
width: 600rpx;
|
|
105
|
+
max-height: 800rpx;
|
|
106
|
+
padding-bottom: 80rpx;
|
|
107
|
+
.ticket_box{
|
|
108
|
+
background-color: #fff;
|
|
109
|
+
background-size: 100% auto;
|
|
110
|
+
background-repeat: no-repeat;
|
|
111
|
+
padding-top: 100rpx;
|
|
112
|
+
border-radius: 20rpx;
|
|
113
|
+
box-sizing: border-box;
|
|
114
|
+
padding-bottom: 20rpx;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.ticket_item{
|
|
118
|
+
display: flex;
|
|
119
|
+
position: relative;
|
|
120
|
+
width: 540rpx;
|
|
121
|
+
height: @ticketHeight;
|
|
122
|
+
margin: 20rpx auto;
|
|
123
|
+
border-radius: 20rpx;
|
|
124
|
+
padding: 30rpx;
|
|
125
|
+
box-sizing: border-box;
|
|
126
|
+
background: #EEEEEE url("//sandbox-img.jufubao.cn/uploads/20231205/fee9b644b83495c9ba8a4db277600b54.jpg") no-repeat;
|
|
127
|
+
background-size: auto @bgHeight;
|
|
128
|
+
background-position: 30rpx center;
|
|
129
|
+
|
|
130
|
+
&.P,
|
|
131
|
+
&.Y{
|
|
132
|
+
|
|
133
|
+
}
|
|
134
|
+
&.N{
|
|
135
|
+
.ticket_names{
|
|
136
|
+
.name_main{
|
|
137
|
+
color: #BBBBBB;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
.ticket_icon{
|
|
141
|
+
color: #D6D6D6;
|
|
142
|
+
|
|
143
|
+
}
|
|
144
|
+
.btn{
|
|
145
|
+
.xd-button{
|
|
146
|
+
background-color: #DDDDDD !important;
|
|
147
|
+
color: #999999 !important;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
.name_tit{
|
|
152
|
+
font-size: 28rpx;
|
|
153
|
+
margin-left: 20rpx;
|
|
154
|
+
}
|
|
155
|
+
.ticket_names{
|
|
156
|
+
width: 168rpx;
|
|
157
|
+
height: 120rpx;
|
|
158
|
+
text-align: center;
|
|
159
|
+
font-size: 28rpx;
|
|
160
|
+
.name_main{
|
|
161
|
+
margin-bottom: 26rpx;
|
|
162
|
+
margin-top: 20rpx;
|
|
163
|
+
color: #fb5b3f;
|
|
164
|
+
}
|
|
165
|
+
.name_sub{
|
|
166
|
+
font-size: 24rpx;
|
|
167
|
+
color: #FFFFFF;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
.ticket_icon{
|
|
171
|
+
font-size: 80rpx !important;
|
|
172
|
+
position: absolute;
|
|
173
|
+
top: 0;
|
|
174
|
+
right: 0;
|
|
175
|
+
}
|
|
176
|
+
.btn{
|
|
177
|
+
position: absolute;
|
|
178
|
+
right: 20rpx;
|
|
179
|
+
bottom: 20rpx;
|
|
180
|
+
.xd-button{
|
|
181
|
+
height: 30rpx;
|
|
182
|
+
width: 100rpx;
|
|
183
|
+
font-size: 28rpx;
|
|
184
|
+
background-size: cover !important;
|
|
185
|
+
background-color: #fb5b3f;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
}
|
|
190
|
+
.dialog_close{
|
|
191
|
+
position: absolute;
|
|
192
|
+
bottom: 0rpx;
|
|
193
|
+
left: 50%;
|
|
194
|
+
transform: translateX(-50%);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
</style>
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
</view>
|
|
120
120
|
</view>
|
|
121
121
|
<view v-else class="jfb-base-con-list__body-content-list" style="padding-bottom: 60rpx;">
|
|
122
|
-
<image mode="widthFix" src="
|
|
122
|
+
<image mode="widthFix" :src="used_up_url"></image>
|
|
123
123
|
</view>
|
|
124
124
|
</view>
|
|
125
125
|
<view class="jfb-base-con-list__body-content-foot"
|
|
@@ -233,7 +233,7 @@ export default {
|
|
|
233
233
|
})
|
|
234
234
|
.then((res) => {
|
|
235
235
|
this.background = getServiceUrl(res.background);
|
|
236
|
-
this.used_up_url = getServiceUrl(res.used_up_url);
|
|
236
|
+
this.used_up_url = res.used_up_url && getServiceUrl(res.used_up_url);
|
|
237
237
|
this.can_take = res.can_take;
|
|
238
238
|
this.has_times = res.has_times;
|
|
239
239
|
|
|
@@ -8,6 +8,7 @@ module.exports = {
|
|
|
8
8
|
{"prize_id":153,"prize_name":"满50减50","prize_type":"满减券","prize_num":1,"can_take":"Y","is_over":"N","can_take_num":"P","today_times":1,"today_num":0,"total_times":1,"total_num":0,"remain_card_count":55}
|
|
9
9
|
],
|
|
10
10
|
"background":"//sandbox-img.jufubao.cn/uploads/20231204/96b801e0dc27422c183dc90d905dd2ed.jpg",
|
|
11
|
+
"used_up_url": "",
|
|
11
12
|
"has_times": "Y",
|
|
12
13
|
"can_take":"Y",
|
|
13
14
|
"message":"",
|