index.html 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. {include file="/shopro/common/script" /}
  2. <style>
  3. .aftersale-index .sa-table {
  4. font-size: 12px;
  5. }
  6. .aftersale-index .sa-table-wrap {
  7. height: 100%;
  8. margin-left: -48px;
  9. overflow: hidden;
  10. }
  11. .aftersale-index .sa-table-wrap .sa-table .el-table__header-wrapper {
  12. margin-bottom: 4px;
  13. }
  14. .aftersale-index .sa-table-wrap .sa-table .el-table__row {
  15. background: var(--sa-background-hex-hover);
  16. }
  17. .aftersale-index .sa-table-wrap .sa-table .el-table__expanded-cell {
  18. padding: 0;
  19. }
  20. .aftersale-index .sa-table-wrap .sa-expand-table .el-table__header-wrapper {
  21. margin-bottom: 0;
  22. display: none;
  23. }
  24. .aftersale-index .sa-table-wrap .sa-expand-table .el-table__row {
  25. background: var(--el-table-tr-bg-color);
  26. }
  27. .aftersale-index .sa-expand-table tr:hover>td.el-table__cell {
  28. background-color: var(--el-table-tr-bg-color) !important;
  29. }
  30. .aftersale-index .order-detail {
  31. margin-left: 4px;
  32. }
  33. .aftersale-index .goods-item {
  34. line-height: 1;
  35. }
  36. .aftersale-index .goods-item .goods-image {
  37. margin-right: 12px;
  38. }
  39. .aftersale-index .goods-item .goods-title {
  40. height: 14px;
  41. line-height: 14px;
  42. font-size: 12px;
  43. font-weight: 600;
  44. color: var(--el-color-primary);
  45. cursor: pointer;
  46. margin-bottom: 6px;
  47. }
  48. .aftersale-index .goods-item .goods-price {
  49. flex-shrink: 0;
  50. line-height: 14px;
  51. font-size: 12px;
  52. color: var(--sa-font);
  53. margin-bottom: 12px;
  54. }
  55. .aftersale-index .goods-item .goods-num {
  56. margin-left: 8px;
  57. }
  58. .aftersale-index .goods-item .goods-sku-text {
  59. width: fit-content;
  60. height: 18px;
  61. line-height: 18px;
  62. padding: 0 8px;
  63. font-size: 12px;
  64. color: var(--sa-subfont);
  65. background: var(--sa-space);
  66. border-radius: 10px;
  67. }
  68. .aftersale-index .status--1 {
  69. color: var(--el-color-danger);
  70. }
  71. </style>
  72. <div id="index" class="aftersale-index panel panel-default panel-intro" v-cloak>
  73. <el-container class="panel-block">
  74. <el-header class="sa-header">
  75. <el-tabs class="sa-tabs" v-model="state.filter.data['aftersale_list.aftersale_status']"
  76. @tab-change="onChangeTab">
  77. <el-tab-pane v-for="item in type.data.aftersale_status" :key="item"
  78. :label="`${item.name}${item.num ? '(' + item.num + ')' : ''}`" :name="item.type"></el-tab-pane>
  79. </el-tabs>
  80. <div class="sa-title sa-flex sa-row-between">
  81. <div class="sa-title-left">
  82. <div class="left-name">售后管理</div>
  83. <sa-filter-condition v-model="state.filter" @filter-delete="onChangeFilter">
  84. </sa-filter-condition>
  85. </div>
  86. <div class="sa-title-right">
  87. <el-button class="sa-button-refresh" icon="RefreshRight" @click="getData"></el-button>
  88. <el-button class="sa-button-refresh" icon="Search" @click="onOpenFilter"></el-button>
  89. </div>
  90. </div>
  91. </el-header>
  92. <el-main class="sa-main">
  93. <div class="sa-table-wrap">
  94. <el-table height="100%" class="sa-table" :data="state.data" stripe default-expand-all>
  95. <el-table-column type="expand">
  96. <template #default="props">
  97. <el-table class="sa-table sa-expand-table" :data="props.row.aftersales" stripe>
  98. <el-table-column width="48"></el-table-column>
  99. <el-table-column min-width="280">
  100. <template #default="scope">
  101. <div class="aftersale-sn">
  102. 售后单号:{{ scope.row.aftersale_sn }}
  103. <el-icon class="copy-document" @click="onClipboard(scope.row.aftersale_sn)">
  104. <copy-document />
  105. </el-icon>
  106. </div>
  107. <div class="create-time"> 申请时间:{{ scope.row.createtime }} </div>
  108. </template>
  109. </el-table-column>
  110. <el-table-column min-width="300">
  111. <template #default="scope">
  112. <div class="goods-item sa-flex sa-col-top">
  113. <sa-image class="mr-2" :url="scope.row.goods_image" size="64"></sa-image>
  114. <div>
  115. <div class="goods-title sa-table-line-1"
  116. @click="onOpenGoods(scope.row.goods_id)">
  117. {{scope.row.goods_title}}</div>
  118. <div class="goods-price">
  119. ¥{{scope.row.goods_price}} <span
  120. class="goods-num">x{{scope.row.goods_num}}</span>
  121. </div>
  122. <div v-if="scope.row.goods_sku_text" class="goods-sku-text">
  123. {{scope.row.goods_sku_text}}
  124. </div>
  125. </div>
  126. </div>
  127. </template>
  128. </el-table-column>
  129. <el-table-column min-width="130">
  130. <template #default>{{ props.row.pay_fee }}</template>
  131. </el-table-column>
  132. <el-table-column prop="refund_fee" min-width="100"></el-table-column>
  133. <el-table-column min-width="80">
  134. <template #default="scope">
  135. <div :class="scope.row.aftersale_status == '-1' ? 'status--1' : ''">
  136. {{ scope.row.aftersale_status_text }}
  137. </div>
  138. </template>
  139. </el-table-column>
  140. <el-table-column prop="type_text" min-width="80"></el-table-column>
  141. <el-table-column min-width="80">
  142. <template #default="scope">
  143. {if $auth->check('shopro/order/aftersale/detail')}
  144. <el-button type="primary" link @click="onDetail(scope.row.id)">详情</el-button>
  145. {/if}
  146. </template>
  147. </el-table-column>
  148. </el-table>
  149. </template>
  150. </el-table-column>
  151. <el-table-column label="售后信息" min-width="280">
  152. <template #default="scope">
  153. <div class="order-sn sa-flex">
  154. 订单号:{{ scope.row.order_sn }}
  155. <el-button class="order-detail" type="primary" link size="small"
  156. @click="onOpenOrderDetail(scope.row.id)">详情</el-button>
  157. </div>
  158. </template>
  159. </el-table-column>
  160. <el-table-column label="商品信息" min-width="300">
  161. <template #default="scope">
  162. <div class="create-time"> 下单时间:{{ scope.row.createtime }} </div>
  163. </template>
  164. </el-table-column>
  165. <el-table-column label="订单实付金额" min-width="130">
  166. <template #default="scope">
  167. <sa-user-profile :user="scope.row.user" :id="scope.row.user_id" :isavatar="false">
  168. </sa-user-profile>
  169. </template>
  170. </el-table-column>
  171. <el-table-column label="已退款金额" min-width="100"></el-table-column>
  172. <el-table-column label="处理状态" min-width="80"></el-table-column>
  173. <el-table-column label="售后类型" min-width="80"></el-table-column>
  174. <el-table-column label="操作" min-width="80"></el-table-column>
  175. </el-table>
  176. </div>
  177. </el-main>
  178. <el-footer class="sa-footer sa-flex sa-row-right">
  179. <sa-pagination v-model="pagination" @pagination-change="getData"></sa-pagination>
  180. </el-footer>
  181. </el-container>
  182. <sa-filter v-model="state.filter" @filter-change="onChangeFilter"></sa-filter>
  183. </div>