jufubao-base 1.0.243-beta2 → 1.0.243

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 (138) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseBalance/Api.js +46 -0
  3. package/src/components/JfbBaseBalance/Attr.js +316 -0
  4. package/src/components/JfbBaseBalance/JfbBaseBalance.vue +336 -0
  5. package/src/components/JfbBaseBalance/JfbBaseBalanceLess.less +79 -0
  6. package/src/components/JfbBaseBalance/JfbBaseBalanceMixin.js +30 -0
  7. package/src/components/JfbBaseBalance/Mock.js +9 -0
  8. package/src/components/JfbBaseCardBindV2/JfbBaseCardBindV2.vue +4 -6
  9. package/src/components/JfbBaseCodeOpenVip/Api.js +35 -0
  10. package/src/components/JfbBaseCodeOpenVip/Attr.js +281 -0
  11. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +251 -0
  12. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVipLess.less +79 -0
  13. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVipMixin.js +30 -0
  14. package/src/components/JfbBaseCodeOpenVip/Mock.js +13 -0
  15. package/src/components/JfbBaseConPhone/JfbBaseConPhone.vue +10 -16
  16. package/src/components/JfbBaseConsumpCode/Api.js +133 -0
  17. package/src/components/JfbBaseConsumpCode/Attr.js +74 -0
  18. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCode.vue +1109 -0
  19. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCodeLess.less +79 -0
  20. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCodeMixin.js +30 -0
  21. package/src/components/JfbBaseConsumpCode/Mock.js +22 -0
  22. package/src/components/JfbBaseFastLink/Attr.js +12 -1
  23. package/src/components/JfbBaseFastLink/JfbBaseFastLink.vue +66 -0
  24. package/src/components/JfbBaseFooter/Attr.js +12 -0
  25. package/src/components/JfbBaseFooter/JfbBaseFooter.vue +13 -0
  26. package/src/components/JfbBaseHeader/Attr.js +82 -0
  27. package/src/components/JfbBaseHeader/JfbBaseHeader.vue +47 -1
  28. package/src/components/JfbBaseHeaderColumn/Attr.js +82 -0
  29. package/src/components/JfbBaseHeaderColumn/JfbBaseHeaderColumn.vue +48 -2
  30. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +18 -10
  31. package/src/components/JfbBaseLoginForgetPwd/JfbBaseLoginForgetPwd.vue +6 -10
  32. package/src/components/JfbBaseLoginSetPwd/JfbBaseLoginSetPwd.vue +2 -16
  33. package/src/components/JfbBaseMapOverlay/JfbBaseMapOverlay.vue +3 -5
  34. package/src/components/JfbBaseNoticeDialog/Api.js +1 -1
  35. package/src/components/JfbBaseNoticeDialog/Attr.js +26 -0
  36. package/src/components/JfbBaseNoticeDialog/JfbBaseNoticeDialog.vue +38 -15
  37. package/src/components/JfbBaseNoticeGroup/Api.js +23 -0
  38. package/src/components/JfbBaseNoticeGroup/Attr.js +237 -0
  39. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroup.vue +174 -0
  40. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroupLess.less +79 -0
  41. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroupMixin.js +30 -0
  42. package/src/components/JfbBaseNoticeGroup/Mock.js +13 -0
  43. package/src/components/JfbBaseOpenVip/Api.js +39 -0
  44. package/src/components/JfbBaseOpenVip/Attr.js +331 -0
  45. package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +457 -0
  46. package/src/components/JfbBaseOpenVip/JfbBaseOpenVipLess.less +79 -0
  47. package/src/components/JfbBaseOpenVip/JfbBaseOpenVipMixin.js +30 -0
  48. package/src/components/JfbBaseOpenVip/Mock.js +7 -0
  49. package/src/components/JfbBaseOpenVip/XdVipList.vue +131 -0
  50. package/src/components/JfbBaseOpenVipCard/Api.js +58 -0
  51. package/src/components/JfbBaseOpenVipCard/Attr.js +48 -0
  52. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCard.vue +111 -0
  53. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCardLess.less +79 -0
  54. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCardMixin.js +30 -0
  55. package/src/components/JfbBaseOpenVipCard/Mock.js +13 -0
  56. package/src/components/JfbBaseOpenVipDetail/Api.js +35 -0
  57. package/src/components/JfbBaseOpenVipDetail/Attr.js +37 -0
  58. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +234 -0
  59. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetailLess.less +79 -0
  60. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetailMixin.js +30 -0
  61. package/src/components/JfbBaseOpenVipDetail/Mock.js +15 -0
  62. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +177 -18
  63. package/src/components/JfbBasePay/Attr.js +52 -0
  64. package/src/components/JfbBasePay/JfbBasePay.vue +42 -41
  65. package/src/components/JfbBasePay/Mock.js +0 -9
  66. package/src/components/JfbBasePersonalData/Api.js +26 -0
  67. package/src/components/JfbBasePersonalData/Attr.js +13 -0
  68. package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +200 -0
  69. package/src/components/JfbBasePersonalData/JfbBasePersonalDataLess.less +79 -0
  70. package/src/components/JfbBasePersonalData/JfbBasePersonalDataMixin.js +30 -0
  71. package/src/components/JfbBasePersonalData/Mock.js +13 -0
  72. package/src/components/JfbBasePhoneCollect/JfbBasePhoneCollect.vue +5 -21
  73. package/src/components/JfbBasePhoneLogin/JfbBasePhoneLogin.vue +40 -31
  74. package/src/components/JfbBasePointsCard/Api.js +18 -0
  75. package/src/components/JfbBasePointsCard/Attr.js +187 -0
  76. package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +212 -0
  77. package/src/components/JfbBasePointsCard/JfbBasePointsCardLess.less +79 -0
  78. package/src/components/JfbBasePointsCard/JfbBasePointsCardMixin.js +30 -0
  79. package/src/components/JfbBasePointsCard/Mock.js +5 -0
  80. package/src/components/JfbBasePointsDetail/Api.js +48 -0
  81. package/src/components/JfbBasePointsDetail/Attr.js +305 -0
  82. package/src/components/JfbBasePointsDetail/JfbBasePointsDetail.vue +267 -0
  83. package/src/components/JfbBasePointsDetail/JfbBasePointsDetailLess.less +79 -0
  84. package/src/components/JfbBasePointsDetail/JfbBasePointsDetailMixin.js +30 -0
  85. package/src/components/JfbBasePointsDetail/Mock.js +6 -0
  86. package/src/components/JfbBasePoster/Attr.js +1 -1
  87. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +2 -2
  88. package/src/components/JfbBasePosterGroup/Api.js +22 -0
  89. package/src/components/JfbBasePosterGroup/Attr.js +156 -0
  90. package/src/components/JfbBasePosterGroup/JfbBasePosterGroup.vue +268 -0
  91. package/src/components/JfbBasePosterGroup/JfbBasePosterGroupLess.less +79 -0
  92. package/src/components/JfbBasePosterGroup/JfbBasePosterGroupMixin.js +30 -0
  93. package/src/components/JfbBasePosterGroup/Mock.js +13 -0
  94. package/src/components/JfbBaseSavingDetail/Api.js +41 -0
  95. package/src/components/JfbBaseSavingDetail/Attr.js +70 -0
  96. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +724 -0
  97. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetailLess.less +79 -0
  98. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetailMixin.js +30 -0
  99. package/src/components/JfbBaseSavingDetail/Mock.js +10 -0
  100. package/src/components/JfbBaseSavingDetail/components/echarts.min.js +26 -0
  101. package/src/components/JfbBaseSavingDetail/components/echarts.vue +254 -0
  102. package/src/components/JfbBaseSavingDetail/components/wx-canvas.js +105 -0
  103. package/src/components/JfbBaseShare/Api.js +20 -0
  104. package/src/components/JfbBaseShare/Attr.js +59 -0
  105. package/src/components/JfbBaseShare/JfbBaseShare.vue +282 -0
  106. package/src/components/JfbBaseShare/JfbBaseShareLess.less +79 -0
  107. package/src/components/JfbBaseShare/JfbBaseShareMixin.js +30 -0
  108. package/src/components/JfbBaseShare/Mock.js +16 -0
  109. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +9 -3
  110. package/src/components/JfbBaseTfkCardBind/JfbBaseTfkCardBind.vue +11 -18
  111. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +12 -22
  112. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +12 -1
  113. package/src/components/JfbBaseTfkSearch/Mock.js +51 -3
  114. package/src/components/JfbBaseTfkSearch/listMixins.js +2 -1
  115. package/src/components/JfbBaseUserInfo/Attr.js +175 -11
  116. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +337 -115
  117. package/src/components/JfbBaseUserOrder/Attr.js +16 -0
  118. package/src/components/JfbBaseUserOrder/JfbBaseUserOrder.vue +11 -2
  119. package/src/components/JfbBaseWalletItem/JfbBaseWalletItem.vue +3 -5
  120. package/src/components/JfbBaseWithDrawAgain/Api.js +41 -0
  121. package/src/components/JfbBaseWithDrawAgain/Attr.js +92 -0
  122. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgain.vue +354 -0
  123. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainLess.less +79 -0
  124. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainMixin.js +30 -0
  125. package/src/components/JfbBaseWithDrawAgain/Mock.js +10 -0
  126. package/src/components/JfbBaseWithDrawRecord/Api.js +19 -0
  127. package/src/components/JfbBaseWithDrawRecord/Attr.js +79 -0
  128. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecord.vue +233 -0
  129. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordLess.less +79 -0
  130. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordMixin.js +30 -0
  131. package/src/components/JfbBaseWithDrawRecord/Mock.js +7 -0
  132. package/src/components/JfbBaseWithdraw/Api.js +48 -0
  133. package/src/components/JfbBaseWithdraw/Attr.js +328 -0
  134. package/src/components/JfbBaseWithdraw/JfbBaseWithdraw.vue +272 -0
  135. package/src/components/JfbBaseWithdraw/JfbBaseWithdrawLess.less +79 -0
  136. package/src/components/JfbBaseWithdraw/JfbBaseWithdrawMixin.js +30 -0
  137. package/src/components/JfbBaseWithdraw/Mock.js +7 -0
  138. package/src/components/JfbBaseWxAuthorize/JfbBaseWxAuthorize.vue +10 -0
@@ -0,0 +1,282 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-share"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-share__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-share__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-share__body">
17
+ <view class="card_wrap">
18
+ <swiper class="card_swiper" next-margin="50rpx" previous-margin="50rpx" :current="shareIndex" @change="handleSwitch">
19
+ <swiper-item class="swiper_item" v-for="(item,i) in shareList" :key="i">
20
+ <view class="swiper_item-inner">
21
+ <image :src="item.share_image_url" mode="aspectFill"></image>
22
+ </view>
23
+ </swiper-item>
24
+ </swiper>
25
+ </view>
26
+
27
+ <view v-if="showShare" class="share_wrap">
28
+ <button class="share_btn" open-type="share" @click="toSendWx">
29
+ <image :src="shareImage" mode="widthFix"></image>
30
+ </button>
31
+ <view class="share_btn" @click="toSaveImg">
32
+ <image :src="savaImage" mode="widthFix"></image>
33
+ </view>
34
+ </view>
35
+
36
+ <view class="visit_tip">
37
+ 好友使用你的邀请码成功注册后<br/>Ta将成为你的邀请用户
38
+ </view>
39
+ </view>
40
+ </view>
41
+ </template>
42
+
43
+ <script>
44
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
45
+ import { jfbRootExec } from "@/utils/xd.event";
46
+ import JfbBaseShareMixin from "./JfbBaseShareMixin";
47
+ import { getContainerPropsValue } from "@/utils/xd.base";
48
+ import componentsMixins from "@/mixins/componentsMixins";
49
+ import extsMixins from "@/mixins/extsMixins";
50
+ import getServiceUrl from "@/common/getServiceUrl";
51
+ import { mapState, mapMutations } from "vuex";
52
+ export default {
53
+ name: "JfbBaseShare",
54
+ components: {
55
+ XdFontIcon
56
+ },
57
+ mixins: [
58
+ componentsMixins, extsMixins, JfbBaseShareMixin
59
+ ],
60
+ data() {
61
+ return {
62
+ closeMask: true,
63
+ shareIndex: 0,
64
+ shareList: [],
65
+ isPreview: false,
66
+ //todo
67
+ shareImage: "",
68
+ savaImage: "",
69
+ shareData: {},
70
+ }
71
+ },
72
+ computed: {
73
+ ...mapState(["shareInfo"]),
74
+ showShare(){
75
+ if(this.isPreview) return true;
76
+ // #ifdef MP-WEIXIN
77
+ return true;
78
+ // #endif
79
+ // #ifdef H5
80
+ return false;
81
+ // #endif
82
+ }
83
+ },
84
+ watch: {
85
+ container(value, oldValue) {
86
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
87
+ if (this.$configProject['isPreview']) this.init(value)
88
+ },
89
+ },
90
+ created() {
91
+ this.init(this.container);
92
+ this.isPreview = this.$configProject['isPreview'];
93
+ //todo
94
+ },
95
+ methods: {
96
+ ...mapMutations(["setShareInfo"]),
97
+ onJfbLoad(options) {
98
+
99
+ this.p_getInviteCardList();
100
+ },
101
+ /**
102
+ * @description 监听事件变化
103
+ * @param container {object} 业务组件对象自己
104
+ */
105
+ init(container) {
106
+ this.shareImage = getServiceUrl(getContainerPropsValue(container, 'content.shareImage', {url: ""}).url);
107
+ this.savaImage = getServiceUrl(getContainerPropsValue(container, 'content.savaImage', {url: ""}).url);
108
+ },
109
+ p_getInviteCardList(){
110
+ jfbRootExec("getInviteCardList", {
111
+ vm: this,
112
+ data: {
113
+ page_token: '1'
114
+ }
115
+ }).then(res => {
116
+ this.shareList = res.list.map(item => {
117
+ let urlSearch = item.share_image_url.split('?')[1];
118
+ let newImgUrl = getServiceUrl(item.share_image_url);
119
+ item.share_image_url = newImgUrl.split('?')[0] + '?' + urlSearch;
120
+ item.wx_mini_share_image = getServiceUrl(item.wx_mini_share_image);
121
+ return item;
122
+ });
123
+ this.shareData = res;
124
+ })
125
+ },
126
+ handleSwitch(e){
127
+ this.shareIndex = e.detail.current;
128
+ },
129
+ toSendWx(){
130
+ let shareIndex = this.shareIndex;
131
+ let curShare = this.shareList[shareIndex];
132
+ this.setShareInfo({
133
+ title: this.shareData.wx_mini_title,
134
+ imageUrl: curShare.wx_mini_share_image,
135
+ path: this.shareData.wx_mini_path,
136
+ });
137
+ },
138
+ toSaveImg(){
139
+ let shareIndex = this.shareIndex;
140
+ let curShare = this.shareList[shareIndex];
141
+ uni.getImageInfo({
142
+ src: curShare.share_image_url,
143
+ success: (res) => {
144
+ uni.saveImageToPhotosAlbum({
145
+ filePath: res.path,
146
+ success: () => {
147
+ uni.showToast({
148
+ title: '保存成功',
149
+ icon: "success"
150
+ })
151
+ }
152
+ })
153
+ }
154
+ })
155
+
156
+ },
157
+ onJfbScroll(options) {
158
+ // console.log('event.onJfbScroll', options)
159
+ },
160
+ onJfbReachBottom(options) {
161
+ console.log('event.onJfbReachBottom', options)
162
+ },
163
+ onJfbShow(options) {
164
+ console.log('event.onJfbShow', options)
165
+ },
166
+ onJfbHide(options) {
167
+ console.log('event.onJfbHide', options)
168
+ },
169
+ onJfbBack(options) {
170
+ console.log('event.onJfbBack', options)
171
+ },
172
+ onJfbUpdate(...data) {
173
+ console.log('event.onJfbUpdate', data)
174
+ },
175
+ onJfbCustomEvent(options) {
176
+ console.log('event.onJfbReachBottom', options)
177
+ },
178
+ }
179
+ }
180
+
181
+ </script>
182
+
183
+ <style scoped lang="less">
184
+ @import "./JfbBaseShareLess.less";
185
+
186
+ .jfb-base-share {
187
+ &__body{
188
+ padding: 60rpx 0;
189
+ box-sizing: border-box;
190
+ .card_wrap{
191
+ height: 960rpx;
192
+ box-sizing: border-box;
193
+ .card_swiper{
194
+ height: 100%;
195
+ width: 100%;
196
+ .swiper_item{
197
+ display: flex;
198
+ align-items: center;
199
+ justify-content: center;
200
+
201
+ &-inner{
202
+ width: 100%;
203
+ height: 100%;
204
+ // background: url('https://sandbox-img.jufubao.cn/uploads/20250410/2d9f5ec31efb5cddece747d8b8da51f0.png?x-oss-process=style/size8') no-repeat;
205
+ // background-size: auto 100%;
206
+ box-sizing: border-box;
207
+ // display: flex;
208
+ // flex-direction: column;
209
+ // align-items: center;
210
+ image{
211
+ width: 100%;
212
+ height: 100%;
213
+ }
214
+ }
215
+ &-logo{
216
+ height: 96rpx;
217
+ width: 96rpx;
218
+ background-color: #FFFFFF;
219
+ }
220
+ &-title{
221
+ margin-top: 24rpx;
222
+ color: #B35300;
223
+ font-size: 40rpx;
224
+ font-weight: 500;
225
+ }
226
+ &-qrcode{
227
+ width: 400rpx;
228
+ height: 400rpx;
229
+ background-color: #FFFFFF;
230
+ margin-top: 60rpx;
231
+ border-radius: 24rpx;
232
+ }
233
+ &-visit{
234
+ width: 400rpx;
235
+ height: 120rpx;
236
+ background: linear-gradient(180deg, #FEFEF5 0%, #FDFDCB 100%);
237
+ margin-top: 36rpx;
238
+ border-radius: 24rpx;
239
+ font-size: 32rpx;
240
+ font-weight: 500;
241
+ color: #965720;
242
+ text-align: center;
243
+ padding-top: 20rpx;
244
+ box-sizing: border-box;
245
+ }
246
+ }
247
+ }
248
+ }
249
+ .share_wrap{
250
+ display: flex;
251
+ // align-items: center;
252
+ align-items: flex-start;
253
+ justify-content: center;
254
+ .share_btn{
255
+ width: 300rpx;
256
+ // height: 80rpx;
257
+ background-size: 100% 100%;
258
+ background-color: transparent;
259
+ margin: 60rpx 0 0 0;
260
+ padding: 0;
261
+ &::after{
262
+ border: none !important;
263
+ content: initial !important;
264
+ }
265
+ image{
266
+ width: 100%;
267
+ }
268
+
269
+ & + .share_btn{
270
+ margin-left: 32rpx;
271
+ }
272
+ }
273
+ }
274
+ .visit_tip{
275
+ color: #965720;
276
+ font-size: 26rpx;
277
+ margin-top: 32rpx;
278
+ text-align: center;
279
+ }
280
+ }
281
+ }
282
+ </style>
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @desc 获取绝对路径完整地址
3
+ * @param @path
4
+ **/
5
+ //例如:https://image.jufubao.cn/20220501010108/image/bg/default_gonghui_bg.png
6
+ @basePath: 'business/';
7
+ @doMain: '//sandbox-img.jufubao.cn/';
8
+
9
+ .getBusinessImageUrl(@path, @size: 'size8') {
10
+ @url: "@{doMain}@{basePath}@{path}?x-oss-process=style/@{size}";
11
+ background-image: url(@url);
12
+ }
13
+
14
+ //start
15
+ .jfb-base-share {
16
+ box-sizing: border-box;
17
+
18
+ &__body{
19
+ position: relative;
20
+ overflow: hidden;
21
+ z-index: 2
22
+ }
23
+
24
+ &.editx,&.editx:hover {
25
+ position: relative;
26
+ min-height: unit(100, rpx);
27
+ z-index: 3;
28
+ &::after {
29
+ border: 2rpx dashed blue;
30
+ content: " ";
31
+ position: absolute;
32
+ top:0;
33
+ left:0;
34
+ bottom:0;
35
+ right:0;
36
+ z-index: 4;
37
+ cursor: pointer;
38
+ }
39
+
40
+ }
41
+
42
+
43
+ &__edit {
44
+ cursor: pointer;
45
+ position: absolute;
46
+ right: unit(0, rpx);
47
+ top: unit(-52, rpx);
48
+ height: unit(50, rpx);
49
+ line-height: unit(50, rpx);
50
+ display: flex;
51
+ justify-content: center;
52
+ align-items: center;
53
+ background: rgba(0, 0, 0, .6);
54
+ border-radius: unit(10, rpx);
55
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
56
+ color: #fff;
57
+ font-size: unit(22, rpx);
58
+
59
+ &-icon{
60
+ padding: 0 unit(20, rpx);
61
+ }
62
+
63
+ &.editx {
64
+ box-sizing: border-box;
65
+
66
+ }
67
+ }
68
+ }
69
+ //end
70
+
71
+
72
+ /**notPreview**/
73
+ .jfb-base-share {
74
+ //&:before {
75
+ //content: " ";
76
+ //display: table;
77
+ //}
78
+ }
79
+ /**endNotPreview**/
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+
4
+ //@AttrImport
5
+ import Attr from "./Attr";
6
+ //@EndAttrImport
7
+
8
+
9
+ export default {
10
+ data() {
11
+ return {
12
+ //#ifdef H5
13
+
14
+ //@AttrData
15
+ Attr:{}, //对外开发编辑属性
16
+ //@EndAttrData
17
+
18
+ // #endif
19
+ cssRoot: 'jfb-base-share'
20
+ }
21
+ },
22
+ created() {
23
+
24
+ //@AttrDataCreated
25
+ this.Attr = this.$xdUniHelper.customClone(Attr);
26
+ //@EndAttrDataCreated
27
+
28
+
29
+ },
30
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ module.exports = {
4
+ getInviteCardList: {
5
+ total_size: 1,
6
+ next_page_token: "",
7
+ list: [
8
+ {
9
+ jump_url: "111111?x-common=eyJzaGFyZV9jb2RlIjogVWY0eng2RVBmVn0",
10
+ share_image_url:
11
+ "https://sandbox-img.jufubao.cn/uploads/20250410/34559f90dd5a01e7368c02bf33f1b484.png?x-oss-process=style/size8"
12
+ }
13
+ ],
14
+ request_id: "e081f3a16f40bfbe"
15
+ }
16
+ };
@@ -63,9 +63,12 @@
63
63
  <view class="settle-item" v-for="(settle,index) in info.settleInfo" :key="index">
64
64
  <view>{{settle.label}}:</view>
65
65
  <view v-if="settle.type === 'price'">
66
- <xd-unit :price="settle.value" :is-old="false"></xd-unit>
66
+ <xd-unit
67
+ :largeZero="false"
68
+ :colorNew="is_plus_site ? '#999':''"
69
+ :price="settle.value" :is-old="false"></xd-unit>
67
70
  </view>
68
- <view v-else v-html="settle.value"></view>
71
+ <view v-else v-html="settle.value" :style="{color: is_plus_site ? '#999':''}"></view>
69
72
  </view>
70
73
  </view>
71
74
  <!--settle end-->
@@ -429,6 +432,7 @@ export default {
429
432
  payBgColor:'',
430
433
  bgColor:'',
431
434
  ticket_method_msg:'', //取票提示文案
435
+ is_plus_site: false,
432
436
 
433
437
  //按钮
434
438
  btnTextColor:'',
@@ -456,7 +460,7 @@ export default {
456
460
  },
457
461
  },
458
462
  computed: {
459
- ...mapState(["brandInfo"]),
463
+ ...mapState(["brandInfo", "siteInfo"]),
460
464
  ...styleForm.getComputedItem(),
461
465
  },
462
466
  created() {
@@ -464,6 +468,7 @@ export default {
464
468
  this.noUserLoding = !this.$root['isLogined']; //判断是否需要已登录
465
469
  if(this.isPreview) this.noUserLoding = false;
466
470
  this.init(this.container);
471
+ this.is_plus_site = this.projectAttr.headers['X-Site-Group']==="vip";
467
472
  },
468
473
  destroyed() {
469
474
  if (this.timeer) {
@@ -570,6 +575,7 @@ export default {
570
575
  is_show_product: this.is_show_product === "Y" ? 1 : 0,
571
576
  custom_content_page_id: this.pageAttr.page_id,
572
577
  custom_content_container_id: this.cid,
578
+ version: 'v2'
573
579
  },
574
580
  })
575
581
  .then((res) => {
@@ -528,14 +528,10 @@
528
528
  async toBindCardTicket(){
529
529
  console.log(this.form, 'this.form')
530
530
  const { card_password, card_number, valid_code } = this.form;
531
- if(!valid_code){
532
- return this.$xdAlert({
533
- content: '请输入验证码',
534
- time: 2500,
535
- isClose: false,
536
- zIndex: 5000
537
- });
538
- }
531
+ if(!valid_code) return uni.showToast({
532
+ title: '请输入验证码',
533
+ icon: "none"
534
+ })
539
535
  this.$xdShowLoading({});
540
536
 
541
537
  this.checkValidToken().then(() => {
@@ -560,11 +556,9 @@
560
556
  const { code } = this.form;
561
557
 
562
558
  if(!code) {
563
- this.$xdAlert({
564
- content: '请输入电子码',
565
- time: 2500,
566
- isClose: false,
567
- zIndex: 5000
559
+ uni.showToast({
560
+ title: '请输入电子码',
561
+ icon: "none"
568
562
  });
569
563
  return ""
570
564
  };
@@ -592,11 +586,10 @@
592
586
  if(res.is_valid){
593
587
  r();
594
588
  }else{
595
- this.$xdAlert({
596
- content: '验证码错误',
597
- time: 2500,
598
- isClose: false,
599
- zIndex: 5000
589
+ uni.showToast({
590
+ title: '验证码错误',
591
+ duration: 2000,
592
+ icon: "none"
600
593
  });
601
594
  this.switchValidToken();
602
595
  j();
@@ -28,25 +28,13 @@
28
28
  </view>
29
29
  <view class="prodcut-content-btn" v-if="isBtn">
30
30
  <view :class="{onePrice: cell === 1}">
31
- <view v-if="productConfig.isPrice === 'Y'">
32
- <xd-unit
33
- :price="(item['promo_price'] || item['sale_price'])"
34
- :isOld="false"
35
- :iconSize="0.3"
36
- :fontSize="36"
37
- />
38
- </view>
39
- <view
40
- v-if="productConfig.isShowDiscount==='Y' && checkDiscountPrice"
41
- :style="{color:oldPriceColor}" class="oldPrice">
42
- <xd-unit
43
- :price="dividePrice"
44
- :iconSize="0.21"
45
- :fontSize="24"
46
- delete-line
47
- is-gray
48
- />
49
- </view>
31
+ <CusPrice
32
+ v-if="productConfig.isPrice === 'Y'"
33
+ type="two"
34
+ :showPrice="item['show_prices']"
35
+ :isShowIcon="productConfig.isShowIcon"
36
+ :isPlus="productConfig.is_plus_site">
37
+ </CusPrice>
50
38
  </view>
51
39
  <view>
52
40
  <view @click.stop="handleDetail()" v-if="productConfig.isAddCart === 'Y'">
@@ -68,13 +56,15 @@ import getServiceUrl from "@/common/getServiceUrl";
68
56
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon.vue";
69
57
  import XdProductStatus from "@/components/XdProductStatus/XdProductStatus";
70
58
  import XdUnit from "@/components/XdUnit/XdUnit.vue";
59
+ import CusPrice from "@/components/CusPrice/CusPrice";
71
60
 
72
61
  export default {
73
62
  name: "ContentProduct",
74
63
  components:{
75
64
  XdFontIcon,
76
65
  XdUnit,
77
- XdProductStatus
66
+ XdProductStatus,
67
+ CusPrice
78
68
  },
79
69
  props:{
80
70
  keyword:{
@@ -250,10 +240,10 @@ export default {
250
240
  & > view:first-child {
251
241
  flex: 1;
252
242
  & > view:first-child {
253
- height: 40rpx;
254
243
  display: flex;
244
+ flex-direction: column;
255
245
  justify-content: flex-start;
256
- align-items: center;
246
+ align-items: flex-start;
257
247
  overflow: hidden;
258
248
  }
259
249
  & > view:nth-child(2) {
@@ -73,6 +73,7 @@
73
73
  import listMixins from "./listMixins";
74
74
  import CustomList from "./CustomList.vue";
75
75
  import AllList from "./AllList.vue";
76
+ import { mapState } from 'vuex';
76
77
 
77
78
  class EmitParent {
78
79
  constructor(options) {
@@ -86,7 +87,7 @@
86
87
  CustomList,
87
88
  XdFontIcon,
88
89
  AllList,
89
- XdSearchHistory
90
+ XdSearchHistory,
90
91
  },
91
92
  mixins: [
92
93
  componentsMixins, extsMixins, JfbBaseTfkSearchMixin,listMixins
@@ -127,9 +128,13 @@
127
128
  allModuleItemContRadius: 16,
128
129
  allModuleItemContBgColor: "#FFFFFF",
129
130
  emitParent:{},
131
+ is_plus_site: false
130
132
  }
131
133
  },
132
134
  computed: {
135
+ ...mapState({
136
+ siteInfo: state => state.siteInfo,
137
+ }),
133
138
  showMenuList(){
134
139
  return [{label: "全部", value: "all"}, ...this.menuList]
135
140
  },
@@ -231,6 +236,7 @@
231
236
  return this;
232
237
  }
233
238
  })
239
+ this.is_plus_site = this.projectAttr.headers['X-Site-Group']==="vip";
234
240
  this.init(this.container);
235
241
  this.cusInit(this.container);
236
242
  },
@@ -246,6 +252,11 @@
246
252
  if(this.tabId === 'all'){
247
253
  data['search_range'] = this.searchScope.map(item => item.value.split("@")[0]).join(',');
248
254
  }
255
+ if(this.productConfig.isShowDiscount==='Y'){
256
+ data.is_show_uprice=this.$xdUniHelper.multiplyFloatNumber(this.productConfig.differ,100)
257
+ } else {
258
+ data.is_show_uprice=-1
259
+ }
249
260
 
250
261
  jfbRootExec("getTfkSearchList", {
251
262
  vm: this,
@@ -28,6 +28,18 @@ module.exports = {
28
28
  sale_price: 3000,
29
29
  status: "ok",
30
30
  thumb: "/uploads/20231215/b2ce0235129aa592044f96343f25c338.jpeg",
31
+ show_prices: [
32
+ {
33
+ "p": 6500,
34
+ "n": "PLUS价",
35
+ "t": "S"
36
+ },
37
+ {
38
+ "p": 7500,
39
+ "n": "原价",
40
+ "t": "U"
41
+ }
42
+ ]
31
43
  },
32
44
  {
33
45
  brand_id: 30000,
@@ -43,7 +55,19 @@ module.exports = {
43
55
  sale_price: 2195,
44
56
  status: "ok",
45
57
  thumb:
46
- "https://img1.winxuancdn.com/1305/10251305_9.jpg?1530683968642"
58
+ "https://img1.winxuancdn.com/1305/10251305_9.jpg?1530683968642",
59
+ show_prices: [
60
+ {
61
+ "p": 8500,
62
+ "n": "PLUS价",
63
+ "t": "S"
64
+ },
65
+ {
66
+ "p": 7500,
67
+ "n": "原价",
68
+ "t": "U"
69
+ }
70
+ ]
47
71
  },
48
72
  {
49
73
  brand_id: 30000,
@@ -59,7 +83,19 @@ module.exports = {
59
83
  sale_price: 4219,
60
84
  status: "ok",
61
85
  thumb:
62
- "https://img2.winxuancdn.com/9564/10309564_9.jpg?1530754178039"
86
+ "https://img2.winxuancdn.com/9564/10309564_9.jpg?1530754178039",
87
+ show_prices: [
88
+ {
89
+ "p": 100,
90
+ "n": "PLUS价",
91
+ "t": "S"
92
+ },
93
+ {
94
+ "p": 200,
95
+ "n": "原价",
96
+ "t": "U"
97
+ }
98
+ ]
63
99
  },
64
100
  {
65
101
  brand_id: 30000,
@@ -75,7 +111,19 @@ module.exports = {
75
111
  sale_price: 4388,
76
112
  status: "ok",
77
113
  thumb:
78
- "https://img3.winxuancdn.com/9416/10309416_9.jpg?1530754178039"
114
+ "https://img3.winxuancdn.com/9416/10309416_9.jpg?1530754178039",
115
+ show_prices: [
116
+ {
117
+ "p": 100,
118
+ "n": "PLUS价",
119
+ "t": "S"
120
+ },
121
+ {
122
+ "p": 200,
123
+ "n": "原价",
124
+ "t": "U"
125
+ }
126
+ ]
79
127
  }
80
128
  ]
81
129
  },