jufubao-base 1.0.197-beta3 → 1.0.197-beta4

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.
@@ -170,116 +170,130 @@
170
170
  v-if="tabIndex === 1 && (cardList && cardList.length > 0)"
171
171
  class="jfb-base-card-entry__body-card"
172
172
  >
173
- <view
174
- v-for="(item,index) in cardList"
175
- :data-index="item.card_number"
176
- :data-idx="index"
177
- :data-top="item.top"
178
- class="card-list"
179
- :key="item.card_number"
180
- @click="toDetail(item)"
181
- v-if="setCardItemShow(item,index)"
182
- :style="{
183
- background: item['theme']['color'],
184
- backgroundSize: '100%',
185
- height: subTabIndex !== 3 ? item.height + 'px' : '300rpx'
186
- }"
187
- >
188
- <view class="card-list-warp" :style="{backgroundImage: 'url('+ item['theme']['image'] +')'}">
189
- <view class="card-list__title">
190
- <view>
191
- <view>{{item['card_type_name']}}</view>
192
- <view v-if="item['is_login'] === 'Y'"><text></text><text>已登录</text></view>
193
- </view>
194
- </view>
195
- <view class="card-list__content">
196
- <view>
197
- <text>券号:</text>
198
- <text>{{item.card_number}}{{showIndex?(':' + index):''}}</text>
199
- </view>
200
- <view @click.stop="toDetail(item)" v-if="subTabIndex !== 3&&isShowCode === 'Y'&&!force">
173
+ <template v-if="cardType==='default'">
174
+ <view
175
+ v-for="(item,index) in cardList"
176
+ :data-index="item.card_number"
177
+ :data-idx="index"
178
+ :data-top="item.top"
179
+ class="card-list"
180
+ :key="item.card_number"
181
+ @click="toDetail(item)"
182
+ v-if="setCardItemShow(item,index)"
183
+ :style="{
184
+ background: item['theme']['color'],
185
+ backgroundSize: '100%',
186
+ height: subTabIndex !== 3 ? item.height + 'px' : '300rpx'
187
+ }"
188
+ >
189
+ <view class="card-list-warp" :style="{backgroundImage: 'url('+ item['theme']['image'] +')'}">
190
+ <view class="card-list__title">
201
191
  <view>
202
- <xd-font-icon icon="iconerweima" width="56" height="56" size="50" color="#fff"></xd-font-icon>
192
+ <view>{{item['card_type_name']}}</view>
193
+ <view v-if="item['is_login'] === 'Y'"><text></text><text>已登录</text></view>
203
194
  </view>
204
- <view>点击查看</view>
205
195
  </view>
206
- </view>
207
- <view class="card-list__date">
208
- <text>有效期:</text>
209
- <text>{{item.end_time}}</text>
210
- </view>
211
- <view class="card-list__yue">
212
- <text>余额:</text>
213
- <text>{{item.card_point}} {{ item.unit }}</text>
214
- </view>
215
- <view class="card-list__other" v-if="item.other_card_point && item.card_point_type === 2">
216
- <view><text>购买其他物品可抵:</text><text>{{item.other_card_point}} {{ item.unit }}</text></view>
217
- </view>
218
- <template v-if="subTabIndex === 1">
219
- <view class="card-list__entry" v-if="item.is_login==='N'&&force">
220
- <view
221
- @click.stop="handleBindLogin(item,item['entries'][0])"
222
- :style="{
223
- background: '#fff',
224
- color: item['theme']['color']}"
225
- >
226
- 登录
196
+ <view class="card-list__content">
197
+ <view>
198
+ <text>券号:</text>
199
+ <text>{{item.card_number}}{{showIndex?(':' + index):''}}</text>
200
+ </view>
201
+ <view @click.stop="toDetail(item)" v-if="subTabIndex !== 3&&isShowCode === 'Y'&&!force">
202
+ <view>
203
+ <xd-font-icon icon="iconerweima" width="56" height="56" size="50" color="#fff"></xd-font-icon>
204
+ </view>
205
+ <view>点击查看</view>
227
206
  </view>
228
207
  </view>
229
- <view class="card-list__entry" v-if="item.entries.length === 1&&!force">
230
- <view
231
- @click.stop="handleBindLogin(item,item['entries'][0])"
232
- :style="{color: item['theme']['color']}"
233
- >进入{{item['entries'][0]['entry_name']}}</view>
208
+ <view class="card-list__date">
209
+ <text>有效期:</text>
210
+ <text>{{item.end_time}}</text>
211
+ </view>
212
+ <view class="card-list__yue">
213
+ <text>余额:</text>
214
+ <text>{{item.card_point}} {{ item.unit }}</text>
215
+ </view>
216
+ <view class="card-list__other" v-if="item.other_card_point && item.card_point_type === 2">
217
+ <view><text>购买其他物品可抵:</text><text>{{item.other_card_point}} {{ item.unit }}</text></view>
234
218
  </view>
235
- <view class="card-list__nodata" v-if="item.entries.length === 0&&!force">暂无支持服务列表</view>
236
- <view class="card-list__entrys" v-if="item.entries.length > 1&&!force" @click.stop>
237
- <view class="card-list__entrys-title">
238
- <view>可兑换权益</view>
239
- <view @click.stop="toDetail(item, false)">
240
- <text>查看详情</text>
241
- <xd-font-icon icon="iconxiangyou_xian" color="#999" size="20"></xd-font-icon>
219
+ <template v-if="subTabIndex === 1">
220
+ <view class="card-list__entry" v-if="item.is_login==='N'&&force">
221
+ <view
222
+ @click.stop="handleBindLogin(item,item['entries'][0])"
223
+ :style="{
224
+ background: '#fff',
225
+ color: item['theme']['color']}"
226
+ >
227
+ 登录
242
228
  </view>
243
229
  </view>
244
- <view class="card-list__entrys-list">
245
- <scroll-view scroll-x class="card-list__entrys-scroll">
246
- <view class="card-list__entrys-item">
247
- <view
248
- v-for="(entry,idx) in item.entries"
249
- :key="idx"
250
- @click.stop="handleBindLogin(item, entry)"
251
- >
252
- <view><image :src="entry.image_url"></image></view>
253
- <view>{{entry|cutstr}}</view>
254
- <view>
255
- <text>去兑换</text>
256
- <xd-font-icon icon="iconxiangyou_xian" color="#999" size="20"></xd-font-icon>
230
+ <view class="card-list__entry" v-if="item.entries.length === 1&&!force">
231
+ <view
232
+ @click.stop="handleBindLogin(item,item['entries'][0])"
233
+ :style="{color: item['theme']['color']}"
234
+ >进入{{item['entries'][0]['entry_name']}}</view>
235
+ </view>
236
+ <view class="card-list__nodata" v-if="item.entries.length === 0&&!force">暂无支持服务列表</view>
237
+ <view class="card-list__entrys" v-if="item.entries.length > 1&&!force" @click.stop>
238
+ <view class="card-list__entrys-title">
239
+ <view>可兑换权益</view>
240
+ <view @click.stop="toDetail(item, false)">
241
+ <text>查看详情</text>
242
+ <xd-font-icon icon="iconxiangyou_xian" color="#999" size="20"></xd-font-icon>
243
+ </view>
244
+ </view>
245
+ <view class="card-list__entrys-list">
246
+ <scroll-view scroll-x class="card-list__entrys-scroll">
247
+ <view class="card-list__entrys-item">
248
+ <view
249
+ v-for="(entry,idx) in item.entries"
250
+ :key="idx"
251
+ @click.stop="handleBindLogin(item, entry)"
252
+ >
253
+ <view><image :src="entry.image_url"></image></view>
254
+ <view>{{entry|cutstr}}</view>
255
+ <view>
256
+ <text>去兑换</text>
257
+ <xd-font-icon icon="iconxiangyou_xian" color="#999" size="20"></xd-font-icon>
258
+ </view>
257
259
  </view>
258
260
  </view>
259
- </view>
260
- </scroll-view>
261
+ </scroll-view>
262
+ </view>
261
263
  </view>
264
+ </template>
265
+ <view class="card-list__entry" v-else-if="subTabIndex===2">
266
+ <view
267
+ @click.stop="handleBindLogin(item,item['entries'][0])"
268
+ :style="{color: item['theme']['color']}"
269
+ >票券转换</view>
262
270
  </view>
263
- </template>
264
- <view class="card-list__entry" v-else-if="subTabIndex===2">
265
- <view
266
- @click.stop="handleBindLogin(item,item['entries'][0])"
267
- :style="{color: item['theme']['color']}"
268
- >票券转换</view>
269
271
  </view>
270
272
  </view>
271
- </view>
272
- <view
273
- class="card-content-empty card-list"
274
- :data-index="item.card_number"
275
- :data-idx="index"
276
- :data-top="item.top"
277
- v-else
278
- :style="{
279
- height: item.height + 'px',
280
- backgroundImage: 'url('+ (tabIndex===2 || item.entries.length <= 1 ? cardItem: cardItemEntry) +')'
281
- }"
282
- ></view>
273
+ <view
274
+ class="card-content-empty card-list"
275
+ :data-index="item.card_number"
276
+ :data-idx="index"
277
+ :data-top="item.top"
278
+ v-else
279
+ :style="{
280
+ height: item.height + 'px',
281
+ backgroundImage: 'url('+ (tabIndex===2 || item.entries.length <= 1 ? cardItem: cardItemEntry) +')'
282
+ }"
283
+ ></view>
284
+ </template>
285
+ <template v-if="cardType==='style2'">
286
+
287
+ <view v-for="(item,index) in cardList" :key="item.card_number">
288
+ <xd-card-new
289
+ :item="item"
290
+ :cardBgColor="cardBgColor"
291
+ :cardFontColor="cardFontColor"
292
+ @onLogin="handleBindLogin(item,item['entries'][0])"
293
+ @onClick="toDetail(item)"
294
+ ></xd-card-new>
295
+ </view>
296
+ </template>
283
297
  </view>
284
298
  <view v-if="tabIndex===2&&(couponList&&couponList.length)">
285
299
  <view v-if="couponList.length" class="coupon_list">
@@ -425,6 +439,7 @@
425
439
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
426
440
  import XdButton from "@/components/XdButton/XdButton";
427
441
  import XdCardV2 from "@/components/XdCardV2/XdCardV2";
442
+ import XdCardNew from "./XdCardNew.vue"
428
443
  import { jfbRootExec } from "@/utils/xd.event";
429
444
  import JfbBaseCardEntryMixin from "./JfbBaseCardEntryMixin";
430
445
  import componentsMixins from "@/mixins/componentsMixins";
@@ -447,7 +462,8 @@ export default {
447
462
  XdButton,
448
463
  XdNoticeBar,
449
464
  XdCardV2,
450
- CusCouponItem
465
+ CusCouponItem,
466
+ XdCardNew,
451
467
  },
452
468
  mixins: [componentsMixins, extsMixins, JfbBaseCardEntryMixin, colorCardMixins, cardListMixins],
453
469
  computed: {
@@ -517,6 +533,7 @@ export default {
517
533
  showCardList: false,
518
534
  showIndex:false,
519
535
  isQrCode: false,
536
+ cardType: 'default',
520
537
 
521
538
  //活动
522
539
  dialogEvent: false,
@@ -557,7 +574,10 @@ export default {
557
574
  card_use_rule: '满50减1',
558
575
  is_transfering: 'N'
559
576
  },
560
- ]
577
+ ],
578
+
579
+ cardBgColor: "",
580
+ cardFontColor: "",
561
581
  };
562
582
  },
563
583
  created() {
@@ -596,6 +616,7 @@ export default {
596
616
  this.isShowCode = getContainerPropsValue(container, "content.isShowCode", "Y");
597
617
  this.isShowCoupon = getContainerPropsValue(container, "content.isShowCoupon", "N");
598
618
  this.bindCard = getContainerPropsValue(container,"content.bindCard","1");
619
+ this.cardType = getContainerPropsValue(container,"content.cardType","default");
599
620
  //'wechat_mini_program|default'
600
621
  this.entryGroupId = getContainerPropsValue(container,"content.entryGroupId","default");
601
622
  this.couponBtnRadius = getContainerPropsValue(container, "content.couponBtnRadius", 16);
@@ -610,6 +631,8 @@ export default {
610
631
  this.couponRadius = getContainerPropsValue(container, "content.couponRadius", 16);
611
632
  this.couponLeftBgColor = getContainerPropsValue(container, "content.couponLeftBgColor", "linear-gradient(180deg, #FFA852 0%, #FF5733 100%)");
612
633
  this.couponImageUrl = getContainerPropsValue(container, "content.couponImageUrl", "");
634
+ this.cardBgColor = getContainerPropsValue(container, "content.cardBgColor", "");
635
+ this.cardFontColor = getContainerPropsValue(container, "content.cardFontColor", "");
613
636
  if(this.isPreview) {
614
637
  this.tabIndex = this.isShowCoupon==='Y'?2:1;
615
638
  }
@@ -0,0 +1,107 @@
1
+ <!-- #小象风格 -->
2
+ <template>
3
+ <view class="xd-card-new" :style="{
4
+ backgroundColor: cardBgColor,
5
+ color: cardFontColor
6
+ }" @click="onClick">
7
+ <view class="card-top">
8
+ <view class="card_name">{{item.card_type_name}}</view>
9
+ <view class="card_number">ID:{{ item.card_number }}</view>
10
+ </view>
11
+ <view class="card-center">
12
+ <view><text class="_b">{{item.card_point}}</text>{{item.unit}}</view>
13
+ <view>
14
+ <xd-button type="primary" size="small" @click.stop="doLogin">登录</xd-button>
15
+ </view>
16
+ </view>
17
+ <view class="card-bottom">
18
+ <view>有效期:{{item.end_time}}</view>
19
+ <view class="see_scope">查看使用范围</view>
20
+ </view>
21
+ </view>
22
+ </template>
23
+
24
+ <script>
25
+ import XdButton from "@/components/XdButton/XdButton.vue"
26
+ export default {
27
+ components: {
28
+ XdButton,
29
+ },
30
+ props: {
31
+ item: {
32
+ type: Object,
33
+ default () {
34
+ return {}
35
+ }
36
+ },
37
+ cardBgColor: {
38
+ type: String,
39
+ },
40
+ cardFontColor: {
41
+ type: String,
42
+ }
43
+ },
44
+ data(){
45
+ return {
46
+
47
+ }
48
+ },
49
+ created(){
50
+
51
+ },
52
+ methods: {
53
+ doLogin(){
54
+ this.$emit('onLogin', this.item)
55
+ },
56
+ onClick(){
57
+ this.$emit('onClick')
58
+ }
59
+ }
60
+ }
61
+ </script>
62
+
63
+ <style lang="less" scoped>
64
+ .xd-card-new{
65
+ background-color: #EEE;
66
+ margin-top: 20rpx;
67
+ border-radius: 10rpx;
68
+ padding: 20rpx;
69
+ .card-top{
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: space-between;
73
+ font-size: 26rpx;
74
+ .card_name{
75
+ font-size: 24rpx;
76
+ font-weight: 400;
77
+ }
78
+ .card_number{
79
+ font-weight: 28rpx;
80
+ font-weight: 500;
81
+ }
82
+ }
83
+ .card-center{
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: space-between;
87
+ margin: 40rpx 0 40rpx 0;
88
+ font-size: 28rpx;
89
+ font-weight: 400;
90
+ ._b{
91
+ font-size: 48rpx;
92
+ margin-right: 4rpx;
93
+ font-weight: 700;
94
+ }
95
+ }
96
+ .card-bottom{
97
+ display: flex;
98
+ align-items: center;
99
+ justify-content: space-between;
100
+ font-size: 24rpx;
101
+ font-weight: 500;
102
+ .see_scope{
103
+ font-weight: 400;
104
+ }
105
+ }
106
+ }
107
+ </style>
@@ -46,6 +46,18 @@ export default {
46
46
  {label: "不显示", value: "N"}
47
47
  ]
48
48
  },
49
+ {
50
+ label: "定位样式",
51
+ ele: "xd-radio",
52
+ valueKey: "searchBoxPosition",
53
+ value: data.searchBoxPosition || "out",
54
+ list: [
55
+ {label: "搜索框外", value: "out"},
56
+ {label: "搜索框内", value: "in"}
57
+ ],
58
+ groupKey:'content',
59
+ hidden: data.showLocation !== 'Y'
60
+ },
49
61
  {
50
62
  label: "是否显示站点信息",
51
63
  ele: "xd-radio",
@@ -77,6 +89,108 @@ export default {
77
89
  value: data.placeholder || '',
78
90
  className: "input80"
79
91
  },
92
+ {
93
+ label: '搜索框圆角',
94
+ ele: 'xd-site-select-list',
95
+ valueKey: 'searchBoxRadius',
96
+ value: data.searchBoxRadius || 30,
97
+ groupKey:'content',
98
+ placeholder: '请选择内容圆角设置',
99
+ multiple: false,
100
+ className: 'input80',
101
+ handleCustom({ action, data }) {
102
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
103
+ .then(res => {
104
+ data.cb(res.list)
105
+ })
106
+ .catch(error => {
107
+ console.error(error);
108
+ });
109
+ },
110
+ },
111
+ {
112
+ label: "放大镜位置",
113
+ ele: "xd-radio",
114
+ valueKey: "searchIconPosition",
115
+ value: data.searchIconPosition || "right",
116
+ list: [
117
+ {label: "靠左", value: "left"},
118
+ {label: "靠右", value: "right"},
119
+ {label: "隐藏", value: "hidden"}
120
+ ],
121
+ groupKey:'content',
122
+ },
123
+ {
124
+ label: "右侧是否展示搜索",
125
+ ele: "xd-radio",
126
+ valueKey: "showSearchBtn",
127
+ value: data.showSearchBtn,
128
+ list: [
129
+ {label: "展示", value: "Y"},
130
+ {label: "隐藏", value: "N"}
131
+ ],
132
+ groupKey:'content',
133
+ },
134
+ {
135
+ label: "搜索位置",
136
+ ele: "xd-radio",
137
+ valueKey: "searchBtnPosition",
138
+ value: data.searchBtnPosition || "out",
139
+ list: [
140
+ {label: "搜索框内", value: "in"},
141
+ {label: "搜索框外", value: "out"}
142
+ ],
143
+ groupKey:'content',
144
+ hidden: data.showSearchBtn !== 'Y'
145
+ },
146
+ {
147
+ label: "右侧搜索按钮文案自定义",
148
+ ele: "el-input",
149
+ placeholder: '请输入搜索按钮文案',
150
+ valueKey: "searchBtnText",
151
+ groupKey:'content',
152
+ value: data.searchBtnText || '',
153
+ className: "input80",
154
+ hidden: data.showSearchBtn !== 'Y'
155
+ },
156
+ {
157
+ label: "搜索按钮背景颜色",
158
+ ele: "xd-color",
159
+ placeholder: '请输入搜索按钮背景颜色',
160
+ valueKey: "searchBtnBgColor",
161
+ groupKey:'content',
162
+ value: data.searchBtnBgColor || '',
163
+ hidden: data.showSearchBtn !== 'Y'
164
+ },
165
+ {
166
+ label: "搜索按钮文字颜色",
167
+ ele: "xd-color",
168
+ placeholder: '请输入搜索按钮文字颜色',
169
+ valueKey: "searchBtnTextColor",
170
+ groupKey:'content',
171
+ value: data.searchBtnTextColor || '',
172
+ hidden: data.showSearchBtn !== 'Y'
173
+ },
174
+ {
175
+ label: "搜索按钮圆角",
176
+ ele: 'xd-site-select-list',
177
+ valueKey: 'searchBtnRadius',
178
+ value: data.searchBtnRadius || 0,
179
+ groupKey:'content',
180
+ placeholder: '请选择内容圆角设置',
181
+ multiple: false,
182
+ className: 'input80',
183
+ handleCustom({ action, data }) {
184
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
185
+ .then(res => {
186
+ data.cb(res.list)
187
+ })
188
+ .catch(error => {
189
+ console.error(error);
190
+ });
191
+ },
192
+ hidden: data.showSearchBtn !== 'Y'
193
+ },
80
194
  {
81
195
  label: '背景颜色:',
82
196
  ele: 'xd-color',