refundDetail.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. <template>
  2. <view class="box">
  3. <view class="cont">
  4. <view class="topBox goodsBox" v-if="data.openSheetRefund.refundState == 1 || data.openSheetRefund.refundState == 3">
  5. <view class="topState">
  6. <view class="tsTop">
  7. <view class="tsYd"></view>
  8. <view class="tsHx"></view>
  9. <view class="tsYd"></view>
  10. <view class="tsHx tsHx2"></view>
  11. <view class="tsYd tsYd2"></view>
  12. <view class="tsHx tsHx2"></view>
  13. <view class="tsYd tsYd2"></view>
  14. </view>
  15. <view class="tsM">
  16. <view class="tsMline">发起退款</view>
  17. <view class="tsMline">商家处理</view>
  18. <view class="tsMline tsMline2">商家退款</view>
  19. <view class="tsMline tsMline2">退款结束</view>
  20. </view>
  21. <view class="txTxt" v-if="data.openSheetRefund.refundState == 1">
  22. <span>请等待</span><span style="color: #EC0F0A;">商家处理</span>
  23. </view>
  24. <view class="txTxt2" v-if="data.openSheetRefund.refundState == 1">已发起退款申请</view>
  25. <view class="txTxt" v-if="data.openSheetRefund.refundState == 3">
  26. <span>商家</span><span style="color: #EC0F0A;">拒绝退款</span>
  27. </view>
  28. </view>
  29. </view>
  30. <view class="goodsBox topBox" v-if="data.openSheetRefund.refundState == 2">
  31. <view class="tkTopTitle">退款成功</view>
  32. <view class="tksuccess">
  33. <view class="tksuccessYx">
  34. <view class="tksuccessTxt">原路退回</view>
  35. <view class="tksuccessPrice">¥<span style="font-size: 36rpx;">{{data.openSheetRefund.money}}</span> </view>
  36. </view>
  37. <view class="tksuccessTime">{{data.openSheetRefund.reAccountTime}}</view>
  38. </view>
  39. </view>
  40. <!-- 退款关闭-->
  41. <view class="goodsBox topBox" v-if="data.openSheetRefund.refundState == 4||data.openSheetRefund.refundState == 5">
  42. <view class="tkTopTitle">退款关闭</view>
  43. <view class="tkErr" v-if="data.openSheetRefund.refundState == 4">退款失败</view>
  44. <view class="tkErr" v-if="data.openSheetRefund.refundState == 5">用户已取消退款</view>
  45. </view>
  46. <!-- 退款关闭-->
  47. <view class="itemBox flex">
  48. </image>
  49. <image class="itemIMg" src="../../static/timg/noimg.png" mode=""></image>
  50. <view class="itemRight">
  51. <view class="itemName">{{data.openSheetRefund.itemName}}</view>
  52. <view class="priceBox">
  53. <view class="price">¥{{data.openSheet.realMoney}}</view>
  54. </view>
  55. </view>
  56. </view>
  57. <view class="goodsBox">
  58. <view class="goodsline flex" v-if="data.openSheetRefund.couponCount==1" >
  59. <view class="goodsLeft">退款券号</view>
  60. <view class="goodRight" style="display: flex;">
  61. <image @click="copy(data.openSheetRefund.couponCode)" src="../../static/img2/copy.png" mode="" class="copyIcon"></image>
  62. <span>{{data.openSheetRefund.couponCode}}</span>
  63. </view>
  64. </view>
  65. <view class="goodsline flex" v-if="data.openSheetRefund.couponCount!=1">
  66. <view class="goodsLeft">退款券号</view>
  67. <view class="goodRight" style="display: flex;" @click="codeFn">
  68. <span>共{{data.openSheetRefund.couponCount}}份券号</span>
  69. <image src="../../static/img2/hjt.png" mode="" class="jtIcon"></image>
  70. </view>
  71. </view>
  72. <view class="goodsline flex" >
  73. <view class="goodsLeft">退款份数</view>
  74. <view class="goodRight" >
  75. {{data.openSheetRefund.couponCount}}份
  76. </view>
  77. </view>
  78. <view class="goodsline flex" >
  79. <view class="tkPrice">
  80. <view class="tkPrice1">退款金额</view>
  81. <view class="tkPrice2">实际退款金额以到账金额为准</view>
  82. </view>
  83. <view class="tkPriceNum">¥{{data.openSheetRefund.money}}</view>
  84. </view>
  85. <view class="goodsline flex" >
  86. <view class="goodsLeft">退款方式</view>
  87. <view class="goodRight" style="font-size: 26rpx;color: #222222;">原路退回</view>
  88. </view>
  89. <view class="goodsline flex" >
  90. <view class="goodsLeft">商品是否已使用</view>
  91. <view class="goodRight" >{{data.openSheetRefund.hType==1?'未使用':'已使用'}}</view>
  92. </view>
  93. <view class="goodsline flex" >
  94. <view class="goodsLeft">退款原因</view>
  95. <view class="goodRight" >{{data.openSheetRefund.refundReason}}</view>
  96. </view>
  97. <view class="goodsline flex" >
  98. <view class="goodsLeft">退款说明</view>
  99. <view class="goodRight" style="width: 400rpx;text-align: right;">{{data.openSheetRefund.content}}</view>
  100. </view>
  101. <view class="goodsline flex" >
  102. <view class="goodsLeft">退款凭证</view>
  103. <view class="goodRight tkImgBox" >
  104. <image class="tkImg" @click="previewImage(index)" v-for="(item,index) in data.evidenceList" :src="item.url" mode="aspectFit"></image>
  105. </view>
  106. </view>
  107. </view>
  108. <view class="goodsBox">
  109. <view class="goodsline flex" >
  110. <view class="goodsLeft">订单编号</view>
  111. <view class="goodRight" style="display: flex;">
  112. <image @click="copy(data.openSheetRefund.sheetCode)" src="../../static/img2/copy.png" mode="" class="copyIcon"></image>
  113. <span>{{data.openSheetRefund.sheetCode}}</span>
  114. </view>
  115. </view>
  116. <view class="goodsline flex" >
  117. <view class="goodsLeft">退款编号</view>
  118. <view class="goodRight" style="display: flex;">
  119. <image @click="copy(data.openSheetRefund.code)" src="../../static/img2/copy.png" mode="" class="copyIcon"></image>
  120. <span>{{data.openSheetRefund.code}}</span>
  121. </view>
  122. </view>
  123. </view>
  124. </view>
  125. <view class="reasonBox" v-if="codeShow" @click="qdTkclose">
  126. <view class="codeCont" @click.stop="">
  127. <view class="reasonTop">
  128. <view class="chahao"></view>
  129. <view class="tkTitle">退款券号</view>
  130. <image @click="qdTkclose" class="chahao" src="../../static/img2/chahao.png" mode=""></image>
  131. </view>
  132. <view class="codeLineBox">
  133. <view class="codeLine" v-for="(v,i) in data.openSheetRefund.couponCode.split(',')">
  134. <span style="padding-right: 10rpx;">{{v}}</span>
  135. <image src="../../static/img2/copy.png" mode="" @click="copy(v)" class="copyIcon"></image>
  136. </view>
  137. </view>
  138. </view>
  139. </view>
  140. <view style="height: 40rpx;"></view>
  141. </view>
  142. </template>
  143. <script>
  144. export default {
  145. components: {
  146. },
  147. data() {
  148. return {
  149. themeColor:'',
  150. ext:'',
  151. userInfo:'',
  152. carInfo:'',
  153. customerInfo:'',
  154. codeShow:false,
  155. id:'09ee0273-d2b2-4204-a1db-f0555ec2ea10',
  156. data:'',
  157. }
  158. },
  159. onLoad(opt) {
  160. if(opt.id){
  161. this.id=opt.id
  162. }
  163. this.userInfo=this.$store.state.userInfo;
  164. this.ext=this.$common.getExtStoreId();
  165. if(this.userInfo){
  166. this.getData()
  167. }else{
  168. this.$common.automaticlogin().then(val => {
  169. this.userInfo=this.$store.state.userInfo;
  170. if (this.id) {
  171. this.getData();
  172. }
  173. if(!this.userInfo){
  174. //this.authorizShow=true
  175. }
  176. })
  177. }
  178. },
  179. onShow() {
  180. },
  181. methods: {
  182. previewImage(index){
  183. // 预览图片
  184. var arr=[]
  185. this.data.evidenceList.forEach(item=>{
  186. arr.push(item.url)
  187. })
  188. uni.previewImage({
  189. urls: arr,
  190. current: index,
  191. longPressActions: {
  192. itemList: ['发送给朋友', '保存图片', '收藏'],
  193. success: function(data) {
  194. console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
  195. },
  196. fail: function(err) {
  197. console.log(err.errMsg);
  198. }
  199. }
  200. });
  201. },
  202. getData(){
  203. uni.showLoading({
  204. title: '加载中'
  205. })
  206. this.$http('openOrderManagement/openSheetRefundDetail', {
  207. id: this.id,
  208. }, 'GET').then(res => {
  209. uni.hideLoading();
  210. this.data=res.data
  211. })
  212. },
  213. qdTkclose(){
  214. this.codeShow=false;
  215. },
  216. codeFn(){
  217. this.codeShow=true;
  218. },
  219. copy(txt) {
  220. uni.setClipboardData({
  221. data: txt,
  222. success: function() {
  223. uni.showToast({
  224. title: '复制成功',
  225. icon: 'none',
  226. duration: 2000
  227. });
  228. }
  229. });
  230. },
  231. },
  232. onPullDownRefresh() {
  233. this.getData()
  234. setTimeout(function() {
  235. uni.stopPullDownRefresh();
  236. }, 1000);
  237. },
  238. }
  239. </script>
  240. <style scoped lang="less">
  241. .box {
  242. width: 100vw;
  243. min-height: 100vh;
  244. background: #F4F4F4;
  245. }
  246. .tkTopTitle{
  247. font-weight: 500;
  248. font-size: 32rpx;
  249. color: #222222;
  250. line-height: 50rpx;
  251. padding-top: 12rpx;
  252. }
  253. .tksuccess{
  254. background: #F7F7F7;
  255. border-radius: 16rpx;
  256. padding: 20rpx;
  257. margin-top: 20rpx;
  258. }
  259. .tksuccessYx{
  260. display: flex;justify-content: space-between;
  261. }
  262. .tksuccessTxt{
  263. font-weight: 500;
  264. font-size: 28rpx;
  265. color: #222222;
  266. line-height: 40rpx;
  267. }
  268. .tksuccessPrice{
  269. font-weight: 500;
  270. font-size: 26rpx;
  271. color: #EC0F0A;
  272. }
  273. .tksuccessTime{
  274. font-size: 26rpx;
  275. color: #9A9A9A;
  276. }
  277. .tsTop{
  278. display: flex;justify-content: center;
  279. }
  280. .tsM{
  281. display: flex;justify-content: center;
  282. }
  283. .tsMline{
  284. font-size: 26rpx;
  285. color: #666666;
  286. line-height: 33rpx;
  287. text-align: center;
  288. width: 210rpx;
  289. padding-top: 8rpx;
  290. }
  291. .txTxt{
  292. font-weight: 500;
  293. font-size: 36rpx;
  294. color: #222222;
  295. line-height: 50rpx;
  296. padding-top: 20rpx;
  297. }
  298. .txTxt2{
  299. font-size: 24rpx;
  300. color: #9A9A9A;
  301. line-height: 33rpx;
  302. padding-top: 8rpx;
  303. padding-bottom: 20rpx;
  304. }
  305. .tsYd{
  306. width: 12rpx;
  307. height: 12rpx;
  308. border: 3rpx solid #88888A;
  309. border-radius: 50%;
  310. }
  311. .tsHx{
  312. width: 135rpx;
  313. height: 4rpx;
  314. background: #5B5B5C;
  315. border-radius: 2rpx;
  316. margin-left: 9rpx;
  317. margin-right: 9rpx;
  318. margin-top: 6rpx;
  319. }
  320. .tsYd2{
  321. border: 3rpx solid #eeeeee;
  322. }
  323. .tsHx2{
  324. background: #eeeeee;
  325. }
  326. .tsMline2{
  327. color: #9A9A9A;
  328. }
  329. .topState{
  330. padding-top: 20rpx;
  331. }
  332. .topBox{
  333. margin-bottom: 20rpx;
  334. }
  335. .copyIcon{
  336. width: 30rpx;height: 30rpx;
  337. margin-top: 4rpx;margin-right: 6rpx;
  338. }
  339. .tkImg{
  340. width: 148rpx;height: 148rpx;
  341. margin-left: 10rpx;
  342. margin-bottom: 10rpx;
  343. }
  344. .tkImgBox{
  345. display: flex;flex-wrap: wrap;
  346. width: 484rpx;
  347. }
  348. .reasonTop{
  349. display: flex;justify-content: space-between;
  350. padding: 32rpx 42rpx;
  351. }
  352. .chahao{
  353. width: 21rpx;height: 21rpx;
  354. padding-top: 10rpx;
  355. padding-left: 10rpx;
  356. padding-right: 10rpx;
  357. padding-bottom: 10rpx;
  358. }
  359. .tkTitle{
  360. font-weight: 500;
  361. font-size: 28rpx;
  362. color: #222222;
  363. line-height: 40rpx;
  364. }
  365. .reasonBox{
  366. position: fixed;
  367. left: 0;
  368. top: 0;
  369. height: 100vh;
  370. width: 750rpx;
  371. background: rgba(0, 0, 0, 0.5);
  372. }
  373. .codeCont{
  374. width: 750rpx;
  375. background: #FFFFFF;
  376. border-radius: 28rpx 28rpx 0rpx 0rpx;
  377. position: absolute;
  378. left: 0;
  379. bottom: 0;
  380. height: 383rpx;
  381. }
  382. .reasonCont{
  383. height: 70vh;
  384. width: 750rpx;
  385. background: #FFFFFF;
  386. border-radius: 28rpx 28rpx 0rpx 0rpx;
  387. position: absolute;
  388. left: 0;
  389. bottom: 0;
  390. }
  391. .reasonContLine{
  392. display: flex;justify-content: space-between;
  393. padding: 20rpx 0;
  394. }
  395. .reasonContLineTitle{
  396. font-weight: 500;
  397. font-size: 28rpx;
  398. color: #222222;
  399. }
  400. .reasonContLineTxt{
  401. font-weight: 400;
  402. font-size: 28rpx;
  403. color: #222222;
  404. line-height: 40rpx;
  405. }
  406. .reasonContLineCk{
  407. width: 28rpx;
  408. height: 28rpx;
  409. border: 2rpx solid #9A9A9A;
  410. border-radius: 16rpx;
  411. margin-top: 6rpx;
  412. }
  413. .reasonContLineBox{
  414. padding: 0 33rpx;
  415. height: calc(70vh - 270rpx);
  416. overflow-y: scroll;
  417. }
  418. .ckLine{
  419. display: flex;color: #9A9A9A;
  420. font-size: 26rpx;
  421. }
  422. .xinghao{
  423. color: #EC0F0A;
  424. }
  425. .jtIcon{
  426. width: 10rpx;height: 20rpx;
  427. margin-top: 8rpx;
  428. margin-left: 10rpx;
  429. }
  430. .tkPrice1{
  431. font-size: 26rpx;
  432. color: #222222;
  433. }
  434. .tkPrice2{
  435. font-size: 24rpx;
  436. color: #9A9A9A;
  437. padding-top: 8rpx;
  438. }
  439. .tkPriceNum{
  440. font-size: 26rpx;
  441. color: #222222;
  442. line-height: 50rpx;
  443. }
  444. .textareaNum{
  445. padding-bottom: 18rpx;
  446. }
  447. .tkSm{
  448. font-size: 26rpx;
  449. color: #222222;
  450. padding-top: 18rpx;
  451. }
  452. .tktextarea{
  453. font-size: 26rpx;
  454. background: #F7F7F7;
  455. border-radius: 14rpx;
  456. margin-top: 20rpx;
  457. width: 600rpx;padding: 20rpx 30rpx;
  458. margin-bottom: 10rpx;
  459. }
  460. .textareaNum{
  461. font-size: 24rpx;
  462. color: #9A9A9A;
  463. display: flex;justify-content: flex-end;
  464. }
  465. .cont{
  466. padding: 20rpx 24rpx;
  467. }
  468. .itemBox{
  469. background: #FFFFFF;
  470. border-radius: 16rpx;padding: 24rpx;
  471. }
  472. .itemIMg{
  473. width: 128rpx;
  474. height: 128rpx;border-radius: 10rpx;
  475. }
  476. .flex{
  477. display: flex;
  478. }
  479. .itemRight{
  480. width: 450rpx;padding-left: 24rpx;
  481. }
  482. .itemName{
  483. font-weight: 500;
  484. font-size: 28rpx;
  485. color: #222222;
  486. line-height: 40rpx;
  487. }
  488. .buyType{
  489. padding: 0 8rpx;text-align: center;
  490. height: 32rpx;line-height: 34rpx;
  491. border-radius: 5rpx;
  492. border: 1px solid #FF0035;font-size: 22rpx;
  493. color: #FF0035;
  494. margin-top: 10rpx;
  495. }
  496. .priceBox{
  497. display: flex;justify-content: space-between;padding-top: 40rpx;
  498. }
  499. .price{
  500. font-size: 28rpx;
  501. color: #222222;
  502. line-height: 50rpx;
  503. }
  504. .itemNum{
  505. font-size: 34rpx;line-height: 50rpx;
  506. color: #686868;
  507. }
  508. .itemnotes{
  509. font-size: 24rpx;padding-top: 12rpx;
  510. color: #FFC107;
  511. }
  512. .mealBox{
  513. background: #FFFFFF;
  514. padding: 20rpx 24rpx;
  515. margin-top: 20rpx;
  516. font-size: 26rpx;
  517. color: #666666;
  518. border-radius: 16rpx;
  519. }
  520. .fwlcTitle{
  521. color: #333333;font-size: 30rpx;font-weight: 500;
  522. padding-bottom: 20rpx;
  523. }
  524. .mealTop{
  525. display: flex;
  526. justify-content: space-between;
  527. height: 72rpx;
  528. line-height: 72rpx;
  529. font-weight: 500;
  530. font-size: 26rpx;
  531. color: #222222;
  532. font-size: 26rpx;
  533. padding: 0 20rpx;
  534. }
  535. .mealNum{
  536. text-align: center;
  537. width: 120rpx;
  538. }
  539. .mealexpire{
  540. text-align: center; width: 120rpx;
  541. }
  542. .mealName{
  543. width: 460rpx;
  544. }
  545. .mealTop2{
  546. display: flex;
  547. justify-content: space-between;
  548. height: 72rpx;
  549. line-height: 72rpx;
  550. font-weight: 500;
  551. font-size: 26rpx;
  552. color: #222222;
  553. font-size: 26rpx;
  554. padding: 0 20rpx;
  555. background: #FFF6DB;
  556. }
  557. .mealXj{
  558. background: #FFFCF3;
  559. }
  560. .xjLine{
  561. display: flex;
  562. font-weight: 500;
  563. font-size: 26rpx;
  564. color: #222222;
  565. padding: 20rpx 20rpx;
  566. }
  567. .xjyd{
  568. width: 8rpx;
  569. height: 8rpx;
  570. background: #FABF1B;
  571. border-radius: 50rpx;
  572. margin-top: 12rpx;
  573. margin-right: 10rpx;
  574. }
  575. .mealMs{
  576. background: #FFFFFF;
  577. padding: 20rpx;
  578. font-weight: 400;
  579. font-size: 24rpx;
  580. color: #9A9A9A;
  581. line-height: 38rpx;
  582. }
  583. .goodsBox{
  584. padding:18rpx 24rpx 30rpx 18rpx;font-size: 28rpx;
  585. color: #222222;background: #FFFFFF;margin-top: 20rpx;
  586. border-radius: 16rpx;
  587. }
  588. .goodsline{
  589. justify-content: space-between;
  590. padding: 18rpx 0;
  591. }
  592. .mealBox img{
  593. width: 100%;
  594. }
  595. .mealBox image{
  596. width: 100%;
  597. }
  598. .tkErr{
  599. font-size: 26rpx;
  600. color: #9A9A9A;
  601. padding-bottom: 10rpx;
  602. padding-bottom: 20rpx;
  603. }
  604. .codeLine{
  605. font-size: 26rpx;
  606. color: #222222;
  607. display: flex;
  608. justify-content: center;
  609. padding-bottom: 30rpx;
  610. }
  611. </style>