jufubao-base 1.0.232-beta5 → 1.0.232-beta7

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 (53) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseBalance/Api.js +18 -30
  3. package/src/components/JfbBaseBalance/Attr.js +292 -24
  4. package/src/components/JfbBaseBalance/JfbBaseBalance.vue +253 -32
  5. package/src/components/JfbBaseBalance/Mock.js +5 -9
  6. package/src/components/JfbBaseCodeOpenVip/Api.js +17 -39
  7. package/src/components/JfbBaseCodeOpenVip/Attr.js +19 -0
  8. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +52 -23
  9. package/src/components/JfbBaseConsumpCode/Api.js +94 -19
  10. package/src/components/JfbBaseConsumpCode/Attr.js +13 -0
  11. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCode.vue +397 -93
  12. package/src/components/JfbBaseConsumpCode/Mock.js +18 -9
  13. package/src/components/JfbBaseOpenVip/Api.js +11 -40
  14. package/src/components/JfbBaseOpenVip/Attr.js +4 -4
  15. package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +68 -25
  16. package/src/components/JfbBaseOpenVip/Mock.js +16 -9
  17. package/src/components/JfbBaseOpenVip/XdVipList.vue +44 -6
  18. package/src/components/JfbBaseOpenVipDetail/Api.js +17 -39
  19. package/src/components/JfbBaseOpenVipDetail/Attr.js +16 -27
  20. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +108 -23
  21. package/src/components/JfbBasePersonalData/Api.js +9 -41
  22. package/src/components/JfbBasePersonalData/Attr.js +1 -37
  23. package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +43 -21
  24. package/src/components/JfbBasePointsCard/Api.js +4 -44
  25. package/src/components/JfbBasePointsCard/Attr.js +8 -44
  26. package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +24 -107
  27. package/src/components/JfbBasePointsCard/Mock.js +1 -9
  28. package/src/components/JfbBasePointsDetail/Api.js +25 -0
  29. package/src/components/JfbBasePointsDetail/JfbBasePointsDetail.vue +66 -20
  30. package/src/components/JfbBasePointsDetail/Mock.js +2 -9
  31. package/src/components/JfbBaseSavingDetail/Api.js +12 -29
  32. package/src/components/JfbBaseSavingDetail/Attr.js +44 -22
  33. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +593 -29
  34. package/src/components/JfbBaseSavingDetail/components/echarts.min.js +26 -0
  35. package/src/components/JfbBaseSavingDetail/components/echarts.vue +254 -0
  36. package/src/components/JfbBaseSavingDetail/components/wx-canvas.js +105 -0
  37. package/src/components/JfbBaseShare/Api.js +5 -43
  38. package/src/components/JfbBaseShare/JfbBaseShare.vue +13 -12
  39. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +1 -20
  40. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +5 -0
  41. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +5 -1
  42. package/src/components/JfbBaseWithDrawAgain/Api.js +13 -30
  43. package/src/components/JfbBaseWithDrawAgain/Attr.js +70 -26
  44. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgain.vue +255 -32
  45. package/src/components/JfbBaseWithDrawAgain/Mock.js +6 -9
  46. package/src/components/JfbBaseWithDrawRecord/Api.js +4 -43
  47. package/src/components/JfbBaseWithDrawRecord/Attr.js +56 -25
  48. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecord.vue +157 -35
  49. package/src/components/JfbBaseWithDrawRecord/Mock.js +3 -9
  50. package/src/components/JfbBaseWithdraw/Api.js +20 -30
  51. package/src/components/JfbBaseWithdraw/Attr.js +304 -24
  52. package/src/components/JfbBaseWithdraw/JfbBaseWithdraw.vue +166 -32
  53. package/src/components/JfbBaseWithdraw/Mock.js +2 -8
@@ -1,26 +1,60 @@
1
1
  <template>
2
- <view
3
- class="jfb-base-balance"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
2
+ <view class="jfb-base-balance" @click="handleEditxSelect" :class="{ editx : isEditx && active }">
7
3
  <!--#ifdef H5-->
8
- <view
9
- class="jfb-base-balance__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
4
+ <view class="jfb-base-balance__edit" :class="{ editx : isEditx && active }" v-if="isEditx && active">
13
5
  <view class="jfb-base-balance__edit-icon" @click="delEdit">删除</view>
14
6
  </view>
15
7
  <!-- #endif -->
16
8
  <view class="jfb-base-balance__body">
17
- <view>测试插件( {{containerId}} )</view>
9
+ <view class="jfb-base-balance__body-tab">
10
+ <view v-for="(item,index) in wallet_list" :key="index" @click="handleSwitchTab(item)"
11
+ class="jfb-base-balance__body-tab-item">
12
+ {{item.show_name}}
13
+ <view v-if="wallet_type===item.wallet_type" class="check" :style="{background: mainColor
14
+ }"></view>
15
+ <view class="check" v-else></view>
16
+ </view>
17
+ </view>
18
+ <view style="display: flex;justify-content: space-between;align-items: center;" :style="[bodyStyleComp]">
19
+ <view class="jfb-base-balance__body-points">
20
+ <view>
21
+ 我的余额
22
+ <XdFontIcon @click="showDialog=true" style="margin-left: 10rpx" size="20" icon="iconmingchengtubiao">
23
+ </XdFontIcon>
24
+ </view>
25
+ <view>{{getAmout(amount)}}</view>
26
+ <view>可用:{{getAmout(amount)}}</view>
27
+ </view>
28
+ <xd-button v-if="isWithDraw==='Y'" style="margin: 0" size="mini" type="primary"
29
+ @click="handleWithdraw">提现</xd-button>
30
+ </view>
31
+ <view v-if="recordList&&recordList.length>0" :style="[bodyStyleComp]" class="jfb-base-balance__body-list">
32
+ <view v-for="(item,index) in recordList" :key="index" class="jfb-base-balance__body-list-item">
33
+ <view class="jfb-base-balance__body-list-item-info">
34
+ <view class="jfb-base-balance__body-list-item-info-label">{{item.trade_type_name}}</view>
35
+ <view :class="item.operate_type==='A'?'income':'expenses'"
36
+ class="jfb-base-balance__body-list-item-info-value">
37
+ <text>{{item.operate_type==='A'?'+':'-'}}</text>
38
+ {{getAmout(item.amount)}}
39
+ </view>
40
+ </view>
41
+ <view class="jfb-base-balance__body-list-item-date">{{item.created_time}}</view>
42
+ </view>
43
+ </view>
44
+ <XdNoData v-else></XdNoData>
45
+ <XdDailog :cancel="false" @onBtn="showDialog=false" confirmText="我知道了" title="积分说明" :show.sync="showDialog">
46
+ <xd-content-xss v-html="notice"></xd-content-xss>
47
+ </XdDailog>
18
48
  </view>
19
49
  </view>
20
50
  </template>
21
51
 
22
52
  <script>
23
53
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
54
+ import XdButton from "@/components/XdButton/XdButton";
55
+ import XdDailog from '@/components/XdDailog/XdDailog.vue';
56
+ import XdNoData from "@/components/XdNoData/XdNoData";
57
+ import XdContentXss from '@/components/XdContentXss/XdContentXss';
24
58
  import { jfbRootExec } from "@/utils/xd.event";
25
59
  import JfbBaseBalanceMixin from "./JfbBaseBalanceMixin";
26
60
  import { getContainerPropsValue } from "@/utils/xd.base";
@@ -29,17 +63,47 @@
29
63
  export default {
30
64
  name: "JfbBaseBalance",
31
65
  components: {
32
- XdFontIcon
66
+ XdFontIcon,
67
+ XdDailog,
68
+ XdContentXss,
69
+ XdButton,
70
+ XdNoData
33
71
  },
34
72
  mixins: [
35
73
  componentsMixins, extsMixins, JfbBaseBalanceMixin
36
74
  ],
37
75
  data() {
38
76
  return {
39
-
40
- //todo
77
+ income: false,
78
+ radius: 0,
79
+ margin: {},
80
+ padding: {},
81
+ bgColor: '',
82
+ bodyBorder: {},
83
+ notice: '',
84
+ showDialog: false,
85
+ withDrawRoutePath: '',
86
+ wallet_type: '',
87
+ wallet_list: [],
88
+ amount: 0,
89
+ isWithDraw: 'N',
90
+ recordList: [],
91
+ hasNext: true,
92
+ page_token: 1,
93
+ next_page_token: ''
41
94
  }
42
95
  },
96
+ computed: {
97
+ bodyStyleComp() {
98
+ return {
99
+ borderRadius: `${this.radius}rpx`,
100
+ margin: this.getMarginAndPadding(this.margin, 20),
101
+ padding: this.getMarginAndPadding(this.padding, 40),
102
+ background: this.bgColor,
103
+ border: this.bodyBorder,
104
+ }
105
+ },
106
+ },
43
107
  watch: {
44
108
  container(value, oldValue) {
45
109
  if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
@@ -48,37 +112,111 @@
48
112
  },
49
113
  created() {
50
114
  this.init(this.container);
51
-
52
- //todo
53
115
  },
54
116
  methods: {
55
117
  onJfbLoad(options) {
118
+ this.method = options.method
119
+ this.getContent()
120
+ this.getDetail()
121
+ },
122
+ getAmout(amount) {
123
+ return this.$xdUniHelper.divisionFloatNumber(amount, 100)
124
+ },
125
+ getDetail() {
126
+ jfbRootExec("getBalanceDetail", {
127
+ vm: this,
128
+ data: {
129
+ method: this.method
130
+ },
131
+ }).then(res => {
132
+ this.wallet_type = res.wallet_list[0].wallet_type
133
+ this.isWithDraw = res.wallet_list[0].is_support_withdraw;
134
+ this.amount = res.wallet_list[0].amount;
135
+ this.wallet_list = res.wallet_list
136
+ this.getBalanceRecord()
137
+ }).catch(err => {
138
+ console.log(err, 'err');
56
139
 
57
- // jfbRootExec('baiduUserLogin', {
58
-
59
- // vm: this,// data: {
60
-
61
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
62
-
63
- // }
64
-
65
- // }).then().catch()
140
+ })
141
+ },
142
+ getBalanceRecord(type) {
143
+ jfbRootExec("getBalanceWalletTradeList", {
144
+ vm: this,
145
+ data: {
146
+ wallet_type: this.wallet_type,
147
+ page_size: 10,
148
+ page_token: this.page_token
149
+ },
150
+ }).then(res => {
151
+ let list = res.list.map(item => {
152
+ item["created_time"] = this.$xdUniHelper.getDate(
153
+ item["created_time"] * 1000
154
+ ).fullTime;
155
+ return item;
156
+ })
157
+ if (this.page_token === 1) {
158
+ this.recordList = list
159
+ } else {
160
+ this.recordList = this.recordList.concat(list);
161
+ }
162
+ this.next_page_token = res.next_page_token
163
+ this.hasNext = res.next_page_token !== "";
164
+ })
165
+ },
166
+ getContent() {
167
+ jfbRootExec("getListBaseNewsContent", {
168
+ vm: this,
169
+ data: {
170
+ page_id: this.pageAttr["page_id"], //页面ID
171
+ container_id: this.containerId, //组件ID
172
+ limit: 1,
173
+ },
174
+ })
175
+ .then((res) => {
176
+ if (res.list.length > 0) {
177
+ if (res.list && res.list.length > 0) {
178
+ this.notice = this.$xdUniHelper.filterHtml(res.list[0].content);
179
+ }
180
+ this.noticeStatus = true;
181
+ }
182
+ })
183
+ .catch((error) => {
184
+ console.error(error);
185
+ });
66
186
  },
67
187
  /**
68
188
  * @description 监听事件变化
69
189
  * @param container {object} 业务组件对象自己
70
190
  */
71
191
  init(container) {
72
-
73
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
74
-
75
- //this.height = getContainerPropsValue(container, 'content.height', 10);
192
+ this.radius = getContainerPropsValue(container, 'content.radius', '20');
193
+ this.margin = getContainerPropsValue(container, 'content.bodyMargin', {});
194
+ this.padding = getContainerPropsValue(container, 'content.bodyPadding', {});
195
+ this.bgColor = getContainerPropsValue(container, 'content.bgColor', '#fff');
196
+ this.bodyBorder = this.getXdBorder({}, getContainerPropsValue(container, 'content.bodyBorder', {}))
197
+ this.withDrawRoutePath = getContainerPropsValue(container, 'content.withDrawRoutePath', { value: '' }).value;
198
+ },
199
+ handleWithdraw() {
200
+ this.$xdUniHelper.navigateTo({ url: `${this.withDrawRoutePath}?wallet_type=${this.wallet_type}&method=${this.method}` })
201
+ },
202
+ handleSwitchTab(item) {
203
+ this.wallet_type = item.wallet_type;
204
+ this.isWithDraw = item.is_support_withdraw;
205
+ this.amount = item.amount;
206
+ this.next_page_token=''
207
+ this.hasNext = true;
208
+ this.page_token = 1;
209
+ this.recordList = [];
210
+ this.getBalanceRecord()
76
211
  },
77
212
  onJfbScroll(options) {
78
213
  console.log('event.onJfbScroll', options)
79
214
  },
80
215
  onJfbReachBottom(options) {
81
- console.log('event.onJfbReachBottom', options)
216
+ if (this.hasNext) {
217
+ this.page_token = this.next_page_token;
218
+ this.getBalanceRecord()
219
+ }
82
220
  },
83
221
  onJfbShow(options) {
84
222
  console.log('event.onJfbShow', options)
@@ -104,8 +242,91 @@
104
242
  @import "./JfbBaseBalanceLess.less";
105
243
 
106
244
  .jfb-base-balance {
107
- &__body{
245
+ &__body {
246
+ &-tab {
247
+ display: flex;
248
+ justify-content: space-around;
249
+ align-items: center;
250
+ color: #666666;
251
+ font-size: 32rpx;
252
+ background: #fff;
253
+ padding: 24rpx 0;
108
254
 
255
+ &-item {
256
+ display: flex;
257
+ flex-direction: column;
258
+ align-items: center;
259
+ }
260
+
261
+ .check {
262
+ width: 60rpx;
263
+ height: 6rpx;
264
+ margin-top: 12rpx;
265
+ }
266
+ }
267
+
268
+ &-points {
269
+ background: #fff;
270
+
271
+ &>view:first-child {
272
+ display: flex;
273
+ align-items: center;
274
+ color: #333;
275
+ font-size: 24rpx;
276
+ }
277
+
278
+ &>view:nth-child(2) {
279
+ color: #333;
280
+ font-size: 64rpx;
281
+ font-weight: 500;
282
+ margin: 20rpx 0;
283
+ }
284
+
285
+ &>view:nth-child(3) {
286
+ color: #333333;
287
+ font-size: 28rpx;
288
+ }
289
+ }
290
+
291
+ &-list {
292
+ &-item {
293
+ margin-bottom: 40rpx;
294
+
295
+ &-info {
296
+ display: flex;
297
+ justify-content: space-between;
298
+ align-items: center;
299
+
300
+ &-label {
301
+ color: #333333;
302
+ font-size: 28rpx;
303
+ }
304
+
305
+ &-value {
306
+ font-size: 32rpx;
307
+ font-weight: 700;
308
+ }
309
+
310
+ .income {
311
+ color: #FF5A39;
312
+ }
313
+
314
+ .expenses {
315
+ color: #00C800;
316
+ }
317
+ }
318
+
319
+ &-date {
320
+ color: #999999;
321
+ font-size: 22rpx;
322
+ margin-top: 26rpx;
323
+ }
324
+ }
325
+
326
+ &-item:last-child {
327
+ margin-bottom: 0;
328
+ }
329
+ }
109
330
  }
110
331
  }
111
- </style>
332
+ </style>
@@ -1,13 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = {
4
-
5
- getBalanceByIdFilmSquate:{},
6
-
7
- updateBalanceFilmPaiqiDate:{},
8
-
9
- removeBalanceFilmAddress:{},
10
-
11
- addBalanceFilmcart:{},
12
-
4
+
5
+ getBalanceDetail: { "wallet_list": [{ "sort": 2, "wallet_type": "UC", "show_name": "可用余额", "amount": 19940, "is_support_withdraw": "Y" }, { "sort": 0, "wallet_type": "UT", "show_name": "待到账余额", "amount": 0, "is_support_withdraw": "N" }], "request_id": "279b309d137cae9f" },
6
+
7
+ getBalanceWalletTradeList: { "next_page_token": "2", "total_size": 0, "list": [{ "trade_nnid": "eDaOl5aPD4Fx8gtBJC1bd", "order_id": "i771037005030096968", "amount": 10, "trade_type": "user_withdraw_chargeback", "trade_type_name": "提现失败", "operate_type": "A", "operate_type_name": "收入", "trade_name": "", "comment": "余额提现", "created_time": 1744883229 }, { "trade_nnid": "qhBI-btv4hh8TpsGdCrDG", "order_id": "i771066286233878607", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744796528 }, { "trade_nnid": "NCI4DolRx-0GqFfY5J9-P", "order_id": "i771065517556367438", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744796345 }, { "trade_nnid": "upM7epMxX3FqoTytFyKUn", "order_id": "i771062549364867149", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744795637 }, { "trade_nnid": "nzH3e_P25C-q7wcN52L-z", "order_id": "i771061580484837452", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744795406 }, { "trade_nnid": "aduSpdXNKl0dwqxPhovf0", "order_id": "i771059916772212811", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744795009 }, { "trade_nnid": "dTTmA75uN-Mv3as8XE1Te", "order_id": "i771054224359293002", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744793652 }, { "trade_nnid": "jo4IOWJ1wPyGXiA5wQYUU", "order_id": "i771037005030096968", "amount": 10, "trade_type": "user_withdraw", "trade_type_name": "余额提现", "operate_type": "R", "operate_type_name": "支出", "trade_name": "", "comment": "", "created_time": 1744789547 }, { "trade_nnid": "78qU6Cemnhqnvms2-iJDI", "order_id": "i771019326374281284", "amount": 1000, "trade_type": "user_withdraw_chargeback", "trade_type_name": "提现失败", "operate_type": "A", "operate_type_name": "收入", "trade_name": "", "comment": "余额提现", "created_time": 1744789418 }, { "trade_nnid": "yLLohJoE-qowAuxastB1z", "order_id": "i771034873199591494", "amount": 1000, "trade_type": "user_withdraw_chargeback", "trade_type_name": "提现失败", "operate_type": "A", "operate_type_name": "收入", "trade_name": "", "comment": "余额提现", "created_time": 1744789410 }], "request_id": "e9f0142e62066570" },
8
+
13
9
  }
@@ -6,53 +6,31 @@
6
6
  */
7
7
  module.exports = [
8
8
  {
9
- //设置方法名字当别忘记加上【模块名字】:Code
10
- mapFnName: 'getCodeByIdFilmSquate',
11
- title: '获取电影广场列表',
12
- path: '/api/account/film/list-film-square',
13
- isRule: false,
9
+ mapFnName: "getExchangeCode",
10
+ title: "兑换码",
11
+ path: "/member/v1/:xnamespace/exchange/:exchange_code",
12
+ isRule: true,
14
13
  params: {
15
- last_key: ['当前页', 'Number', '必选'],
16
- page_size: ['每页数量', 'Number', '必选'],
14
+ xnamespace: ['命名空间', 'String', '必选'],
15
+ exchange_code: ['兑换码', 'String', '必选']
17
16
  },
18
17
  isConsole: true,
19
18
  disabled: true,
20
19
  },
21
20
  {
22
- //设置方法名字当别忘记加上【模块名字】:Code
23
- mapFnName: 'updateCodeFilmPaiqiDate',
24
- title: '更新排期',
25
- path: '/api/account/film/paiqi-date',
21
+ mapFnName: "createVipOrder",
22
+ title: "创建VIP订单",
23
+ path: "/member/v1/order/submit",
26
24
  isRule: false,
27
- params: {
28
- film_id: ['电影id', 'Number', '必选'],
29
- cinema_id: ['影院id', 'Number', '必选'],
30
- },
31
- isConsole: true,
32
- disabled: true,
33
- },
34
- {
35
- //设置方法名字当别忘记加上【模块名字】:Code
36
- mapFnName: 'removeCodeFilmAddress',
37
- title: '删除我的配送地址',
38
- path: '/api/account/film/paiqi-date',
39
- isRule: false,
40
- params: {
41
- film_id: ['电影id', 'Number', '必选'],
25
+ data: {
26
+ business_code: ['业务编码', 'String', '必选'],
27
+ product_id: ['商品id', 'Number', '必选'],
28
+ notify_provider_id: ['notify_provider_id', 'Number', '可选'],
29
+ selected_card_list_json: ['已使用的卡券数据', 'array', '可选'],
30
+ selected_wallet_list_json: ['已使用的钱包数据', 'array', '可选'],
31
+ need_pay_price: ['需要支付的价格', 'Number', '可选']
42
32
  },
43
33
  isConsole: true,
44
34
  disabled: true,
45
- },
46
- {
47
- //设置方法名字当别忘记加上【模块名字】:Code
48
- mapFnName: 'addCodeFilmcart',
49
- title: '添加购物车',
50
- path: '/api/account/film/paiqi-date',
51
- isRule: false,
52
- params: {
53
- film_id: ['电影id', 'Number', '必选'],
54
- },
55
- isConsole: true,
56
- disabled: true,
57
- },
35
+ }
58
36
  ];
@@ -6,7 +6,26 @@
6
6
  export default {
7
7
  style: [],
8
8
  content: (data) => {
9
+ let imageConfig = {
10
+ sort: true,
11
+ maxlen: 100,
12
+ action: "aliyun",
13
+ qiniuCdn: "aliyun",
14
+ size: 2,
15
+ tipsformet: "上传文件格式:@imageType@,不超过@size@MB。该上传图会在用户端显示,不建议上传超过1920*1080图片。",
16
+ uploadType: "aliyun",
17
+ type: ["jpg", "png", "jpeg", "gif"],
18
+ };
9
19
  return [
20
+ {
21
+ label: "文案描述:", //label
22
+ ele: "xd-tinymce", //package 名称
23
+ valueKey: "description", //form[valueKey]
24
+ value: data.description || "",
25
+ imageConfig: imageConfig,
26
+ inline: false,
27
+ groupKey: "content",
28
+ },
10
29
  {
11
30
  label: '共享PLUS会员用户协议:',
12
31
  ele: 'xd-site-news',
@@ -14,30 +14,32 @@
14
14
  </view>
15
15
  <!-- #endif -->
16
16
  <view class="jfb-base-code-open-vip__body" :style="[bodyStyle]">
17
- <view v-if="0" class="vip_panel">
17
+ <view v-if="step === 1" class="vip_panel">
18
18
  <view class="combo_section">
19
19
  <view class="code_input_wrap">
20
- <input class="code_input" placeholder="请输入兑换码"></input>
20
+ <input class="code_input" v-model="exchange_code" placeholder="请输入兑换码"></input>
21
21
  </view>
22
22
  </view>
23
23
  <view class="combo_section">
24
- <view class="desc_tit">文案描述</view>
25
- <view class="desc_cont">文案内容</view>
24
+ <!-- <view class="desc_tit">文案描述</view> -->
25
+ <view class="desc_cont">
26
+ <xd-content-xss :html="description"></xd-content-xss>
27
+ </view>
26
28
  </view>
27
29
  <view class="fixed_bottom" :style="[fixed_bottom]">
28
- <xd-button type="primary" width="600rpx">查询</xd-button>
30
+ <xd-button type="primary" width="600rpx" @click="searchCode">查询</xd-button>
29
31
  <view class="plus_privacy">开通视为同意 <text @click.stop="handlePrivacy('privacy_service')"></text>《共享PLUS会员用户协议》</view>
30
32
  </view>
31
33
  </view>
32
34
  <view v-else class="vip_panel">
33
35
  <view class="combo_section">
34
- <view class="combo_section-title">兑换码:12312983719283711</view>
35
- <xd-list-item label="套餐名称" paddingLR="40rpx">¥125.00</xd-list-item>
36
- <xd-list-item label="套餐期限" paddingLR="40rpx">30天</xd-list-item>
37
- <xd-list-item label="套餐金额" paddingLR="40rpx">¥125.00</xd-list-item>
36
+ <view class="combo_section-title">兑换码:{{ vipInfo.exchange_code }}</view>
37
+ <xd-list-item label="套餐名称" paddingLR="40rpx">{{ vipInfo.product_name }}</xd-list-item>
38
+ <xd-list-item label="套餐期限" paddingLR="40rpx">{{ vipInfo.life_cycle_label }}</xd-list-item>
39
+ <xd-list-item label="套餐金额" paddingLR="40rpx">¥{{ $xdUniHelper.divisionFloatNumber(vipInfo.sale_price, 100) }}</xd-list-item>
38
40
  </view>
39
41
  <view class="fixed_bottom" :style="[fixed_bottom]">
40
- <xd-button type="primary" width="600rpx">立即兑换</xd-button>
42
+ <xd-button type="primary" width="600rpx" @click="p_createVipOrder">立即兑换</xd-button>
41
43
  <view class="plus_privacy">开通视为同意 <text @click.stop="handlePrivacy('privacy_service')"></text>《共享PLUS会员用户协议》</view>
42
44
  </view>
43
45
  </view>
@@ -49,6 +51,7 @@
49
51
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
50
52
  import XdListItem from "@/components/CusListItem/CusListItem"
51
53
  import XdButton from "@/components/XdButton/XdButton";
54
+ import XdContentXss from "@/components/XdContentXss/XdContentXss"
52
55
  import { jfbRootExec } from "@/utils/xd.event";
53
56
  import JfbBaseCodeOpenVipMixin from "./JfbBaseCodeOpenVipMixin";
54
57
  import { getContainerPropsValue } from "@/utils/xd.base";
@@ -59,7 +62,8 @@
59
62
  components: {
60
63
  XdFontIcon,
61
64
  XdListItem,
62
- XdButton
65
+ XdButton,
66
+ XdContentXss
63
67
  },
64
68
  mixins: [
65
69
  componentsMixins, extsMixins, JfbBaseCodeOpenVipMixin
@@ -67,7 +71,13 @@
67
71
  data() {
68
72
  return {
69
73
  closeMask: true,
74
+ xnamespace: "",
75
+
76
+ exchange_code: "",
77
+ step: 1,
78
+ vipInfo: {},
70
79
  //todo
80
+ description: "",
71
81
  vipSuccessPath: "",
72
82
  }
73
83
  },
@@ -95,22 +105,14 @@
95
105
  },
96
106
  methods: {
97
107
  onJfbLoad(options) {
98
-
99
- // jfbRootExec('baiduUserLogin', {
100
-
101
- // vm: this,// data: {
102
-
103
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
104
-
105
- // }
106
-
107
- // }).then().catch()
108
+ this.setNameSpace(options);
108
109
  },
109
110
  /**
110
111
  * @description 监听事件变化
111
112
  * @param container {object} 业务组件对象自己
112
113
  */
113
114
  init(container) {
115
+ this.description = getContainerPropsValue(container, 'content.description', "");
114
116
  this.vipSuccessPath = getContainerPropsValue(container, 'content.vipSuccessPath', {value: ""}).value;
115
117
  },
116
118
  handlePrivacy(code){
@@ -120,8 +122,36 @@
120
122
  url: `/pages/content/content?${params}`
121
123
  })
122
124
  },
125
+ searchCode(){
126
+ if(!this.exchange_code) return;
127
+ this.$xdShowLoading({});
128
+ jfbRootExec("getExchangeCode", {
129
+ vm: this,
130
+ data: {
131
+ xnamespace: this.xnamespace,
132
+ exchange_code: this.exchange_code
133
+ }
134
+ }).then(res => {
135
+ this.$xdHideLoading();
136
+ this.step = 2;
137
+ this.vipInfo = res;
138
+ })
139
+ },
140
+ p_createVipOrder(){
141
+ jfbRootExec("createVipOrder", {
142
+ vm: this,
143
+ data: {
144
+ business_code: this.xnamespace,
145
+ product_id: this.vipInfo.product_id,
146
+ notify_provider_id: this.projectAttr.notify_provider_id,
147
+ need_pay_price: 0
148
+ }
149
+ }).then(res => {
150
+
151
+ })
152
+ },
123
153
  onJfbScroll(options) {
124
- console.log('event.onJfbScroll', options)
154
+ // console.log('event.onJfbScroll', options)
125
155
  },
126
156
  onJfbReachBottom(options) {
127
157
  console.log('event.onJfbReachBottom', options)
@@ -174,7 +204,6 @@
174
204
  text-align: center;
175
205
  }
176
206
  .desc_cont{
177
- height: 100rpx;
178
207
  padding: 24rpx;
179
208
  }
180
209
  .code_input_wrap{