RelatedOrders.vue 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <template>
  2. <el-dialog :visible.sync="visible" v-bind="modalOptions" append-to-body>
  3. <div>
  4. <el-table
  5. v-loading="!formData.relatedOrders[orderSn]" height="60vh" element-loading-text="暂无关联订单数据"
  6. :data="formData.relatedOrders[orderSn]"
  7. v-bind="{ stripe: true, size: 'small', border: true, fit: true, highlightCurrentRow: true }"
  8. >
  9. <el-table-column align="center" min-width="80" prop="orderId" label="订单ID" show-overflow-tooltip />
  10. <el-table-column align="center" min-width="150" prop="orderFormid" label="订单编号" show-overflow-tooltip />
  11. <el-table-column align="center" min-width="150" prop="createTime" label="创建时间" show-overflow-tooltip />
  12. <el-table-column align="center" min-width="120" label="订单状态" prop="state">
  13. <template slot-scope="{ row }">
  14. <span v-if="row.state === 1">待付款</span>
  15. <span v-else-if="row.state === 2">待发货</span>
  16. <span v-else-if="row.state === 3">待收货</span>
  17. <span v-else-if="row.state === 4">已完成</span>
  18. <span v-else-if="row.state === 5">交易关闭(已取消)</span>
  19. <span v-else-if="row.state === 6">待成团</span>
  20. <span v-else-if="row.state === 7">待售后</span>
  21. <span v-else-if="row.state === 8">待核销(未付款)</span>
  22. <span v-else-if="row.state === 9">待核销(已付款)</span>
  23. <span v-else-if="row.state === 10">已核销</span>
  24. <span v-else>--</span>
  25. </template>
  26. </el-table-column>
  27. <el-table-column align="center" min-width="100" prop="orderPrice" label="商品总价" show-overflow-tooltip />
  28. <el-table-column align="center" min-width="100" prop="price" label="支付金额" show-overflow-tooltip />
  29. <el-table-column align="center" min-width="120" label="支付方式" prop="paymentMode">
  30. <template slot-scope="{ row }">
  31. <span v-if="row.paymentMode === 1">微信</span>
  32. <span v-else-if="row.paymentMode === 2">支付宝</span>
  33. <span v-else-if="row.paymentMode === 3">花呗分期</span>
  34. <span v-else-if="row.paymentMode === 4">通联支付</span>
  35. <span v-else-if="row.paymentMode === 5">平台余额支付</span>
  36. <span v-else-if="row.paymentMode === 6">商家余额支付</span>
  37. <span v-else-if="row.paymentMode === 7">佣金支付</span>
  38. <span v-else-if="row.paymentMode === 8">交易金支付</span>
  39. <span v-else-if="row.paymentMode === 9">惠市宝支付</span>
  40. <span v-else>--</span>
  41. </template>
  42. </el-table-column>
  43. <el-table-column align="center" min-width="100" label="是否支付" prop="paymentState">
  44. <template slot-scope="{ row }">
  45. <el-tag v-if="row.paymentState === 0" effect="plain" type="info">否</el-tag>
  46. <el-tag v-else-if="row.paymentState === 1" effect="plain" type="success">是</el-tag>
  47. <span v-else>--</span>
  48. </template>
  49. </el-table-column>
  50. <el-table-column align="center" min-width="150" prop="paymentTime" label="支付时间" show-overflow-tooltip />
  51. <el-table-column align="center" min-width="100" prop="logisticsPrice" label="物流费用" show-overflow-tooltip />
  52. <el-table-column align="center" min-width="100" label="售后状态" prop="afterState">
  53. <template slot-scope="{ row }">
  54. <span v-if="row.afterState === -1">无退货</span>
  55. <span v-else-if="row.afterState === 1">审核中</span>
  56. <span v-else-if="row.afterState === 2">退款中</span>
  57. <span v-else-if="row.afterState === 3">退货中</span>
  58. <span v-else-if="row.afterState === 4">退款完成</span>
  59. <span v-else-if="row.afterState === 5">退款失败</span>
  60. <span v-else-if="row.afterState === 6">审核不通过</span>
  61. <span v-else-if="row.afterState === 7">评审中</span>
  62. <span v-else-if="row.afterState === 8">退货完成,拒绝退款</span>
  63. <span v-else-if="row.afterState === 9">撤销申请</span>
  64. <span v-else-if="row.afterState === 10">审核通过</span>
  65. <span v-else>--</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column align="center" min-width="120" label="客户ID" prop="buyerUserId">
  69. <template slot-scope="{ row }">
  70. <div>
  71. <span>{{ row.buyerUserId }}</span>
  72. <el-button
  73. v-if="formData.relatedBuyerUsers.find((item) => item.buyerUserId === row.buyerUserId)"
  74. style="margin-left: 14px;"
  75. type="warning" size="mini"
  76. @click="handleOpenUserDetails(row.buyerUserId)"
  77. >
  78. 详情
  79. </el-button>
  80. </div>
  81. </template>
  82. </el-table-column>
  83. <el-table-column align="center" min-width="100" prop="customerName" label="下单账户" show-overflow-tooltip />
  84. <el-table-column align="center" min-width="120" prop="customerPhone" label="下单账户手机号" show-overflow-tooltip />
  85. <el-table-column align="center" min-width="150" prop="receiveAdress" label="收货人地址" show-overflow-tooltip />
  86. <el-table-column align="center" min-width="100" prop="receiveName" label="收货人姓名" show-overflow-tooltip />
  87. <el-table-column align="center" min-width="150" prop="receivePhone" label="收货人手机号" show-overflow-tooltip />
  88. <el-table-column align="center" min-width="150" prop="address" label="详细地址" show-overflow-tooltip />
  89. <el-table-column align="center" min-width="120" prop="shopId" label="关联店铺ID" show-overflow-tooltip />
  90. <el-table-column label="操作" width="200" fixed="right" class-name="small-padding fixed-width">
  91. <template slot-scope="{ row }">
  92. <el-button
  93. v-if="formData.relatedPresenterVoucherLogs[row.orderFormid]" type="success" size="mini"
  94. @click="$refs.RelatedVoucherLogs && $refs.RelatedVoucherLogs.handleOpen(formData.relatedPresenterVoucherLogs[row.orderFormid], { userList: formData.relatedBuyerUsers })"
  95. >
  96. 代金券记录
  97. </el-button>
  98. <el-button
  99. v-if="formData.relatedCommissionLogs[row.orderFormid]" type="success" size="mini"
  100. @click="$refs.RelatedCommissionLogs && $refs.RelatedCommissionLogs.handleOpen(formData.relatedCommissionLogs[row.orderFormid], { userList: formData.relatedBuyerUsers })"
  101. >
  102. 佣金记录
  103. </el-button>
  104. </template>
  105. </el-table-column>
  106. </el-table>
  107. <!-- 代金券记录 -->
  108. <RelatedVoucherLogs ref="RelatedVoucherLogs" />
  109. <!-- 佣金记录 -->
  110. <RelatedCommissionLogs ref="RelatedCommissionLogs" />
  111. <!-- 用户详情 -->
  112. <UserDetails ref="UserDetails" />
  113. </div>
  114. <template #footer>
  115. <span class="dialog-footer">
  116. <el-button size="mini" @click="handleClose">关 闭</el-button>
  117. </span>
  118. </template>
  119. </el-dialog>
  120. </template>
  121. <script>
  122. import RelatedVoucherLogs from './RelatedVoucherLogs'
  123. import RelatedCommissionLogs from './RelatedCommissionLogs'
  124. import UserDetails from './UserDetails'
  125. export default {
  126. name: 'RelatedOrders',
  127. components: {
  128. RelatedVoucherLogs,
  129. RelatedCommissionLogs,
  130. UserDetails
  131. },
  132. data() {
  133. return {
  134. modalOptions: {
  135. closeOnClickModal: false,
  136. width: '1120px',
  137. title: '关联订单'
  138. },
  139. visible: false,
  140. formData: {
  141. relatedSettlement: [],
  142. relatedOrders: {},
  143. relatedPresenterVoucherLogs: {},
  144. relatedCommissionLogs: {},
  145. relatedBuyerUsers: []
  146. },
  147. orderSn: ''
  148. }
  149. },
  150. methods: {
  151. handleClose() {
  152. this.visible = false
  153. },
  154. handleOpen(params = {}, orderSn) {
  155. console.log(params)
  156. this.formData = Object.assign(this.$options.data().formData, params)
  157. this.orderSn = orderSn
  158. this.visible = true
  159. this.$forceUpdate()
  160. // this.$refs.formData && this.$refs.formData.resetFields()
  161. },
  162. handleOpenUserDetails(buyerUserId) {
  163. const userMsg = this.formData.relatedBuyerUsers.find((item) => item.buyerUserId === buyerUserId)
  164. if (userMsg) {
  165. this.$refs.UserDetails && this.$refs.UserDetails.handleOpen(userMsg)
  166. }
  167. },
  168. handleSubmit() {
  169. }
  170. }
  171. }
  172. </script>
  173. <style lang="scss" scoped>
  174. .small-padding {
  175. .cell {
  176. padding-left: 5px;
  177. padding-right: 5px;
  178. }
  179. }
  180. .fixed-width {
  181. .el-button--mini {
  182. padding: 7px 10px;
  183. }
  184. }
  185. </style>