jufubao-base 1.0.243-beta201 → 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 (155) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseAfterOrderList/Attr.js +0 -13
  3. package/src/components/JfbBaseAfterOrderList/JfbBaseAfterOrderList.vue +1 -33
  4. package/src/components/JfbBaseBalance/Api.js +46 -0
  5. package/src/components/JfbBaseBalance/Attr.js +316 -0
  6. package/src/components/JfbBaseBalance/JfbBaseBalance.vue +336 -0
  7. package/src/components/{JfbBaseAfterSales/JfbBaseAfterSalesLess.less → JfbBaseBalance/JfbBaseBalanceLess.less} +2 -2
  8. package/src/components/{JfbBaseAfterSales/JfbBaseAfterSalesMixin.js → JfbBaseBalance/JfbBaseBalanceMixin.js} +1 -1
  9. package/src/components/JfbBaseBalance/Mock.js +9 -0
  10. package/src/components/JfbBaseCodeOpenVip/Api.js +35 -0
  11. package/src/components/JfbBaseCodeOpenVip/Attr.js +281 -0
  12. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +251 -0
  13. package/src/components/{JfbBaseAfterSalesFast/JfbBaseAfterSalesFastLess.less → JfbBaseCodeOpenVip/JfbBaseCodeOpenVipLess.less} +2 -2
  14. package/src/components/{JfbBaseAfterSalesList/JfbBaseAfterSalesListMixin.js → JfbBaseCodeOpenVip/JfbBaseCodeOpenVipMixin.js} +1 -1
  15. package/src/components/JfbBaseCodeOpenVip/Mock.js +13 -0
  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/{JfbBaseAfterSalesList/JfbBaseAfterSalesListLess.less → JfbBaseConsumpCode/JfbBaseConsumpCodeLess.less} +2 -2
  20. package/src/components/{JfbBaseAfterSalesFast/JfbBaseAfterSalesFastMixin.js → JfbBaseConsumpCode/JfbBaseConsumpCodeMixin.js} +1 -1
  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 +12 -0
  31. package/src/components/JfbBaseNoticeDialog/Api.js +1 -1
  32. package/src/components/JfbBaseNoticeDialog/Attr.js +26 -0
  33. package/src/components/JfbBaseNoticeDialog/JfbBaseNoticeDialog.vue +38 -15
  34. package/src/components/JfbBaseNoticeGroup/Api.js +23 -0
  35. package/src/components/JfbBaseNoticeGroup/Attr.js +237 -0
  36. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroup.vue +174 -0
  37. package/src/components/{JfbBaseAfterSalesDetail/JfbBaseAfterSalesDetailLess.less → JfbBaseNoticeGroup/JfbBaseNoticeGroupLess.less} +2 -2
  38. package/src/components/{JfbBaseAfterSalesDetail/JfbBaseAfterSalesDetailMixin.js → JfbBaseNoticeGroup/JfbBaseNoticeGroupMixin.js} +1 -1
  39. package/src/components/JfbBaseNoticeGroup/Mock.js +13 -0
  40. package/src/components/JfbBaseOpenVip/Api.js +39 -0
  41. package/src/components/JfbBaseOpenVip/Attr.js +331 -0
  42. package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +457 -0
  43. package/src/components/JfbBaseOpenVip/JfbBaseOpenVipLess.less +79 -0
  44. package/src/components/JfbBaseOpenVip/JfbBaseOpenVipMixin.js +30 -0
  45. package/src/components/JfbBaseOpenVip/Mock.js +7 -0
  46. package/src/components/JfbBaseOpenVip/XdVipList.vue +131 -0
  47. package/src/components/JfbBaseOpenVipCard/Api.js +58 -0
  48. package/src/components/JfbBaseOpenVipCard/Attr.js +48 -0
  49. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCard.vue +111 -0
  50. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCardLess.less +79 -0
  51. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCardMixin.js +30 -0
  52. package/src/components/JfbBaseOpenVipCard/Mock.js +13 -0
  53. package/src/components/JfbBaseOpenVipDetail/Api.js +35 -0
  54. package/src/components/JfbBaseOpenVipDetail/Attr.js +37 -0
  55. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +234 -0
  56. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetailLess.less +79 -0
  57. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetailMixin.js +30 -0
  58. package/src/components/JfbBaseOpenVipDetail/Mock.js +15 -0
  59. package/src/components/JfbBaseOrderDetail/Attr.js +0 -36
  60. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +178 -39
  61. package/src/components/JfbBaseOrderList/Attr.js +0 -36
  62. package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +0 -30
  63. package/src/components/JfbBaseOrderList/Mock.js +1 -1
  64. package/src/components/JfbBaseOrderList/XdTfkOrderItem.vue +5 -17
  65. package/src/components/JfbBasePay/Attr.js +52 -0
  66. package/src/components/JfbBasePay/JfbBasePay.vue +23 -6
  67. package/src/components/JfbBasePay/Mock.js +0 -9
  68. package/src/components/JfbBasePersonalData/Api.js +26 -0
  69. package/src/components/JfbBasePersonalData/Attr.js +13 -0
  70. package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +200 -0
  71. package/src/components/JfbBasePersonalData/JfbBasePersonalDataLess.less +79 -0
  72. package/src/components/JfbBasePersonalData/JfbBasePersonalDataMixin.js +30 -0
  73. package/src/components/JfbBasePersonalData/Mock.js +13 -0
  74. package/src/components/JfbBasePhoneLogin/JfbBasePhoneLogin.vue +11 -1
  75. package/src/components/JfbBasePointsCard/Api.js +18 -0
  76. package/src/components/JfbBasePointsCard/Attr.js +187 -0
  77. package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +212 -0
  78. package/src/components/JfbBasePointsCard/JfbBasePointsCardLess.less +79 -0
  79. package/src/components/JfbBasePointsCard/JfbBasePointsCardMixin.js +30 -0
  80. package/src/components/JfbBasePointsCard/Mock.js +5 -0
  81. package/src/components/JfbBasePointsDetail/Api.js +48 -0
  82. package/src/components/JfbBasePointsDetail/Attr.js +305 -0
  83. package/src/components/JfbBasePointsDetail/JfbBasePointsDetail.vue +267 -0
  84. package/src/components/JfbBasePointsDetail/JfbBasePointsDetailLess.less +79 -0
  85. package/src/components/JfbBasePointsDetail/JfbBasePointsDetailMixin.js +30 -0
  86. package/src/components/JfbBasePointsDetail/Mock.js +6 -0
  87. package/src/components/JfbBasePoster/Attr.js +1 -1
  88. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +2 -2
  89. package/src/components/JfbBasePosterGroup/Api.js +22 -0
  90. package/src/components/JfbBasePosterGroup/Attr.js +156 -0
  91. package/src/components/JfbBasePosterGroup/JfbBasePosterGroup.vue +268 -0
  92. package/src/components/JfbBasePosterGroup/JfbBasePosterGroupLess.less +79 -0
  93. package/src/components/JfbBasePosterGroup/JfbBasePosterGroupMixin.js +30 -0
  94. package/src/components/JfbBasePosterGroup/Mock.js +13 -0
  95. package/src/components/JfbBaseSavingDetail/Api.js +41 -0
  96. package/src/components/JfbBaseSavingDetail/Attr.js +70 -0
  97. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +724 -0
  98. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetailLess.less +79 -0
  99. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetailMixin.js +30 -0
  100. package/src/components/JfbBaseSavingDetail/Mock.js +10 -0
  101. package/src/components/JfbBaseSavingDetail/components/echarts.min.js +26 -0
  102. package/src/components/JfbBaseSavingDetail/components/echarts.vue +254 -0
  103. package/src/components/JfbBaseSavingDetail/components/wx-canvas.js +105 -0
  104. package/src/components/JfbBaseShare/Api.js +20 -0
  105. package/src/components/JfbBaseShare/Attr.js +59 -0
  106. package/src/components/JfbBaseShare/JfbBaseShare.vue +282 -0
  107. package/src/components/JfbBaseShare/JfbBaseShareLess.less +79 -0
  108. package/src/components/JfbBaseShare/JfbBaseShareMixin.js +30 -0
  109. package/src/components/JfbBaseShare/Mock.js +16 -0
  110. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +9 -3
  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/JfbBaseWithDrawAgain/Api.js +41 -0
  120. package/src/components/JfbBaseWithDrawAgain/Attr.js +92 -0
  121. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgain.vue +354 -0
  122. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainLess.less +79 -0
  123. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainMixin.js +30 -0
  124. package/src/components/JfbBaseWithDrawAgain/Mock.js +10 -0
  125. package/src/components/JfbBaseWithDrawRecord/Api.js +19 -0
  126. package/src/components/JfbBaseWithDrawRecord/Attr.js +79 -0
  127. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecord.vue +233 -0
  128. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordLess.less +79 -0
  129. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordMixin.js +30 -0
  130. package/src/components/JfbBaseWithDrawRecord/Mock.js +7 -0
  131. package/src/components/JfbBaseWithdraw/Api.js +48 -0
  132. package/src/components/JfbBaseWithdraw/Attr.js +328 -0
  133. package/src/components/JfbBaseWithdraw/JfbBaseWithdraw.vue +272 -0
  134. package/src/components/JfbBaseWithdraw/JfbBaseWithdrawLess.less +79 -0
  135. package/src/components/JfbBaseWithdraw/JfbBaseWithdrawMixin.js +30 -0
  136. package/src/components/JfbBaseWithdraw/Mock.js +7 -0
  137. package/src/components/JfbBaseWxAuthorize/JfbBaseWxAuthorize.vue +10 -0
  138. package/src/components/JfbBaseAfterSales/Api.js +0 -58
  139. package/src/components/JfbBaseAfterSales/Attr.js +0 -25
  140. package/src/components/JfbBaseAfterSales/JfbBaseAfterSales.vue +0 -550
  141. package/src/components/JfbBaseAfterSales/Mock.js +0 -13
  142. package/src/components/JfbBaseAfterSales/refundOrderInfo.vue +0 -150
  143. package/src/components/JfbBaseAfterSalesDetail/Api.js +0 -41
  144. package/src/components/JfbBaseAfterSalesDetail/Attr.js +0 -25
  145. package/src/components/JfbBaseAfterSalesDetail/JfbBaseAfterSalesDetail.vue +0 -538
  146. package/src/components/JfbBaseAfterSalesDetail/Mock.js +0 -60
  147. package/src/components/JfbBaseAfterSalesDetail/secProd.vue +0 -58
  148. package/src/components/JfbBaseAfterSalesFast/Api.js +0 -30
  149. package/src/components/JfbBaseAfterSalesFast/Attr.js +0 -32
  150. package/src/components/JfbBaseAfterSalesFast/JfbBaseAfterSalesFast.vue +0 -297
  151. package/src/components/JfbBaseAfterSalesFast/Mock.js +0 -38
  152. package/src/components/JfbBaseAfterSalesList/Api.js +0 -40
  153. package/src/components/JfbBaseAfterSalesList/Attr.js +0 -107
  154. package/src/components/JfbBaseAfterSalesList/JfbBaseAfterSalesList.vue +0 -463
  155. package/src/components/JfbBaseAfterSalesList/Mock.js +0 -362
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+
5
+ getWithDrawDetail:{"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":"9de3e66af2da41d4"},
6
+ createWithdraw: {"order_id":"i771668569418104913","request_id":"bf9328f714d693aa"}
7
+ }
@@ -95,6 +95,7 @@
95
95
  policyContent: "",
96
96
  policyTitle: "",
97
97
  policyList: [],
98
+ share_code: "",
98
99
 
99
100
  //面板
100
101
  bgImage: '', //背景图片
@@ -179,6 +180,7 @@
179
180
  raw_data,
180
181
  auth_code: this.auth_code,
181
182
  provider_id: this.provider_id,
183
+ share_code: this.share_code,
182
184
  }
183
185
  }).then(res=>{
184
186
  if(this.jfbAuthorize !== null) {
@@ -225,6 +227,7 @@
225
227
  raw_data,
226
228
  third_auth_code: loginRes.code,
227
229
  provider_id: this.provider_id,
230
+ share_code: this.share_code,
228
231
  }
229
232
  }).then(res => {
230
233
  this.$xdUniHelper.redirectTo({
@@ -253,6 +256,13 @@
253
256
  this.auth_code = options.auth_code;
254
257
  this.provider_id = options.provider_id;
255
258
  if(options.url) this.nextUrl = Base64.decode(options.url);
259
+ if(options['x-share']){
260
+ let decodeParams = Base64.decode(options['x-share']);
261
+ try{
262
+ let commonParams = JSON.parse(decodeParams);
263
+ this.share_code = commonParams.share_code;
264
+ }catch(e){}
265
+ }
256
266
  }
257
267
  jfbRootExec("getContentInfo", {
258
268
  vm: this,
@@ -1,58 +0,0 @@
1
- 'use strict';
2
- /**
3
- * @description 接口配置,
4
- * 在设置方法名字当时候,别忘记加上【模块名字】:After
5
- * @type {*[]}
6
- */
7
- module.exports = [
8
- {
9
- mapFnName: "getAfterOmsOrder",
10
- path: "/aftersale/v1/service-order/get-oms-order",
11
- title: "获取订单信息",
12
- isRule: false,
13
- params: {
14
- main_order_id: ['主单订单号', 'String', true],
15
- db_from: ['来源', 'String', true],
16
- },
17
- isConsole: true,
18
- disabled: true,
19
- },
20
- {
21
- mapFnName: "getAfterSalesTypeList",
22
- path: "/aftersale/v1/service-order/after-sales-type-list",
23
- title: "售后类型列表",
24
- isRule: false,
25
- params: {},
26
- isConsole: true,
27
- disabled: true,
28
- },
29
- {
30
- mapFnName: "createAfterServiceOrder",
31
- path: "/aftersale/v1/service-order/create",
32
- title: "服务单创建",
33
- isRule: false,
34
- data: {
35
- after_sale_method: ['售后方式', 'refund:退款 refund_and_good:退货退款 exchange:换货 again:补发 good:退货不退款', true],
36
- after_sale_type: ['售后类型', 'String', true],
37
- main_order_id: ['订单号', 'String', true],
38
- customer_feedback: ['客户反馈', 'String', true],
39
- sub_order_id: ['子订单号', 'String', true],
40
- business_code: ['业务编码', 'String', false],
41
- refund_voucher: ['售后图片json', 'String', false],
42
- product_list: ['商品列表', 'String', false],
43
- db_from: ['来源', 'String', true],
44
- },
45
- isConsole: true,
46
- disabled: true,
47
- },
48
- {
49
- mapFnName: "getConOssSign",
50
- title: "获取上传参数",
51
- path: "/common-user/v1/h5-oss/sign",
52
- isRule: false,
53
- data: {
54
- },
55
- isConsole: true,
56
- disabled: true,
57
- },
58
- ];
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * @description 当表单组件中有联动操作时候,使用方法进行返回
5
- */
6
- export default {
7
- style: [],
8
- content: (data) => {
9
- return [
10
- {
11
- label: '售后详情页面路径:',
12
- ele: 'xd-select-pages-path',
13
- valueKey: 'refundStepPath',
14
- groupKey:'advanced',
15
- placeholder: '请选择售后详情页面路径',
16
- value: data['refundStepPath'] || null,
17
- setting: {
18
- router: XdBus.getParentApi('getPagesTree'),
19
- },
20
- inline: false,
21
- },
22
- ].filter(i=>i)
23
- },
24
- advanced: [],
25
- };
@@ -1,550 +0,0 @@
1
- <template>
2
- <view
3
- class="jfb-base-after-sales"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
7
- <!--#ifdef H5-->
8
- <view
9
- class="jfb-base-after-sales__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
13
- <view class="jfb-base-after-sales__edit-icon" @click="delEdit">删除</view>
14
- </view>
15
- <!-- #endif -->
16
- <view class="jfb-base-after-sales__body" :style="{
17
- minHeight: layoutInfo.bodyMinHeightRpx + 'rpx',
18
- '--main-color': mainColor
19
- }">
20
- <template v-if="step == 1">
21
- <view class="s_type_box">
22
- <view class="s_type_title">请选择售后类型</view>
23
- <view class="service_types">
24
- <view class="service_item"
25
- :class="{ active: item.value === after_sale_method }"
26
- v-for="item in afterSalesMethod" :key="item.value"
27
- @click="handleSelectAfterSalesMethod(item)"
28
- >{{ item.label }}</view>
29
- </view>
30
- </view>
31
-
32
- <RefundOrderInfo :list="productList"
33
- :orderNumber="baseInfo.main_order_id"
34
- :showRadio="canChoseProduct"
35
- :showNumberSet="canSetNumber"
36
- @change="handleSelectProduct"
37
- ></RefundOrderInfo>
38
-
39
- <view class="bottom_fixed" :style="prod_bottom">
40
- <xd-button type="primary" @click="handleStepNext">下一步</xd-button>
41
- </view>
42
- </template>
43
-
44
- <template v-if="step == 2">
45
- <RefundOrderInfo :list="service_product_list"
46
- :showRadio="false"
47
- :orderNumber="baseInfo.main_order_id"
48
- ></RefundOrderInfo>
49
-
50
- <view class="list_section section_inline" @click="toChoseReason">
51
- <view class="sec_label">
52
- <view class="label_require">*</view>
53
- <view>申请原因</view>
54
- </view>
55
- <view class="sec_content">
56
- <view>{{ afterSaleTypeText }}</view>
57
- <xd-font-icon icon="iconxiangyou_xian" :size="28" style="margin-left: 8rpx;"></xd-font-icon>
58
- </view>
59
- </view>
60
- <view class="list_section">
61
- <view class="sec_label">
62
- <view class="label_require">*</view>
63
- <view>问题描述</view>
64
- </view>
65
- <view class="sec_content">
66
- <textarea v-model="customer_feedback"
67
- placeholder="请描述您遇到的问题"
68
- style="width: 100%;background:#FAFAFA;height: 140rpx;padding: 16rpx;border-radius: 8rpx;font-size: 24rpx;"
69
- ></textarea>
70
- </view>
71
- </view>
72
-
73
- <view class="list_section">
74
- <view class="sec_label">
75
- <view>上传凭证</view>
76
- <view class="label_sub">最多9张</view>
77
- </view>
78
- <view class="sec_content">
79
- <view class="img_list">
80
- <view class="img_box" v-for="(img, i) in showRefundImages" :key="i">
81
- <image :src="img" class="img_item" mode="aspectFit"></image>
82
- </view>
83
- <view class="img_box img_add" @click="doAddImage">
84
- <view class="icon">+</view>
85
- </view>
86
- </view>
87
- </view>
88
- </view>
89
-
90
- <view class="bottom_fixed" :style="prod_bottom">
91
- <xd-button type="primary" @click="handleApplyRefund">提交申请</xd-button>
92
- </view>
93
- </template>
94
- <xd-down-drawer :show.sync="reasonShow" :isClose="false">
95
- <view class="refund_reason_head">申请原因</view>
96
- <view class="refund_reason_body" style="min-height: 50vh;max-height: 75vh;">
97
- <view class="reason_cont">
98
- <view class="reason_item" v-for="item in afterSalesTypes" :key="item.id">
99
- <view>{{ item.type_name }}</view>
100
- <xd-radio :value="temp_type === item.id" @change="selectApplyReason(item.id)"></xd-radio>
101
- </view>
102
- </view>
103
- <view class="reason_foot">
104
- <xd-button type="primary" @click="handleChoseReason">确定</xd-button>
105
- </view>
106
- </view>
107
- </xd-down-drawer>
108
- </view>
109
- </view>
110
- </template>
111
-
112
- <script>
113
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
114
- import XdButton from "@/components/XdButton/XdButton";
115
- import XdRadio from "@/components/XdRadio/XdRadio"
116
- import XdDownDrawer from "@/components/XdDownDrawer/XdDownDrawer"
117
- import RefundOrderInfo from "./refundOrderInfo.vue"
118
- import { jfbRootExec } from "@/utils/xd.event";
119
- import JfbBaseAfterSalesMixin from "./JfbBaseAfterSalesMixin";
120
- import { getContainerPropsValue } from "@/utils/xd.base";
121
- import componentsMixins from "@/mixins/componentsMixins";
122
- import extsMixins from "@/mixins/extsMixins";
123
- import getServiceUrl from "@/common/getServiceUrl";
124
- export default {
125
- name: "JfbBaseAfterSales",
126
- components: {
127
- XdFontIcon,
128
- XdButton,
129
- XdRadio,
130
- XdDownDrawer,
131
- RefundOrderInfo
132
- },
133
- mixins: [
134
- componentsMixins, extsMixins, JfbBaseAfterSalesMixin
135
- ],
136
- data() {
137
- return {
138
- step: 1,
139
- reasonShow: false,
140
- afterSalesMethod: [],
141
- after_sale_method: "",
142
- after_sale_type: "",
143
- temp_type: "",
144
- service_product_list: [],
145
- customer_feedback: "",
146
-
147
- productList: [],
148
- afterSalesTypes: [],
149
- baseInfo: {},
150
-
151
- refundImgList: [],
152
- order_id: "",
153
- //todo
154
- refundStepPath: "",
155
- }
156
- },
157
- computed: {
158
- canChoseProduct(){
159
- if(!this.after_sale_method) return false;
160
- if(this.baseInfo.support_refund_method === 'all' && this.after_sale_method === 'refund_and_good') return false;
161
- if(this.productList.length === 1) return false;
162
- return true;
163
- },
164
- canSetNumber(){
165
- if(!this.after_sale_method) return false;
166
- if(this.after_sale_method === 'refund_and_good') return false;
167
- return true;
168
- },
169
- afterSaleTypeText(){
170
- if(!this.after_sale_type) return "";
171
- let item = this.afterSalesTypes.find(i => i.id === this.after_sale_type);
172
- return item ? item.type_name : "";
173
- },
174
- showRefundImages(){
175
- return this.refundImgList.map(item => getServiceUrl(item))
176
- },
177
- prod_bottom() {
178
- return this.fixedStyle({ height: 20, zIndex: 111 });
179
- },
180
- },
181
- watch: {
182
- container(value, oldValue) {
183
- if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
184
- if (this.$configProject['isPreview']) this.init(value)
185
- },
186
- },
187
- created() {
188
- this.init(this.container);
189
-
190
- //todo
191
- },
192
- methods: {
193
- onJfbLoad(options) {
194
- this.order_id = options.order_id;
195
- this.p_getAfterOmsOrder();
196
- this.p_getAfterSalesTypeList();
197
- },
198
- /**
199
- * @description 监听事件变化
200
- * @param container {object} 业务组件对象自己
201
- */
202
- init(container) {
203
- this.refundStepPath = getContainerPropsValue(container, 'content.refundStepPath', {value: ""}).value;
204
- },
205
- doAddImage(){
206
- uni.chooseImage({
207
- count: 1,
208
- sourceType: ['camera'],
209
- success: async (res) => {
210
- console.log('chooseImage',res);
211
- // let filePath = res.tempFilePaths[0];
212
- let file = res.tempFiles[0];
213
- this.$xdShowLoading({});
214
- try{
215
- let image = await this.uploadImage(file);
216
- this.refundImgList.push(image);
217
- this.$xdHideLoading();
218
- }catch(err){
219
- this.$xdHideLoading();
220
- }
221
- }
222
- })
223
- },
224
- uploadImage(file){
225
- let fileName = file.name;
226
- return new Promise((resolve, reject) => {
227
- jfbRootExec("getConOssSign", {
228
- vm: this,
229
- data: { name: fileName }
230
- }).then(res => {
231
- let OSSAccessKeyId = res['id']
232
- let cdnUrl = res['cdn_url']
233
- delete res['id']
234
- delete res['cdn_url']
235
- uni.uploadFile({
236
- url: res.action,
237
- file: file,
238
- name: 'file',
239
- formData: {
240
- ...res,
241
- OSSAccessKeyId: OSSAccessKeyId,
242
- name: fileName,
243
- cdnUrl: cdnUrl,
244
- success_action_status: 200
245
- },
246
- success: (r) => {
247
- resolve(`/${res.key}`);
248
- },
249
- fail:(err)=>{
250
- resolve('');
251
- console.error(err)
252
- }
253
- });
254
- }).catch(err => {
255
- reject(err);
256
- })
257
- })
258
-
259
- },
260
- p_getAfterSalesTypeList(){
261
- jfbRootExec("getAfterSalesTypeList", {
262
- vm: this,
263
- data: {}
264
- }).then(res => {
265
- this.afterSalesTypes = res.list;
266
- })
267
- },
268
- p_getAfterOmsOrder(){
269
- this.$xdShowLoading({});
270
- jfbRootExec("getAfterOmsOrder", {
271
- vm: this,
272
- data: {
273
- main_order_id: this.order_id
274
- }
275
- }).then(res => {
276
- this.$xdHideLoading();
277
- const { product_list, base_info } = res;
278
- this.productList = product_list.map(item => {
279
- item.product_thumb = getServiceUrl(item.product_thumb, 'size2');
280
- return item;
281
- });
282
- this.baseInfo = base_info;
283
- try{
284
- this.afterSalesMethod = JSON.parse(base_info.support_aftersale_method);
285
- }catch(e){}
286
- })
287
- },
288
- handleSelectAfterSalesMethod(item){
289
- this.after_sale_method = item.value;
290
- this.$nextTick(() => {
291
- if(this.productList.length === 1){
292
- this.service_product_list = [this.productList[0]];
293
- }else if(!this.canChoseProduct){
294
- this.service_product_list = this.productList;
295
- }
296
- })
297
- },
298
- handleApplyRefund(){
299
- let { order_id, after_sale_method, after_sale_type, customer_feedback } = this;
300
- if(!after_sale_type) {
301
- this.$xdAlert({
302
- content: '请选择申请原因',
303
- type: "error"
304
- })
305
- return;
306
- }
307
- if(!customer_feedback){
308
- this.$xdAlert({
309
- content: '请填写问题描述',
310
- type: "error"
311
- })
312
- return;
313
- }
314
- if(!this.service_product_list.length){
315
- this.$xdAlert({
316
- content: '请选择售后商品',
317
- type: "error"
318
- })
319
- return;
320
- }
321
- let data = {
322
- main_order_id: order_id,
323
- sub_order_id: this.service_product_list[0].sub_order_id,
324
- after_sale_method,
325
- after_sale_type,
326
- customer_feedback,
327
- refund_voucher: JSON.stringify(this.refundImgList),
328
- product_list: JSON.stringify(this.service_product_list.map(item => ({
329
- product_id: item.product_id,
330
- product_sku_id: item.sku_id,
331
- product_num: item.product_num,
332
- gift_id: item.gift_id
333
- })))
334
- }
335
- jfbRootExec("createAfterServiceOrder", {
336
- vm: this,
337
- data: data
338
- }).then(res => {
339
- this.$xdUniHelper.navigateTo({
340
- url: `${this.refundStepPath}?service_order_id=${res.service_order_id}`,
341
- });
342
- })
343
- },
344
- handleSelectProduct(productList){
345
- console.log('handleSelectProduct', productList)
346
- this.service_product_list = productList;
347
- },
348
- handleStepNext(){
349
- if(!this.after_sale_method){
350
- this.$xdAlert({
351
- content: '请选择售后类型',
352
- type: "error"
353
- })
354
- return;
355
- }
356
- if(!this.service_product_list.length){
357
- this.$xdAlert({
358
- content: '请选择售后商品',
359
- type: "error"
360
- })
361
- return;
362
- }
363
- console.log('handleStepNext', this.service_product_list)
364
- this.step = 2;
365
- },
366
- toChoseReason(){
367
- this.reasonShow = true;
368
- },
369
- selectApplyReason(id){
370
- this.temp_type = id;
371
- },
372
- handleChoseReason(){
373
- this.reasonShow = false;
374
- this.after_sale_type = this.temp_type;
375
- },
376
- onJfbScroll(options) {
377
- // console.log('event.onJfbScroll', options)
378
- },
379
- onJfbReachBottom(options) {
380
- console.log('event.onJfbReachBottom', options)
381
- },
382
- onJfbShow(options) {
383
- console.log('event.onJfbShow', options)
384
- },
385
- onJfbHide(options) {
386
- console.log('event.onJfbHide', options)
387
- },
388
- onJfbBack(options) {
389
- console.log('event.onJfbBack', options)
390
- },
391
- onJfbUpdate(...data) {
392
- console.log('event.onJfbUpdate', data)
393
- },
394
- onJfbCustomEvent(options) {
395
- console.log('event.onJfbReachBottom', options)
396
- },
397
- }
398
- }
399
-
400
- </script>
401
-
402
- <style scoped lang="less">
403
- @import "./JfbBaseAfterSalesLess.less";
404
-
405
- .jfb-base-after-sales {
406
- &__body{
407
- padding: 20rpx 20rpx 120rpx;
408
- box-sizing: border-box;
409
- background-color: #EEEEEE;
410
- .s_type_box{
411
- background-color: #FFFFFF;
412
- border-radius: 16rpx;
413
- padding: 36rpx;
414
- font-size: 26rpx;
415
- .s_type_title{
416
- color: #333333;
417
- font-weight: 500;
418
- margin-bottom: 28rpx;
419
- }
420
- .service_types{
421
- display: flex;
422
- flex-wrap: wrap;
423
-
424
- .service_item{
425
- padding: 12rpx 48rpx;
426
- border-radius: 40rpx;
427
- background-color: #F3F3F3;
428
- color: #999999;
429
- margin-right: 15rpx;
430
- &:nth-child(4n){
431
- margin-right: 0;
432
- }
433
- &.active{
434
- background-color: var(--main-color);
435
- color: #FFFFFF;
436
- }
437
- }
438
- }
439
- }
440
-
441
- .list_section{
442
- padding: 24rpx 36rpx;
443
- border-radius: 16rpx;
444
- background-color: #FFFFFF;
445
- display: flex;
446
- flex-direction: column;
447
- margin: 20rpx 0;
448
- color: #333333;
449
- font-size: 28rpx;
450
- &.section_inline{
451
- flex-direction: row;
452
- justify-content: space-between;
453
- .sec_label{
454
- margin-bottom: 0;
455
- }
456
- }
457
- .sec_label{
458
- display: flex;
459
- align-items: center;
460
- margin-bottom: 24rpx;
461
- .label_require{
462
- color: #FF5733;
463
- margin-right: 4rpx;
464
- }
465
- .label_sub{
466
- color: #CCCCCC;
467
- font-size: 24rpx;
468
- margin-left: 16rpx;
469
- }
470
- }
471
- .sec_content{
472
- display: flex;
473
- align-items: center;
474
- color: #666666;
475
-
476
- .img_list{
477
- display: flex;
478
- flex-wrap: wrap;
479
- .img_box{
480
- width: 160rpx;
481
- height: 160rpx;
482
- border-radius: 8rpx;
483
- border: 1px solid #E0E0E0;
484
- margin-right: 28rpx;
485
- margin-bottom: 28rpx;
486
- .img_item{
487
- width: 100%;
488
- height: 100%;
489
- }
490
-
491
- &.img_add{
492
- display: flex;
493
- align-items: center;
494
- justify-content: center;
495
- .icon{
496
- border: 1px solid #E0E0E0;
497
- width: 36rpx;
498
- height: 36rpx;
499
- border-radius: 6rpx;
500
- display: flex;
501
- align-items: center;
502
- justify-content: center;
503
- color: #E0E0E0;
504
- }
505
- }
506
- }
507
- }
508
- }
509
- }
510
- .bottom_fixed{
511
- position: fixed;
512
- bottom: 0;
513
- left: 0;
514
- width: 100%;
515
- padding: 20rpx;
516
- box-sizing: border-box;
517
- }
518
- .refund_reason_head{
519
- padding: 32rpx 0;
520
- text-align: center;
521
- border-bottom: 1px solid #F2F2F2;
522
- margin: 0 32rpx;
523
- font-size: 28rpx;
524
- color: #333333;
525
- font-weight: bold;
526
- }
527
- .refund_reason_body{
528
- display: flex;
529
- flex-direction: column;
530
- .reason_cont{
531
- flex: 1;
532
- padding: 0 40rpx;
533
- overflow: auto;
534
- .reason_item{
535
- display: flex;
536
- align-items: center;
537
- justify-content: space-between;
538
- padding: 20rpx 20rpx;
539
- font-size: 28rpx;
540
- color: #333333;
541
- }
542
- }
543
- .reason_foot{
544
- padding: 32rpx;
545
- border-top: 1px solid #F2F2F2;
546
- }
547
- }
548
- }
549
- }
550
- </style>
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- module.exports = {
4
-
5
- getAfterByIdFilmSquate:{},
6
-
7
- updateAfterFilmPaiqiDate:{},
8
-
9
- removeAfterFilmAddress:{},
10
-
11
- addAfterFilmcart:{},
12
-
13
- }