jufubao-base 1.0.159-beta9 → 1.0.160-beta1

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.
@@ -29,7 +29,7 @@ module.exports = [
29
29
  disabled: true,
30
30
  },
31
31
  {
32
- mapFnName: 'getAllCoupon', //自定义方法名字(必选)
32
+ mapFnName: 'getOnceCoupon', //自定义方法名字(必选)
33
33
  title: '领取优惠券',
34
34
  path: '/sms-coupon/v1/activity-prizes-user/set',
35
35
  isRule: false,
@@ -40,6 +40,18 @@ module.exports = [
40
40
  isConsole: true,
41
41
  disabled: true,
42
42
  },
43
+ {
44
+ mapFnName: 'getAllCoupon', //自定义方法名字(必选)
45
+ title: '领取优惠券',
46
+ path: '/sms-coupon/v1/activity-prizes-user/set-all',
47
+ isRule: false,
48
+ params: {
49
+ distribution_method: ['发放方式 entry=主动发放, homed=首页发放,paid=消费后发放,card_binded=绑定卡后发放', 'String', '选填'],
50
+ namespace: ['业务线', 'String', '必填'],
51
+ },
52
+ isConsole: true,
53
+ disabled: true,
54
+ },
43
55
  {
44
56
  mapFnName: 'getCouponResult', //自定义方法名字(必选)
45
57
  title: '轮询查询活动结果',
@@ -53,10 +53,13 @@
53
53
  </view>
54
54
  <view v-else class="jfb-base-con-dialog__body-dialog-content">
55
55
  <xd-cou-card-bind
56
+ :isAll="isAll"
57
+ :isRandom="isRandom"
56
58
  :list="couponList"
57
59
  :setting="couponOther"
58
60
  @closeDialog="handleCardBindClose"
59
61
  @getCoupont="handleGetCoupon"
62
+ @getAllCoupont="getAllCoupont"
60
63
  ></xd-cou-card-bind>
61
64
  </view>
62
65
  </view>
@@ -114,6 +117,8 @@ export default {
114
117
  //预览是否显示弹窗
115
118
  is_preview_hide_dailog: false,
116
119
 
120
+ isAll: false,
121
+ isRandom: false
117
122
  };
118
123
  },
119
124
  computed: {
@@ -153,7 +158,7 @@ export default {
153
158
  //领取优惠券
154
159
  handleGetCoupon(item){
155
160
  this.$xdShowLoading({});
156
- jfbRootExec("getAllCoupon", {
161
+ jfbRootExec("getOnceCoupon", {
157
162
  vm: this,
158
163
  data: {
159
164
  prize_id: item.prize_id,
@@ -182,7 +187,6 @@ export default {
182
187
  },
183
188
 
184
189
  getResult() {
185
- debugger
186
190
  jfbRootExec("getCouponResult", {
187
191
  vm: this,
188
192
  data: {
@@ -200,11 +204,13 @@ export default {
200
204
  time: 2000,
201
205
  isClose: false,
202
206
  });
203
- this.getDialogList();
204
- if (this.timer) {
205
- this.timeNum = 0;
206
- clearTimeout(this.timer);
207
- }
207
+ setTimeout(()=>{
208
+ this.getDialogList();
209
+ if (this.timer) {
210
+ this.timeNum = 0;
211
+ clearTimeout(this.timer);
212
+ }
213
+ },2000)
208
214
  return;
209
215
  }
210
216
  if (res.status_type === "error") {
@@ -215,13 +221,15 @@ export default {
215
221
  time: 2000,
216
222
  isClose: false,
217
223
  });
218
- if (res.code === 400) {
219
- this.getDialogList();
220
- }
221
- if (this.timer) {
222
- this.timeNum = 0;
223
- clearTimeout(this.timer);
224
- }
224
+ setTimeout(()=>{
225
+ if (res.code === 400) {
226
+ this.getDialogList();
227
+ }
228
+ if (this.timer) {
229
+ this.timeNum = 0;
230
+ clearTimeout(this.timer);
231
+ }
232
+ },2000)
225
233
  return;
226
234
  }
227
235
 
@@ -261,6 +269,7 @@ export default {
261
269
  this.list[this.currentIndex].app_activity_button
262
270
  );
263
271
  this.activity_id = this.list[this.currentIndex].activity_id;
272
+ this.isAll =
264
273
  this.handlePop();
265
274
  })
266
275
  .catch((err) => {
@@ -279,14 +288,27 @@ export default {
279
288
  const { list, ...other } = res;
280
289
  this.couponList = list;
281
290
  this.couponOther = other;
282
- if(res.can_take === "Y" && res.has_times === "Y" && list.length > 0){
291
+ this.isAll = res.receive_method==="batch"
292
+ this.isRandom = res.distribution_type==="random"
293
+ this.activity_id = res.activity_id
294
+ if(res.receive_method !== "batch") {
295
+ if(res.can_take === "Y" && res.has_times === "Y" && list.length > 0){
296
+ if (this.isPreview) {
297
+ console.log(getContainerPropsValue(value, "content.is_show_dailog", 'Y'))
298
+ this.isShow = getContainerPropsValue(value, "content.is_show_dailog", 'Y') === 'N';
299
+ }else this.isShow = true;
300
+ }else{
301
+ this.handleCardBindClose();
302
+ }
303
+ } else {
304
+ if(res.can_take === "Y"){
283
305
  if (this.isPreview) {
284
- debugger
285
306
  console.log(getContainerPropsValue(value, "content.is_show_dailog", 'Y'))
286
307
  this.isShow = getContainerPropsValue(value, "content.is_show_dailog", 'Y') === 'N';
287
- }else this.isShow = true;
288
- }else{
289
- this.handleCardBindClose();
308
+ }else this.isShow = true;
309
+ }else{
310
+ this.handleCardBindClose();
311
+ }
290
312
  }
291
313
  })
292
314
  },
@@ -299,6 +321,43 @@ export default {
299
321
  }
300
322
  },
301
323
 
324
+ getAllCoupont(info) {
325
+ this.p_getAllDialogList();
326
+ },
327
+
328
+ p_getAllDialogList() {
329
+ //getAllCoupon
330
+ this.$xdShowLoading({});
331
+ jfbRootExec("getAllCoupon", {
332
+ vm: this,
333
+ data: {
334
+ distribution_method: this.distribution_method,
335
+ activity_id: this.activity_id,
336
+ ...this.dispatchData
337
+ }
338
+ }).then(res => {
339
+ if (res.code === 400) {
340
+ this.$xdHideLoading();
341
+ this.$xdAlert({
342
+ content: res.message,
343
+ zIndex: 3200,
344
+ time: 2000,
345
+ isClose: false,
346
+ });
347
+ setTimeout(()=>{
348
+ this.getDialogList();
349
+ },2000)
350
+ return;
351
+ }
352
+ this.order_num = res.tmp_order_number;
353
+ setTimeout(()=>{
354
+ this.getResult();
355
+ },1000)
356
+ }).catch((err) => {
357
+ console.log(err, "err");
358
+ });
359
+ },
360
+
302
361
  handlePop() {
303
362
  console.warn(`this.time${this.time * 60 + "分钟"}`);
304
363
  storage.set(this.containerId, 1, this.time);
@@ -320,7 +379,6 @@ export default {
320
379
  ){
321
380
  this.getDialogList();
322
381
  }
323
-
324
382
  //支付跟绑卡是主动触发
325
383
  if(this.distribution_method === 'card_binded'){
326
384
  jfbRootFnExec(this, 'onCustomEvent')("baseConDialog@hasCon", this.containerId);
@@ -450,6 +508,7 @@ export default {
450
508
  font-size: unit(40, rpx);
451
509
  }
452
510
  &-close {
511
+ margin-top: 20rpx;
453
512
  margin: 0 auto;
454
513
  }
455
514
  &-left {
@@ -3,34 +3,85 @@
3
3
  <view
4
4
  class="ticket_box"
5
5
  :style="{
6
- backgroundImage: dialogBackground
6
+ backgroundImage: dialogBackground,
7
7
  }"
8
8
  >
9
- <view class="ticket_list">
10
- <view
11
- class="ticket_item"
12
- :class="item.can_take_num"
13
- v-for="(item,i) in uiList"
14
- :key="i"
15
- >
16
- <view class="item_head">
17
- <image class="t_icon" mode="widthFix" :src="item.headIcon"></image>
18
- <view>{{ item.prize_type }}</view>
9
+ <view v-if="isAll">
10
+ <view v-if="!isRandom" class="ticket_list">
11
+ <view
12
+ class="ticket_item"
13
+ :class="item.can_take_num"
14
+ v-for="(item, i) in uiList"
15
+ :key="i"
16
+ >
17
+ <view class="item_head">
18
+ <image
19
+ class="t_icon"
20
+ mode="widthFix"
21
+ :src="item.headIcon"
22
+ ></image>
23
+ <view>{{ item.prize_type }}</view>
24
+ </view>
25
+ <view class="item_sub">{{ item.prize_name }}</view>
26
+
27
+ <xd-font-icon
28
+ class="ticket_icon"
29
+ :color="item.iconColor"
30
+ :icon="item.icon"
31
+ ></xd-font-icon>
19
32
  </view>
20
- <view class="item_sub">{{ item.prize_name }}</view>
33
+ </view>
34
+ <view style="text-align:center;padding-top:54rpx" v-else>
35
+ <img
36
+ style="width:360rpx;height:340rpx"
37
+ :src="bottomBackground"
38
+ alt=""
39
+ />
40
+ </view>
41
+ <xd-button
42
+ size="small"
43
+ type="primary"
44
+ :style="btnImage"
45
+ @click="getAllCoupont"
46
+ >{{ isRandom ? "开心获取" : "一键领取" }}</xd-button
47
+ >
48
+ </view>
49
+ <view v-else>
50
+ <view class="ticket_list">
51
+ <view
52
+ class="ticket_item"
53
+ :class="item.can_take_num"
54
+ v-for="(item, i) in uiList"
55
+ :key="i"
56
+ >
57
+ <view class="item_head">
58
+ <image
59
+ class="t_icon"
60
+ mode="widthFix"
61
+ :src="item.headIcon"
62
+ ></image>
63
+ <view>{{ item.prize_type }}</view>
64
+ </view>
65
+ <view class="item_sub">{{ item.prize_name }}</view>
21
66
 
22
- <xd-font-icon class="ticket_icon" :color="item.iconColor" :icon="item.icon"></xd-font-icon>
23
- <view class="btn">
24
- <xd-button
25
- size="small"
26
- type="primary"
27
- :disabled="item.remain_card_count == 0"
28
- :style="{
29
- backgroundImage: item.btnImage,
30
- backgroundSize: '100% 100%',
31
- }"
32
- @click="getCoupont(item)"
33
- >{{item.btn_txt}}</xd-button>
67
+ <xd-font-icon
68
+ class="ticket_icon"
69
+ :color="item.iconColor"
70
+ :icon="item.icon"
71
+ ></xd-font-icon>
72
+ <view class="btn">
73
+ <xd-button
74
+ size="small"
75
+ type="primary"
76
+ :disabled="item.remain_card_count == 0"
77
+ :style="{
78
+ backgroundImage: item.btnImage,
79
+ backgroundSize: '100% 100%',
80
+ }"
81
+ @click="getCoupont(item)"
82
+ >{{ item.btn_txt }}</xd-button
83
+ >
84
+ </view>
34
85
  </view>
35
86
  </view>
36
87
  </view>
@@ -49,157 +100,196 @@
49
100
  import XdButton from "@/components/XdButton/XdButton";
50
101
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
51
102
  import getServiceUrl from "@/common/getServiceUrl";
52
- export default{
103
+ export default {
53
104
  name: "XdCouCardBind",
54
105
  components: {
55
106
  XdButton,
56
- XdFontIcon
107
+ XdFontIcon,
57
108
  },
58
109
  props: {
59
110
  list: {
60
111
  type: Array,
61
- default(){
62
- return []
63
- }
112
+ default() {
113
+ return [];
114
+ },
115
+ },
116
+ isAll: {
117
+ type: Boolean,
118
+ default: false,
119
+ },
120
+ isRandom: {
121
+ type: Boolean,
122
+ default: false,
64
123
  },
65
- setting: {}
124
+ setting: {},
66
125
  },
67
126
  computed: {
68
- uiList(){
69
- return this.list.map(item => {
70
- let mapArr = {"Y": "去查看", "P": "领取", "N": "已发完"}
127
+ uiList() {
128
+ return this.list.map((item) => {
129
+ let mapArr = { Y: "去查看", P: "领取", N: "已发完" };
71
130
  item.btn_txt = mapArr[item.can_take_num];
72
- if(item.can_take_num === "Y" || item.can_take_num === "P"){
131
+ if (item.can_take_num === "Y" || item.can_take_num === "P") {
73
132
  item.headIcon = getServiceUrl(this.setting.app_coupon_url);
74
- item.btnImage = `url(${getServiceUrl(this.setting.app_coupon_button_bg_url)})`;
75
- item.icon = item.can_take_num === "Y" ? "iconyilingqu" : "icondailingqu";
76
- item.iconColor = item.can_take_num === "Y"?'#D6D6D6':"#FF4D4A"
77
- }else if(item.can_take_num === "N"){
133
+ item.btnImage = `url(${getServiceUrl(
134
+ this.setting.app_coupon_button_bg_url
135
+ )})`;
136
+ item.icon =
137
+ item.can_take_num === "Y" ? "iconyilingqu" : "icondailingqu";
138
+ item.iconColor = item.can_take_num === "Y" ? "#D6D6D6" : "#FF4D4A";
139
+ } else if (item.can_take_num === "N") {
78
140
  item.headIcon = getServiceUrl(this.setting.app_coupon_invalid_url);
79
141
  item.btnImage = "";
80
142
  item.icon = "iconyifawan";
81
- item.iconColor = '#D6D6D6'
143
+ item.iconColor = "#D6D6D6";
82
144
  }
83
145
  return item;
84
- })
146
+ });
85
147
  },
86
- dialogBackground(){
148
+ dialogBackground() {
87
149
  return `url(${getServiceUrl(this.setting.background)})`;
150
+ },
151
+ bottomBackground() {
152
+ return getServiceUrl(this.setting.app_coupon_bottom_url);
153
+ },
154
+ btnImage() {
155
+ let btn_style = this.setting.app_coupon_button_bg_url
156
+ ? {
157
+ // 设置背景图片
158
+ backgroundImage: `url(${getServiceUrl(
159
+ this.setting.can_take !== "Y"
160
+ ? this.setting.app_coupon_button_see_url
161
+ : this.setting.app_coupon_button_bg_url
162
+ )})`,
163
+ // 设置背景大小
164
+ backgroundSize: "100% 100%",
165
+ // 设置背景重复
166
+ backgroundRepeat: "no-repeat",
167
+ // 设置背景颜色
168
+ backgroundColor: "",
169
+ height: '70rpx',
170
+ width: '450rpx',
171
+ marginTop: '26rpx'
172
+ }
173
+ : {
174
+ // 设置背景颜色
175
+ backgroundColor: "#FB5B3F",
176
+ height: '70rpx',
177
+ width: '450rpx',
178
+ marginTop: '26rpx'
179
+ };
180
+ return btn_style
88
181
  }
89
182
  },
90
- data(){
91
- return {
92
-
93
- }
183
+ data() {
184
+ return {};
94
185
  },
95
186
  methods: {
96
187
  //领取优惠券
97
- getCoupont(item){
98
- if(item.can_take_num === "P"){
188
+ getCoupont(item) {
189
+ if (item.can_take_num === "P") {
99
190
  this.$emit("getCoupont", item);
100
191
  }
101
192
  },
102
- handleClose(){
193
+ getAllCoupont() {
194
+ this.$emit("getAllCoupont");
195
+ },
196
+ handleClose() {
103
197
  this.$emit("closeDialog");
104
- }
105
- }
106
- }
198
+ },
199
+ },
200
+ };
107
201
  </script>
108
202
 
109
203
  <style lang="less" scoped>
110
204
  @ticketHeight: 180rpx;
111
205
  @bgHeight: @ticketHeight - 40rpx;
112
- .xd-cou-card-bind{
113
- width: 600rpx;
114
- max-height: 900rpx;
115
- padding-bottom: 80rpx;
116
- .ticket_box{
117
- background-color: #fff;
118
- background-size: 100% auto;
119
- background-repeat: no-repeat;
120
- padding-top: 200rpx;
121
- border-radius: 20rpx;
122
- box-sizing: border-box;
123
- padding-bottom: 20rpx;
124
- }
125
-
126
- .ticket_item{
127
- display: flex;
128
- flex-direction: column;
129
- position: relative;
130
- width: 540rpx;
131
- height: @ticketHeight;
132
- margin: 20rpx auto;
133
- border-radius: 20rpx;
134
- padding: 30rpx;
135
- box-sizing: border-box;
136
- background: #FFF8F8;
137
-
138
- &.P,
139
- &.Y{
206
+ .xd-cou-card-bind {
207
+ width: 600rpx;
208
+ max-height: 1000rpx;
209
+ padding-bottom: 80rpx;
210
+ position: relative;
211
+ .ticket_box {
212
+ background-color: #fff;
213
+ background-size: 100% auto;
214
+ background-repeat: no-repeat;
215
+ padding-top: 200rpx;
216
+ border-radius: 20rpx;
217
+ box-sizing: border-box;
218
+ padding-bottom: 60rpx;
219
+ }
140
220
 
141
- }
142
- &.N{
143
- background: #F3F3F3;
144
- .item_head{
145
- color: #BBBBBB;
146
- }
147
- .item_sub{
148
- color: #BBBBBB;
149
- }
150
- .ticket_icon{
151
- color: #D6D6D6;
221
+ .ticket_item {
222
+ display: flex;
223
+ flex-direction: column;
224
+ position: relative;
225
+ width: 540rpx;
226
+ height: @ticketHeight;
227
+ margin: 20rpx auto;
228
+ border-radius: 20rpx;
229
+ padding: 30rpx;
230
+ box-sizing: border-box;
231
+ background: #fff8f8;
152
232
 
153
- }
154
- .btn{
155
- .xd-button{
156
- background-color: #DDDDDD !important;
157
- color: #999999 !important;
158
- }
159
- }
160
- }
161
- .item_head{
162
- display: flex;
163
- align-items: center;
164
- font-size: 40rpx;
165
- color: #000000;
166
- font-weight: 500;
167
- .t_icon{
168
- width: 44rpx;
169
- margin-right: 20rpx;
170
- }
233
+ &.P,
234
+ &.Y {
235
+ }
236
+ &.N {
237
+ background: #f3f3f3;
238
+ .item_head {
239
+ color: #bbbbbb;
171
240
  }
172
- .item_sub{
173
- margin-top: 20rpx;
174
- color: #FF4D4A;
175
- font-size: 36rpx;
176
- font-weight: 400;
241
+ .item_sub {
242
+ color: #bbbbbb;
177
243
  }
178
- .ticket_icon{
179
- font-size: 80rpx !important;
180
- position: absolute;
181
- top: 0;
182
- right: 0;
244
+ .ticket_icon {
245
+ color: #d6d6d6;
183
246
  }
184
- .btn{
185
- position: absolute;
186
- right: 20rpx;
187
- bottom: 20rpx;
188
- .xd-button{
189
- height: 30rpx;
190
- width: 100rpx;
191
- font-size: 28rpx;
192
- background-size: cover !important;
193
- background-color: #fb5b3f;
247
+ .btn {
248
+ .xd-button {
249
+ background-color: #dddddd !important;
250
+ color: #999999 !important;
194
251
  }
195
252
  }
196
-
197
253
  }
198
- .dialog_close{
254
+ .item_head {
255
+ display: flex;
256
+ align-items: center;
257
+ font-size: 40rpx;
258
+ color: #000000;
259
+ font-weight: 500;
260
+ .t_icon {
261
+ width: 44rpx;
262
+ margin-right: 20rpx;
263
+ }
264
+ }
265
+ .item_sub {
266
+ margin-top: 20rpx;
267
+ color: #ff4d4a;
268
+ font-size: 36rpx;
269
+ font-weight: 400;
270
+ }
271
+ .ticket_icon {
272
+ font-size: 80rpx !important;
199
273
  position: absolute;
200
- bottom: 0rpx;
201
- left: 50%;
202
- transform: translateX(-50%);
274
+ top: 0;
275
+ right: 0;
276
+ }
277
+ .btn {
278
+ position: absolute;
279
+ right: 20rpx;
280
+ bottom: 20rpx;
281
+ .xd-button {
282
+ height: 30rpx;
283
+ width: 100rpx;
284
+ font-size: 28rpx;
285
+ background-size: cover !important;
286
+ background-color: #fb5b3f;
287
+ }
203
288
  }
204
289
  }
290
+ .dialog_close {
291
+ margin: 0 auto;
292
+ margin-top: 20rpx;
293
+ }
294
+ }
205
295
  </style>
@@ -33,7 +33,7 @@ module.exports = [
33
33
  disabled: true,
34
34
  },
35
35
  {
36
- mapFnName: 'getAllCoupon', //自定义方法名字(必选)
36
+ mapFnName: 'getOnceCoupon', //自定义方法名字(必选)
37
37
  title: '领取优惠券',
38
38
  path: '/sms-coupon/v1/activity-prizes-user/set',
39
39
  isRule: false,
@@ -44,6 +44,18 @@ module.exports = [
44
44
  isConsole: true,
45
45
  disabled: true,
46
46
  },
47
+ {
48
+ mapFnName: 'getAllCoupon', //自定义方法名字(必选)
49
+ title: '领取优惠券',
50
+ path: '/sms-coupon/v1/activity-prizes-user/set-all',
51
+ isRule: false,
52
+ params: {
53
+ distribution_method: ['发放方式 entry=主动发放, homed=首页发放,paid=消费后发放,card_binded=绑定卡后发放', 'String', '选填'],
54
+ namespace: ['业务线', 'String', '必填'],
55
+ },
56
+ isConsole: true,
57
+ disabled: true,
58
+ },
47
59
  {
48
60
  mapFnName: 'getCouponResult', //自定义方法名字(必选)
49
61
  title: '轮询查询活动结果',
@@ -56,6 +56,17 @@ export default {
56
56
  placeholder: '请选择按钮文字颜色',
57
57
  classNmae: 'input60',
58
58
  },
59
+ {
60
+ label: "按钮文字大小",
61
+ ele: "el-input",
62
+ type: "number",
63
+ valueKey: "btnTextSize",
64
+ groupKey: 'content',
65
+ value: data.btnTextSize || '',
66
+ placeholder: "请输入按钮文字大小",
67
+ className: "input80",
68
+ inline: false,
69
+ },
59
70
  {
60
71
  label: '按钮圆角设置:',
61
72
  ele: 'xd-site-select-list',