detail.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <view class="o-plr-24 o-ptb-24">
  3. <view class="l-boxShadow o-mb-20 c-bg-f o-plr-24 o-ptb-12 c-radius-10">
  4. <view class="l-flex-between o-ptb-20">
  5. <view class="c-color-8 l-flex-RC">
  6. <text>订单号:</text>
  7. <u-tooltip color="#888888" overlay :text="detailData.sn" direction="bottom"></u-tooltip>
  8. </view>
  9. <text class="c-color-8">{{ statusName(detailData.status) }}</text>
  10. </view>
  11. <u-line></u-line>
  12. <view class="" v-for="item1 in detailData.goodsNumsPrice">
  13. <view class="l-flex-RC o-mb-20">
  14. <view class="l-flex-1">
  15. <!-- 后台约定好A00,但是这个商品编号有可能会获取不到,获取不到会是A00 -->
  16. <u--image v-if="item1.imgId !== 'A00'"
  17. :width="GETT_miniProduct.includes(item1.imgId) ? '250rpx' : '200rpx'"
  18. :height="GETT_miniProduct.includes(item1.imgId) ? '250rpx' : '200rpx'" mode="aspectFit"
  19. :lazy-load="true" :fade="true" duration="450" :src="item1.imgUrl">
  20. <view slot="error" style="font-size: 24rpx;">加载失败</view>
  21. </u--image>
  22. </view>
  23. <view class="l-flex-3">
  24. <view class="c-color-8 u-line-2">{{ item1.goodsName }}</view>
  25. <view class="l-flex-RC o-mt-30">
  26. <text class="c-color-8">X{{ item1.nums }}</text>
  27. <text class="c-color-MR o-ml-30">¥{{ item1.price }}</text>
  28. </view>
  29. </view>
  30. </view>
  31. </view>
  32. <u-line></u-line>
  33. <view class="l-flex-between o-ptb-20">
  34. <text class="c-text-12 c-color-8">共{{ detailData.goodsNums }}件商品</text>
  35. <view class="l-flex-RC o-ml-30">
  36. <text class="c-text-12 c-color-8">实付</text>
  37. <text class="c-text-16 c-color-MR">¥{{ detailData.price }}</text>
  38. </view>
  39. </view>
  40. <u-line></u-line>
  41. <view class="c-text-12 c-color-8 o-ptb-20">
  42. 下单时间:{{ new Date(detailData.payDate).getTime() | date('yyyy-mm-dd hh:MM:ss') }}</view>
  43. <u-line></u-line>
  44. <view v-if="detailData.orderStatus!=null&&detailData.orderStatus!=''&&detailData.orderStatus<1&&detailData.status!=3" class="c-text-12 c-color-8 o-ptb-20">
  45. <u-button
  46. @click="refuse(detailData.id)"
  47. throttleTime="1000"
  48. type="primary"
  49. shape="circle"
  50. size="normal"
  51. text="申请退款"
  52. ></u-button></view>
  53. </view>
  54. </view>
  55. </template>
  56. <script>
  57. // 引入辅助函数
  58. import {
  59. mapGetters
  60. } from 'vuex';
  61. import { API_refuse } from '../../../common/api';
  62. export default {
  63. data() {
  64. return {
  65. detailData: {}
  66. };
  67. },
  68. computed: {
  69. // 使用辅助函数
  70. ...mapGetters(['GETT_miniProduct']),
  71. // 状态名称
  72. statusName: () => {
  73. return status => {
  74. switch (status) {
  75. case 1:
  76. return '已完成';
  77. break;
  78. case 3:
  79. return '已退款';
  80. break;
  81. default:
  82. return '暂无';
  83. break;
  84. }
  85. };
  86. }
  87. },
  88. onLoad(options) {
  89. this.detailData = JSON.parse(decodeURIComponent(options.row));
  90. },
  91. methods: {
  92. // 申请退款
  93. refuse(id) {
  94. uni.showModal({
  95. title: '是否申请退款?',
  96. confirmText: '确定',
  97. cancelText: '取消',
  98. confirmColor: '#3c9cff',
  99. success: function(res) {
  100. if (res.confirm) {
  101. API_refuse( {id:id} ).then(res => {
  102. console.log('res', res);
  103. });
  104. } else if (res.cancel) {}
  105. }
  106. });
  107. }
  108. }
  109. };
  110. </script>