jufubao-base 1.0.76 → 1.0.77-beta10

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/JfbBaseAfterOrderList/JfbBaseAfterOrderList.vue +101 -44
  3. package/src/components/JfbBaseCard/JfbBaseCard.vue +75 -65
  4. package/src/components/JfbBaseCardDisabled/JfbBaseCardDisabled.vue +93 -43
  5. package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +161 -92
  6. package/src/components/JfbBaseCardV2/JfbBaseCardV2.vue +101 -45
  7. package/src/components/JfbBaseCardV3/JfbBaseCardV3.vue +24 -14
  8. package/src/components/JfbBaseEntry/JfbBaseEntry.vue +19 -1
  9. package/src/components/JfbBaseFastLink/JfbBaseFastLink.vue +1 -1
  10. package/src/components/JfbBaseLogin/Api.js +9 -0
  11. package/src/components/JfbBaseLogin/Attr.js +29 -6
  12. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +113 -15
  13. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +3 -0
  14. package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +194 -114
  15. package/src/components/JfbBasePoster/Attr.js +21 -1
  16. package/src/components/JfbBasePoster/JfbBasePoster.vue +7 -2
  17. package/src/components/JfbBasePosterBigSmall/Api.js +60 -0
  18. package/src/components/JfbBasePosterBigSmall/Attr.js +106 -0
  19. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +110 -0
  20. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmallLess.less +80 -0
  21. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmallMixin.js +30 -0
  22. package/src/components/JfbBasePosterBigSmall/Mock.js +5 -0
  23. package/src/components/JfbBaseRechargeOrder/JfbBaseRechargeOrder.vue +95 -30
  24. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +3 -0
  25. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +58 -28
@@ -0,0 +1,110 @@
1
+ <template>
2
+ <view
3
+ class="jfb-base-poster-big-small"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-base-poster-big-small__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-base-poster-big-small__edit-icon" @click="delEdit">删除</view>
14
+ </view>
15
+ <!-- #endif -->
16
+ <view class="jfb-base-poster-big-small__body">
17
+ <view>测试插件( {{containerId}} )</view>
18
+ </view>
19
+ </view>
20
+ </template>
21
+
22
+ <script>
23
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
24
+ import { jfbRootExec } from "@/utils/xd.event";
25
+ import JfbBasePosterBigSmallMixin from "./JfbBasePosterBigSmallMixin";
26
+ import { getContainerPropsValue } from "@/utils/xd.base";
27
+ import componentsMixins from "@/mixins/componentsMixins";
28
+ import extsMixins from "@/mixins/extsMixins";
29
+ export default {
30
+ name: "JfbBasePosterBigSmall",
31
+ components: {
32
+ XdFontIcon
33
+ },
34
+ mixins: [
35
+ componentsMixins, extsMixins, JfbBasePosterBigSmallMixin
36
+ ],
37
+ data() {
38
+ return {
39
+
40
+ //todo
41
+ }
42
+ },
43
+ watch: {
44
+ container(value) {
45
+ this.init(value)
46
+ }
47
+ },
48
+ created() {
49
+ this.init(this.container);
50
+
51
+ //todo
52
+ },
53
+ methods: {
54
+ onJfbLoad(options) {
55
+
56
+ // jfbRootExec('baiduUserLogin', {
57
+
58
+ // vm: this,// data: {
59
+
60
+ // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
61
+
62
+ // }
63
+
64
+ // }).then().catch()
65
+ },
66
+ /**
67
+ * @description 监听事件变化
68
+ * @param container {object} 业务组件对象自己
69
+ */
70
+ init(container) {
71
+
72
+ //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
73
+
74
+ //this.height = getContainerPropsValue(container, 'content.height', 10);
75
+ },
76
+ onJfbScroll(options) {
77
+ console.log('event.onJfbScroll', options)
78
+ },
79
+ onJfbReachBottom(options) {
80
+ console.log('event.onJfbReachBottom', options)
81
+ },
82
+ onJfbShow(options) {
83
+ console.log('event.onJfbShow', options)
84
+ },
85
+ onJfbHide(options) {
86
+ console.log('event.onJfbHide', options)
87
+ },
88
+ onJfbBack(options) {
89
+ console.log('event.onJfbBack', options)
90
+ },
91
+ onJfbUpdate(...data) {
92
+ console.log('event.onJfbUpdate', data)
93
+ },
94
+ onJfbCustomEvent(options) {
95
+ console.log('event.onJfbReachBottom', options)
96
+ },
97
+ }
98
+ }
99
+
100
+ </script>
101
+
102
+ <style scoped lang="less">
103
+ @import "./JfbBasePosterBigSmallLess.less";
104
+
105
+ .jfb-base-poster-big-small {
106
+ &__body{
107
+
108
+ }
109
+ }
110
+ </style>
@@ -0,0 +1,80 @@
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-poster-big-small {
16
+ border: 1px dashed rgba(0, 0, 0, 0);
17
+ box-sizing: border-box;
18
+ min-height: unit(50, rpx);
19
+
20
+ &__body{
21
+ position: relative;
22
+ overflow: hidden;
23
+ z-index: 2
24
+ }
25
+
26
+ &.editx {
27
+ position: relative;
28
+ border: 1px dashed blue;
29
+ box-sizing: border-box;
30
+ z-index: 3
31
+
32
+ }
33
+
34
+ &:hover {
35
+ border: 1px dashed blue;
36
+ }
37
+
38
+ &.noBorder {
39
+ border-color: rgba(0,0,0,0);
40
+ border-width: 0;
41
+ }
42
+
43
+
44
+ &__edit {
45
+ cursor: pointer;
46
+ position: absolute;
47
+ right: unit(0, rpx);
48
+ top: unit(-52, rpx);
49
+ height: unit(50, rpx);
50
+ line-height: unit(50, rpx);
51
+ display: flex;
52
+ justify-content: center;
53
+ align-items: center;
54
+ background: rgba(0, 0, 0, .6);
55
+ border-radius: unit(10, rpx);
56
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
57
+ color: #fff;
58
+ font-size: unit(22, rpx);
59
+
60
+ &-icon{
61
+ padding: 0 unit(20, rpx);
62
+ }
63
+
64
+ &.editx {
65
+ box-sizing: border-box;
66
+
67
+ }
68
+ }
69
+ }
70
+ //end
71
+
72
+
73
+ /**notPreview**/
74
+ .jfb-base-poster-big-small {
75
+ &:before {
76
+ content: " ";
77
+ display: table;
78
+ }
79
+ }
80
+ /**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-poster-big-small'
20
+ }
21
+ },
22
+ created() {
23
+
24
+ //@AttrDataCreated
25
+ this.Attr = this.$xdUniHelper.customClone(Attr);
26
+ //@EndAttrDataCreated
27
+
28
+
29
+ },
30
+ }
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ aaaa: {}
5
+ }
@@ -16,12 +16,8 @@
16
16
  </view>
17
17
  <!-- #endif -->
18
18
  <view class="jfb-base-recharge-order__body">
19
- <view v-if="orderList&&orderList.length>0" :style="{ padding: outMargin }">
20
- <view
21
- v-for="(item, index) in orderList"
22
- :key="index"
23
- class="jfb-base-recharge-order__body-order"
24
- @click="handleToDetail(item)"
19
+ <view v-if="loadingList" :style="{ padding: outMargin }" class="skeleton-wrap">
20
+ <view v-for="i in 3" :key="i" class="jfb-base-recharge-order__body-order"
25
21
  :style="{
26
22
  background: backgroundColor,
27
23
  border: borderBox,
@@ -31,40 +27,72 @@
31
27
  }"
32
28
  >
33
29
  <view class="jfb-base-recharge-order__body-order-header">
34
- 充值订单
30
+ <view></view>
35
31
  </view>
36
32
  <view class="jfb-base-recharge-order__body-order-middle">
37
- <view
38
- >订单编号:
39
- {{ item.order_id }}
40
- </view>
41
- <view :style="{ color: item.textColor }">
42
- {{ item.pay_status_name }}
43
- </view>
33
+ <view></view>
34
+ <view></view>
44
35
  </view>
45
36
  <view class="jfb-base-recharge-order__body-order-bottom">
46
- <view>交易日期:{{ item.created_time }} </view>
37
+ <view></view>
47
38
  </view>
39
+ <view class="jfb-base-recharge-order__body-order-bbb">
40
+ <view></view>
41
+ </view>
42
+ </view>
43
+ </view>
44
+ <template v-else>
45
+ <view v-if="orderList&&orderList.length>0" :style="{ padding: outMargin }">
48
46
  <view
49
- style="margin-top: 32rpx; display: flex; justify-content: space-between"
47
+ v-for="(item, index) in orderList"
48
+ :key="index"
49
+ class="jfb-base-recharge-order__body-order"
50
+ @click="handleToDetail(item)"
51
+ :style="{
52
+ background: backgroundColor,
53
+ border: borderBox,
54
+ borderRadius: radius + 'rpx',
55
+ boxShadow: shadowBox,
56
+ marginBottom: padding + 'rpx',
57
+ }"
50
58
  >
51
- <view style="display: flex; align-items: center;font-size: 24rpx;"
52
- >合计:<xd-unit :fontSize="24" iconSize="0.24" :price="item.total_amount"></xd-unit
53
- ></view>
54
- <xd-button
55
- v-if="item.pay_status !== '3000'"
56
- width="200rpx"
57
- style="margin: 0"
58
- size="mini"
59
- type="primary"
60
- :bgColor="mainColor"
61
- @click="handleToPay(item)"
59
+ <view class="jfb-base-recharge-order__body-order-header">
60
+ 充值订单
61
+ </view>
62
+ <view class="jfb-base-recharge-order__body-order-middle">
63
+ <view
64
+ >订单编号:
65
+ {{ item.order_id }}
66
+ </view>
67
+ <view :style="{ color: item.textColor }">
68
+ {{ item.pay_status_name }}
69
+ </view>
70
+ </view>
71
+ <view class="jfb-base-recharge-order__body-order-bottom">
72
+ <view>交易日期:{{ item.created_time }} </view>
73
+ </view>
74
+ <view
75
+ style="margin-top: 32rpx; display: flex; justify-content: space-between"
62
76
  >
63
- {{ item.pay_status === "3007" ? "去支付" : "重新支付" }}
64
- </xd-button>
77
+ <view style="display: flex; align-items: center;font-size: 24rpx;"
78
+ >合计:<xd-unit :fontSize="24" iconSize="0.24" :price="item.total_amount"></xd-unit
79
+ ></view>
80
+ <xd-button
81
+ v-if="item.pay_status !== '3000'"
82
+ width="200rpx"
83
+ style="margin: 0"
84
+ size="mini"
85
+ type="primary"
86
+ :bgColor="mainColor"
87
+ @click="handleToPay(item)"
88
+ >
89
+ {{ item.pay_status === "3007" ? "去支付" : "重新支付" }}
90
+ </xd-button>
91
+ </view>
65
92
  </view>
66
93
  </view>
67
- </view>
94
+ </template>
95
+
68
96
  </view>
69
97
  </view>
70
98
  </template>
@@ -95,6 +123,7 @@ export default {
95
123
  orderList: [],
96
124
  detailPath: "",
97
125
  payPath: "",
126
+ loadingList: false,
98
127
 
99
128
  //基础
100
129
  radius: 0,
@@ -211,6 +240,7 @@ export default {
211
240
  }).value;
212
241
  },
213
242
  getList() {
243
+ this.loadingList = true;
214
244
  jfbRootExec("getRechargeOrderList", {
215
245
  vm: this,
216
246
  data: {
@@ -219,6 +249,7 @@ export default {
219
249
  },
220
250
  })
221
251
  .then((res) => {
252
+ this.loadingList = false;
222
253
  this.orderList = res.list.map((item) => {
223
254
  item.total_amount = item.total_amount / 100;
224
255
  item["created_time"] = this.$xdUniHelper.getDate(
@@ -280,11 +311,45 @@ export default {
280
311
  color: #333;
281
312
  border-bottom: unit(2, rpx) solid #f2f2f2;
282
313
  padding-bottom: unit(24, rpx);
314
+
315
+ & > view {
316
+ .skeleton-wrap &{
317
+ .skeleton-item(200rpx, 32rpx);
318
+ }
319
+ }
320
+ }
321
+
322
+ &-middle {
323
+ & > view:first-child {
324
+ .skeleton-wrap &{
325
+ .skeleton-item(400rpx, 32rpx);
326
+ }
327
+ }
328
+ & > view:last-child {
329
+ .skeleton-wrap &{
330
+ .skeleton-item(100rpx, 32rpx);
331
+ }
332
+ }
283
333
  }
284
334
 
285
335
  &-bottom {
286
336
  border-bottom: unit(2, rpx) solid #f2f2f2;
287
337
  padding-bottom: unit(32,rpx);
338
+
339
+ & > view:first-child {
340
+ .skeleton-wrap &{
341
+ .skeleton-item(400rpx, 32rpx);
342
+ }
343
+ }
344
+ }
345
+ &-bbb {
346
+ padding: unit(32,rpx) 0 0;
347
+
348
+ & > view:first-child {
349
+ .skeleton-wrap &{
350
+ .skeleton-item(100%, 32rpx);
351
+ }
352
+ }
288
353
  }
289
354
 
290
355
  &-middle,
@@ -98,6 +98,9 @@
98
98
  <view class="jfb-base-success__body-cashier-text">
99
99
  {{ info.codes[0].can_read_code }}
100
100
  </view>
101
+ <view v-if="info.codes[0].refund_tip_text" style="color:red;font-size:24rpx;text-align:center;margin-top:10rpx">
102
+ {{info.codes[0].refund_tip_text}}
103
+ </view>
101
104
  <view
102
105
  v-if="info.codes[0].code_end_time"
103
106
  class="jfb-base-success__body-cashier-code"
@@ -37,25 +37,28 @@
37
37
  <xd-font-icon :color="color" icon="iconwode_mian" size="100"></xd-font-icon>
38
38
  </view>
39
39
  </template>
40
- <view class="no-image" :style="{borderColor: color}" v-else>
40
+ <view v-else class="no-image" :style="{borderColor: color}">
41
41
  <xd-font-icon :color="color" icon="iconwode_mian" size="90"></xd-font-icon>
42
42
  </view>
43
+
43
44
  <view v-if="logined && textType ==='N'" :style="{color:color}">{{userInfo|getName}}</view>
44
45
  <view class="vertical-user" v-if="logined && textType ==='Y'" :style="{color:color}">
45
46
  <view>{{userInfo|getName}}</view>
46
- <view @click="handleToLink()" v-if="0">
47
+ <view @click="handleToLink()">
47
48
  <xd-font-icon :color="color" size="40" icon="iconshezhi_mian"></xd-font-icon>
48
49
  </view>
49
50
  </view>
50
51
  </view>
51
- <view @click="handleToLink()" v-if="logined && textType ==='N' && 0 ">
52
- <xd-font-icon :color="color" size="40" icon="iconshezhi_mian"></xd-font-icon>
52
+
53
+ <view @click="handleLogout()" v-if="logined" class="logout">
54
+ <view v-if="textType ==='N'">[退出登录]</view>
53
55
  </view>
54
56
  </view>
55
57
  </view>
56
58
  </view>
57
59
  </template>
58
60
 
61
+
59
62
  <script>
60
63
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
61
64
  import { jfbRootExec } from "@/utils/xd.event";
@@ -64,6 +67,7 @@
64
67
  import extsMixins from "@/mixins/extsMixins"
65
68
  import { getContainerPropsValue } from "@/utils/xd.base";
66
69
  import {mapState} from 'vuex';
70
+ import store from "@/store";
67
71
  export default {
68
72
  name: "JfbBaseUserInfo",
69
73
  components: {
@@ -72,7 +76,7 @@
72
76
  mixins: [componentsMixins,extsMixins,JfbBaseUserInfoMixin],
73
77
  computed: {
74
78
  ...mapState(['jfbAuthorize']),
75
-
79
+
76
80
  outMargin() {
77
81
  let margin = `${this.margin.top !== null ? this.margin.top : 20}rpx`;
78
82
  margin = `${margin} ${this.margin.right !== null ? this.margin.right : 20}rpx`;
@@ -106,24 +110,24 @@
106
110
  logined: false,
107
111
  userInfo: null,
108
112
  address_url: '',
109
-
113
+
110
114
  //基础
111
115
  color: '#333',
112
116
  backgroundColor: 'rgba(0,0,0,0)',
113
117
  textType: 'N', //默认水平
114
118
  radius: 0,
115
-
119
+
116
120
  //投影
117
121
  is_shadow: 'Y',
118
122
  is_shadow_bg: 0,
119
123
  is_shadow_w: 0,
120
-
121
-
124
+
125
+
122
126
  //边框
123
127
  is_border: 'Y',
124
128
  is_border_w: 0,
125
129
  is_border_c: '',
126
-
130
+
127
131
  //其他
128
132
  margin: {
129
133
  top: 0,
@@ -137,7 +141,7 @@
137
141
  right: 0,
138
142
  bottom: 0
139
143
  },
140
-
144
+
141
145
  }
142
146
  },
143
147
  watch: {
@@ -154,8 +158,27 @@
154
158
  url: '/pages/settings/settings'
155
159
  })
156
160
  },
161
+
162
+ async handleLogout(){
163
+ debugger
164
+ // #ifdef H5
165
+ if (this.$configProject.isPreview) return;
166
+ // #endif
167
+
168
+ if (this.jfbAuthorize !== null) {
169
+ this.$xdShowLoading({});
170
+ store.dispatch('logout').then(res=>{
171
+ this.$xdHideLoading();
172
+ this.jfbAuthorize.removeToken('card');
173
+ this.jfbAuthorize.jumpToUserLogin(this, false);
174
+ }).catch(err=>{
175
+ console.error(err);
176
+ })
177
+ }
178
+ },
179
+
157
180
  async onJfbLoad(options) {
158
-
181
+
159
182
  //预览模式
160
183
  if(this.$configProject.isPreview) {
161
184
  jfbRootExec('getBaseUserInfo', {
@@ -170,10 +193,10 @@
170
193
  });
171
194
  return;
172
195
  }
173
-
196
+
174
197
  this.logined = await this.jfbAuthorize.checkUserLogin(true, this, false);
175
198
  if(!this.logined) return;
176
-
199
+
177
200
  jfbRootExec('getBaseUserInfo', {
178
201
  vm: this,
179
202
  data: {}
@@ -194,16 +217,16 @@
194
217
  this.address_url = getContainerPropsValue(container, 'content.address_url', {value: ''});
195
218
  this.color = getContainerPropsValue(container, 'content.textColor', '#333');
196
219
  this.backgroundColor = getContainerPropsValue(container, 'content.backgroundColor', 'rgba(0,0,0,0)');
197
- this.textType = getContainerPropsValue(container, 'content.text_type', 'N');
198
-
220
+ this.textType = "N";//getContainerPropsValue(container, 'content.text_type', 'N');
221
+
199
222
  this.is_shadow = getContainerPropsValue(container, 'content.is_shadow', 'N');
200
223
  this.is_shadow_bg = getContainerPropsValue(container, 'content.is_shadow_bg', '#fff');
201
224
  this.is_shadow_w = getContainerPropsValue(container, 'content.is_shadow_w', '10');
202
-
225
+
203
226
  this.is_border = getContainerPropsValue(container, 'content.is_border', 'N');
204
227
  this.is_border_c = getContainerPropsValue(container, 'content.is_border_c', '#fff');
205
228
  this.is_border_w = getContainerPropsValue(container, 'content.is_border_w', '10');
206
-
229
+
207
230
  this.radius = getContainerPropsValue(container, 'content.radius', '0');
208
231
  },
209
232
  }
@@ -213,7 +236,7 @@
213
236
 
214
237
  <style scoped lang="less">
215
238
  @import "./JfbBaseUserInfoLess.less";
216
-
239
+
217
240
  .vertical-user {
218
241
  display: flex;
219
242
  justify-content: center;
@@ -229,29 +252,29 @@
229
252
  display: flex;
230
253
  align-items: center;
231
254
  justify-content: flex-start;
232
-
233
-
255
+
256
+
234
257
  &-left {
235
258
  display: flex;
236
259
  align-items: center;
237
260
  flex: 1;
238
-
261
+
239
262
  &.vertical {
240
263
  width: 100%;
241
264
  flex-direction: column;
242
-
265
+
243
266
  & > view:last-child {
244
267
  width: 100%;
245
268
  text-align: center;
246
269
  flex-shrink: 0;
247
270
  padding-top: unit(20, rpx);
248
271
  }
249
-
272
+
250
273
  & > image, .no-image {
251
274
  margin-right: unit(0, rpx);
252
275
  }
253
276
  }
254
-
277
+
255
278
  & > image, .no-image {
256
279
  width: unit(140, rpx);
257
280
  height: unit(140, rpx);
@@ -263,21 +286,28 @@
263
286
  flex-shrink: 0;
264
287
  overflow: hidden;
265
288
  }
266
-
289
+
267
290
  .no-image {
268
291
  border: unit(4, rpx) solid #e5e5e5;
269
292
  }
270
-
293
+
271
294
  & > view {
272
295
  color: #383838;
273
296
  font-size: unit(32, rpx);
274
297
  }
275
298
  }
276
-
299
+
277
300
  & > view:nth-child(2) {
278
301
  flex-shrink: 0;
279
302
  }
280
303
  }
281
304
  }
305
+
306
+ .logout {
307
+ font-size: unit(26, rpx);
308
+ & > view {
309
+ color: #333;
310
+ }
311
+ }
282
312
  }
283
313
  </style>