jufubao-base 1.0.105-beta5 → 1.0.105-beta9
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 +2 -1
- package/src/components/JfbBaseConDialog/JfbBaseConDialog.vue +147 -6
- package/src/components/JfbBaseConDialog/XdCouCardBind.vue +197 -0
- package/src/components/JfbBaseConList/JfbBaseConList.vue +1 -1
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
|
];
|
|
@@ -37,8 +37,9 @@ export default {
|
|
|
37
37
|
valueKey: "distribution_method",
|
|
38
38
|
value: data.distribution_method || "",
|
|
39
39
|
placeholder: "请选择触发事件",
|
|
40
|
+
className: 'input80',
|
|
40
41
|
list: [
|
|
41
|
-
|
|
42
|
+
{ label: "首页发放", value: "homed" },
|
|
42
43
|
{ label: "支付成功", value: "paid" },
|
|
43
44
|
{ label: "绑卡成功", value: "card_binded" },
|
|
44
45
|
]
|
|
@@ -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
|
+
timeNum: 0,
|
|
115
|
+
|
|
99
116
|
};
|
|
100
117
|
},
|
|
101
118
|
computed: {
|
|
@@ -117,7 +134,7 @@ export default {
|
|
|
117
134
|
this.list_url = getContainerPropsValue(value, "content.list_url", {
|
|
118
135
|
value: "",
|
|
119
136
|
}).value;
|
|
120
|
-
this.distribution_method = getContainerPropsValue(value, "content.distribution_method", "");
|
|
137
|
+
this.distribution_method = getContainerPropsValue(value, "content.distribution_method", "homed");
|
|
121
138
|
this.type = getContainerPropsValue(value, "content.type", 1);
|
|
122
139
|
this.isHide = getContainerPropsValue(value, "content.isHide", false);
|
|
123
140
|
this.time = Number(getContainerPropsValue(value, "content.time", 3));
|
|
@@ -125,8 +142,95 @@ export default {
|
|
|
125
142
|
this.isShow = !this.isHide;
|
|
126
143
|
}
|
|
127
144
|
},
|
|
128
|
-
|
|
145
|
+
//领取优惠券
|
|
146
|
+
handleGetCoupon(item){
|
|
147
|
+
this.$xdShowLoading({});
|
|
148
|
+
jfbRootExec("getAllCoupon", {
|
|
149
|
+
vm: this,
|
|
150
|
+
data: {
|
|
151
|
+
prize_id: item.prize_id,
|
|
152
|
+
distribution_method: this.distribution_method,
|
|
153
|
+
...this.dispatchData
|
|
154
|
+
}
|
|
155
|
+
}).then(res => {
|
|
156
|
+
if (res.code == 400) {
|
|
157
|
+
this.$xdHideLoading();
|
|
158
|
+
this.$xdAlert({
|
|
159
|
+
content: res.message,
|
|
160
|
+
zIndex: 3200,
|
|
161
|
+
time: 2000,
|
|
162
|
+
isClose: false,
|
|
163
|
+
});
|
|
164
|
+
this.getDialogList();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.order_num = res.tmp_order_number;
|
|
168
|
+
setTimeout(()=>{
|
|
169
|
+
this.getResult();
|
|
170
|
+
},1000)
|
|
171
|
+
}).catch((err) => {
|
|
172
|
+
console.log(err, "err");
|
|
173
|
+
});
|
|
174
|
+
},
|
|
175
|
+
getResult() {
|
|
176
|
+
jfbRootExec("getCouponResult", {
|
|
177
|
+
vm: this,
|
|
178
|
+
data: {
|
|
179
|
+
tmp_order_number: this.order_num,
|
|
180
|
+
},
|
|
181
|
+
})
|
|
182
|
+
.then((res) => {
|
|
183
|
+
if (res.status_type === "success") {
|
|
184
|
+
this.order_num = null;
|
|
185
|
+
this.$xdHideLoading();
|
|
186
|
+
this.$xdAlert({
|
|
187
|
+
content: "领取成功",
|
|
188
|
+
zIndex: 3200,
|
|
189
|
+
time: 2000,
|
|
190
|
+
isClose: false,
|
|
191
|
+
});
|
|
192
|
+
this.getDialogList();
|
|
193
|
+
if (this.timer) {
|
|
194
|
+
this.timeNum = 0;
|
|
195
|
+
clearTimeout(this.timer);
|
|
196
|
+
}
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (res.status_type === "error") {
|
|
200
|
+
this.$xdHideLoading();
|
|
201
|
+
this.$xdAlert({
|
|
202
|
+
content: res.message,
|
|
203
|
+
zIndex: 3200,
|
|
204
|
+
time: 2000,
|
|
205
|
+
isClose: false,
|
|
206
|
+
});
|
|
207
|
+
if (res.code == 400) {
|
|
208
|
+
this.getDialogList();
|
|
209
|
+
}
|
|
210
|
+
if (this.timer) {
|
|
211
|
+
this.timeNum = 0;
|
|
212
|
+
clearTimeout(this.timer);
|
|
213
|
+
}
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
129
216
|
|
|
217
|
+
this.timer = setTimeout(() => {
|
|
218
|
+
this.getResult();
|
|
219
|
+
if (this.timeNum > 5) {
|
|
220
|
+
this.$xdLog.setARMSInfo(
|
|
221
|
+
{ message: "领取中" },
|
|
222
|
+
`pay_${res.status_type}`
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
this.timeNum++;
|
|
226
|
+
}, Math.pow(2, this.timeNum > 5 ? 5 : this.timeNum) * 1000);
|
|
227
|
+
})
|
|
228
|
+
.catch((err) => {
|
|
229
|
+
this.$xdHideLoading();
|
|
230
|
+
console.log(err, "err");
|
|
231
|
+
});
|
|
232
|
+
},
|
|
233
|
+
p_getDialogList(){
|
|
130
234
|
jfbRootExec("getCouponDialogList", {
|
|
131
235
|
vm: this,
|
|
132
236
|
data: {
|
|
@@ -137,6 +241,7 @@ export default {
|
|
|
137
241
|
.then((res) => {
|
|
138
242
|
console.log(res, "resresres");
|
|
139
243
|
this.list = res.list;
|
|
244
|
+
if(res.list.length === 0) return;
|
|
140
245
|
this.currentImage = getServiceUrl(
|
|
141
246
|
this.list[this.currentIndex].app_activity_url
|
|
142
247
|
);
|
|
@@ -150,6 +255,31 @@ export default {
|
|
|
150
255
|
console.log(err, "err");
|
|
151
256
|
});
|
|
152
257
|
},
|
|
258
|
+
p_getCouponList(){
|
|
259
|
+
jfbRootExec("getCouponList", {
|
|
260
|
+
vm: this,
|
|
261
|
+
data: {
|
|
262
|
+
distribution_method: this.distribution_method,
|
|
263
|
+
...this.dispatchData
|
|
264
|
+
}
|
|
265
|
+
}).then(res => {
|
|
266
|
+
const { list, ...other } = res;
|
|
267
|
+
this.couponList = list;
|
|
268
|
+
this.couponOther = other;
|
|
269
|
+
if(res.can_take === "Y" && res.has_times === "Y" && list.length > 0){
|
|
270
|
+
this.isShow = true;
|
|
271
|
+
}else{
|
|
272
|
+
this.handleCardBindClose();
|
|
273
|
+
}
|
|
274
|
+
})
|
|
275
|
+
},
|
|
276
|
+
getDialogList() {
|
|
277
|
+
if(this.distribution_method === 'card_binded'){
|
|
278
|
+
this.p_getCouponList();
|
|
279
|
+
}else{
|
|
280
|
+
this.p_getDialogList();
|
|
281
|
+
}
|
|
282
|
+
},
|
|
153
283
|
handlePop() {
|
|
154
284
|
console.log("this.time", this.time * 60 + "分钟");
|
|
155
285
|
storage.set(this.containerId, 1, this.time);
|
|
@@ -157,12 +287,23 @@ export default {
|
|
|
157
287
|
},
|
|
158
288
|
onJfbLoad(options) {
|
|
159
289
|
console.log(11111);
|
|
290
|
+
//支付跟绑卡是主动触发
|
|
160
291
|
try {
|
|
161
|
-
if (!storage.get(this.containerId)
|
|
292
|
+
if (!storage.get(this.containerId) &&
|
|
293
|
+
this.distribution_method !== "paid" &&
|
|
294
|
+
this.distribution_method !== "card_binded") this.getDialogList();
|
|
162
295
|
} catch (error) {
|
|
163
296
|
console.log(error, "errorerror");
|
|
164
297
|
}
|
|
298
|
+
if(this.distribution_method === 'card_binded'){
|
|
299
|
+
jfbRootFnExec(this, 'onCustomEvent')("baseConDialog@hasCon", this.containerId);
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
handleCardBindClose(){
|
|
303
|
+
this.isShow = false;
|
|
304
|
+
this.$bus.$emit("onCloseConDialog", this.containerId);
|
|
165
305
|
},
|
|
306
|
+
|
|
166
307
|
onJfbUpdate(data) {
|
|
167
308
|
storage.remove(this.containerId);
|
|
168
309
|
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"
|