jufubao-base 1.0.243-beta201 → 1.0.245

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
@@ -1,538 +0,0 @@
1
- <template>
2
- <view
3
- class="jfb-base-after-sales-detail"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
7
- <!--#ifdef H5-->
8
- <view
9
- class="jfb-base-after-sales-detail__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
13
- <view class="jfb-base-after-sales-detail__edit-icon" @click="delEdit">删除</view>
14
- </view>
15
- <!-- #endif -->
16
- <view v-if="loaded" class="jfb-base-after-sales-detail__body" :style="{
17
- minHeight: layoutInfo.bodyMinHeightRpx + 'rpx',
18
- '--main-color': mainColor
19
- }">
20
- <view class="service_progress">
21
- <view class="service_head">
22
- <view>服务进度</view>
23
- <view class="head_sub">{{ currentStepContent }}</view>
24
- </view>
25
- <view class="service_step">
26
- <template v-for="(step, i) in stepList">
27
- <view v-if="step.key==='line'" :key="i" class="step_line"></view>
28
- <view v-else class="step_item" :key="'1' + i">
29
- <view>
30
- <xd-font-icon v-if="step.is_finish" icon="icondui_fill" :size="28" color="#FFFFFF"></xd-font-icon>
31
- <view v-else class="step_radio"></view>
32
- </view>
33
- <view class="step_text">{{ step.name }}</view>
34
- </view>
35
- </template>
36
- </view>
37
- </view>
38
-
39
- <view style="margin-top: -100rpx;padding: 20rpx;">
40
-
41
- <!-- 物流信息 -->
42
- <view class="refund_section" v-if="logisticsInfo.length">
43
- <view class="sec_title">物流信息</view>
44
- <view class="sec_body">
45
- <view class="sec_item" v-for="(item, i) in logisticsInfo" :key="i">
46
- <view class="sec_l">
47
- <view>{{item.label}}:</view>
48
- <view style="color: #333333;">{{ item.value }}</view>
49
- </view>
50
- <view class="sec_r">
51
- <view v-if="item.copy" class="_copy" @click="handleCopy(item.value)">复制</view>
52
- </view>
53
- </view>
54
- </view>
55
- </view>
56
-
57
- <!-- 物流信息、退款明细 -->
58
- <view class="refund_section" v-if="refundInfo.length">
59
- <view class="sec_title">退款明细</view>
60
- <view class="sec_body">
61
- <view class="sec_item" v-for="(item, i) in refundInfo" :key="i">
62
- <view class="sec_l">
63
- <view>{{ item.label }}<text v-if="item.key !== 'price'">:</text></view>
64
- <view v-if="item.key !== 'price'" style="color: #333333;">{{item.value}}</view>
65
- </view>
66
- <view class="sec_r">
67
- <view v-if="item.key === 'price'">
68
- <xd-unit
69
- :price="item.value"
70
- :isOld="false"
71
- :fontSize="32"
72
- iconSize="0.4"
73
- ></xd-unit>
74
- </view>
75
- <view v-if="item.copy" class="_copy" @click="handleCopy(item.value)">复制</view>
76
- </view>
77
- </view>
78
- </view>
79
- </view>
80
-
81
- <!-- 新商品 -->
82
- <view v-if="newProductList.length" class="refund_section">
83
- <view class="sec_title">
84
- <view class="sec_tag _new">新商品</view>
85
- </view>
86
- <view class="sec_body">
87
- <SecProd v-for="(item,i) in newProductList" :key="i" :item="item"></SecProd>
88
- </view>
89
- </view>
90
-
91
- <view class="refund_section">
92
- <!-- 换货展示 -->
93
- <view v-if="after_sale_method==='exchange'" class="sec_title">
94
- <view class="sec_tag _refund">退/换商品</view>
95
- </view>
96
- <view v-if="refundProductList.length" class="sec_title">
97
- <SecProd v-for="(item, i) in refundProductList" :key="i" :item="item"></SecProd>
98
- </view>
99
- <view class="sec_body">
100
- <view class="sec_item" v-for="(item, i) in orderInfoList" :key="i">
101
- <view class="sec_l">
102
- <view>{{item.label}}:</view>
103
- <view v-if="item.key=='img'" class="img_list">
104
- <view class="img_box" v-for="(img, ii) in item.value" :key="ii">
105
- <image :src="img" mode="aspectFit"></image>
106
- </view>
107
- </view>
108
- <view v-else class="sec_l_text" style="color: #333333;">{{item.value}}</view>
109
- </view>
110
- <view v-if="item.copy" class="sec_r" >
111
- <view class="_copy" @click="handleCopy(item.value)">复制</view>
112
- </view>
113
- </view>
114
- </view>
115
- </view>
116
- </view>
117
- <view v-if="baseInfo.is_show_cancel_btn==='Y' || baseInfo.is_show_delete_btn==='Y'" class="bottom_fixed" :style="prod_bottom">
118
- <view v-if="baseInfo.is_show_cancel_btn==='Y'" class="opt_btn primary" @click="handleCancel">撤销</view>
119
- <view v-if="baseInfo.is_show_delete_btn==='Y'" class="opt_btn" @click="handleDel">删除</view>
120
- </view>
121
- </view>
122
- </view>
123
- </template>
124
-
125
- <script>
126
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
127
- import XdRadio from "@/components/XdRadio/XdRadio"
128
- import XdUnit from "@/components/XdUnit/XdUnit"
129
- import XdButton from "@/components/XdButton/XdButton"
130
- import SecProd from "./secProd.vue"
131
- import { jfbRootExec } from "@/utils/xd.event";
132
- import JfbBaseAfterSalesDetailMixin from "./JfbBaseAfterSalesDetailMixin";
133
- import { getContainerPropsValue } from "@/utils/xd.base";
134
- import componentsMixins from "@/mixins/componentsMixins";
135
- import extsMixins from "@/mixins/extsMixins";
136
- import getServiceUrl from "@/common/getServiceUrl";
137
- export default {
138
- name: "JfbBaseAfterSalesDetail",
139
- components: {
140
- XdFontIcon,
141
- XdRadio,
142
- XdUnit,
143
- XdButton,
144
- SecProd
145
- },
146
- mixins: [
147
- componentsMixins, extsMixins, JfbBaseAfterSalesDetailMixin
148
- ],
149
- data() {
150
- return {
151
- stepList: [],
152
- orderInfoList: [],
153
- refundInfo: [],
154
- logisticsInfo: [],
155
- refundProductList: [],
156
- newProductList: [],
157
- baseInfo: {},
158
- //todo
159
- service_order_id: "",
160
- after_sale_method: "",
161
- loaded: false,
162
- serviceListPath: "",
163
- }
164
- },
165
- computed: {
166
- prod_bottom() {
167
- return this.fixedStyle({ height: 20, zIndex: 111 });
168
- },
169
- //当前步骤(is_finish:true)的文案content
170
- currentStepContent(){
171
- //获取res.progress最后一个is_finish=true的节点
172
- let res = this.stepList.filter(item => item.is_finish);
173
- if(!res.length) return "";
174
- return res[res.length-1].content;
175
- }
176
- },
177
- watch: {
178
- container(value, oldValue) {
179
- if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
180
- if (this.$configProject['isPreview']) this.init(value)
181
- },
182
- },
183
- created() {
184
- this.init(this.container);
185
-
186
- //todo
187
- },
188
- methods: {
189
- onJfbLoad(options) {
190
- this.service_order_id = options.service_order_id;
191
- this.p_getAfterServiceOrder();
192
- },
193
- /**
194
- * @description 监听事件变化
195
- * @param container {object} 业务组件对象自己
196
- */
197
- init(container) {
198
- this.serviceListPath = getContainerPropsValue(container, 'serviceListPath', {value: ""}).value;
199
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
200
- //this.height = getContainerPropsValue(container, 'content.height', 10);
201
- },
202
- p_getAfterServiceOrder(){
203
- this.$xdShowLoading({});
204
- jfbRootExec("getAfterServiceOrder", {
205
- vm: this,
206
- data: {
207
- service_order_id: this.service_order_id,
208
- }
209
- }).then(res => {
210
- this.$xdHideLoading();
211
- this.baseInfo = res;
212
- try{
213
- var imgList = JSON.parse(res.refund_voucher);
214
- imgList = imgList.map(item => {
215
- return getServiceUrl(item)
216
- })
217
- }catch(e){imgList=[]}
218
- this.orderInfoList = [
219
- { label: "订单编号", value: res.main_order_id, copy: true },
220
- { label: "工单编号", value: res.service_order_id, copy: true },
221
- { label: "申请时间", value: this.$xdUniHelper.getDate( res["created_time"] * 1000 ).fullTime },
222
- { label: "售后类型", value: res.after_sale_method_name },
223
- { label: "申请原因", value: res.after_sale_type_name },
224
- { label: "问题描述", value: res.customer_feedback },
225
- { label: "凭证内容", value: imgList.length ? imgList : '无', key: imgList.length? "img" : ''}
226
- ];
227
- this.stepList = [
228
- res.progress[0],
229
- { key: "line"},
230
- res.progress[1],
231
- { key: "line"},
232
- res.progress[2],
233
- ]
234
-
235
- //物流信息
236
- if(res.express_info && res.express_info.express_number){
237
- this.logisticsInfo = [
238
- { label: "物流单号", value: res.express_info.express_number, copy: true },
239
- { label: "快递公司", value: res.express_info.express_name }
240
- ]
241
- }
242
- //退换货商品
243
- this.refundProductList = res.product_list.map(item => {
244
- item.thumb = getServiceUrl(item.thumb, 'size2');
245
- return item;
246
- })
247
- //新商品
248
- this.newProductList = res.new_product_list.map(item => {
249
- item.thumb = getServiceUrl(item.thumb, 'size2');
250
- return item;
251
- })
252
- //售后类型
253
- this.after_sale_method = res.after_sale_method;
254
- //退款明细
255
- this.refundInfo = res.refund_settlement.map(item => {
256
- item.label = item.pay_info || item.pay_name;
257
- item.value = item.pay_price;
258
- item.key = 'price';
259
- return item;
260
- });
261
-
262
- this.loaded = true;
263
- })
264
- },
265
- handleCopy(text){
266
- uni.setClipboardData({
267
- data: text,
268
- success: function () {
269
- uni.showToast({
270
- title: '复制成功',
271
- icon: "none"
272
- });
273
- }
274
- });
275
-
276
- },
277
- handleCancel(){
278
- this.$xdConfirm({
279
- styles: this.styles,
280
- title: "提示",
281
- width: '90%',
282
- content: '确定撤销当前工单吗?',
283
- confirmText: '确认',
284
- isHtml: true,
285
- cancelText: '取消',
286
- showClose: false,
287
- success: (res) => {
288
- if (res.confirm) {
289
- jfbRootExec("cancelAfterServiceOrder", {
290
- vm: this,
291
- data: {
292
- service_order_id: this.service_order_id
293
- }
294
- }).then(res => {
295
- this.$xdUniHelper.navigateTo({
296
- url: this.serviceListPath
297
- })
298
- })
299
- }
300
- else{
301
- console.log('取消')
302
- }
303
- }
304
- })
305
- },
306
- handleDel(){
307
- this.$xdConfirm({
308
- styles: this.styles,
309
- title: "提示",
310
- width: '90%',
311
- content: '确定删除当前工单吗?',
312
- confirmText: '确认',
313
- isHtml: true,
314
- cancelText: '取消',
315
- showClose: false,
316
- success: (res) => {
317
- if (res.confirm) {
318
- jfbRootExec("delAfterServiceOrder", {
319
- vm: this,
320
- data:{
321
- service_order_id: this.service_order_id
322
- }
323
- }).then(res => {
324
- this.$xdUniHelper.navigateTo({
325
- url: this.serviceListPath
326
- })
327
- })
328
- }
329
- else{
330
- console.log('取消')
331
- }
332
- }
333
- })
334
- },
335
- onJfbScroll(options) {
336
- // console.log('event.onJfbScroll', options)
337
- },
338
- onJfbReachBottom(options) {
339
- console.log('event.onJfbReachBottom', options)
340
- },
341
- onJfbShow(options) {
342
- console.log('event.onJfbShow', options)
343
- },
344
- onJfbHide(options) {
345
- console.log('event.onJfbHide', options)
346
- },
347
- onJfbBack(options) {
348
- console.log('event.onJfbBack', options)
349
- },
350
- onJfbUpdate(...data) {
351
- console.log('event.onJfbUpdate', data)
352
- },
353
- onJfbCustomEvent(options) {
354
- console.log('event.onJfbReachBottom', options)
355
- },
356
- }
357
- }
358
-
359
- </script>
360
-
361
- <style scoped lang="less">
362
- @import "./JfbBaseAfterSalesDetailLess.less";
363
-
364
- .jfb-base-after-sales-detail {
365
- &__body{
366
- background: #FAFAFA;
367
- padding-bottom: 100rpx;
368
- box-sizing: border-box;
369
- .service_progress{
370
- height: 320rpx;
371
- background: linear-gradient(270deg, #FF8469 0%, #FF5252 100%);
372
- color: #FFFFFF;
373
- padding: 40rpx;
374
- box-sizing: border-box;
375
- .service_head{
376
- display: flex;
377
- align-items: center;
378
- font-size: 32rpx;
379
- font-weight: 500;
380
- justify-content: space-between;
381
- .head_sub{
382
- font-size: 24rpx;
383
- font-weight: 400;
384
- }
385
- }
386
- .service_step{
387
- display: flex;
388
- align-items: center;
389
- justify-content: space-between;
390
- font-size: 24rpx;
391
- font-weight: 400;
392
- margin-top: 48rpx;
393
- .step_item{
394
- display: flex;
395
- flex-direction: column;
396
- align-items: center;
397
-
398
- .step_radio{
399
- width: 24rpx;
400
- height: 24rpx;
401
- background: rgba(255, 255, 255, 0.3);
402
- border: 2px solid #FFFFFF;
403
- border-radius: 24rpx;
404
- box-sizing: border-box;
405
- }
406
- .step_text{
407
- margin-top: 8rpx;
408
- }
409
- }
410
- .step_line{
411
- width: 146rpx;
412
- height: 4rpx;
413
- background: #FFFFFF;
414
- border-radius: 4rpx;
415
- }
416
- }
417
- }
418
- .refund_section{
419
- background: #FFFFFF;
420
- border-radius: 16rpx;
421
- padding: 24rpx 40rpx;
422
- box-sizing: border-box;
423
- margin-bottom: 20rpx;
424
- .sec_tag{
425
- border-radius: 8rpx;
426
- padding: 4rpx 16rpx;
427
- font-size: 24rpx;
428
- font-weight: 400;
429
- display: inline-block;
430
- &._new{
431
- background: #FFDEDE;
432
- color: #F00000;
433
- }
434
- &._refund{
435
- background: #E6EEFF;
436
- color: #0070F0;
437
- }
438
- }
439
- .sec_title{
440
- padding-bottom: 24rpx;
441
- border-bottom: 1px solid #EEEEEE;
442
- font-size: 26rpx;
443
- color: #333333;
444
- font-weight: 500;
445
- margin-bottom: 24rpx;
446
- }
447
- .sec_body{
448
- font-size: 24rpx;
449
- font-weight: 400;
450
- .sec_item{
451
- display: flex;
452
- align-items: center;
453
- justify-content: space-between;
454
- margin: 24rpx 0;
455
- &:last-child{
456
- margin-bottom: 0;
457
- }
458
- .sec_l{
459
- color: #999999;
460
- display: flex;
461
- // align-items: center;
462
- align-items: flex-start;
463
- flex: 1;
464
-
465
- .sec_l_text{
466
- flex: 1;
467
- width: 400rpx;
468
- }
469
-
470
- .img_list{
471
- display: flex;
472
- flex-wrap: wrap;
473
- flex: 1;
474
- .img_box{
475
- width: 150rpx;
476
- height: 150rpx;
477
- border-radius: 8rpx;
478
- border: 1px solid #E0E0E0;
479
- margin-right: 20rpx;
480
- margin-bottom: 20rpx;
481
- &:nth-of-type(3n){
482
- margin-right: 0;
483
- }
484
- image{
485
- width: 100%;
486
- height: 100%;
487
- }
488
- }
489
- }
490
- }
491
- .sec_r{
492
- width: 100rpx;
493
- ._copy{
494
- padding: 4rpx 20rpx;
495
- border-radius: 24rpx;
496
- color: #CCCCCC;
497
- border: 1px solid #CCCCCC;
498
- }
499
- }
500
- }
501
-
502
- }
503
- }
504
- .bottom_fixed{
505
- position: fixed;
506
- bottom: 0;
507
- left: 0;
508
- width: 100%;
509
- padding: 20rpx;
510
- box-sizing: border-box;
511
- background: #FFFFFF;
512
- box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.1);
513
- text-align: right;
514
-
515
- .opt_btn{
516
- width: 120rpx;
517
- height: 60rpx;
518
- background: #FFFFFF;
519
- color: #999999;
520
- border: 1px solid #999999;
521
- font-size: 24rpx;
522
- text-align: center;
523
- line-height: 60rpx;
524
- border-radius: 60rpx;
525
- display: inline-block;
526
- & + .opt_btn{
527
- margin-left: 20rpx;
528
- }
529
- &.primary{
530
- background: var(--main-color);
531
- border-color: var(--main-color);
532
- color: #FFFFFF;
533
- }
534
- }
535
- }
536
- }
537
- }
538
- </style>
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = {
4
- getAfterServiceOrder: {
5
- main_order_id: "m763000267279253577",
6
- service_order_id: "g763109658094186497",
7
- customer_feedback: "",
8
- sub_order_id: "s763000766556618826",
9
- after_sale_method: "refund_and_good",
10
- after_sale_method_name: "退款",
11
- refund_voucher: "",
12
- after_sale_type: "",
13
- after_sale_type_name: "接口问题导致退款",
14
- created_time: 1742899520,
15
- refund_goods_data: "",
16
- product_list: [
17
- {
18
- product_id: 468,
19
- product_name: "大润发商品",
20
- product_sku_id: "",
21
- product_sku_name: "大润发商品",
22
- product_num: 1,
23
- sale_price: 1310,
24
- thumb: "https://img2.jufubao.cn/common/caitou_logo.png",
25
- after_count: 1,
26
- refund_amount: 0,
27
- gift_id: 0,
28
- brand_id: 0,
29
- brand_name: ""
30
- }
31
- ],
32
- refund_settlement: [],
33
- new_product_list: [],
34
- business_name: "",
35
- business_icon: "",
36
- business_code: "",
37
- after_order_id: "",
38
- progress: [
39
- {
40
- name: "提交申请",
41
- code: "created_time",
42
- time: 1742899520,
43
- is_finish: true,
44
- content: ""
45
- },
46
- {
47
- name: "平台接单",
48
- code: "progress_ing",
49
- time: 1742899520,
50
- is_finish: true,
51
- content: ""
52
- },
53
- { name: "完成", code: "done", time: 0, is_finish: false, content: "" }
54
- ],
55
- express_info: { express_name: "", express_number: "" },
56
- is_show_delete_btn: "N",
57
- is_show_cancel_btn: "N",
58
- request_id: "c90ae9c140228355"
59
- }
60
- };
@@ -1,58 +0,0 @@
1
- <template>
2
- <view class="prod_item">
3
- <view class="prod_img">
4
- <image :src="item.thumb" mode="aspectFit"></image>
5
- </view>
6
- <view class="prod_info">
7
- <view class="prod_title">{{ item.product_name }}</view>
8
- <view class="prod_number">申请数量:×{{ item.after_count }}</view>
9
- </view>
10
- </view>
11
- </template>
12
-
13
- <script>
14
- export default {
15
- props: {
16
- item: {
17
- type: Object,
18
- default() {
19
- return {}
20
- }
21
- }
22
- }
23
- }
24
- </script>
25
-
26
- <style lang="less" scoped>
27
- .prod_item{
28
- display: flex;
29
- align-items: center;
30
- .prod_img{
31
- width: 140rpx;
32
- height: 140rpx;
33
- border-radius: 16rpx;
34
- background-color: #EEE;
35
- image{
36
- width: 100%;
37
- height: 100%;
38
- }
39
- }
40
- .prod_info{
41
- margin-left: 20rpx;
42
- flex: 1;
43
- align-self: stretch;
44
- display: flex;
45
- flex-direction: column;
46
- justify-content: space-between;
47
- .prod_title{
48
- margin-bottom: 10rpx;
49
- font-size: 32rpx;
50
- color: #333333;
51
- }
52
- .prod_number{
53
- color: #999999;
54
- font-size: 24rpx;
55
- }
56
- }
57
- }
58
- </style>
@@ -1,30 +0,0 @@
1
- 'use strict';
2
- /**
3
- * @description 接口配置,
4
- * 在设置方法名字当时候,别忘记加上【模块名字】:After
5
- * @type {*[]}
6
- */
7
- module.exports = [
8
- {
9
- mapFnName: "getAfterSalesTypeList",
10
- path: "/aftersale/v1/service-order/after-sales-type-list",
11
- title: "售后类型列表",
12
- isRule: false,
13
- params: {},
14
- isConsole: true,
15
- disabled: true,
16
- },
17
- {
18
- mapFnName: "createAfterServiceOrderQuick",
19
- path: "/aftersale/v1/service-order/quick-refund",
20
- title: "快速退款",
21
- isRule: false,
22
- data: {
23
- main_order_id: ['主订单号', 'String', true],
24
- after_sale_type: ['售后类型', 'String', true],
25
- db_from: ['来源', 'String', true],
26
- },
27
- isConsole: true,
28
- disabled: true,
29
- }
30
- ];