jufubao-mall 2.0.111 → 2.0.113

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-mall",
3
- "version": "2.0.111",
3
+ "version": "2.0.113",
4
4
  "private": false,
5
5
  "description": "聚福宝商城业务组件插件包",
6
6
  "main": "index.js",
@@ -95,7 +95,7 @@
95
95
  :showPrice="btn.show_prices"
96
96
  ></cus-price>
97
97
  </view>
98
- <view class="tags-info-desc">{{btn.desc}}</view>
98
+ <view class="tags-info-desc">{{ compDescs[btn['consume_mode'].toLocaleLowerCase()] || btn.desc }}</view>
99
99
  <view
100
100
  class="tags-info-btn"
101
101
  v-if="btn['consume_mode'] !== 'CODE'"
@@ -205,6 +205,13 @@ export default {
205
205
  return {}
206
206
  }
207
207
  },
208
+ //jhd,wb,qp,seat,code,hdself,travel 自定义描述
209
+ descs:{
210
+ type:Object,
211
+ default(){
212
+ return {}
213
+ }
214
+ },
208
215
  selectId:{
209
216
  type:String,
210
217
  default:''
@@ -264,6 +271,8 @@ export default {
264
271
  travel: false, //旅游订票
265
272
  },
266
273
 
274
+ defDescs:{}, //自定义描述
275
+
267
276
 
268
277
  dataShopList:null,
269
278
 
@@ -293,6 +302,9 @@ export default {
293
302
  compEntry(){
294
303
  return Object.assign({},this.defEntry,this.$xdUniHelper.cloneDeep(this.entry))
295
304
  },
305
+ compDescs(){
306
+ return Object.assign({},this.defDescs,this.$xdUniHelper.cloneDeep(this.descs))
307
+ },
296
308
 
297
309
  isBtn(){
298
310
  let flag = false;
@@ -81,6 +81,7 @@
81
81
  :sub-main-color="subMainColor"
82
82
  :names="cusNames"
83
83
  :entry="cusEntry"
84
+ :descs="cusDescs"
84
85
  :is-auto-jump="isAutoJump"
85
86
  @on-event="handleToEvent"
86
87
  ></cus-shops>
@@ -148,6 +149,7 @@
148
149
  fastEntryStatus:false,
149
150
  cusNames:{}, //按钮名称
150
151
  cusEntry:{}, //入口状态
152
+ cusDescs:{}, //入口描述
151
153
  initAttr: false, //状态完成
152
154
 
153
155
  //顶部导航
@@ -380,18 +382,20 @@
380
382
 
381
383
  //入口设置
382
384
  this.fastEntryStatus = gCPVal(container, 'fastEntryStatus', 'N') === 'Y';
383
- let cusNames = {},cusEntry = {};
385
+ let cusNames = {},cusEntry = {},cusDescs = {};
384
386
  let fastEntry = gCPVal(container, 'fastEntry', []).filter(item=>{
385
387
  return item.check === true
386
388
  });
387
389
  if(this.fastEntryStatus) {
388
390
  for(let i = 0; i< fastEntry.length ;i++) {
389
391
  if(fastEntry[i].input) cusNames[fastEntry[i].value] = fastEntry[i].input
392
+ if(fastEntry[i].desc) cusDescs[fastEntry[i].value] = fastEntry[i].desc
390
393
  cusEntry[fastEntry[i].value] = fastEntry[i].check;
391
394
  }
392
395
  }
393
396
  this.cusNames = cusNames;
394
397
  this.cusEntry = cusEntry;
398
+ this.cusDescs = cusDescs;
395
399
 
396
400
  //内容显示
397
401
  let cusContent = [];
@@ -630,7 +634,7 @@
630
634
  parmas.push(this.$xdUniHelper.jsonToParams(this.options));
631
635
  }
632
636
  if(['JHD','QP'].includes(type)){
633
- parmas.push(`xnamespace=${ this.xnamespace}`);
637
+ // parmas.push(`xnamespace=${ this.xnamespace}`);
634
638
  parmas.push(`x-params=${Base64.encodeURI(`shop_id:${item.shop_id}`)}`);
635
639
  }
636
640
 
@@ -409,18 +409,19 @@ export default (data, gValue, gColor, oldData={})=>{
409
409
  setting: {
410
410
  isSort:false,
411
411
  width: 90,
412
+ desc: true,
412
413
  },
413
414
  labelInline:true,
414
415
  hidden: data['fastEntryStatus'] !== 'Y',
415
416
  handleCustom({action, data}) {
416
417
  data.cb([
417
- {value:'jhd', label: '聚好兑', input:'',def:'聚好兑', check: false,placeholder:'服务类型为支持核销时使用'},
418
- {value:'wb', label: '扫一扫',input:'',def:'扫一扫',check: false,placeholder:'服务类型为支持核销时使用'},
419
- {value:'qp', label: '快捷码',input:'',def:'去提货',check: false,placeholder:'服务类型为支持核销时使用'},
420
- {value:'seat', label: '在线选座',input:'',def:'去订票',check: false,placeholder:''},
421
- {value:'code', label: '电子码',input:'',def:'电子码',check: false,placeholder:''},
422
- {value:'hdself', label: '到店自取',input:'',def:'去下单',check: false,placeholder:'服务类型为小时达到店时使用'},
423
- {value:'travel', label: '旅游门票',input:'',def:'去订票',check: false,placeholder:''}
418
+ {value:'jhd', label: '聚好兑', input:'',def:'聚好兑', desc:'',defDesc:'请输入描述内容', check: false,placeholder:'服务类型为支持核销时使用'},
419
+ {value:'wb', label: '扫一扫',input:'',def:'扫一扫', desc:'',defDesc:'请输入描述内容', check: false,placeholder:'服务类型为支持核销时使用'},
420
+ {value:'qp', label: '快捷码',input:'',def:'去提货', desc:'',defDesc:'请输入描述内容', check: false,placeholder:'服务类型为支持核销时使用'},
421
+ {value:'seat', label: '在线选座',input:'',def:'去订票', desc:'',defDesc:'请输入描述内容', check: false,placeholder:''},
422
+ {value:'code', label: '电子码',input:'',def:'电子码', desc:'',defDesc:'请输入描述内容', check: false,placeholder:''},
423
+ {value:'hdself', label: '到店自取',input:'',def:'去下单', desc:'',defDesc:'请输入描述内容', check: false,placeholder:'服务类型为小时达到店时使用'},
424
+ {value:'travel', label: '旅游门票',input:'',def:'去订票', desc:'',defDesc:'请输入描述内容', check: false,placeholder:''}
424
425
  ])
425
426
  },
426
427
  rules:[{
@@ -57,4 +57,118 @@ module.exports = [
57
57
  },
58
58
  disabled: true,
59
59
  },
60
+ {
61
+ mapFnName: "getQuickPayQRCode",
62
+ title: "门店核销 - 获取快速支付二维码",
63
+ path: "/store/v1/order/get-quick-pay-code",
64
+ isRule: false,
65
+ params: {
66
+ shop_id: ['门店id', 'Number', '必选'],
67
+ temp_order_id: ['临时订单号第一次获取为空,再次获取需要传上次获取到数据', 'String', '必选'],
68
+ },
69
+ isConsole: true,
70
+ disabled: true,
71
+ },
72
+ {
73
+ mapFnName: "getQRCodeStatus",
74
+ title: "获取快捷支付码扫码状态",
75
+ path: "/store/v1/order/get-quick-pay-scan-status",
76
+ isRule: false,
77
+ params: {
78
+ shop_id: ['门店id', 'Number', '必选'],
79
+ temp_order_id: ['临时订单号第一次获取为空,再次获取需要传上次获取到数据', 'String', '必选'],
80
+ },
81
+ isConsole: true,
82
+ disabled: true,
83
+ },
84
+ {
85
+ path: "/pay/v1/quickpay/list-my-config",
86
+ title: "快捷支付-获取我的支付顺序",
87
+ mapFnName: "getMyPayOrderConfig",
88
+ isRule: false,
89
+ params: {},
90
+ isConsole: true,
91
+ disabled: true,
92
+ },
93
+ {
94
+ path: "/pay/v1/quickpay/save-my-config",
95
+ title: "订单支付-选座可用钱包列表",
96
+ mapFnName: "saveMyPayOrderConfig",
97
+ isRule: false,
98
+ data: {
99
+ configs: ['支付顺序配置', 'String', '必选'],
100
+ pay_method: ['支付方式 card=卡,coupon=优惠券,wallet=钱包', 'String', '必选'],
101
+ priority_rules: ['优先级规则', 'array[string]', '必选'],
102
+ },
103
+ isConsole: true,
104
+ disabled: true,
105
+ },
106
+ {
107
+ path: "/store/v1/order/batch-use-card-created",
108
+ title: "批量使用卡券下单",
109
+ mapFnName: "batchUseCardCreated",
110
+ isRule: false,
111
+ data: {
112
+ temp_order_id: ['temp_order_id', 'Number', '必选'],
113
+ business_code: ['业务类型', 'String', '必选'],
114
+ },
115
+ isConsole: true,
116
+ disabled: true,
117
+ },
118
+ {
119
+ path: '/store/v1/order/async-submit-status',
120
+ title: "获取异步下单的状态",
121
+ mapFnName: "getAsyncSubmitStatus",
122
+ isRule: false,
123
+ params: {
124
+ request_order_id: ['temp_order_id', 'Number', '必选'],
125
+ },
126
+ isConsole: true,
127
+ disabled: true,
128
+ },
129
+ {
130
+ mapFnName: "getListUserPayChannel",
131
+ title: "获取用户可用支付渠道",
132
+ path: "/pay/v1/pay-channel/list-user-pay-channel",
133
+ isRule: false,
134
+ params: {
135
+ providers: ['支付方式id 多个用逗号分隔', "String", '必选']
136
+ },
137
+ isConsole: true,
138
+ disabled: true
139
+ },
140
+ {
141
+ mapFnName: "setThirdPlace",
142
+ title: "第三方渠道下单",
143
+ path: "/pay/v1/order/third-place",
144
+ isRule: false,
145
+ data: {
146
+ order_id: ['订单号', "String", "必填"],
147
+ channel_provider_id: ['支付渠道id', "String", '必选']
148
+ },
149
+ isConsole: true,
150
+ disabled: true
151
+ },
152
+ {
153
+ mapFnName: "updatePay",
154
+ title: "修改订单为支付中",
155
+ path: "/order/v1/order/update-to-paying",
156
+ isRule: false,
157
+ data: {
158
+ main_order_id: ['订单号', "String", "必填"],
159
+ },
160
+ isConsole: true,
161
+ disabled: true
162
+ },
163
+ {
164
+ path: "/store/v1/order/show-brand-tip",
165
+ title: "显示品牌提示",
166
+ mapFnName: "showBrandTip",
167
+ isRule: false,
168
+ params: {
169
+ shop_id: ['门店id', 'Number', '必选'],
170
+ },
171
+ isConsole: true,
172
+ disabled: true,
173
+ },
60
174
  ];
@@ -94,7 +94,15 @@
94
94
  </view>
95
95
  <!-- 展码提货 -->
96
96
  <view class="take_box" v-if="canUseQP">
97
- <show-card :shop_id="shopInfo.shop_id" :layoutInfo="layoutInfo" :brandLogo="brandLogo" :successPath="successPath"></show-card>
97
+ <qrcode-show
98
+ :show_qrcode="shopInfo.show_qrcode"
99
+ :shop_id="shopInfo.shop_id"
100
+ :layoutInfo="layoutInfo"
101
+ :xnamespace="xnamespace"
102
+ :brandLogo="brandLogo"
103
+ :successPath="successPath"
104
+ :take-title-name="takeTitleName"
105
+ ></qrcode-show>
98
106
  </view>
99
107
  <view class="shop_map" v-if="initBaidu">
100
108
  <view class="_title">门店地图</view>
@@ -128,7 +136,7 @@
128
136
  // #ifdef H5
129
137
  import XdBaiduMap from "./XdBaiduMap"
130
138
  // #endif
131
- import ShowCard from "./ShowCard"
139
+ import QrcodeShow from "./QrcodeShow"
132
140
  import { jfbRootExec } from "@/utils/xd.event";
133
141
  import JfbMallResourceShopMixin from "./JfbMallResourceShopMixin";
134
142
  import { getContainerPropsValue, gCPVal } from "@/utils/xd.base";
@@ -142,7 +150,7 @@
142
150
  components: {
143
151
  XdFontIcon,
144
152
  XdButton,
145
- ShowCard,
153
+ QrcodeShow,
146
154
  // #ifdef H5
147
155
  XdBaiduMap
148
156
  // #endif
@@ -183,6 +191,7 @@
183
191
  scanPath: "",
184
192
 
185
193
  showTake: "Y",
194
+ takeTitleName:'本店支持「展码」买单',
186
195
  takePath: "",
187
196
 
188
197
  showBuyTicket: "Y",
@@ -222,7 +231,8 @@
222
231
  stateLocation: state => state.cityLocation.location || {}
223
232
  }),
224
233
  canUseQP(){
225
- return (this.shopInfo.consume_type || []).includes('QP') && this.showTake !== 'N';
234
+ return this.shopInfo && this.shopInfo.show_qrcode && this.showTake !== 'N';
235
+ // return (this.shopInfo.consume_type || []).includes('QP') && this.showTake !== 'N';
226
236
  },
227
237
  showSellConsumeMode(){
228
238
  let returnModes = (this.shopInfo.consume_type || []).filter(item => ['WB', 'JHD'].includes(item));
@@ -419,6 +429,7 @@
419
429
  this.scanRemark = getContainerPropsValue(container, 'content.scanRemark', '需要到门店扫码使用');
420
430
  this.scanPath = getContainerPropsValue(container, 'content.scanPath', {value: ""}).value;
421
431
  this.showTake = getContainerPropsValue(container, 'content.showTake', 'Y');
432
+ this.takeTitleName = gCPVal(container, 'takeTitleName', '本店支持「展码」买单');
422
433
  this.takePath = getContainerPropsValue(container, 'content.takePath', {value: ""}).value;
423
434
  this.showBuyTicket = getContainerPropsValue(container, 'content.showBuyTicket', 'Y');
424
435
  this.buyTicketBtnName = getContainerPropsValue(container, 'content.buyTicketBtnName', '去购票');
@@ -21,6 +21,7 @@ module.exports = {
21
21
  latitude: "39.96182869764183",
22
22
  longitude: "116.84468316908456",
23
23
  default_consume_type: "",
24
+ show_qrcode: "CARD",
24
25
  consume_type: ["QP", "WB", "JHD"],
25
26
  is_support_jhd: false,
26
27
  time_slot_name: "",
@@ -0,0 +1,199 @@
1
+ <template>
2
+ <view class="body-qrcode">
3
+ <show-qp v-if="show_qrcode==='QP'" :shop_id="shop_id" :layoutInfo="layoutInfo" :xnamespace="xnamespace" :successPath="successPath"></show-qp>
4
+ <show-card
5
+ v-if="show_qrcode==='CARD'"
6
+ :shop_id="shop_id"
7
+ :layoutInfo="layoutInfo"
8
+ :xnamespace="xnamespace"
9
+ :brandLogo="brandLogo"
10
+ :take-title-name="takeTitleName"
11
+ ></show-card>
12
+ </view>
13
+ </template>
14
+
15
+ <script>
16
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
17
+ import ShowCard from "./ShowCard"
18
+ import ShowQp from "./ShowQp"
19
+ export default {
20
+ name: "QrcodeShow",
21
+ components:{
22
+ XdFontIcon,
23
+ ShowCard,
24
+ ShowQp,
25
+ },
26
+ props:{
27
+ isBrandLogo: {
28
+ type:Boolean,
29
+ default: false
30
+ },
31
+ brandLogo: {
32
+ type: String,
33
+ default: ''
34
+ },
35
+ show_qrcode: {
36
+ type: String,
37
+ default: ''
38
+ },
39
+ shop_id:{
40
+ type: Number,
41
+ default: null
42
+ },
43
+ layoutInfo: {
44
+ type: Object,
45
+ default: () => {}
46
+ },
47
+ xnamespace:{
48
+ type: String,
49
+ default: ''
50
+ },
51
+ successPath: {
52
+ type: String,
53
+ default: ''
54
+ },
55
+ takeTitleName: {
56
+ type: String,
57
+ default: ''
58
+ }
59
+ },
60
+ data(){
61
+ return {
62
+ info:{
63
+ barcode: "//sandbox-apis.jufubao.cn/common/v1/image/barcode?code_content=h.161.8w9ooj0et0bi7b7",
64
+ card_qrcode: "//sandbox-apis.jufubao.cn/common/v1/image/qrcode?code_content=h.161.8w9ooj0et0bi7b7"
65
+ },
66
+ timeStr:'',
67
+ }
68
+ },
69
+ created() {
70
+ console.log(this.layoutInfo,this.brandLogo,'layoutInfo')
71
+ },
72
+ methods:{
73
+
74
+ }
75
+ }
76
+ </script>
77
+
78
+ <style scoped lang="less">
79
+ .body-qrcode {
80
+ text-align: center;
81
+ font-size: @xd-font-size-base;
82
+ line-height: unit(36, rpx);
83
+ background: #fff;
84
+ border-radius: unit(16,rpx);
85
+ // padding: 0 unit(70,rpx) 0 unit(70,rpx);
86
+ color: #000;
87
+ position: relative;
88
+ .barcode_title{
89
+ height: unit(104, rpx);
90
+ width: 100%;
91
+ text-align: center;
92
+ line-height: unit(104, rpx);
93
+ background: #fff;
94
+ font-size: unit(28,rpx);
95
+ font-weight: 500;
96
+ border-bottom: 1px solid #F8F8F8;
97
+ }
98
+ .card_bottom{
99
+ content: " ";
100
+ position: absolute;
101
+ left: 0;
102
+ bottom: -40rpx;
103
+ width: 100%;
104
+ height: 100rpx;
105
+ background: #FFFFFF;
106
+ border-radius: 100%;
107
+ z-index: 1;
108
+ }
109
+ // &::after{
110
+ // content: " ";
111
+ // position: absolute;
112
+ // left: 0;
113
+ // bottom: -40rpx;
114
+ // width: 100%;
115
+ // height: 100rpx;
116
+ // background: #FFFFFF;
117
+ // border-radius: 100%;
118
+ // z-index: 1;
119
+ // }
120
+
121
+ & > view {
122
+ // margin-bottom: unit(20, rpx);
123
+
124
+ & > view {
125
+ margin-bottom: 0;
126
+ }
127
+ }
128
+ .refresh_wrap{
129
+ width: 280rpx;
130
+ height: 72rpx;
131
+ display: flex;
132
+ align-items: center;
133
+ border: 1px solid #333333;
134
+ color: #333333;
135
+ border-radius: 50rpx;
136
+ justify-content: center;
137
+ margin: 36rpx auto 0;
138
+ position: relative;
139
+ z-index: 10;
140
+ }
141
+
142
+ .barcode_wrap {
143
+ display: flex;
144
+ justify-content: center;
145
+ align-items: center;
146
+ box-sizing: border-box;
147
+ height: unit(140, rpx);
148
+ width: 100%;
149
+ padding-top: unit(32, rpx);
150
+
151
+ & > view {
152
+ width: 100%;
153
+ height: unit(200, rpx);
154
+ padding: 0 unit(10, rpx) unit(10, rpx) unit(10, rpx);
155
+ display: flex;
156
+ justify-content: center;
157
+ align-items: center;
158
+
159
+ & > image {
160
+ max-width: 100%;
161
+ max-height: unit(200, rpx);
162
+ }
163
+ }
164
+ }
165
+
166
+ .qrcode_wrap {
167
+ display: flex;
168
+ justify-content: center;
169
+ align-items: center;
170
+ padding: unit(20, rpx);
171
+
172
+ & > view {
173
+ width: unit(450, rpx);
174
+ height: unit(450, rpx);
175
+ padding: unit(10, rpx);
176
+
177
+ & > image {
178
+ width: unit(450, rpx);
179
+ height: unit(450, rpx);
180
+ }
181
+ }
182
+ }
183
+ .qrcode_choose{
184
+ width: 100%;
185
+ height: unit(94,rpx);
186
+ display: flex;
187
+ justify-content: space-between;
188
+ align-items: center;
189
+ margin-top: unit(34,rpx);
190
+ font-size: unit(28,rpx);
191
+ color: #666666;
192
+ border-top: 1px solid #F8F8F8;
193
+ &_name{
194
+ display: flex;
195
+ justify-content: flex-start;
196
+ }
197
+ }
198
+ }
199
+ </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <view class="body-qrcode">
3
- <view class="barcode_title">本店支持「展码」买单</view>
3
+ <view class="barcode_title">{{takeTitleName}}</view>
4
4
  <view v-if="info">
5
5
  <view class="barcode_wrap">
6
6
  <view>
@@ -180,10 +180,10 @@
180
180
  type: String,
181
181
  default: ''
182
182
  },
183
- successPath:{
184
- type: String,
185
- default: ''
186
- },
183
+ takeTitleName:{
184
+ type:String,
185
+ default: '本店支持「展码」买单'
186
+ }
187
187
  },
188
188
  computed:{
189
189
  activityType(){
@@ -229,6 +229,7 @@
229
229
  ],
230
230
  activeIndex:0,
231
231
  card_number:'',
232
+ successPath:'',
232
233
  isBrandLogo:false,
233
234
  //#ifdef H5
234
235
  brandLogoReal:'//img.jufubao.cn/common/jufubao_logo.png?v=1.0.0',
@@ -531,9 +532,7 @@
531
532
  margin-top: unit(34,rpx);
532
533
  font-size: unit(28,rpx);
533
534
  color: #666666;
534
- box-sizing: border-box;
535
535
  border-top: 1px solid #F8F8F8;
536
- padding: 0 16rpx;
537
536
  &_name{
538
537
  font-size: unit(28,rpx);
539
538
  display: flex;