jufubao-base 1.0.169-beta3 → 1.0.169-beta5

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.
Files changed (25) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseLogin/Attr.js +54 -16
  3. package/src/components/JfbBaseMapSearch/MapSearchMp.vue +1 -1
  4. package/src/components/JfbBaseOrderDetail/Api.js +12 -7
  5. package/src/components/JfbBaseOrderDetail/Attr.js +28 -14
  6. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +66 -18
  7. package/src/components/JfbBaseOrderDetail/Mock.js +3 -1
  8. package/src/components/JfbBaseTfkCardBind/Attr.js +36 -9
  9. package/src/components/JfbBaseTfkCardBind/JfbBaseTfkCardBind.vue +1 -1
  10. package/src/components/JfbBaseTfkCardDetail/Attr.js +35 -6
  11. package/src/components/JfbBaseTfkCardDetail/JfbBaseTfkCardDetail.vue +1 -1
  12. package/src/components/JfbBaseTfkCardLogin/Attr.js +98 -4
  13. package/src/components/JfbBaseTfkCardLogin/JfbBaseTfkCardLogin.vue +43 -18
  14. package/src/components/JfbBaseTfkSearch/Attr.js +24 -37
  15. package/src/components/JfbBaseTfkSearch/ContentCinema.vue +147 -0
  16. package/src/components/JfbBaseTfkSearch/ContentItem.vue +165 -0
  17. package/src/components/JfbBaseTfkSearch/CusAttr.js +201 -0
  18. package/src/components/JfbBaseTfkSearch/CustomList.vue +229 -0
  19. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +46 -14
  20. package/src/components/JfbBaseTfkSearch/SkeletonCinema.vue +46 -0
  21. package/src/components/JfbBaseTfkSearch/SkeletonFilm.vue +109 -0
  22. package/src/components/JfbBaseTfkSearch/SkeletonProduct.vue +111 -0
  23. package/src/components/JfbBaseTfkSearch/SkeletonShop.vue +81 -0
  24. package/src/components/JfbBaseTfkSearch/listMixins.js +76 -0
  25. package/src/components/JfbBaseTfkSearch/search.js +175 -0
@@ -18,6 +18,12 @@ export default {
18
18
  { label: '我的优惠券', value: 'coupon' },
19
19
  ],
20
20
  },
21
+ {
22
+ ele: "title",
23
+ label: "公告内容配置 - 通用",
24
+ size: "small",
25
+ groupKey: "content",
26
+ },
21
27
  {
22
28
  label: '公告内容:',
23
29
  ele: 'xd-site-news',
@@ -247,6 +253,7 @@ export default {
247
253
  label: "我的票券包内容配置",
248
254
  size: "small",
249
255
  groupKey: "content",
256
+ hidden: data.previewCurrent !== 'card'
250
257
  },
251
258
  {
252
259
  label: '票券背景图:',
@@ -267,12 +274,14 @@ export default {
267
274
  action: 'action',
268
275
  sort: true,
269
276
  maxlen: 100,
277
+ hidden: data.previewCurrent !== 'card'
270
278
  },
271
279
  {
272
280
  ele: "title",
273
281
  label: "我的优惠券内容配置",
274
282
  size: "small",
275
283
  groupKey: "content",
284
+ hidden: data.previewCurrent !== 'coupon'
276
285
  },
277
286
  {
278
287
  label: '优惠券背景图:',
@@ -293,10 +302,11 @@ export default {
293
302
  action: 'action',
294
303
  sort: true,
295
304
  maxlen: 100,
305
+ hidden: data.previewCurrent !== 'coupon'
296
306
  },
297
307
  {
298
308
  ele: "title",
299
- label: "列表容器配置",
309
+ label: "列表容器配置 - 通用",
300
310
  size: "small",
301
311
  groupKey: "style",
302
312
  },
@@ -327,7 +337,7 @@ export default {
327
337
  },
328
338
  {
329
339
  ele: "title",
330
- label: "标题菜单配置",
340
+ label: "标题菜单配置 - 通用",
331
341
  size: "small",
332
342
  groupKey: "style",
333
343
  },
@@ -362,7 +372,7 @@ export default {
362
372
  groupKey:'style',
363
373
  ele: 'el-input',
364
374
  valueKey: 'menuItemMargin',
365
- value: data.menuItemMargin || 20,
375
+ value: data.menuItemMargin || 40,
366
376
  type: "number",
367
377
  className: "input40",
368
378
  placeholder: '请输入菜单间距',
@@ -425,11 +435,83 @@ export default {
425
435
  inline: false,
426
436
  notice: '填充设置,单位:<span style="color: red">像素</span>。默认值:<span style="color: red">20</span> 像素',
427
437
  },
438
+ {
439
+ ele: "title",
440
+ label: "公告样式配置 - 通用",
441
+ size: "small",
442
+ groupKey: "style",
443
+ },
444
+ {
445
+ label: "外边距设置:",
446
+ groupKey:'style',
447
+ ele: 'xd-margin-padding',
448
+ valueKey: 'noticeMargin',
449
+ value: data.noticeMargin || {
450
+ top: 20,
451
+ right: 0,
452
+ bottom: 20,
453
+ left:20
454
+ },
455
+ setting: {
456
+ type: 'margin',
457
+ },
458
+ placeholder: '请设置边距',
459
+ inline: false,
460
+ notice: '设置外边距,<span style="color: red">单位:像素</span>。',
461
+ },
462
+ {
463
+ label: "内边距设置:",
464
+ groupKey:'style',
465
+ ele: 'xd-margin-padding',
466
+ valueKey: 'noticePadding',
467
+ value: data.noticePadding || null,
468
+ setting: {
469
+ type: 'padding',
470
+ },
471
+ placeholder: '请设置边距',
472
+ inline: false,
473
+ notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
474
+ },
475
+ {
476
+ label: "背景色设置:",
477
+ ele: "xd-color",
478
+ groupKey:'style',
479
+ valueKey: "noticeBgColor",
480
+ value: data.noticeBgColor || null,
481
+ setting: {
482
+ showAlpha: true,
483
+ isAlpha: true
484
+ }
485
+ },
486
+ {
487
+ label: "文字设置:",
488
+ ele: "xd-font",
489
+ valueKey: "noticeFont",
490
+ value: data.noticeFont || {},
491
+ groupKey:'style',
492
+ setting: {
493
+ align: false,
494
+ lineHeight: false,
495
+ },
496
+ handleCustom({action, data}) {
497
+ XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_font_size'})
498
+ .then(res => {
499
+ data.cb(res.list)
500
+ })
501
+ .catch(error => {
502
+ data.cb([])
503
+ console.error(error);
504
+ });
505
+ },
506
+ inline: false,
507
+ notice: '填充设置,单位:<span style="color: red">像素</span>。默认值:<span style="color: red">20</span> 像素',
508
+ },
428
509
  {
429
510
  ele: "title",
430
511
  label: "我的票券包样式配置",
431
512
  size: "small",
432
513
  groupKey: "style",
514
+ hidden: data.previewCurrent !== 'card'
433
515
  },
434
516
  {
435
517
  label: "单项内边距设置:",
@@ -443,6 +525,7 @@ export default {
443
525
  placeholder: '请设置边距',
444
526
  inline: false,
445
527
  notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
528
+ hidden: data.previewCurrent !== 'card'
446
529
  },
447
530
  {
448
531
  label: "圆角设置",
@@ -462,6 +545,7 @@ export default {
462
545
  console.error(error);
463
546
  });
464
547
  },
548
+ hidden: data.previewCurrent !== 'card'
465
549
  },
466
550
  {
467
551
  label: "登录按钮文字背景色设置:",
@@ -485,6 +569,7 @@ export default {
485
569
  data.cb([])
486
570
  });
487
571
  },
572
+ hidden: data.previewCurrent !== 'card'
488
573
  },
489
574
  {
490
575
  label: "登录按钮圆角设置",
@@ -504,6 +589,7 @@ export default {
504
589
  console.error(error);
505
590
  });
506
591
  },
592
+ hidden: data.previewCurrent !== 'card'
507
593
  },
508
594
  {
509
595
  label: "登录按钮内边距设置:",
@@ -517,12 +603,14 @@ export default {
517
603
  placeholder: '请设置边距',
518
604
  inline: false,
519
605
  notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
606
+ hidden: data.previewCurrent !== 'card'
520
607
  },
521
608
  {
522
609
  ele: "title",
523
610
  label: "我的优惠券样式配置",
524
611
  size: "small",
525
612
  groupKey: "style",
613
+ hidden: data.previewCurrent !== 'coupon'
526
614
  },
527
615
  {
528
616
  label: "优惠券左侧背景色设置:",
@@ -530,6 +618,7 @@ export default {
530
618
  valueKey: "couponLeftBgColor",
531
619
  value: data.couponLeftBgColor || 'linear-gradient(180deg, #FFA852 0%, #FF5733 100%)',
532
620
  groupKey:'style',
621
+ hidden: data.previewCurrent !== 'coupon'
533
622
  },
534
623
  {
535
624
  label: "圆角设置",
@@ -549,6 +638,7 @@ export default {
549
638
  console.error(error);
550
639
  });
551
640
  },
641
+ hidden: data.previewCurrent !== 'coupon'
552
642
  },
553
643
  {
554
644
  label: "优惠券标题背景颜色设置:",
@@ -559,7 +649,8 @@ export default {
559
649
  setting: {
560
650
  showAlpha: true,
561
651
  isAlpha: true
562
- }
652
+ },
653
+ hidden: data.previewCurrent !== 'coupon'
563
654
  },
564
655
  {
565
656
  label: "去使用按钮文字背景色设置: ",
@@ -583,6 +674,7 @@ export default {
583
674
  data.cb([])
584
675
  });
585
676
  },
677
+ hidden: data.previewCurrent !== 'coupon'
586
678
  },
587
679
  {
588
680
  label: "按钮内边距设置:",
@@ -596,6 +688,7 @@ export default {
596
688
  placeholder: '请设置边距',
597
689
  inline: false,
598
690
  notice: '设置内边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
691
+ hidden: data.previewCurrent !== 'coupon'
599
692
  },
600
693
  {
601
694
  label: "按钮圆角设置",
@@ -615,6 +708,7 @@ export default {
615
708
  console.error(error);
616
709
  });
617
710
  },
711
+ hidden: data.previewCurrent !== 'coupon'
618
712
  },
619
713
  {
620
714
  label: '票券绑定跳转路径:', //label
@@ -39,17 +39,18 @@
39
39
  <view class="JfbBaseNotice">
40
40
  <!--notice-->
41
41
  <view class="jfb-base-tfk-card-login__body-line" v-if="!notice"></view>
42
- <view :style="{marginTop: '0rpx'}" class="jfb-base-tfk-card-login__body-notice" v-if="notice">
42
+ <view class="jfb-base-tfk-card-login__body-notice" :style="noticeWrapBoxStyle" v-if="notice">
43
43
  <view
44
44
  class="jfb-base-tfk-card-login__body-notice-in"
45
- :style="{ background: noticeBackgroundColor }"
45
+ :style="noticeBoxStyle"
46
46
  >
47
47
  <xd-notice-bar
48
48
  style="width: 100%"
49
+ :color="noticeFont.color"
49
50
  :showIcon="true"
50
51
  :scrollable="true"
51
52
  :speed="20"
52
- :fontSize="24"
53
+ :fontSize="noticeFont.size"
53
54
  :height="70"
54
55
  :is-no-bgc="false"
55
56
  >
@@ -59,15 +60,14 @@
59
60
  </xd-notice-bar>
60
61
  </view>
61
62
  </view>
62
- <view class="jfb-base-tfk-card-login__body-notice" v-if="noticeStatus && isPreview && notice === ''">
63
+ <view class="jfb-base-tfk-card-login__body-notice" :style="noticeWrapBoxStyle" v-if="noticeStatus && isPreview && notice === ''">
63
64
  <view
64
65
  class="jfb-base-tfk-card-login__body-notice-in"
65
- :style="{
66
- background: noticeBackgroundColor,
66
+ :style="[noticeBoxStyle, {
67
67
  textAlign: 'center',
68
68
  color: dangerColor,
69
69
  fontSize: 26 + 'rpx',
70
- }">该组件未配置数据,因此改模块在正式环境将不显示</view>
70
+ }]">该组件未配置数据,因此改模块在正式环境将不显示</view>
71
71
  </view>
72
72
  <!--notice end-->
73
73
  </view>
@@ -200,6 +200,10 @@
200
200
  couponUseBtnPadding: {},
201
201
  couponBtnRadius: 16,
202
202
  couponLeftBgColor: "",
203
+ noticeBgColor: "",
204
+ noticeMargin: {},
205
+ noticePadding: {},
206
+ noticeFont: {},
203
207
  }
204
208
  },
205
209
  computed: {
@@ -348,6 +352,26 @@
348
352
  borderRadius: this.couponRadius + 'rpx',
349
353
  })
350
354
  },
355
+ noticeWrapBoxStyle(){
356
+ let padding = `${this.checkValue(this.noticeMargin.top, 20)}rpx`;
357
+ padding = `${padding} ${this.checkValue(this.noticeMargin.right, 20)}rpx`;
358
+ padding = `${padding} ${this.checkValue(this.noticeMargin.bottom, 20)}rpx`;
359
+ padding = `${padding} ${this.checkValue(this.noticeMargin.left, 20)}rpx`;
360
+
361
+ return this.styleObjectToString({
362
+ padding: padding,
363
+ })
364
+ },
365
+ noticeBoxStyle(){
366
+ let padding = `${this.checkValue(this.noticePadding.top, 20)}rpx`;
367
+ padding = `${padding} ${this.checkValue(this.noticePadding.right, 20)}rpx`;
368
+ padding = `${padding} ${this.checkValue(this.noticePadding.bottom, 20)}rpx`;
369
+ padding = `${padding} ${this.checkValue(this.noticePadding.left, 20)}rpx`;
370
+ return this.styleObjectToString({
371
+ padding: padding,
372
+ background: this.noticeBgColor
373
+ })
374
+ }
351
375
  },
352
376
  watch: {
353
377
  container(value, oldValue) {
@@ -393,8 +417,12 @@
393
417
  this.couponUseBtnPadding = getContainerPropsValue(value, "content.couponUseBtnPadding", {top: 20, left: 20, right: 20, bottom: 20});
394
418
  this.couponBtnRadius = getContainerPropsValue(value, "content.couponBtnRadius", 16);
395
419
  this.couponLeftBgColor = getContainerPropsValue(value, "content.couponLeftBgColor", "");
420
+ this.noticeBgColor = getContainerPropsValue(value, "content.noticeBgColor", "");
421
+ this.noticeMargin = getContainerPropsValue(value, "content.noticeMargin", {top: 20, left: 20, right: 20, bottom: 20});
422
+ this.noticePadding = getContainerPropsValue(value, "content.noticePadding", {top: 20, left: 20, right: 20, bottom: 20});
423
+ this.noticeFont = getContainerPropsValue(value, "content.noticeFont", {});
396
424
 
397
- console.log(this.couponLeftBgColor, 'couponLeftBgColor')
425
+ console.log(this.noticeFont, 'noticeFont')
398
426
 
399
427
  if(this.$configProject.isPreview){
400
428
  this.menuType = this.previewCurrent;
@@ -472,19 +500,12 @@
472
500
  }
473
501
  &-notice {
474
502
  width: 100%;
475
- margin-top: unit(30, rpx);
476
- height: unit(80, rpx);
477
- position: relative;
503
+ box-sizing: border-box;
478
504
  &-in {
479
- position: absolute;
480
- left: unit(-30, rpx);
481
- top: unit(0, rpx);
482
- right: unit(-30, rpx);
483
- bottom: 0;
484
505
  display: flex;
485
- padding: 0 unit(30, rpx);
486
506
  overflow: hidden;
487
507
  align-items: center;
508
+ box-sizing: border-box;
488
509
  }
489
510
 
490
511
  }
@@ -569,7 +590,11 @@
569
590
  }
570
591
  }
571
592
  }
572
- .coupon_list{}
593
+ .coupon_list{
594
+ ::v-deep .xd-coupon_item{
595
+ margin: var(--card-list-margin) 0;
596
+ }
597
+ }
573
598
  .no_more_card{
574
599
  text-align: center;
575
600
  padding: 20rpx 0;
@@ -1,4 +1,5 @@
1
1
  'use strict';
2
+ import CusAttr from "./CusAttr";
2
3
 
3
4
  /**
4
5
  * @description 当表单组件中有联动操作时候,使用方法进行返回
@@ -8,50 +9,36 @@ export default {
8
9
  content: (data) => {
9
10
  return [
10
11
  {
11
- label: '背景颜色:',
12
- ele: 'xd-color',
13
- valueKey: 'bgcolor',
14
- value: data.bgcolor || '',
15
- placeholder: '请输入占位框背景颜色',
16
- classNmae: 'input80',
12
+ label: '是否支持聚好兑:',
13
+ ele: 'xd-radio',
14
+ valueKey: 'isShowExchange',
15
+ value: data['isShowExchange'] || "N",
16
+ groupKey:'content',
17
17
  rules: [
18
- {
19
- required: true,
20
- message: '请输入占位框背景颜色',
21
- trigger: 'blur'
22
- },
18
+ {required: true, message: '请选择', trigger: ['blur', 'change']}
19
+ ],
20
+ list: [
21
+ {"label": "支持", "value": "Y"},
22
+ {"label": "不支持", "value": "N"},
23
23
  ]
24
24
  },
25
25
  {
26
- label: '选中路径:',
27
- ele: 'xd-select-pages-path',
28
- valueKey: 'select-pages-path',
29
- value: data['select-pages-path'] || null,
30
- setting: {
31
- router: XdBus.getParentApi('getPagesTree')
32
- },
33
- },
34
- data.bgcolor && {
35
- label: '高度:',
26
+ label: '外边间距:',
36
27
  ele: 'el-input',
37
28
  type: 'number',
38
- valueKey: 'height',
39
- value: data.height || 100,
40
- placeholder: '请输入占位框高度,单位像素,默认:10px',
41
- className: 'input80',
42
- rules: [
43
- {
44
- required: true,
45
- message: '请输入占位框高度',
46
- trigger: 'blur'
47
- },
48
- ]
49
- },
50
- {
51
- label: '', //label
52
- ele: 'slot', //package 名称
53
- slot: 'is_reference',
29
+ groupKey:'style',
30
+ valueKey: 'outSpacing',
31
+ value: data['outSpacing'] || '',
32
+ notice: '外边间距设置,单位:像素,默认值:<span style="color:red">20</span> px',
33
+ inline: false,
34
+ className: 'input60',
54
35
  },
36
+
37
+ //todo
38
+
39
+
40
+ //列表相关属性
41
+ ...CusAttr(data),
55
42
  ].filter(i=>i)
56
43
  },
57
44
  advanced: [],
@@ -0,0 +1,147 @@
1
+ <template>
2
+ <view class="content" @click="handleCinemaDetail">
3
+ <view class="title">{{item['cinema_name']}}</view>
4
+ <view class="address">{{item['address']}}</view>
5
+ <view class="bottom">
6
+ <view class="distance">
7
+ <template v-if="item['distance']">
8
+ <xd-font-icon size="26" icon="icondizhi" :color="color.SEAT"></xd-font-icon>
9
+ <text :style="{color: color.SEAT}">{{item['distance']}}</text>
10
+ </template>
11
+ </view>
12
+ <view class="btn">
13
+ <!--不展示核销类型【SELL】-->
14
+ <view
15
+ v-for="(name,index) in item['cinema_type_name']"
16
+ v-if="item['cinema_type'][index] !== 'SELL'"
17
+ :key="index"
18
+ @click.stop="handleBtn(item['cinema_type'][index])"
19
+ :style="{
20
+ backgroundColor:color[item['cinema_type'][index]],
21
+ color:'#fff'
22
+ }">{{name}}</view>
23
+ </view>
24
+ </view>
25
+ </view>
26
+ </template>
27
+
28
+ <script>
29
+ import XdButton from "@/components/XdButton/XdButton.vue";
30
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon.vue";
31
+
32
+ export default {
33
+ name:'ContentCinema',
34
+ components:{
35
+ XdButton,
36
+ XdFontIcon
37
+ },
38
+ props:{
39
+ item:Object,
40
+ color: {
41
+ type: Object,
42
+ default: {}
43
+ },
44
+
45
+ },
46
+ data(){
47
+ return {
48
+
49
+ }
50
+ },
51
+ created() {
52
+
53
+ },
54
+ methods:{
55
+ handleCinemaDetail(){
56
+ //优先在线选座
57
+ if(this.item['cinema_type'].includes('SEAT')) {
58
+ this.handleSchedule();
59
+ return
60
+ }
61
+ if(this.item['cinema_type'].includes('CODE')) {
62
+ this.handleCodeDetail();
63
+ return
64
+ }
65
+ if(this.item['cinema_type'].includes('SELL')) {
66
+ this.handleCashierDetail();
67
+ return
68
+ }
69
+ console.error(`${JSON.stringify(this.item['cinema_type'])}`)
70
+ },
71
+
72
+ handleBtn(code){
73
+ if(code === 'SEAT') this.handleSchedule();
74
+ else if(code === 'CODE') this.handleCodeDetail();
75
+ else if(code === 'SELL') this.handleCashierDetail();
76
+ else console.error(`${JSON.stringify(this.item['cinema_type'])}`)
77
+ },
78
+
79
+ //电子码
80
+ handleCodeDetail(){
81
+ console.warn(`handleCodeDetail`)
82
+ this.$emit('on-code-detail', this.item);
83
+ },
84
+ //核销
85
+ handleCashierDetail(){
86
+ console.warn(`handleCashierDetail`)
87
+ this.$emit('on-cashier-detail', this.item);
88
+ },
89
+
90
+ //选座排期
91
+ handleSchedule(){
92
+ console.warn(`handleSchedule`)
93
+ this.$emit('on-schedule', this.item);
94
+ },
95
+ }
96
+ }
97
+ </script>
98
+
99
+ <style scoped lang="less">
100
+ .content {
101
+ .title {
102
+ font-size: 32rpx;
103
+ line-height: 40rpx;
104
+ margin-bottom: 20rpx;
105
+ color: #333;
106
+ font-weight: 500;
107
+ }
108
+ .address {
109
+ font-size: 24rpx;
110
+ line-height: 30rpx;
111
+ color: #999;
112
+ margin-bottom: 15rpx;
113
+ }
114
+
115
+ .bottom {
116
+ display: flex;
117
+ justify-content: space-between;
118
+ align-items: center;
119
+ margin-top: 30rpx;
120
+
121
+ & > .distance {
122
+ display: flex;
123
+ justify-content: flex-start;
124
+ align-items: center;
125
+
126
+ & > text {
127
+ margin-left: 10rpx;
128
+ font-size: 24rpx;
129
+ }
130
+ }
131
+
132
+ & > .btn {
133
+ display: flex;
134
+ justify-content: flex-end;
135
+ align-items: center;
136
+
137
+ & > view {
138
+ margin-left: 10rpx;
139
+ padding: 0 30rpx;
140
+ line-height: 60rpx;
141
+ border-radius: 30rpx;
142
+ font-size: 26rpx;
143
+ }
144
+ }
145
+ }
146
+ }
147
+ </style>