jufubao-base 1.0.113-beta2 → 1.0.115

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.113-beta2",
3
+ "version": "1.0.115",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -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.$xdAlert({
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
- console.log(this.$xdAlert, "this.$xdAlertfsdfs");
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.$xdAlert({
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.$xdAlert({
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
  ];
@@ -31,6 +31,19 @@ export default {
31
31
  { label: '切换', value: 2 },
32
32
  ]
33
33
  },
34
+ {
35
+ label: "触发事件:",
36
+ ele: "xd-select-list",
37
+ valueKey: "distribution_method",
38
+ value: data.distribution_method || "",
39
+ placeholder: "请选择触发事件",
40
+ className: 'input80',
41
+ list: [
42
+ { label: "首页发放", value: "homed" },
43
+ { label: "支付成功", value: "paid" },
44
+ { label: "绑卡成功", value: "card_binded" },
45
+ ]
46
+ },
34
47
  {
35
48
  label: '弹窗间隔:',
36
49
  ele: 'el-input',
@@ -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" v-if="isShow">
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() {
@@ -93,6 +104,15 @@ export default {
93
104
  isPreview: false, //是否预览
94
105
  activity_id: "",
95
106
  backgroundColor: "",
107
+ distribution_method: "homed", //触发事件
108
+ dispatchData: "", //触发事件参数
109
+
110
+ couponList: [],
111
+ couponOther: {},
112
+ order_num: null,
113
+ timer: null,
114
+ timeNum: 0,
115
+
96
116
  };
97
117
  },
98
118
  computed: {
@@ -114,6 +134,7 @@ export default {
114
134
  this.list_url = getContainerPropsValue(value, "content.list_url", {
115
135
  value: "",
116
136
  }).value;
137
+ this.distribution_method = getContainerPropsValue(value, "content.distribution_method", "homed");
117
138
  this.type = getContainerPropsValue(value, "content.type", 1);
118
139
  this.isHide = getContainerPropsValue(value, "content.isHide", false);
119
140
  this.time = Number(getContainerPropsValue(value, "content.time", 3));
@@ -121,16 +142,108 @@ export default {
121
142
  this.isShow = !this.isHide;
122
143
  }
123
144
  },
124
- getDialogList() {
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
+ ...this.dispatchData
181
+ },
182
+ })
183
+ .then((res) => {
184
+ if (res.status_type === "success") {
185
+ this.order_num = null;
186
+ this.$xdHideLoading();
187
+ this.$xdAlert({
188
+ content: "领取成功",
189
+ zIndex: 3200,
190
+ time: 2000,
191
+ isClose: false,
192
+ });
193
+ this.getDialogList();
194
+ if (this.timer) {
195
+ this.timeNum = 0;
196
+ clearTimeout(this.timer);
197
+ }
198
+ return;
199
+ }
200
+ if (res.status_type === "error") {
201
+ this.$xdHideLoading();
202
+ this.$xdAlert({
203
+ content: res.message,
204
+ zIndex: 3200,
205
+ time: 2000,
206
+ isClose: false,
207
+ });
208
+ if (res.code == 400) {
209
+ this.getDialogList();
210
+ }
211
+ if (this.timer) {
212
+ this.timeNum = 0;
213
+ clearTimeout(this.timer);
214
+ }
215
+ return;
216
+ }
217
+
218
+ this.timer = setTimeout(() => {
219
+ this.getResult();
220
+ if (this.timeNum > 5) {
221
+ this.$xdLog.setARMSInfo(
222
+ { message: "领取中" },
223
+ `pay_${res.status_type}`
224
+ );
225
+ }
226
+ this.timeNum++;
227
+ }, Math.pow(2, this.timeNum > 5 ? 5 : this.timeNum) * 1000);
228
+ })
229
+ .catch((err) => {
230
+ this.$xdHideLoading();
231
+ console.log(err, "err");
232
+ });
233
+ },
234
+ p_getDialogList(){
125
235
  jfbRootExec("getCouponDialogList", {
126
236
  vm: this,
127
237
  data: {
128
238
  namespace: this.pageBusinessCode,
239
+ distribution_method: this.distribution_method,
240
+ ...this.dispatchData
129
241
  },
130
242
  })
131
243
  .then((res) => {
132
244
  console.log(res, "resresres");
133
245
  this.list = res.list;
246
+ if(res.list.length === 0) return;
134
247
  this.currentImage = getServiceUrl(
135
248
  this.list[this.currentIndex].app_activity_url
136
249
  );
@@ -144,6 +257,31 @@ export default {
144
257
  console.log(err, "err");
145
258
  });
146
259
  },
260
+ p_getCouponList(){
261
+ jfbRootExec("getCouponList", {
262
+ vm: this,
263
+ data: {
264
+ distribution_method: this.distribution_method,
265
+ ...this.dispatchData
266
+ }
267
+ }).then(res => {
268
+ const { list, ...other } = res;
269
+ this.couponList = list;
270
+ this.couponOther = other;
271
+ if(res.can_take === "Y" && res.has_times === "Y" && list.length > 0){
272
+ this.isShow = true;
273
+ }else{
274
+ this.handleCardBindClose();
275
+ }
276
+ })
277
+ },
278
+ getDialogList() {
279
+ if(this.distribution_method === 'card_binded'){
280
+ this.p_getCouponList();
281
+ }else{
282
+ this.p_getDialogList();
283
+ }
284
+ },
147
285
  handlePop() {
148
286
  console.log("this.time", this.time * 60 + "分钟");
149
287
  storage.set(this.containerId, 1, this.time);
@@ -151,12 +289,23 @@ export default {
151
289
  },
152
290
  onJfbLoad(options) {
153
291
  console.log(11111);
292
+ //支付跟绑卡是主动触发
154
293
  try {
155
- if (!storage.get(this.containerId)) this.getDialogList();
294
+ if (!storage.get(this.containerId) &&
295
+ this.distribution_method !== "paid" &&
296
+ this.distribution_method !== "card_binded") this.getDialogList();
156
297
  } catch (error) {
157
298
  console.log(error, "errorerror");
158
299
  }
300
+ if(this.distribution_method === 'card_binded'){
301
+ jfbRootFnExec(this, 'onCustomEvent')("baseConDialog@hasCon", this.containerId);
302
+ }
159
303
  },
304
+ handleCardBindClose(){
305
+ this.isShow = false;
306
+ this.$bus.$emit("onCloseConDialog", this.containerId);
307
+ },
308
+
160
309
  onJfbUpdate(data) {
161
310
  storage.remove(this.containerId);
162
311
  this.getDialogList();
@@ -166,8 +315,15 @@ export default {
166
315
  this.onJfbLoad(options);
167
316
  },
168
317
  handleToList() {
318
+ let otherParams = "";
319
+ try {
320
+ if(this.dispatchData && this.$xdUniHelper.checkVarType(this.dispatchData) === 'object') {
321
+ otherParams = this.$xdUniHelper.jsonToParams(this.dispatchData);
322
+ }
323
+ } catch (error) {}
324
+
169
325
  this.$xdUniHelper.navigateTo({
170
- url: `${this.list_url}?activity_id=${this.activity_id}&distribution_method=homed`,
326
+ url: `${this.list_url}?activity_id=${this.activity_id}&distribution_method=${this.distribution_method}&${otherParams}`,
171
327
  });
172
328
  },
173
329
  handleClose() {
@@ -201,6 +357,13 @@ export default {
201
357
  );
202
358
  this.activity_id = this.list[this.currentIndex].activity_id;
203
359
  },
360
+ onJfbCustomEvent({action, data}){
361
+ if(action === '@showBaseConDialog'){
362
+ this.dispatchData = data;
363
+ this.getDialogList();
364
+ }
365
+ console.log('onJfbCustomEvent',action, data);
366
+ }
204
367
  },
205
368
  };
206
369
  </script>
@@ -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: 900rpx;
106
+ padding-bottom: 80rpx;
107
+ .ticket_box{
108
+ background-color: #fff;
109
+ background-size: 100% auto;
110
+ background-repeat: no-repeat;
111
+ padding-top: 200rpx;
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>
@@ -6,6 +6,17 @@
6
6
  export default {
7
7
  style: [],
8
8
  content: [
9
+ {
10
+ label: '查看已领票券路径:', //label
11
+ ele: 'xd-select-pages-path', //package 名称
12
+ valueKey: 'collectedPath', //form[valueKey]
13
+ placeholder: '请选择查看已领票券路径',
14
+ value: null,
15
+ setting: {
16
+ router: XdBus.getParentApi('getPagesTree'),
17
+ },
18
+ inline: false,
19
+ },
9
20
  // {
10
21
  // label: '领券规则:',
11
22
  // ele: 'xd-site-news',
@@ -16,15 +16,14 @@
16
16
  <view class="jfb-base-con-list__edit-icon" @click="delEdit">删除</view>
17
17
  </view>
18
18
  <!-- #endif -->
19
- <view class="jfb-base-con-list__body" v-if="done">
19
+ <view class="jfb-base-con-list__body" v-if="done" :style="{
20
+ backgroundImage: `url(${background})`,
21
+ backgroundSize: '100%',
22
+ backgroundRepeat: 'no-repeat',
23
+ minHeight: `${layoutInfo.bodyMinHeightRpx}rpx`,
24
+ }">
20
25
  <view
21
26
  v-if="couponList&&couponList.length > 0"
22
- :style="{
23
- backgroundImage: `url(${background})`,
24
- backgroundSize: '100%',
25
- backgroundRepeat: 'no-repeat',
26
- height: `${layoutInfo.bodyMinHeightRpx}rpx`,
27
- }"
28
27
  >
29
28
  <view class="jfb-base-con-list__body-content">
30
29
  <view class="jfb-base-con-list__body-content-header">
@@ -41,7 +40,7 @@
41
40
  <xd-font-icon size="20" icon="iconxiangyou_xian"></xd-font-icon>
42
41
  </view>
43
42
  </view>
44
- <view class="jfb-base-con-list__body-content-list">
43
+ <view v-if="can_take === 'Y' && has_times === 'Y'" class="jfb-base-con-list__body-content-list">
45
44
  <view v-for="(item, index) in couponList" :key="index">
46
45
  <view
47
46
  class="jfb-base-con-list__body-content-list-item"
@@ -106,29 +105,31 @@
106
105
  <view></view>
107
106
 
108
107
  <xd-button
109
- v-if="item.can_take_num !== 'Y'"
110
108
  size="small"
111
- :disabled="item.remain_card_count == 0"
109
+ :disabled="item.can_take_num !=='Y' && item.remain_card_count == 0"
112
110
  @click="getCoupont(item)"
113
111
  type="primary"
112
+ style="width: 170rpx;height: 60rpx;"
114
113
  :style="item.btn"
115
114
  :color="item.infoColor"
116
- >领取</xd-button
117
- >
115
+ >{{ item.btn_txt }}</xd-button>
118
116
  </view>
119
117
  </view>
120
118
  </view>
121
119
  </view>
122
120
  </view>
123
- <view class="jfb-base-con-list__body-content-foot"
124
- >可在我的-我的票券进行查看</view
125
- >
121
+ <view v-else class="jfb-base-con-list__body-content-list" style="padding-bottom: 60rpx;">
122
+ <image mode="widthFix" :src="used_up_url"></image>
123
+ </view>
126
124
  </view>
125
+ <view class="jfb-base-con-list__body-content-foot"
126
+ @click="toCoupon"
127
+ >查看已领票券</view
128
+ >
127
129
  </view>
128
130
  <view
129
131
  v-else
130
132
  class="empty_data"
131
- :style="{ minHeight: layoutInfo.bodyMinHeightPx + 'px' }"
132
133
  >
133
134
  <image :src="emptyBg"></image>
134
135
  {{ message }}
@@ -180,6 +181,9 @@ export default {
180
181
  activity_id: "",
181
182
  background: "",
182
183
  app_coupon_url: "",
184
+ used_up_url: "",
185
+ can_take: "",
186
+ has_times: "",
183
187
  method: "entry",
184
188
  maxTime: 5, //最长轮询2的N次方(秒)
185
189
  date: 2, //时间底数
@@ -188,6 +192,9 @@ export default {
188
192
  order_num: null,
189
193
  done: false,
190
194
  message: "",
195
+ options: {},
196
+
197
+ collectedPath: "",
191
198
  };
192
199
  },
193
200
  computed: {
@@ -213,11 +220,13 @@ export default {
213
220
  init(value) {
214
221
  this.contentBackground = '#FFF8F8';
215
222
  this.iconColor = '#FF4D4A';
223
+ this.collectedPath = getContainerPropsValue(value, "content.collectedPath", {value: ''}).value;
216
224
  },
217
225
  getList() {
218
226
  jfbRootExec("getCouponList", {
219
227
  vm: this,
220
228
  data: {
229
+ ...this.options,
221
230
  distribution_method: this.method,
222
231
  namespace: this.pageBusinessCode,
223
232
  activity_id: this.activity_id,
@@ -225,16 +234,22 @@ export default {
225
234
  })
226
235
  .then((res) => {
227
236
  this.background = getServiceUrl(res.background);
237
+ this.used_up_url = res.used_up_url && getServiceUrl(res.used_up_url);
238
+ this.can_take = res.can_take;
239
+ this.has_times = res.has_times;
240
+
228
241
  this.couponList =
229
242
  res.list &&
230
243
  res.list.length > 0 &&
231
244
  res.list.map((item) => {
245
+ let mapArr = {"Y": "去查看", "P": "领取", "N": "已发完"}
246
+ item.btn_txt = mapArr[item.can_take_num];
232
247
  if (item.can_take_num === "Y" || item.can_take_num === "P") {
233
248
  //按钮样式
234
249
  item.btn = res.app_coupon_button_bg_url
235
250
  ? {
236
251
  backgroundImage: `url(${getServiceUrl(
237
- res.app_coupon_button_bg_url
252
+ item.can_take_num === "Y" ? res.app_coupon_button_see_url : res.app_coupon_button_bg_url
238
253
  )})`,
239
254
  backgroundSize: "100%",
240
255
  backgroundRepeat: "no-repeat",
@@ -288,11 +303,21 @@ export default {
288
303
  console.log(err, "err");
289
304
  });
290
305
  },
306
+ toCoupon(){
307
+ this.$xdUniHelper.navigateTo({
308
+ url: this.collectedPath,
309
+ });
310
+ },
291
311
  getCoupont(item) {
312
+ if(item.can_take_num === "Y") {
313
+ this.toCoupon();
314
+ return;
315
+ }
292
316
  this.$xdShowLoading({});
293
317
  jfbRootExec("getAllCoupon", {
294
318
  vm: this,
295
319
  data: {
320
+ ...this.options,
296
321
  distribution_method: this.method,
297
322
  namespace: this.pageBusinessCode,
298
323
  activity_id: this.activity_id,
@@ -324,11 +349,13 @@ export default {
324
349
  jfbRootExec("getCouponResult", {
325
350
  vm: this,
326
351
  data: {
352
+ ...this.options,
327
353
  tmp_order_number: this.order_num,
328
354
  },
329
355
  })
330
356
  .then((res) => {
331
357
  if (res.status_type === "success") {
358
+ this.order_num = null;
332
359
  this.$xdHideLoading();
333
360
  this.$xdAlert({
334
361
  content: "领取成功",
@@ -398,6 +425,7 @@ export default {
398
425
  // },
399
426
  onJfbLoad(options) {
400
427
  console.log(this.pageBusinessCode, "pageNamespace");
428
+ this.options = options;
401
429
  this.activity_id = options.activity_id;
402
430
  this.method = options.distribution_method
403
431
  ? options.distribution_method
@@ -438,6 +466,9 @@ export default {
438
466
  &__body {
439
467
  position: relative;
440
468
  overflow-y: auto;
469
+ padding-top: 220rpx;
470
+ box-sizing: border-box;
471
+ background-color: #FAFAFA;
441
472
  .empty_data {
442
473
  text-align: center;
443
474
  color: #999999;
@@ -455,8 +486,6 @@ export default {
455
486
  border-radius: unit(20, rpx);
456
487
  background: #fff;
457
488
  padding: unit(34, rpx);
458
- position: relative;
459
- top: unit(164, rpx);
460
489
  margin-right: auto;
461
490
  margin-left: auto;
462
491
  width: unit(650, rpx);
@@ -534,7 +563,7 @@ export default {
534
563
  color: #a6a6a6;
535
564
  font-size: unit(24, rpx);
536
565
  text-align: center;
537
- margin-top: unit(40, rpx);
566
+ margin: unit(40, rpx) 0;
538
567
  }
539
568
  }
540
569
  }
@@ -1,11 +1,25 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = {
4
- getCouponList: {"list":[
5
- {"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},
6
- {"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},
7
- {"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}
8
- ],"background":"//sandbox-img.jufubao.cn/uploads/20231204/96b801e0dc27422c183dc90d905dd2ed.jpg","can_take":"Y","message":"","app_coupon_url":"//sandbox-img.jufubao.cn/uploads/20231205/fee9b644b83495c9ba8a4db277600b54.jpg","app_activity_button":"//sandbox-img.jufubao.cn/uploads/20231207/35f3065b2b2bc3fc2dda73d7b5b9eae8.jpg","app_coupon_button_bg_url":"//sandbox-img.jufubao.cn/uploads/20231212/026a3ea901f87f51b531d06c24604676.png","app_coupon_invalid_url":"//sandbox-img.jufubao.cn/uploads/20231208/8b153ce4870686a37295c16fbc992235.jpg","request_id":"a2603f2a480485f4"},
4
+ getCouponList: {
5
+ "list":[
6
+ {"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},
7
+ {"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},
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
+ ],
10
+ "background":"//sandbox-img.jufubao.cn/uploads/20231204/96b801e0dc27422c183dc90d905dd2ed.jpg",
11
+ "used_up_url": "",
12
+ "has_times": "Y",
13
+ "can_take":"Y",
14
+ "message":"",
15
+ "app_coupon_url":"//sandbox-img.jufubao.cn/uploads/20231205/fee9b644b83495c9ba8a4db277600b54.jpg",
16
+ "app_activity_button":"//sandbox-img.jufubao.cn/uploads/20231207/35f3065b2b2bc3fc2dda73d7b5b9eae8.jpg",
17
+ "app_coupon_button_bg_url":"//sandbox-img.jufubao.cn/uploads/20231212/026a3ea901f87f51b531d06c24604676.png",
18
+ "app_coupon_button_see_url": "//sandbox-img.jufubao.cn/uploads/20231212/026a3ea901f87f51b531d06c24604676.png",
19
+ "app_coupon_invalid_url":"//sandbox-img.jufubao.cn/uploads/20231208/8b153ce4870686a37295c16fbc992235.jpg",
20
+ "rule":"<p>打发&middot;</p>",
21
+ "request_id":"a2603f2a480485f4"
22
+ },
9
23
  getAllCoupon: {
10
24
  "request_id": "5987aa28c709d4ef"
11
25
  }
@@ -23,9 +23,10 @@ module.exports = [
23
23
  disabled: true,
24
24
  },
25
25
  {
26
- mapFnName: 'getBaseOrderDetail', //自定义方法名字(必选)
26
+ mapFnName: 'getBaseOrderStatus', //自定义方法名字(必选)
27
27
  title: '获取订单详情',
28
- path: '/order/v1/order/detail',
28
+ // path: '/order/v1/order/detail',
29
+ path: "/order/v1/order/pay-status",
29
30
  isRule: false,
30
31
  params: {
31
32
  main_order_id: ['id', 'Number', '必选'],
@@ -297,23 +297,29 @@ export default {
297
297
  return time;
298
298
  },
299
299
  p_getBaseOrderDetail(){
300
- jfbRootExec("getBaseOrderDetail", {
301
- vm: this,
302
- data: {
303
- main_order_id: this.main_order_id,
304
- }
305
- }).then(res => {
306
- let { is_can_pay, can_pay_message } = res.can_pay_info
307
- this.is_can_pay = is_can_pay;
308
- this.can_pay_message = can_pay_message;
309
- if(is_can_pay !== "Y"){
310
- uni.showToast({
311
- title: can_pay_message,
312
- icon: 'none',
313
- duration: 3000
314
- });
315
- // this.$xdNavigateBack()
316
- }
300
+ return new Promise((resolve, reject) => {
301
+ jfbRootExec("getBaseOrderStatus", {
302
+ vm: this,
303
+ data: {
304
+ main_order_id: this.main_order_id,
305
+ }
306
+ }).then(res => {
307
+ let { is_can_pay, can_pay_message } = res.can_pay_info
308
+ this.is_can_pay = is_can_pay;
309
+ this.can_pay_message = can_pay_message;
310
+ if(is_can_pay !== "Y"){
311
+ uni.showToast({
312
+ title: can_pay_message,
313
+ icon: 'none',
314
+ duration: 3000
315
+ });
316
+ reject();
317
+ // this.$xdNavigateBack()
318
+ }
319
+ resolve();
320
+ }).catch(err => {
321
+ reject();
322
+ })
317
323
  })
318
324
  },
319
325
  p_getPayOrderDetail() {
@@ -358,8 +364,12 @@ export default {
358
364
  });
359
365
  },
360
366
  //第三方支付
361
- doThirdPay() {
367
+ async doThirdPay() {
362
368
  if (this.$configProject.isPreview) return;
369
+
370
+ if(this.type !== 'recharge') {
371
+ await this.p_getBaseOrderDetail();
372
+ }
363
373
  const {channel_provider_id, order_id, payInfo} = this;
364
374
  let {login_providers = []} = this.projectAttr;
365
375
  console.log(this.projectAttr)
@@ -321,7 +321,7 @@ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
321
321
  import XdDailog from "@/components/XdDailog/XdDailog";
322
322
  import XdButton from "@/components/XdButton/XdButton";
323
323
  import XdUnit from "@/components/XdUnit/XdUnit";
324
- import { jfbRootExec } from "@/utils/xd.event";
324
+ import { jfbRootExec, jfbRootFnExec } from "@/utils/xd.event";
325
325
  import JfbBaseSuccessMixin from "./JfbBaseSuccessMixin";
326
326
  import componentsMixins from "@/mixins/componentsMixins";
327
327
  import extsMixins from "@/mixins/extsMixins";
@@ -495,6 +495,9 @@ export default {
495
495
  },
496
496
  })
497
497
  .then((res) => {
498
+ if(res.status.status_type === 'success') {
499
+ jfbRootFnExec(this, 'onCustomEvent')("@showBaseConDialog", {order_number: this.order_id});
500
+ }
498
501
  this.handleOrderResolve(res);
499
502
  })
500
503
  .catch((err) => {