list.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <template>
  2. <div class="app-container">
  3. <div class="filter-container">
  4. <el-input v-model="listQuery.form.orderID" placeholder="订单ID" style="width: 120px;" class="filter-item" @keyup.enter.native="handleFilter" />
  5. <el-input v-model="listQuery.form.orderNo" placeholder="订单号" style="width: 120px;" class="filter-item" @keyup.enter.native="handleFilter" />
  6. <el-form-item label="创建时间:">
  7. <el-date-picker
  8. v-model="searchTimeVal"
  9. type="daterange"
  10. range-separator="至"
  11. start-placeholder="开始日期"
  12. end-placeholder="结束日期"
  13. />
  14. </el-form-item>
  15. <el-input v-model="listQuery.form.buyer" placeholder="买家" style="width: 120px;" class="filter-item" @keyup.enter.native="handleFilter" />
  16. <el-input v-model="listQuery.form.receiver" placeholder="收货人" style="width: 120px;" class="filter-item" @keyup.enter.native="handleFilter" />
  17. <el-select v-model="listQuery.form.status" placeholder="订单状态" clearable style="width: 110px" class="filter-item" value="" @change="handleFilter">
  18. <!-- <el-option v-for="item in statusList" :key="item.id" :label="item.status" :value="item.id" /> -->
  19. </el-select>
  20. <el-select v-model="listQuery.form.receiptStatus" placeholder="收款状态" clearable style="width: 110px" class="filter-item" value="" @change="handleFilter">
  21. <!-- <el-option v-for="item in statusList" :key="item.id" :label="item.status" :value="item.id" /> -->
  22. </el-select>
  23. <el-select v-model="listQuery.form.sendOutStatus" placeholder="发货状态" clearable style="width: 110px" class="filter-item" value="" @change="handleFilter">
  24. <!-- <el-option v-for="item in statusList" :key="item.id" :label="item.status" :value="item.id" /> -->
  25. </el-select>
  26. <el-select v-model="listQuery.form.payStatus" placeholder="付款状态" clearable style="width: 110px" class="filter-item" value="" @change="handleFilter">
  27. <!-- <el-option v-for="item in statusList" :key="item.id" :label="item.status" :value="item.id" /> -->
  28. </el-select>
  29. <el-select v-model="listQuery.form.refundType" placeholder="退款状态" clearable style="width: 110px" class="filter-item" value="" @change="handleFilter">
  30. <!-- <el-option v-for="item in statusList" :key="item.id" :label="item.status" :value="item.id" /> -->
  31. </el-select>
  32. <el-select v-model="listQuery.form.returnedPurchaseStatus" placeholder="待审核退款" clearable style="width: 110px" class="filter-item" value="" @change="handleFilter">
  33. <!-- <el-option v-for="item in statusList" :key="item.id" :label="item.status" :value="item.id" /> -->
  34. </el-select>
  35. <el-button class="filter-item" type="primary" icon="el-icon-search" @click="handleFilter">查询</el-button>
  36. </div>
  37. <el-table
  38. v-loading="listLoading"
  39. :data="list"
  40. element-loading-text="Loading"
  41. border
  42. fit
  43. highlight-current-row
  44. style="width:100%;margin-top:20px;"
  45. >
  46. <el-table-column align="center" label="序号" width="35px">
  47. <template slot-scope="scope">
  48. {{ scope.$index }}
  49. </template>
  50. </el-table-column>
  51. <el-table-column label="订单ID" align="center" prop="orderID" />
  52. <el-table-column label="订单编号" align="center" prop="orderNo" />
  53. <el-table-column label="买家" align="center" prop="buyer" />
  54. <el-table-column label="收货人" align="center" prop="receiver" />
  55. <el-table-column label="订单状态" align="center" prop="status" />
  56. <el-table-column label="收款状态" align="center" prop="receiptStatus" />
  57. <el-table-column label="付款状态" align="center" prop="payStatus" />
  58. <el-table-column label="发货状态" align="center" prop="sendOutStatus" />
  59. <el-table-column label="退款状态" align="center" prop="refundType" />
  60. <el-table-column label="待审核退款" align="center" prop="returnedPurchaseStatus" />
  61. <el-table-column label="订单金额" align="center" prop="payTotalFee" />
  62. <el-table-column align="center" label="下单时间" prop="orderTime">
  63. <template slot-scope="{row}">
  64. <i class="el-icon-time" />
  65. <span>{{ row.orderTime | parseTime('{y}-{m}-{d} {h}:{i}') }}</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  69. <template slot-scope="{row}">
  70. <router-link :to="'/order/detail/' + row.orderID "><el-button type="primary" size="small">查看详情</el-button></router-link>
  71. <el-dropdown>
  72. <el-button type="primary" size="small" style="margin-top:5px;">
  73. 功能<i class="el-icon-arrow-down el-icon--right" />
  74. </el-button>
  75. <el-dropdown-menu slot="dropdown">
  76. <el-dropdown-item>编辑经理折扣</el-dropdown-item>
  77. <el-dropdown-item>备注</el-dropdown-item>
  78. <el-dropdown-item>发货记录</el-dropdown-item>
  79. <el-dropdown-item>收退款记录</el-dropdown-item>
  80. <el-dropdown-item>退款(退货)记录</el-dropdown-item>
  81. </el-dropdown-menu>
  82. </el-dropdown>
  83. </template>
  84. </el-table-column>
  85. </el-table>
  86. <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="fetchData" />
  87. </div>
  88. </template>
  89. <script>
  90. import { getList } from '@/api/goods'
  91. import Pagination from '@/components/Pagination'
  92. export default {
  93. components: { Pagination },
  94. filters: {
  95. statusFilter(status) {
  96. const statusMap = {
  97. 1: 'success',
  98. 0: 'gray'
  99. }
  100. return statusMap[status]
  101. }
  102. },
  103. data() {
  104. return {
  105. list: null,
  106. listLoading: true,
  107. total: 0,
  108. searchTimeVal: '',
  109. listQuery: {
  110. page: 1,
  111. limit: 10,
  112. form: {
  113. orderID: '',
  114. orderNo: '',
  115. buyer: '',
  116. receiver: '',
  117. status: '',
  118. receiptStatus: '',
  119. sendOutStatus: '',
  120. payStatus: '',
  121. refundType: '',
  122. returnedPurchaseStatus: '',
  123. organizeID: this.organizeID
  124. }
  125. }
  126. }
  127. },
  128. created() {
  129. this.fetchData()
  130. },
  131. methods: {
  132. fetchData() {
  133. this.listLoading = true
  134. getList().then(response => {
  135. this.list = response.data.items
  136. this.listLoading = false
  137. }).catch(() => {
  138. // 封装静态数据
  139. this.list = [
  140. {
  141. orderID: '1',
  142. orderNo: 'ffgvdf',
  143. buyer: '',
  144. receiver: '',
  145. status: '',
  146. receiptStatus: '',
  147. sendOutStatus: '',
  148. payStatus: '',
  149. refundType: '',
  150. returnedPurchaseStatus: '',
  151. payTotalFee: '',
  152. orderTime: new Date(),
  153. organizeID: this.organizeID
  154. },
  155. {
  156. orderID: '',
  157. orderNo: '',
  158. buyer: '',
  159. receiver: '',
  160. status: '',
  161. receiptStatus: '',
  162. sendOutStatus: '',
  163. payStatus: '',
  164. refundType: '',
  165. returnedPurchaseStatus: '',
  166. payTotalFee: '',
  167. orderTime: new Date(),
  168. organizeID: this.organizeID
  169. }
  170. ]
  171. })
  172. this.listLoading = false
  173. this.total = 2
  174. },
  175. handleFilter() {
  176. alert('搜索')
  177. },
  178. handleCreate() {
  179. alert('添加')
  180. }
  181. }
  182. }
  183. </script>
  184. <style scoped>
  185. </style>