jufubao-base 1.0.243-beta201 → 1.0.243-beta203

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 (148) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseAfterSales/JfbBaseAfterSales.vue +40 -3
  3. package/src/components/JfbBaseAfterSales/Mock.js +2 -9
  4. package/src/components/JfbBaseAfterSales/refundOrderInfo.vue +3 -3
  5. package/src/components/JfbBaseAfterSalesDetail/JfbBaseAfterSalesDetail.vue +24 -5
  6. package/src/components/JfbBaseAfterSalesDetail/secProd.vue +9 -1
  7. package/src/components/JfbBaseAfterSalesList/Attr.js +23 -0
  8. package/src/components/JfbBaseAfterSalesList/JfbBaseAfterSalesList.vue +53 -8
  9. package/src/components/JfbBaseBalance/Api.js +46 -0
  10. package/src/components/JfbBaseBalance/Attr.js +316 -0
  11. package/src/components/JfbBaseBalance/JfbBaseBalance.vue +336 -0
  12. package/src/components/JfbBaseBalance/JfbBaseBalanceLess.less +79 -0
  13. package/src/components/JfbBaseBalance/JfbBaseBalanceMixin.js +30 -0
  14. package/src/components/JfbBaseBalance/Mock.js +9 -0
  15. package/src/components/JfbBaseCardDetailEntry/Attr.js +11 -0
  16. package/src/components/JfbBaseCardDetailEntry/JfbBaseCardDetailEntry.vue +6 -6
  17. package/src/components/JfbBaseCardEntry/Attr.js +27 -16
  18. package/src/components/JfbBaseCardEntry/JfbBaseCardEntry.vue +4 -2
  19. package/src/components/JfbBaseCardEntry/Mock.js +20 -1
  20. package/src/components/JfbBaseCardGive/JfbBaseCardGive.vue +2 -4
  21. package/src/components/JfbBaseCardInfoEntry/Attr.js +36 -25
  22. package/src/components/JfbBaseCardInfoEntry/JfbBaseCardInfoEntry.vue +5 -2
  23. package/src/components/JfbBaseCodeOpenVip/Api.js +35 -0
  24. package/src/components/JfbBaseCodeOpenVip/Attr.js +281 -0
  25. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +251 -0
  26. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVipLess.less +79 -0
  27. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVipMixin.js +30 -0
  28. package/src/components/JfbBaseCodeOpenVip/Mock.js +13 -0
  29. package/src/components/JfbBaseConDialog/JfbBaseConDialog.vue +4 -5
  30. package/src/components/JfbBaseConsumpCode/Api.js +133 -0
  31. package/src/components/JfbBaseConsumpCode/Attr.js +74 -0
  32. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCode.vue +1118 -0
  33. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCodeLess.less +79 -0
  34. package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCodeMixin.js +30 -0
  35. package/src/components/JfbBaseConsumpCode/Mock.js +22 -0
  36. package/src/components/JfbBaseFastLink/Attr.js +12 -1
  37. package/src/components/JfbBaseFastLink/JfbBaseFastLink.vue +66 -0
  38. package/src/components/JfbBaseFooter/Attr.js +12 -0
  39. package/src/components/JfbBaseFooter/JfbBaseFooter.vue +13 -0
  40. package/src/components/JfbBaseHeader/Attr.js +82 -0
  41. package/src/components/JfbBaseHeader/JfbBaseHeader.vue +47 -1
  42. package/src/components/JfbBaseHeaderColumn/Attr.js +82 -0
  43. package/src/components/JfbBaseHeaderColumn/JfbBaseHeaderColumn.vue +48 -2
  44. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +17 -3
  45. package/src/components/JfbBaseNoticeDialog/Api.js +1 -1
  46. package/src/components/JfbBaseNoticeDialog/Attr.js +27 -0
  47. package/src/components/JfbBaseNoticeDialog/JfbBaseNoticeDialog.vue +42 -15
  48. package/src/components/JfbBaseNoticeGroup/Api.js +23 -0
  49. package/src/components/JfbBaseNoticeGroup/Attr.js +237 -0
  50. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroup.vue +174 -0
  51. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroupLess.less +79 -0
  52. package/src/components/JfbBaseNoticeGroup/JfbBaseNoticeGroupMixin.js +30 -0
  53. package/src/components/JfbBaseNoticeGroup/Mock.js +13 -0
  54. package/src/components/JfbBaseOpenVip/Api.js +39 -0
  55. package/src/components/JfbBaseOpenVip/Attr.js +331 -0
  56. package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +459 -0
  57. package/src/components/JfbBaseOpenVip/JfbBaseOpenVipLess.less +79 -0
  58. package/src/components/JfbBaseOpenVip/JfbBaseOpenVipMixin.js +30 -0
  59. package/src/components/JfbBaseOpenVip/Mock.js +7 -0
  60. package/src/components/JfbBaseOpenVip/XdVipList.vue +130 -0
  61. package/src/components/JfbBaseOpenVipCard/Api.js +58 -0
  62. package/src/components/JfbBaseOpenVipCard/Attr.js +48 -0
  63. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCard.vue +111 -0
  64. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCardLess.less +79 -0
  65. package/src/components/JfbBaseOpenVipCard/JfbBaseOpenVipCardMixin.js +30 -0
  66. package/src/components/JfbBaseOpenVipCard/Mock.js +13 -0
  67. package/src/components/JfbBaseOpenVipDetail/Api.js +35 -0
  68. package/src/components/JfbBaseOpenVipDetail/Attr.js +37 -0
  69. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +234 -0
  70. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetailLess.less +79 -0
  71. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetailMixin.js +30 -0
  72. package/src/components/JfbBaseOpenVipDetail/Mock.js +15 -0
  73. package/src/components/JfbBaseOrderDetail/JfbBaseOrderDetail.vue +191 -19
  74. package/src/components/JfbBaseOrderList/Api.js +11 -0
  75. package/src/components/JfbBaseOrderList/JfbBaseOrderList.vue +31 -13
  76. package/src/components/JfbBasePay/Attr.js +52 -0
  77. package/src/components/JfbBasePay/JfbBasePay.vue +23 -6
  78. package/src/components/JfbBasePay/Mock.js +0 -9
  79. package/src/components/JfbBasePersonalData/Api.js +26 -0
  80. package/src/components/JfbBasePersonalData/Attr.js +13 -0
  81. package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +278 -0
  82. package/src/components/JfbBasePersonalData/JfbBasePersonalDataLess.less +79 -0
  83. package/src/components/JfbBasePersonalData/JfbBasePersonalDataMixin.js +30 -0
  84. package/src/components/JfbBasePersonalData/Mock.js +13 -0
  85. package/src/components/JfbBasePhoneLogin/JfbBasePhoneLogin.vue +11 -1
  86. package/src/components/JfbBasePointsCard/Api.js +18 -0
  87. package/src/components/JfbBasePointsCard/Attr.js +187 -0
  88. package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +212 -0
  89. package/src/components/JfbBasePointsCard/JfbBasePointsCardLess.less +79 -0
  90. package/src/components/JfbBasePointsCard/JfbBasePointsCardMixin.js +30 -0
  91. package/src/components/JfbBasePointsCard/Mock.js +5 -0
  92. package/src/components/JfbBasePointsDetail/Api.js +48 -0
  93. package/src/components/JfbBasePointsDetail/Attr.js +305 -0
  94. package/src/components/JfbBasePointsDetail/JfbBasePointsDetail.vue +267 -0
  95. package/src/components/JfbBasePointsDetail/JfbBasePointsDetailLess.less +79 -0
  96. package/src/components/JfbBasePointsDetail/JfbBasePointsDetailMixin.js +30 -0
  97. package/src/components/JfbBasePointsDetail/Mock.js +6 -0
  98. package/src/components/JfbBasePoster/Attr.js +1 -1
  99. package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +2 -2
  100. package/src/components/JfbBasePosterGroup/Api.js +22 -0
  101. package/src/components/JfbBasePosterGroup/Attr.js +156 -0
  102. package/src/components/JfbBasePosterGroup/JfbBasePosterGroup.vue +268 -0
  103. package/src/components/JfbBasePosterGroup/JfbBasePosterGroupLess.less +79 -0
  104. package/src/components/JfbBasePosterGroup/JfbBasePosterGroupMixin.js +30 -0
  105. package/src/components/JfbBasePosterGroup/Mock.js +13 -0
  106. package/src/components/JfbBaseSavingDetail/Api.js +41 -0
  107. package/src/components/JfbBaseSavingDetail/Attr.js +70 -0
  108. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +724 -0
  109. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetailLess.less +79 -0
  110. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetailMixin.js +30 -0
  111. package/src/components/JfbBaseSavingDetail/Mock.js +10 -0
  112. package/src/components/JfbBaseSavingDetail/components/echarts.min.js +26 -0
  113. package/src/components/JfbBaseSavingDetail/components/echarts.vue +254 -0
  114. package/src/components/JfbBaseSavingDetail/components/wx-canvas.js +105 -0
  115. package/src/components/JfbBaseShare/Api.js +20 -0
  116. package/src/components/JfbBaseShare/Attr.js +59 -0
  117. package/src/components/JfbBaseShare/JfbBaseShare.vue +282 -0
  118. package/src/components/JfbBaseShare/JfbBaseShareLess.less +79 -0
  119. package/src/components/JfbBaseShare/JfbBaseShareMixin.js +30 -0
  120. package/src/components/JfbBaseShare/Mock.js +16 -0
  121. package/src/components/JfbBaseSuccess/JfbBaseSuccess.vue +14 -3
  122. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +12 -22
  123. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +12 -1
  124. package/src/components/JfbBaseTfkSearch/Mock.js +51 -3
  125. package/src/components/JfbBaseTfkSearch/listMixins.js +2 -1
  126. package/src/components/JfbBaseUserInfo/Attr.js +175 -11
  127. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +342 -119
  128. package/src/components/JfbBaseUserOrder/Attr.js +16 -0
  129. package/src/components/JfbBaseUserOrder/JfbBaseUserOrder.vue +11 -2
  130. package/src/components/JfbBaseWithDrawAgain/Api.js +41 -0
  131. package/src/components/JfbBaseWithDrawAgain/Attr.js +92 -0
  132. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgain.vue +354 -0
  133. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainLess.less +79 -0
  134. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgainMixin.js +30 -0
  135. package/src/components/JfbBaseWithDrawAgain/Mock.js +10 -0
  136. package/src/components/JfbBaseWithDrawRecord/Api.js +19 -0
  137. package/src/components/JfbBaseWithDrawRecord/Attr.js +79 -0
  138. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecord.vue +233 -0
  139. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordLess.less +79 -0
  140. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecordMixin.js +30 -0
  141. package/src/components/JfbBaseWithDrawRecord/Mock.js +7 -0
  142. package/src/components/JfbBaseWithdraw/Api.js +48 -0
  143. package/src/components/JfbBaseWithdraw/Attr.js +328 -0
  144. package/src/components/JfbBaseWithdraw/JfbBaseWithdraw.vue +272 -0
  145. package/src/components/JfbBaseWithdraw/JfbBaseWithdrawLess.less +79 -0
  146. package/src/components/JfbBaseWithdraw/JfbBaseWithdrawMixin.js +30 -0
  147. package/src/components/JfbBaseWithdraw/Mock.js +7 -0
  148. package/src/components/JfbBaseWxAuthorize/JfbBaseWxAuthorize.vue +10 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.243-beta201",
3
+ "version": "1.0.243-beta203",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -78,9 +78,9 @@
78
78
  <view class="sec_content">
79
79
  <view class="img_list">
80
80
  <view class="img_box" v-for="(img, i) in showRefundImages" :key="i">
81
- <image :src="img" class="img_item" mode="aspectFit"></image>
81
+ <image :src="img" class="img_item" mode="aspectFit" @click="handlePreview(i)"></image>
82
82
  </view>
83
- <view class="img_box img_add" @click="doAddImage">
83
+ <view v-if="showRefundImages.length < 9" class="img_box img_add" @click="doAddImage">
84
84
  <view class="icon">+</view>
85
85
  </view>
86
86
  </view>
@@ -105,6 +105,16 @@
105
105
  </view>
106
106
  </view>
107
107
  </xd-down-drawer>
108
+ <xd-dailog :show.sync="showDialog" :showTitle="false">
109
+ <view class="no_after_prod">
110
+ <view class="_icon">
111
+ <xd-font-icon icon="iconmingchengtubiao" :size="80" :color="mainColor"></xd-font-icon>
112
+ </view>
113
+ <view class="_main">抱歉,该订单已无可申请售后商品</view>
114
+ <view class="_sub">若您对商品售后有疑问,请联系客服处理</view>
115
+ </view>
116
+ <view slot="btn"></view>
117
+ </xd-dailog>
108
118
  </view>
109
119
  </view>
110
120
  </template>
@@ -114,6 +124,7 @@
114
124
  import XdButton from "@/components/XdButton/XdButton";
115
125
  import XdRadio from "@/components/XdRadio/XdRadio"
116
126
  import XdDownDrawer from "@/components/XdDownDrawer/XdDownDrawer"
127
+ import XdDailog from "@/components/XdDailog/XdDailog"
117
128
  import RefundOrderInfo from "./refundOrderInfo.vue"
118
129
  import { jfbRootExec } from "@/utils/xd.event";
119
130
  import JfbBaseAfterSalesMixin from "./JfbBaseAfterSalesMixin";
@@ -128,7 +139,8 @@
128
139
  XdButton,
129
140
  XdRadio,
130
141
  XdDownDrawer,
131
- RefundOrderInfo
142
+ RefundOrderInfo,
143
+ XdDailog
132
144
  },
133
145
  mixins: [
134
146
  componentsMixins, extsMixins, JfbBaseAfterSalesMixin
@@ -143,6 +155,7 @@
143
155
  temp_type: "",
144
156
  service_product_list: [],
145
157
  customer_feedback: "",
158
+ showDialog: false,
146
159
 
147
160
  productList: [],
148
161
  afterSalesTypes: [],
@@ -275,6 +288,9 @@
275
288
  }).then(res => {
276
289
  this.$xdHideLoading();
277
290
  const { product_list, base_info } = res;
291
+ if(product_list.length === 0){
292
+ this.showDialog = true;
293
+ }
278
294
  this.productList = product_list.map(item => {
279
295
  item.product_thumb = getServiceUrl(item.product_thumb, 'size2');
280
296
  return item;
@@ -373,6 +389,12 @@
373
389
  this.reasonShow = false;
374
390
  this.after_sale_type = this.temp_type;
375
391
  },
392
+ handlePreview(i){
393
+ uni.previewImage({
394
+ current: i,
395
+ urls: this.showRefundImages
396
+ })
397
+ },
376
398
  onJfbScroll(options) {
377
399
  // console.log('event.onJfbScroll', options)
378
400
  },
@@ -545,6 +567,21 @@
545
567
  border-top: 1px solid #F2F2F2;
546
568
  }
547
569
  }
570
+
571
+ .no_after_prod{
572
+ padding: 100rpx 0;
573
+ font-size: 28rpx;
574
+ ._icon{
575
+ margin-bottom: 20rpx;
576
+ }
577
+ ._main{
578
+ color: #333333;
579
+ margin-bottom: 16rpx;
580
+ }
581
+ ._sub{
582
+ color: #999999;
583
+ }
584
+ }
548
585
  }
549
586
  }
550
587
  </style>
@@ -1,13 +1,6 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = {
4
-
5
- getAfterByIdFilmSquate:{},
6
-
7
- updateAfterFilmPaiqiDate:{},
8
-
9
- removeAfterFilmAddress:{},
10
-
11
- addAfterFilmcart:{},
12
-
4
+ getAfterOmsOrder: {"base_info":{"main_order_id":"m788348987084525809","partner_id":185,"site_id":"b7beb73251752cf1","business_code":"cake","freight_price":300,"support_aftersale_method":"[{\"value\":\"refund_and_good\",\"label\":\"\\u9000\\u8d27\"},{\"value\":\"again\",\"label\":\"\\u8865\\u53d1\"},{\"value\":\"exchange\",\"label\":\"\\u6362\\u8d27\"}]","support_refund_method":"part"},"product_list":[{"product_id":60030789,"product_name":"价格日历(185)","sku_id":"0","sku_name":"","product_num":1,"product_thumb":"\/uploads\/20240314\/a9121a540e92f35ec881f883daf6028c.jpg","brand_id":100003,"brand_name":"品牌jls0519","main_order_id":"m788348987084525809","sub_order_id":"s788348987671728370","gift_id":0,"can_use_sale_price":3000,"delivery_method_name":"快递配送","db_from":"online"},{"product_id":60031175,"product_name":"税率测试(货源96折,平台10折)","sku_id":"0","sku_name":"","product_num":1,"product_thumb":"\/uploads\/20241104\/021c99b07d40101e24af67bf416cf429.jpeg","brand_id":100003,"brand_name":"品牌jls0519","main_order_id":"m788348987084525809","sub_order_id":"s788348987671728371","gift_id":0,"can_use_sale_price":0,"delivery_method_name":"快递配送","db_from":"online"}],"request_id":"b85ae3a23d92d509"},
5
+ getAfterSalesTypeList: {"list":[{"id":59,"type_name":"7天无理由","status":"Y","description":"7天无理由备注","created_time":1748339702,"updated_time":1748339702,"is_show_web":"Y"},{"id":57,"type_name":"接口问题导致退款","status":"Y","description":"影院网络问题、网售系统问题、接口商品下架等","created_time":1733302517,"updated_time":1733302517,"is_show_web":"Y"},{"id":56,"type_name":"客户原因","status":"Y","description":"客户原因","created_time":1717726245,"updated_time":1717726245,"is_show_web":"Y"},{"id":55,"type_name":"账号已达到充值上限","status":"Y","description":"账号已达到充值上限","created_time":1717726196,"updated_time":1717726196,"is_show_web":"Y"},{"id":54,"type_name":"账号异常,接口充值失败","status":"Y","description":"账号异常,接口充值失败","created_time":1717726179,"updated_time":1717726179,"is_show_web":"Y"},{"id":52,"type_name":"影院资源问题","status":"Y","description":"影院资源问题","created_time":1717726146,"updated_time":1717726146,"is_show_web":"Y"},{"id":51,"type_name":"不可抗力因素","status":"Y","description":"不可抗力因素","created_time":1717726130,"updated_time":1717726130,"is_show_web":"Y"},{"id":50,"type_name":"物流异常","status":"Y","description":"物流异常","created_time":1717726089,"updated_time":1717726089,"is_show_web":"Y"},{"id":49,"type_name":"货不及时\/未按照约定时间送达","status":"Y","description":"货不及时\/未按照约定时间送达","created_time":1717726070,"updated_time":1717726070,"is_show_web":"Y"},{"id":47,"type_name":"商品临期","status":"Y","description":"商品临期","created_time":1717725931,"updated_time":1717725931,"is_show_web":"Y"},{"id":45,"type_name":"商品断货","status":"Y","description":"商品断货","created_time":1717725909,"updated_time":1717725909,"is_show_web":"Y"},{"id":43,"type_name":"商品与页面描述不符","status":"Y","description":"商品与页面描述不符","created_time":1717725876,"updated_time":1717725876,"is_show_web":"Y"},{"id":42,"type_name":"商品质量\/故障问题","status":"Y","description":"商品质量\/故障问题","created_time":1717725846,"updated_time":1717725846,"is_show_web":"Y"}],"next_page_token":"","total_size":"13","request_id":"4f6f8d4a44384acc"},
13
6
  }
@@ -19,7 +19,7 @@
19
19
  </view>
20
20
  </view>
21
21
  <view v-if="showRadio" style="margin-left: 10rpx;">
22
- <xd-radio :value="item.checked" @change="handleChangeRadio(item)"></xd-radio>
22
+ <xd-radio :value="item.checked" @change="checked => handleChangeRadio(item, checked)"></xd-radio>
23
23
  </view>
24
24
  </view>
25
25
  </view>
@@ -81,11 +81,11 @@
81
81
  let params = this.getReturnParams();
82
82
  this.$emit("change", params);
83
83
  },
84
- handleChangeRadio(prod){
84
+ handleChangeRadio(prod, checked){
85
85
  //单选逻辑,选中一个取消其他所有勾选状态
86
86
  this.uiList = this.uiList.map(item => {
87
87
  if(prod.product_id === item.product_id && prod.sku_id === item.sku_id){
88
- return {...item, checked: true};
88
+ return {...item, checked: checked};
89
89
  }
90
90
  return {...item, checked: false};
91
91
  })
@@ -90,11 +90,11 @@
90
90
 
91
91
  <view class="refund_section">
92
92
  <!-- 换货展示 -->
93
- <view v-if="after_sale_method==='exchange'" class="sec_title">
93
+ <view v-if="after_sale_method==='zero'" class="sec_title">
94
94
  <view class="sec_tag _refund">退/换商品</view>
95
95
  </view>
96
96
  <view v-if="refundProductList.length" class="sec_title">
97
- <SecProd v-for="(item, i) in refundProductList" :key="i" :item="item"></SecProd>
97
+ <SecProd class="sec_prod" v-for="(item, i) in refundProductList" :key="i" :item="item"></SecProd>
98
98
  </view>
99
99
  <view class="sec_body">
100
100
  <view class="sec_item" v-for="(item, i) in orderInfoList" :key="i">
@@ -102,7 +102,7 @@
102
102
  <view>{{item.label}}:</view>
103
103
  <view v-if="item.key=='img'" class="img_list">
104
104
  <view class="img_box" v-for="(img, ii) in item.value" :key="ii">
105
- <image :src="img" mode="aspectFit"></image>
105
+ <image :src="img" mode="aspectFit" @click="handlePreview(ii)"></image>
106
106
  </view>
107
107
  </view>
108
108
  <view v-else class="sec_l_text" style="color: #333333;">{{item.value}}</view>
@@ -115,7 +115,7 @@
115
115
  </view>
116
116
  </view>
117
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>
118
+ <view v-if="baseInfo.is_show_cancel_btn==='Y'" class="opt_btn default" @click="handleCancel">取消申请</view>
119
119
  <view v-if="baseInfo.is_show_delete_btn==='Y'" class="opt_btn" @click="handleDel">删除</view>
120
120
  </view>
121
121
  </view>
@@ -155,6 +155,7 @@
155
155
  refundProductList: [],
156
156
  newProductList: [],
157
157
  baseInfo: {},
158
+ imgList: [],
158
159
  //todo
159
160
  service_order_id: "",
160
161
  after_sale_method: "",
@@ -214,10 +215,11 @@
214
215
  imgList = imgList.map(item => {
215
216
  return getServiceUrl(item)
216
217
  })
218
+ this.imgList = imgList;
217
219
  }catch(e){imgList=[]}
218
220
  this.orderInfoList = [
219
221
  { label: "订单编号", value: res.main_order_id, copy: true },
220
- { label: "工单编号", value: res.service_order_id, copy: true },
222
+ { label: "工单编号", value: res.work_order_id, copy: true },
221
223
  { label: "申请时间", value: this.$xdUniHelper.getDate( res["created_time"] * 1000 ).fullTime },
222
224
  { label: "售后类型", value: res.after_sale_method_name },
223
225
  { label: "申请原因", value: res.after_sale_type_name },
@@ -247,6 +249,7 @@
247
249
  //新商品
248
250
  this.newProductList = res.new_product_list.map(item => {
249
251
  item.thumb = getServiceUrl(item.thumb, 'size2');
252
+ item.after_count = item.buy_count;
250
253
  return item;
251
254
  })
252
255
  //售后类型
@@ -332,6 +335,12 @@
332
335
  }
333
336
  })
334
337
  },
338
+ handlePreview(i){
339
+ uni.previewImage({
340
+ current: i,
341
+ urls: this.imgList
342
+ })
343
+ },
335
344
  onJfbScroll(options) {
336
345
  // console.log('event.onJfbScroll', options)
337
346
  },
@@ -443,6 +452,10 @@
443
452
  color: #333333;
444
453
  font-weight: 500;
445
454
  margin-bottom: 24rpx;
455
+
456
+ .sec_prod + .sec_prod{
457
+ margin-top: 24rpx;
458
+ }
446
459
  }
447
460
  .sec_body{
448
461
  font-size: 24rpx;
@@ -526,6 +539,12 @@
526
539
  & + .opt_btn{
527
540
  margin-left: 20rpx;
528
541
  }
542
+ &.default{
543
+ background: #EFEFEF;
544
+ border-color: #EFEFEF;
545
+ color: #999999;
546
+ width: 140rpx;
547
+ }
529
548
  &.primary{
530
549
  background: var(--main-color);
531
550
  border-color: var(--main-color);
@@ -5,7 +5,11 @@
5
5
  </view>
6
6
  <view class="prod_info">
7
7
  <view class="prod_title">{{ item.product_name }}</view>
8
- <view class="prod_number">申请数量:×{{ item.after_count }}</view>
8
+ <view class="prod_sku">{{ item.product_sku_name }}</view>
9
+ <view class="prod_number">
10
+ <view class="i_count" v-if="item.sale_price">单价:{{ $xdUniHelper.divisionFloatNumber(item.sale_price, 100) }} </view>
11
+ <view class="i_count" v-if="item.after_count">申请数量:×{{ item.after_count }}</view>
12
+ </view>
9
13
  </view>
10
14
  </view>
11
15
  </template>
@@ -52,6 +56,10 @@
52
56
  .prod_number{
53
57
  color: #999999;
54
58
  font-size: 24rpx;
59
+ display: flex;
60
+ .i_count + .i_count{
61
+ margin-left: 20rpx;
62
+ }
55
63
  }
56
64
  }
57
65
  }
@@ -14,6 +14,29 @@ export default {
14
14
  value: data.bodyBgColor || "",
15
15
  groupKey: "style",
16
16
  },
17
+ {
18
+ label: 'tab文字颜色设置:',
19
+ ele: 'xd-text-and-bgc',
20
+ groupKey:'style',
21
+ valueKey: 'menuTabColor',
22
+ value: data['menuTabColor'] || null,
23
+ setting: {
24
+ fontSize: false, //字体大小选择
25
+ color: true, //文字颜色选项
26
+ bgColor: false, //背景选项
27
+ weight: false, //文字粗细
28
+ },
29
+ handleCustom({action, data}) {
30
+ XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_font_size'})
31
+ .then(res => {
32
+ data.cb(res.list)
33
+ })
34
+ .catch(error => {
35
+ console.error(error);
36
+ data.cb([])
37
+ });
38
+ },
39
+ },
17
40
  {
18
41
  label: "内容配置设置",
19
42
  ele: "title",
@@ -17,7 +17,7 @@
17
17
  <view class="fixed_header" :style="{
18
18
  top: layoutInfo.top + 'rpx',
19
19
  }">
20
- <view class="filter_tab">
20
+ <view class="filter_tab" :style="[menuTabStyle]">
21
21
  <view v-for="item in statusTabs" :key="item.value" class="filter_item"
22
22
  :class="{active: item.value===status}"
23
23
  @click="selectStatusTab(item.value)"
@@ -32,8 +32,9 @@
32
32
  v-model="keyword"
33
33
  style="width: 100%;"
34
34
  confirm-type="search"
35
- placeholder="请输入搜索内容"
35
+ placeholder="请输入商品名称/订单编号"
36
36
  @confirm="handleSearch"/>
37
+ <xd-font-icon v-if="keyword" style="margin: 0 32rpx;" icon="iconshanchu" size="32" color="#BBBBBB" @click.stop="handleClearKeyword"></xd-font-icon>
37
38
  </view>
38
39
 
39
40
  </view>
@@ -57,7 +58,10 @@
57
58
  :size="28"
58
59
  ></xd-font-icon>
59
60
  {{item.business_name}}</view>
60
- <view class="service_type" :style="getMethodTypeStyle(item.after_sale_method)">{{ item.after_sale_method_name }}</view>
61
+ <view class="service_type" :style="getMethodTypeStyle(item.after_sale_method)">
62
+ <xd-font-icon :icon="getMethodTypeIcon(item.after_sale_method)" size="32"></xd-font-icon>
63
+ <view style="margin-left: 8rpx;">{{ item.after_sale_method_name }}</view>
64
+ </view>
61
65
  </view>
62
66
  <view class="service_body">
63
67
  <view class="service_number">服务单号:{{ item.service_order_id }}</view>
@@ -72,8 +76,8 @@
72
76
  </view>
73
77
  </view>
74
78
  <view class="service_foot">
75
- <view v-if="item.is_show_cancel_btn === 'Y'" class="opt_btn primary" @click.stop="handleCancel(item)">撤销</view>
76
- <view v-if="item.is_show_delete_btn === 'Y'" class="opt_btn" @click.stop="handleDel(item)">删除</view>
79
+ <view v-if="item.is_show_cancel_btn === 'Y'" class="opt_btn default" @click.stop="handleCancel(item)">取消申请</view>
80
+ <view v-if="item.is_show_delete_btn === 'Y'" class="opt_btn default" @click.stop="handleDel(item)">删除</view>
77
81
  </view>
78
82
  </view>
79
83
  </view>
@@ -132,6 +136,7 @@
132
136
  cardItemRadius: 16,
133
137
 
134
138
  afterSalesDetailPath: "",
139
+ menuTabColor: {},
135
140
 
136
141
  }
137
142
  },
@@ -157,6 +162,12 @@
157
162
  border: this.cardItemBorder,
158
163
  borderRadius: this.cardItemRadius + 'rpx',
159
164
  }
165
+ },
166
+ menuTabStyle(){
167
+ return {
168
+ '--tab-color': this.menuTabColor['color'] || '#333333',
169
+ '--active-tab-color': this.menuTabColor['actColor'] || this.mainColor,
170
+ }
160
171
  }
161
172
  },
162
173
  created() {
@@ -181,6 +192,7 @@
181
192
  this.cardItemShadow = this.getXdShadow({width:20, color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.cardItemShadow', {}))
182
193
  this.cardItemBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.cardItemBorder', {}));
183
194
  this.cardItemRadius = getContainerPropsValue(container, 'content.cardItemRadius', 16);
195
+ this.menuTabColor = getContainerPropsValue(container, "content.menuTabColor", {});
184
196
 
185
197
  this.afterSalesDetailPath = getContainerPropsValue(container, "content.afterSalesDetailPath", { value: "" }).value;
186
198
  },
@@ -196,10 +208,23 @@
196
208
  return { color: "#43CF7C" };
197
209
  case "good":
198
210
  return { color: "#FF8D1A" };
211
+ case "zero":
212
+ return { color: "#FF8D1A" };
199
213
  default:
200
214
  return {};
201
215
  }
202
216
  },
217
+ getMethodTypeIcon(method){
218
+ let method_icon = {
219
+ 'refund_and_good': "icontuikuan",
220
+ 'refund': "icontuihuo",
221
+ 'exchange': "iconhuanhuo",
222
+ 'again': "iconbufa",
223
+ 'zero': 'iconhuanhuo'
224
+ }
225
+ return method_icon[method] || "";
226
+
227
+ },
203
228
  handleSearch(e){
204
229
  console.log("handleSearch",e)
205
230
  this.page_token = 1;
@@ -255,7 +280,11 @@
255
280
  this.loaded = true;
256
281
  this.$xdHideLoading();
257
282
  let list = res.list.map(item => {
258
- item.thumb = getServiceUrl(item.thumb, 'size2');
283
+ // item.thumb = getServiceUrl(item.thumb, 'size2');
284
+ item.product_list = item.product_list.map(prod => {
285
+ prod.thumb = getServiceUrl(prod.thumb);
286
+ return prod;
287
+ })
259
288
  return item;
260
289
  });
261
290
  if (this.page_token === 1) {
@@ -293,6 +322,11 @@
293
322
  }
294
323
  })
295
324
  },
325
+ handleClearKeyword(){
326
+ this.keyword = "";
327
+ this.page_token = 1;
328
+ this.getList();
329
+ },
296
330
  onJfbScroll(options) {
297
331
  // console.log("event.onJfbScroll", options);
298
332
  },
@@ -348,9 +382,10 @@
348
382
  .filter_item{
349
383
  margin: 0 40rpx;
350
384
  font-size: 28rpx;
385
+ color: var(--tab-color);
351
386
  &.active{
352
- border-bottom: 1px solid var(--main-color);
353
- color: var(--main-color);
387
+ border-bottom: 1px solid var(--active-tab-color);
388
+ color: var(--active-tab-color);
354
389
  }
355
390
  }
356
391
  }
@@ -392,6 +427,10 @@
392
427
  margin-right: 16rpx;
393
428
  }
394
429
  }
430
+ .service_type{
431
+ display: flex;
432
+ align-items: center;
433
+ }
395
434
  }
396
435
  .service_body{
397
436
  .service_number{
@@ -450,6 +489,12 @@
450
489
  & + .opt_btn{
451
490
  margin-left: 20rpx;
452
491
  }
492
+ &.default{
493
+ background: #EFEFEF;
494
+ border-color: #EFEFEF;
495
+ color: #999999;
496
+ width: 140rpx;
497
+ }
453
498
  &.primary{
454
499
  background: var(--main-color);
455
500
  border-color: var(--main-color);
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+ /**
3
+ * @description 接口配置,
4
+ * 在设置方法名字当时候,别忘记加上【模块名字】:Points
5
+ * @type {*[]}
6
+ */
7
+ module.exports = [
8
+ {
9
+ mapFnName: 'getListBaseNewsContent', //自定义方法名字(必选)
10
+ title: '获取内容',
11
+ path: '/cms/v1/news-content',
12
+ isRule: false,
13
+ params: {
14
+ scene: ['使用场景', 'String', '选填'],
15
+ container_id: ['插件ID', 'String', '必填'],
16
+ page_id: ['页面ID', 'String', '必填'],
17
+ page_size: ['记录条数', 'Number', '必填', 1],
18
+ code: ['业务线id', 'String', '选填'],
19
+ },
20
+ isConsole: true,
21
+ disabled: true,
22
+ },
23
+ {
24
+ mapFnName: 'getBalanceDetail',
25
+ title: '用户资产 - 获取钱包(或积分)余额详情',
26
+ path: '/pay/v1/property/wallet-detail',
27
+ isRule: false,
28
+ params: {
29
+ method: ['wallet 余额; score 积分;', 'Number', '非必选'],
30
+ },
31
+ isConsole: true,
32
+ disabled: true,
33
+ },
34
+ {
35
+ mapFnName: 'getBalanceWalletTradeList',
36
+ title: '用户资产 - 获取钱包(或积分)交易记录列表',
37
+ path: '/pay/v1/property/wallet-trade/list',
38
+ isRule: false,
39
+ params: {
40
+ wallet_type: ['钱包类型', 'Number', '必选'],
41
+ page_size: ['每页条数', 'Number', '必选'],
42
+ },
43
+ isConsole: true,
44
+ disabled: true,
45
+ },
46
+ ];