index.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <div class="orderManage app-container">
  3. <div class="search">
  4. <div>
  5. <el-input
  6. v-model="query.noOrGName"
  7. size="small"
  8. placeholder="请输入订单编号"
  9. class="item-width-200 "
  10. ></el-input>
  11. <el-date-picker
  12. v-model="date"
  13. size="small"
  14. value-format="timestamp"
  15. class="item-width-350 ml10"
  16. type="datetimerange"
  17. range-separator="至"
  18. start-placeholder="开始日期"
  19. end-placeholder="结束日期">
  20. </el-date-picker>
  21. <el-select
  22. v-model="query.orderType"
  23. size="small"
  24. clearable
  25. class="item-width-200 ml10"
  26. placeholder="请选择订单状态"
  27. >
  28. <el-option
  29. v-for="item in options"
  30. :key="item.value"
  31. :label="item.label"
  32. :value="item.value"
  33. >
  34. </el-option>
  35. </el-select>
  36. <el-button
  37. class="ml10"
  38. type="primary"
  39. size="small"
  40. icon="el-icon-search"
  41. @click="handleSearch"
  42. >
  43. 搜索
  44. </el-button>
  45. </div>
  46. </div>
  47. <el-table
  48. :data="tableData"
  49. tooltip-effect="dark"
  50. border
  51. v-loading="loading"
  52. style="width: 100%"
  53. >
  54. <el-table-column
  55. align="center"
  56. label="订单编号"
  57. prop="orderNo"
  58. show-overflow-tooltip
  59. >
  60. </el-table-column>
  61. <el-table-column
  62. prop="shopName"
  63. align="center"
  64. label="商品名"
  65. show-overflow-tooltip
  66. >
  67. <template slot-scope="scope">
  68. {{scope.row.goodsModelList[0].goodsInfo.activityName||scope.row.goodsModelList[0].goodsInfo.goodsName}}
  69. </template>
  70. </el-table-column>
  71. <!-- <el-table-column
  72. prop="createTime"
  73. align="center"
  74. label="数量"
  75. show-overflow-tooltip
  76. >
  77. </el-table-column> -->
  78. <el-table-column
  79. prop="goodsAmount"
  80. align="center"
  81. label="售价"
  82. show-overflow-tooltip
  83. >
  84. <template slot-scope="scope">
  85. {{scope.row.goodsModelList[0].goodsInfo.price||scope.row.goodsModelList[0].goodsInfo.realPrice}}
  86. </template>
  87. </el-table-column>
  88. <el-table-column
  89. prop="payAmount"
  90. align="center"
  91. label="订单金额"
  92. show-overflow-tooltip
  93. >
  94. </el-table-column>
  95. <el-table-column
  96. prop="createTime"
  97. align="center"
  98. label="状态"
  99. show-overflow-tooltip
  100. >
  101. <template slot-scope="scope">
  102. {{scope.row.goodsModelList[0].goodsState | filterType}}
  103. </template>
  104. </el-table-column>
  105. <el-table-column
  106. prop="shopName"
  107. align="center"
  108. label="店铺名称"
  109. show-overflow-tooltip
  110. >
  111. <template slot-scope="scope">
  112. {{scope.row.shopInfo.shopName }}
  113. </template>
  114. </el-table-column>
  115. <el-table-column
  116. prop="createTime"
  117. align="center"
  118. label="下单时间"
  119. show-overflow-tooltip
  120. >
  121. <template slot-scope="scope">
  122. {{ timeFormat(scope.row.createTime) }}
  123. </template>
  124. </el-table-column>
  125. <el-table-column prop="address" align="center" label="操作">
  126. <template slot-scope="scope">
  127. <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
  128. </template>
  129. </el-table-column>
  130. </el-table>
  131. <div class="page-box">
  132. <el-pagination
  133. @size-change="handleSizeChange"
  134. @current-change="handleCurrentChange"
  135. background
  136. :current-page="query.page"
  137. :page-sizes="[10, 20, 30, 40]"
  138. :page-size="query.size"
  139. layout="total, sizes, prev, pager, next, jumper"
  140. :total="total"
  141. >
  142. </el-pagination>
  143. </div>
  144. </div>
  145. </template>
  146. <script>
  147. import {debounce} from '@/utils/index'
  148. import {getList} from '@/api/order'
  149. import {timeFormat} from '@/utils/index'
  150. export default {
  151. name: "orderManage",
  152. data() {
  153. return {
  154. date:'',//时间
  155. options: [
  156. {
  157. value: "APPLY_REFUND",
  158. label: "申请退款",
  159. },
  160. {
  161. value: "CLOSE",
  162. label: "关闭订单",
  163. },
  164. {
  165. value: "REFUNDED",
  166. label: "已退款",
  167. },
  168. {
  169. value: "REFUSAL_REFUND",
  170. label: "拒绝退款",
  171. },
  172. {
  173. value: "USED",
  174. label: "已使用",
  175. },
  176. {
  177. value: "WAIT_PAYMENT",
  178. label: "待付款",
  179. },
  180. {
  181. value: "WAIT_USE ",
  182. label: "待使用",
  183. },
  184. ],
  185. tableData: [],
  186. loading: false,
  187. query: {
  188. "endTime": '',
  189. "noOrGName": '',
  190. "orderType": "",
  191. "page": 1,
  192. "size": 10,
  193. "sort": "",
  194. "startTime": ''
  195. },
  196. title: "",
  197. total: 0,
  198. };
  199. },
  200. watch: {
  201. // query: {
  202. // handler: debounce(function(val) {
  203. // this.getList()
  204. // }),
  205. // deep:true
  206. // },
  207. date(val){
  208. if(val){
  209. this.query.startTime = val[0]
  210. this.query.endTime = val[1]
  211. }else{
  212. this.query.startTime = ''
  213. this.query.endTime = ''
  214. }
  215. }
  216. },
  217. filters: {
  218. filterType: function(val) {
  219. if(val == 'APPLY_REFUND'){
  220. return "申请退款"
  221. }else if(val == 'CLOSE'){
  222. return "关闭订单"
  223. }else if(val == 'REFUNDED'){
  224. return "已退款"
  225. }else if(val == 'REFUSAL_REFUND'){
  226. return "拒绝退款"
  227. }else if(val == 'USED'){
  228. return "已使用"
  229. }else if(val == 'WAIT_PAYMENT'){
  230. return "待付款"
  231. }else{
  232. return "待使用"
  233. }
  234. }
  235. },
  236. methods: {
  237. handleSearch(){
  238. this.query.page = 1
  239. this.getList();
  240. },
  241. timeFormat(val){
  242. return timeFormat(val)
  243. },
  244. handleDetail(row){
  245. // localStorage.setItem('orderItem',JSON.stringify(row))
  246. this.$router.push({
  247. path:'/operationManage/orderManage/payDetail',
  248. query:{
  249. orderNo:row.orderNo,
  250. }
  251. })
  252. },
  253. handleSizeChange(val) {
  254. this.query.page = 1;
  255. this.query.size = val;
  256. this.getList()
  257. },
  258. handleCurrentChange(val) {
  259. this.query.page = val;
  260. this.getList()
  261. },
  262. search() {
  263. this.query.page = 1;
  264. this.getList()
  265. },
  266. getList(){
  267. this.loading = true
  268. let obj = JSON.parse(JSON.stringify(this.query))
  269. obj.page = obj.page -1
  270. if(!obj.orderType){
  271. delete obj.orderType
  272. }
  273. getList(obj).then(res=>{
  274. this.loading = false
  275. if(res.state == 'Success'){
  276. this.tableData = res.content.content
  277. console.log(this.tableData);
  278. this.total = res.content.totalElements
  279. }
  280. })
  281. }
  282. },
  283. created() {
  284. this.getList()
  285. },
  286. };
  287. </script>
  288. <style lang="scss" >
  289. .orderManage {
  290. }
  291. </style>