index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. <template>
  2. <view :data-theme="theme">
  3. <view class='nav acea-row row-around'>
  4. <!-- <view class='item' :class='refundTypeStatus==-1 ? "on": ""' @click="statusClick(-1)">
  5. <view>售后申请</view>
  6. </view>
  7. <view class='item' :class='refundTypeStatus==0 ? "on": ""' @click="statusClick(0)">
  8. <view>处理中</view>
  9. </view> -->
  10. <view class='item' :class='orderStatus==1 ? "on": ""' @click="statusClick(1)">
  11. <view>待发货列表</view>
  12. </view>
  13. <view class='item' :class='orderStatus==10 ? "on": ""' @click="statusClick(10)">
  14. <view>客户退款处理</view>
  15. </view>
  16. </view>
  17. <view class="borderPad mt20">
  18. <view class='search acea-row row-middle'>
  19. <text class='iconfont icon-sousuo2 mr20'></text>
  20. <input type='text' v-model='keywords' confirm-type="search" :focus="focus" placeholder='根据商品名称/退款订单号/订单编号搜索'
  21. placeholder-class='placeholder' @blur="handleSeach" maxlength="50"></input>
  22. </view>
  23. </view>
  24. <view class='return-list borderPad' v-if="orderList.length">
  25. <view class='goodWrapper borRadius14' v-for="(items,index) in orderList" :key="index">
  26. <!-- <view v-if="refundTypeStatus ==-1" class='orderNum acea-row'>
  27. <text class="mr10 iconfont icon-shangjiadingdan"></text>
  28. <text class="no mr10">{{items.merName}}</text>
  29. </view> -->
  30. <view v-if="orderStatus ==10" class='orderNum acea-row row-between'>
  31. <view class="acea-row">
  32. <view class="tit mr10">退款单号: </view>
  33. <view class="no">{{items.refundOrderNo}}</view>
  34. </view>
  35. <view class="afterSalesType">
  36. <span class="iconfont" :class="items.afterSalesType===1?'icon-jintuikuan':'icon-tuihuotuikuan'"></span>
  37. <span>{{items.afterSalesType===1?'仅退款':'退货退款'}}</span>
  38. </view>
  39. </view>
  40. <view @click='goOrderDetails(items)' class='item acea-row row-between-wrapper'>
  41. <view class='pictrue'>
  42. <image :src='items.image'></image>
  43. </view>
  44. <view class='text'>
  45. <view class='name line1 mb20'>{{items.productName}}</view>
  46. <!-- <view class="f-s-20 text-999 mb24">{{items.sku}}</view> -->
  47. <view class='acea-row row-between-wrapper'>
  48. <view class='num mr20 line-heightOne'>
  49. {{orderStatus ==1?'数量:'+items.payNum:'申请数量:'+items.applyRefundNum}}
  50. </view>
  51. <view v-show="orderStatus ==10" class='attr font-color line-heightOne'>
  52. {{items.refundStatus===3?'已退款':'申请退款'}}:{{items.refundPrice}}
  53. </view>
  54. </view>
  55. <view></view>
  56. <view class='acea-row row-between-wrapper' v-show="orderStatus ==1">
  57. <view></view>
  58. <view class="conter">
  59. {{items.shippingType==1?'快递配送':items.shippingType==2?'自提':'自提'}}
  60. </view>
  61. </view>
  62. </view>
  63. </view>
  64. <view v-if="orderStatus===10" class="btn-box acea-row row-between">
  65. <view @click.stop="handlerToRecord(items.orderNo)" v-if="items.applyRefundNum+items.refundNum>0" class="applyRefundNum">
  66. <text>有{{items.applyRefundNum+items.refundNum}}件商品已申请售后</text><span class="iconfont icon-gengduo3 ml10" style="font-size: 20rpx;"></span>
  67. </view>
  68. <view v-else></view>
  69. <!-- <view class="btn bg-color acea-row row-center" style="color: #fff;" @click="goRefund(items)">确认发货</view> -->
  70. </view>
  71. <view>
  72. <view class="refundTypeStatus line1" v-if="orderStatus===10" >
  73. {{ items.refundStatus| merFundStatusFilter}}
  74. <span class="tips ml20">{{items.refundStatus| orderMerRefundTipsStatusFilter}}</span>
  75. </view>
  76. <view class="btn-box acea-row" style="justify-content: flex-end;">
  77. <view></view>
  78. <view v-if="orderStatus == 10 && (items.refundStatus === 0|| items.refundStatus === 5 )" class="btn btn-999 acea-row row-center line-heightOne mr-20" @click="goOrderDetails(items)">去处理</view>
  79. <view v-if="orderStatus == 1 && items.status === 1 && items.shippingType == 1" style="color: #fff;" class="btn bg-color acea-row row-center line-heightOne ml20"
  80. @tap='confirmFHOrder(items.orderNo)'>确认发货</view>
  81. <view v-if="orderStatus == 1 && items.status === 1 && items.shippingType == 2" style="color: #fff;" class="btn bg-color acea-row row-center line-heightOne ml20"
  82. @tap='confirmFHOrderNotExp(items.orderNo)'>确认发货</view>
  83. </view>
  84. </view>
  85. </view>
  86. </view>
  87. <view class='loadingicon acea-row row-center-wrapper'>
  88. <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{orderList.length>0?loadTitle:''}}
  89. </view>
  90. <view class='noCart' v-if="orderList.length == 0 && !loading">
  91. <view class='pictrue text-center'>
  92. <image :src="urlDomain+'crmebimage/presets/nodingdan.png'"></image>
  93. <view class="default_txt">暂无售后订单哦~</view>
  94. </view>
  95. </view>
  96. <!-- 快递信息 -->
  97. <uni-popup ref="deliveryRef" :is-mask-click="false">
  98. <view class="w-full flex-center" :style="{height: height + 'px'}">
  99. <!-- <view class="flex-y-center" style="justify-content: space-between;padding: 20rpx 19rpx 38rpx 19rpx;width: 100%;">
  100. <view style="opacity: 0;">1</view>
  101. <image style="width: 39rpx;height: 39rpx;" src="/static/img/chacha.png" @tap="onCancel"></image>
  102. </view> -->
  103. <view style="background-color: #fff;width: 100%;padding: 50rpx;">
  104. <view class="flex-y-center picker" style="margin-bottom: 20rpx;">
  105. 快递公司:<!-- <input class="search2" type="text" v-model="companyName" placeholder="请输入快递公司" /> -->
  106. <picker @change="bindExpressChange" :value="expressIndex" :range="expressAll"
  107. range-key="name">
  108. <view class="picker-box search2">
  109. {{expressAll[expressIndex].name}}
  110. <text class="iconfont icon-jiantou"></text>
  111. </view>
  112. </picker>
  113. </view>
  114. <view class="flex-y-center" style="margin-bottom: 20rpx;">
  115. 快递单号:<input class="search2" type="text" v-model="companyOdd" placeholder="请输入快递单号" />
  116. </view>
  117. <view class="flex-y-center">
  118. 快递备注:<input class="search2" type="text" v-model="deliveryMark" placeholder="请输入快递备注" />
  119. </view>
  120. <view class="flex-center">
  121. <button class="sub flex-center" @tap="onSure">确定</button>
  122. </view>
  123. </view>
  124. </view>
  125. </uni-popup>
  126. <uni-popup ref="rejectDialog" type="dialog">
  127. <view class="tui-modal-custom">
  128. <view class="fs-32 fw-500 lh-44rpx text-center">审核不通过原因</view>
  129. <view class="mt-24 bg--w111-f5f5f5 rd-16rpx p-24">
  130. <textarea class="w-full fs-26 h-342" ref="myTextarea" v-model="rejectText" :always-embed="true" :adjust-position="true"
  131. cursor-spacing="85rpx" placeholder="请输入审核不通过原因" :maxlength="100" name="desc" />
  132. </view>
  133. <view class="flex-between-center mt-40">
  134. <view class="w-244 h-72 rd-36rpx flex-center fs-26 font-color close-btn" @tap="handleInputClose">取消
  135. </view>
  136. <view class="w-244 h-72 rd-36rpx flex-center bg-color text--w111-fff fs-26"
  137. @tap="handleInputConfirm">保存
  138. </view>
  139. </view>
  140. </view>
  141. </uni-popup>
  142. </view>
  143. </template>
  144. <script>
  145. // +----------------------------------------------------------------------
  146. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  147. // +----------------------------------------------------------------------
  148. // | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
  149. // +----------------------------------------------------------------------
  150. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  151. // +----------------------------------------------------------------------
  152. // | Author: CRMEB Team <admin@crmeb.com>
  153. // +----------------------------------------------------------------------
  154. import {
  155. secondHandAfterSaleList,
  156. secondHandRefundList,
  157. refundSecondHandMyList,
  158. refundSecondHandOkApi,
  159. returningSecondHandRejectApi,
  160. returningSecondHandAuditApi,
  161. secondHandOrderList,
  162. secondHandMySendList,
  163. secondHandSend
  164. } from '@/api/secondHand.js';
  165. import {
  166. goProductDetail,
  167. onRevokeRefund
  168. } from '@/libs/order.js'
  169. import {
  170. expressAllApi
  171. } from '@/api/order.js'
  172. import {
  173. toLogin
  174. } from '@/libs/login.js';
  175. import {
  176. Debounce
  177. } from '@/utils/validate.js'
  178. import {
  179. mapGetters
  180. } from "vuex";
  181. import animationType from '@/utils/animationType.js'
  182. let app = getApp();
  183. export default {
  184. created() {
  185. let that = this;
  186. uni.getSystemInfo({
  187. success: function(res) {
  188. that.height = res.windowHeight;
  189. //res.windowHeight:获取整个窗口高度为px,*2为rpx;98为头部占据的高度;
  190. // #ifndef APP-PLUS || H5 || MP-ALIPAY
  191. that.navbarRight =
  192. res.windowWidth - uni.getMenuButtonBoundingClientRect().left;
  193. // #endif
  194. },
  195. });
  196. if (!this.$Cache.get('expressListAll')) {
  197. this.getExpressAll();
  198. } else {
  199. this.expressAll = JSON.parse(this.$Cache.get('expressListAll'))
  200. }
  201. },
  202. data() {
  203. return {
  204. urlDomain: this.$Cache.get("imgHost"),
  205. loading: false,
  206. loadend: false,
  207. loadTitle: '显示更多', //提示语
  208. orderList: [], //订单数组
  209. refundTypeStatus: -1, //订单选择状态
  210. orderStatus: -1, //订单选择状态
  211. page: 1,
  212. limit: 20,
  213. keywords: '',
  214. isMyTask: 1,
  215. theme: app.globalData.theme,
  216. focus: false,
  217. rejectText: '',
  218. rejectOrder: '',
  219. height: '',
  220. expressAll: [],
  221. expressIndex: 0,
  222. orderNo: '',
  223. companyName: '',
  224. companyOdd: '',
  225. deliveryMark: ''
  226. };
  227. },
  228. computed: mapGetters(['isLogin',"uid"]),
  229. watch: {
  230. isLogin: {
  231. handler: function(newV, oldV) {
  232. if (newV) {
  233. //this.getOrderAfterSaleList();
  234. }
  235. },
  236. deep: true
  237. }
  238. },
  239. onLoad(options) {
  240. this.keywords = options.orderNo || ''
  241. this.orderStatus=options.orderStatus || ''
  242. if (this.isLogin) {
  243. this.getOrderAfterSaleList();
  244. } else {
  245. toLogin();
  246. }
  247. },
  248. /**
  249. * 页面上拉触底事件的处理函数
  250. */
  251. onReachBottom: function() {
  252. if (this.refundTypeStatus === -1) {
  253. this.getOrderAfterSaleList();
  254. } else {
  255. this.getOrderRefundList();
  256. }
  257. },
  258. methods: {
  259. //物流公司
  260. getExpressAll() {
  261. expressAllApi().then(res => {
  262. this.$set(this, 'expressAll', res.data);
  263. this.$Cache.set('expressListAll', res.data)
  264. }).catch(err => {
  265. return this.$util.Tips({
  266. title: err
  267. });
  268. })
  269. },
  270. //选择物流公司
  271. bindExpressChange(e) {
  272. this.expressIndex = e.target.value;
  273. },
  274. //已经申请售后的订单跳转至申请列表
  275. handlerToRecord(orderNo) {
  276. this.refundTypeStatus = 9;
  277. this.keywords = orderNo;
  278. this.loadend = false;
  279. this.loading = false;
  280. this.page = 1;
  281. this.orderList = [];
  282. this.getOrderRefundList()
  283. },
  284. //审核保存
  285. handleInputConfirm() {
  286. let that = this;
  287. if (!this.rejectText) return this.$util.Tips({
  288. title: '请输入审核不通过原因!'
  289. });
  290. uni.showLoading({
  291. title: '正在处理中'
  292. });
  293. let params = {
  294. refundOrderNo: this.rejectOrder,
  295. auditType: 'refuse',
  296. reason: this.rejectText
  297. }
  298. returningSecondHandAuditApi(params).then(res => {
  299. uni.hideLoading();
  300. return that.$util.Tips({
  301. title: '处理成功',
  302. icon: 'success'
  303. }, function() {
  304. that.handleSeach();
  305. });
  306. }).catch(err => {
  307. return that.$util.Tips({
  308. title: err
  309. });
  310. });
  311. // 关闭窗口后,恢复默认内容
  312. this.$refs.rejectDialog.close()
  313. },
  314. //审核取消
  315. handleInputClose() {
  316. this.$refs.rejectDialog.close()
  317. },
  318. // 审核
  319. handleRevokeAudit(orderNo, type) {
  320. let that = this;
  321. this.rejectOrder = orderNo;
  322. if (type) {
  323. uni.showLoading({
  324. title: '正在处理中'
  325. });
  326. returningSecondHandAuditApi({refundOrderNo: this.rejectOrder, auditType: 'success'}).then(res => {
  327. uni.hideLoading();
  328. return that.$util.Tips({
  329. title: '处理成功',
  330. icon: 'success'
  331. }, function() {
  332. that.handleSeach();
  333. });
  334. }).catch(err => {
  335. return that.$util.Tips({
  336. title: err
  337. });
  338. });
  339. } else {
  340. this.$refs.rejectDialog.open();
  341. }
  342. },
  343. //撤销售后
  344. handleRevokeRefund(refundOrderNo) {
  345. let that = this;
  346. onRevokeRefund(refundOrderNo, 'secondHand').then(() => {
  347. this.handleSeach()
  348. });
  349. },
  350. //退回商品
  351. handleReturningRefund(item) {
  352. this.$Cache.set('productInfo', item)
  353. uni.navigateTo({
  354. url: `/pages/goods/returns_and_refunds/index?refundOrderNo=${item.refundOrderNo}&returnGoodsType=${item.returnGoodsType}&orderType=secondHand`
  355. })
  356. },
  357. //搜索
  358. handleSeach() {
  359. this.loadend = false;
  360. this.loading = false;
  361. this.page = 1;
  362. this.orderList = [];
  363. this.getOrderAfterSaleList();
  364. },
  365. /**
  366. * 退款申请
  367. */
  368. goRefund(item) {
  369. uni.navigateTo({
  370. url: `/pages/goods/after_sales_type/index?orderNo=${item.orderNo}&orderId=${item.id}&orderType=secondHand`
  371. })
  372. this.$Cache.set('productInfo', item)
  373. },
  374. statusClick(status) {
  375. this.orderStatus = status;
  376. this.loadend = false;
  377. this.loading = false;
  378. this.page = 1;
  379. this.orderList = [];
  380. this.getOrderAfterSaleList();
  381. },
  382. /**
  383. * 去订单详情
  384. */
  385. goOrderDetails: function(item) {
  386. let url;
  387. if (this.orderStatus == 1) {
  388. goProductDetail(item.productId, 0, '', JSON.stringify({id: item.productId}), 1);
  389. }
  390. else if( item.merId == this.uid) {
  391. console.log(item.merId )
  392. url = `/pages/goods/second_refunds_details/index?orderType=secondHand&orderTypeId=10&refundOrderNo=` + item.refundOrderNo
  393. }
  394. else{
  395. url = `/pages/goods/refund_details/index?orderType=secondHand&orderTypeId=10&refundOrderNo=` + item.refundOrderNo
  396. }
  397. // #ifdef MP
  398. uni.navigateTo({
  399. url: url
  400. })
  401. // #endif
  402. // #ifndef MP
  403. uni.navigateTo({
  404. animationType: animationType.type,
  405. animationDuration: animationType.duration,
  406. url: url
  407. })
  408. // #endif
  409. },
  410. /**
  411. * 获取售后申请列表
  412. */
  413. getOrderAfterSaleList: function() {
  414. let that = this;
  415. if (that.loadend) return;
  416. if (that.loading) return;
  417. that.loading = true;
  418. that.loadTitle = "";
  419. let params = {
  420. page: that.page,
  421. limit: that.limit,
  422. keywords: that.keywords,
  423. isMyTask: that.isMyTask
  424. };
  425. let api = this.orderStatus == 10 ? refundSecondHandMyList : secondHandMySendList;
  426. this.orderStatus == 10 ? params.type = 0 : '';
  427. api(params).then(res => {
  428. let list = res.data.list || [];
  429. let loadend = list.length < that.limit;
  430. that.orderList = that.$util.SplitArray(list, that.orderList);
  431. that.$set(that, 'orderList', that.orderList);
  432. that.loadend = loadend;
  433. that.loading = false;
  434. that.loadTitle = loadend ? '我也是有底线的' : '显示更多';
  435. that.page = that.page + 1;
  436. }).catch(err => {
  437. that.loading = false;
  438. that.loadTitle = '显示更多';
  439. });
  440. },
  441. //确认发货
  442. confirmFHOrder: Debounce(function(orderNo) {
  443. this.orderNo=orderNo;
  444. let that = this;
  445. this.$refs.deliveryRef.open('top')
  446. }),
  447. onSure() {
  448. let that = this;
  449. this.$refs.deliveryRef.close()
  450. this.companyName=that.expressAll[that.expressIndex].name
  451. console.log(this.companyName+"==================================")
  452. if (this.companyName== null || this.companyName =='') return that.$util.Tips({
  453. itle: '请填写快递公司'
  454. });
  455. if (this.companyOdd==null || this.companyOdd== '') return that.$util.Tips({
  456. itle: '请填写快递编号'
  457. });
  458. uni.showModal({
  459. title: '确认发货',
  460. content: '为保障权益,请确认快递信息填写无误后,再确认发货',
  461. success: function(res) {
  462. if (res.confirm) {
  463. const data = {
  464. orderNo: that.orderNo,
  465. deliveryType: 'express',
  466. expressCompy: that.companyName,
  467. expressNumber: that.companyOdd,
  468. deliveryMark: that.deliveryMark || ''
  469. }
  470. secondHandSend(data).then(res => {
  471. return that.$util.Tips({
  472. title: '操作成功',
  473. icon: 'success'
  474. }, function() {
  475. that.handleSeach();
  476. });
  477. }).catch(err => {
  478. return that.$util.Tips({
  479. title: err
  480. });
  481. })
  482. }
  483. }
  484. })
  485. },
  486. // 确认发货
  487. confirmFHOrderNotExp(orderNo) {
  488. let that = this;
  489. uni.showModal({
  490. title: '确认发货',
  491. content: '为保障权益,请确认是否发货',
  492. success: function(res) {
  493. if (res.confirm) {
  494. const data = {
  495. orderNo: orderNo,
  496. deliveryType: 'selfPickup',
  497. }
  498. secondHandSend(data).then(res => {
  499. return that.$util.Tips({
  500. title: '操作成功',
  501. icon: 'success'
  502. }, function() {
  503. that.handleSeach();
  504. });
  505. }).catch(err => {
  506. return that.$util.Tips({
  507. title: err
  508. });
  509. })
  510. }
  511. }
  512. })
  513. },
  514. /**
  515. * 获取退款列表
  516. */
  517. getOrderRefundList: function() {
  518. let that = this;
  519. if (that.loadend) return;
  520. if (that.loading) return;
  521. that.loading = true;
  522. that.loadTitle = "";
  523. secondHandRefundList({
  524. page: that.page,
  525. limit: that.limit,
  526. keywords: that.keywords,
  527. type: that.orderStatus
  528. }).then(res => {
  529. let list = res.data.list || [];
  530. let loadend = list.length < that.limit;
  531. that.orderList = that.$util.SplitArray(list, that.orderList);
  532. that.$set(that, 'orderList', that.orderList);
  533. that.loadend = loadend;
  534. that.loading = false;
  535. that.loadTitle = loadend ? '我也是有底线的' : '显示更多';
  536. that.page = that.page + 1;
  537. }).catch(err => {
  538. that.loading = false;
  539. that.loadTitle = '显示更多';
  540. });
  541. }
  542. }
  543. }
  544. </script>
  545. <style lang="scss" scoped>
  546. //@import '../static/css/order_details.scss';
  547. .refundTypeStatus {
  548. width: 100%;
  549. height: 71rpx;
  550. line-height: 71rpx;
  551. background: #F6F6F6;
  552. border-radius: 10rpx;
  553. font-size: 26rpx;
  554. font-weight: 400;
  555. color: #282828;
  556. padding: 0 18rpx;
  557. .tips {
  558. font-size: 26rpx;
  559. font-weight: 400;
  560. color: #999999;
  561. }
  562. }
  563. .afterSalesType {
  564. font-weight: 400;
  565. color: #666666;
  566. font-size: 26rpx;
  567. .iconfont {
  568. @include main_color(theme);
  569. margin-right: 12rpx;
  570. font-size: 26rpx;
  571. }
  572. }
  573. .search {
  574. width: 100%;
  575. background-color: #fff;
  576. border-radius: 33rpx;
  577. padding: 0 24rpx;
  578. box-sizing: border-box;
  579. height: 64rpx;
  580. input {
  581. width: 600rpx;
  582. font-size: 28rpx;
  583. }
  584. .placeholder {
  585. color: #bbb;
  586. }
  587. .iconfont {
  588. color: #999999;
  589. font-size: 26rpx;
  590. }
  591. }
  592. .applyRefundNum {
  593. font-size: 26rpx;
  594. @include main_color(theme);
  595. }
  596. .status {
  597. position: absolute;
  598. right: 15rpx;
  599. top: 0;
  600. .iconfont {
  601. font-size: 120rpx;
  602. opacity: .3;
  603. }
  604. }
  605. .btn-box {
  606. display: flex;
  607. padding-top: 20rpx;
  608. line-height: 60rpx;
  609. .btn-line {
  610. @include main_color(theme);
  611. @include coupons_border_color(theme);
  612. }
  613. .btn-bg {
  614. color: #fff;
  615. }
  616. .btn-999 {
  617. border: 1px solid #999999;
  618. color: #666666;
  619. }
  620. .btn {
  621. width: 176rpx;
  622. height: 60rpx;
  623. display: flex;
  624. justify-content: center;
  625. align-items: center;
  626. border-radius: 30rpx;
  627. font-size: 28rpx;
  628. }
  629. }
  630. .nav {
  631. background-color: #fff;
  632. width: 100%;
  633. height: 90rpx;
  634. line-height: 88rpx;
  635. .item {
  636. text-align: center;
  637. font-size: 30rpx;
  638. color: #282828;
  639. .num {
  640. margin-top: 18rpx;
  641. }
  642. }
  643. .on {
  644. @include main_color(theme);
  645. font-weight: bold;
  646. @include tab_border_bottom(theme);
  647. }
  648. }
  649. .mr8 {
  650. margin-right: 8rpx;
  651. }
  652. .return-list .goodWrapper {
  653. background-color: #fff;
  654. margin-top: 20rpx;
  655. position: relative;
  656. padding: 0rpx 24rpx 20rpx 24rpx;
  657. }
  658. .return-list .goodWrapper .orderNum {
  659. border-bottom: 1px solid #eee;
  660. height: 86rpx;
  661. line-height: 86rpx;
  662. .tit {
  663. font-size: 28rpx;
  664. color: #282828;
  665. }
  666. .no {
  667. font-size: 28rpx;
  668. color: #282828;
  669. }
  670. }
  671. .return-list .goodWrapper .item {
  672. border-bottom: 0;
  673. padding: 25rpx 0;
  674. .money {
  675. color: #999999;
  676. font-weight: 26rpx;
  677. margin-top: 0;
  678. }
  679. .attr,
  680. .num {
  681. font-size: 20rpx;
  682. color: #999999;
  683. margin-top: 0;
  684. }
  685. }
  686. .return-list .goodWrapper .totalSum {
  687. padding: 0 0 32rpx 0;
  688. // text-align: right;
  689. font-size: 26rpx;
  690. color: #282828;
  691. display: flex;
  692. justify-content: space-between;
  693. }
  694. .return-list .goodWrapper .totalSum .price {
  695. font-size: 28rpx;
  696. font-weight: bold;
  697. @include price_color(theme);
  698. }
  699. .hui {
  700. color: #CCCCCC;
  701. font-size: 24rpx;
  702. }
  703. .return-list .goodWrapper .powder {
  704. @include price_color(theme);
  705. //font-size: 24rpx;
  706. }
  707. .align-center {
  708. margin-top: 32rpx;
  709. }
  710. .noCart {
  711. margin-top: 32%;
  712. .pictrue image {
  713. width: 410rpx !important;
  714. height: 334rpx !important;
  715. }
  716. }
  717. .default_txt {
  718. font-size: 26rpx;
  719. color: #999;
  720. text-align: center;
  721. }
  722. .bg-tk-color {
  723. background-color: $bg-color-primary;
  724. color: #fff;
  725. border: none;
  726. }
  727. .tui-modal-custom {
  728. width: 600rpx;
  729. position: relative;
  730. box-sizing: border-box;
  731. padding: 40rpx;
  732. border-radius: 16px;
  733. background-color: #fff;
  734. z-index: 9999;
  735. .h-342 {
  736. min-height: 268rpx;
  737. max-height: 268rpx;
  738. overflow-y: scroll;
  739. }
  740. }
  741. .sub {
  742. background-color: $bg-color-primary;
  743. width: 308rpx;
  744. height: 77rpx;
  745. font-weight: 500;
  746. font-size: 31rpx;
  747. color: #FFFFFF;
  748. margin: 58rpx 0 96rpx 0;
  749. }
  750. .search2 {
  751. height: 60rpx;
  752. padding: 0 32rpx;
  753. border-radius: 36rpx;
  754. background: #F5F5F5;
  755. }
  756. </style>