batchrefund.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <div class="box">
  3. <div class="null-page" v-show="yes"></div>
  4. <el-card class="box-card">
  5. <div slot="header" class="title clearfix">
  6. <el-breadcrumb separator="/">
  7. <el-breadcrumb-item :to="{ path: '/member/order_list' }">我的订单</el-breadcrumb-item>
  8. <el-breadcrumb-item :to="{ path: '/member/order_detail?order_id=' + order_id }">订单详情</el-breadcrumb-item>
  9. <el-breadcrumb-item>批量退款</el-breadcrumb-item>
  10. </el-breadcrumb>
  11. </div>
  12. <div slot="header" class="shopings clearfix">
  13. <span>选择退款商品</span>
  14. </div>
  15. <el-table ref="multipleTable" :data="orderData" tooltip-effect="dark" style="width: 100%"
  16. @selection-change="handleSelectionChange">
  17. <el-table-column type="selection" width="55"></el-table-column>
  18. <el-table-column label="商品图片" width="100" prop="goods_image">
  19. <template slot-scope="scope">
  20. <img class="box-img" :src="$img(scope.row.sku_image, { size: 'mid' })" alt=""
  21. @error="scope.row.sku_image = defaultGoodsImage" />
  22. </template>
  23. </el-table-column>
  24. <el-table-column label="商品名称" prop="goods_name"></el-table-column>
  25. <el-table-column label="价格" width="180" prop="price"></el-table-column>
  26. </el-table>
  27. <div class="flooter">
  28. <div class="flooter-left">
  29. <!-- <el-checkbox v-model="checked">全选</el-checkbox> -->
  30. </div>
  31. <div class="flooter-right">
  32. 共计选中{{order_goods_ids.length}}件商品
  33. <el-button v-if="order_goods_ids.length" class="but" type="primary" @click="next">下一步</el-button>
  34. <el-button v-else class="but" type="info">请选择退款商品</el-button>
  35. </div>
  36. </div>
  37. </el-card>
  38. </div>
  39. </template>
  40. <script>
  41. import {
  42. apiOrderDetail
  43. } from "@/api/order/order"
  44. import {
  45. mapGetters
  46. } from 'vuex';
  47. export default {
  48. name: "account_edit",
  49. components: {},
  50. data() {
  51. return {
  52. yes: true,
  53. order_id: 0,
  54. orderData: [],
  55. checked: false,
  56. order_goods_ids: []
  57. }
  58. },
  59. created() {
  60. this.order_id = this.$route.query.order_id
  61. this.getOrderInfo()
  62. },
  63. mounted() {},
  64. computed: {
  65. ...mapGetters(['defaultGoodsImage'])
  66. },
  67. layout: 'member',
  68. methods: {
  69. /**
  70. * 获取商品数据
  71. */
  72. getOrderInfo() {
  73. apiOrderDetail({
  74. order_id: this.order_id
  75. }).then((res) => {
  76. if (res.code >= 0) {
  77. this.orderData = [];
  78. res.data.order_goods.forEach((item) => {
  79. if (item.refund_status == 0) {
  80. this.orderData.push(item);
  81. }
  82. })
  83. }
  84. })
  85. },
  86. handleSelectionChange(e) {
  87. this.order_goods_ids = e.map((item, index) => {
  88. return item.order_goods_id;
  89. });
  90. },
  91. next() {
  92. this.$router.push({
  93. path: '/order/orderbatch_refund',
  94. query: {
  95. order_goods_id: this.order_goods_ids.join(','),
  96. order_id: this.order_id
  97. }
  98. });
  99. },
  100. }
  101. }
  102. </script>
  103. <style lang="scss" scoped>
  104. .box-img {
  105. width: 70px;
  106. height: auto;
  107. }
  108. .flooter {
  109. padding: 18px 20px;
  110. box-align: border-box;
  111. display: flex;
  112. align-content: center;
  113. justify-content: space-between;
  114. .but {
  115. padding: 10px 20px;
  116. margin-left: 10px;
  117. }
  118. }
  119. .title {
  120. padding: 0 0 18px;
  121. border-bottom: 1px solid #EBEEF5;
  122. }
  123. .shopings {
  124. padding: 18px 0 0;
  125. }
  126. </style>