order.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,user-scalable=no,minimal-ui">
  7. <title>菩提阁</title>
  8. <link rel="icon" href="../images/favico.ico">
  9. <!--不同屏幕尺寸根字体设置-->
  10. <script src="../js/base.js"></script>
  11. <!--element-ui的样式-->
  12. <link rel="stylesheet" href="../../backend/plugins/element-ui/index.css" />
  13. <!-- 引入样式 -->
  14. <link rel="stylesheet" href="../styles/index.css" />
  15. <!--引入vant样式-->
  16. <link rel="stylesheet" href="../styles/vant.min.css"/>
  17. <!--本页面内容的样式-->
  18. <link rel="stylesheet" href="../styles/order.css" />
  19. </head>
  20. <body>
  21. <div id="order" class="app">
  22. <div class="divHead">
  23. <div class="divTitle">
  24. <i class="el-icon-arrow-left" @click="goBack"></i>菩提阁
  25. </div>
  26. </div>
  27. <div class="divBody" v-if="orderList.length > 0">
  28. <van-list
  29. v-model="loading"
  30. :finished="finished"
  31. finished-text="没有更多了"
  32. @load="getList"
  33. >
  34. <van-cell v-for="(order,index) in orderList" :key="index" class="item">
  35. <div class="timeStatus">
  36. <span>{{order.orderTime}}</span>
  37. <span>{{getStatus(order.status)}}</span>
  38. <!-- <span>正在派送</span> -->
  39. </div>
  40. <div class="dishList">
  41. <div v-for="(item,index) in order.orderDetails" :key="index" class="item">
  42. <span>{{item.name}}</span>
  43. <span>x{{item.number}}</span>
  44. </div>
  45. </div>
  46. <div class="result">
  47. <span>共{{order.sumNum}} 件商品,实付</span><span class="price">¥{{order.amount}}</span>
  48. </div>
  49. <div class="btn" v-if="order.status === 4">
  50. <div class="btnAgain" @click="addOrderAgain(order)">再来一单</div>
  51. </div>
  52. </van-cell>
  53. </van-list>
  54. </div>
  55. <div class="divNoData" v-else>
  56. <div class="divContainer">
  57. <img src="../images/no_order.png"/>
  58. <div>暂无订单</div>
  59. </div>
  60. </div>
  61. </div>
  62. <!-- 开发环境版本,包含了有帮助的命令行警告 -->
  63. <script src="../../backend/plugins/vue/vue.js"></script>
  64. <!-- 引入组件库 -->
  65. <script src="../../backend/plugins/element-ui/index.js"></script>
  66. <!-- 引入vant组件 -->
  67. <script src="../js/vant.min.js"></script>
  68. <!-- 引入axios -->
  69. <script src="../../backend/plugins/axios/axios.min.js"></script>
  70. <script src="../js/request.js"></script>
  71. <script src="../api/order.js"></script>
  72. <script>
  73. new Vue({
  74. el:"#order",
  75. data(){
  76. return {
  77. paging:{
  78. page:1,
  79. pageSize:5
  80. },
  81. orderList:[],
  82. loading:false,
  83. finished:false
  84. }
  85. },
  86. computed:{},
  87. created(){
  88. this.initData()
  89. },
  90. mounted(){},
  91. methods:{
  92. goBack(){
  93. const url = document.referrer
  94. //表示是从订单页面跳转过来的
  95. if(url.includes('success')){
  96. window.requestAnimationFrame(()=>{
  97. window.location.href= '/front/index.html'
  98. })
  99. }else{
  100. history.go(-1)
  101. }
  102. },
  103. initData(){
  104. this.getList()
  105. },
  106. async getList(){
  107. if(this.finished){
  108. this.loading = false;
  109. return
  110. }
  111. const res = await orderPagingApi(this.paging)
  112. if(res.code === 1){
  113. this.orderList.push(...res.data.records)
  114. let records = res.data.records
  115. if(records && Array.isArray(records)){
  116. records.forEach(item=>{
  117. let number = 0
  118. item.orderDetails.forEach(ele=>{
  119. number += ele.number
  120. })
  121. item.sumNum = number
  122. })
  123. }
  124. this.loading = false;
  125. if(this.paging.page >= res.data.pages){
  126. this.finished = true;
  127. }
  128. this.paging.page = this.paging.page + 1
  129. }else{
  130. this.$notify({ type:'warning', message:res.msg});
  131. }
  132. },
  133. async addOrderAgain(order){
  134. const res = await orderAgainApi({id:order.id})
  135. if(res.code === 1){
  136. window.requestAnimationFrame(()=>{
  137. window.location.href= '/front/index.html'
  138. })
  139. }else{
  140. this.$notify({ type:'warning', message:res.msg});
  141. }
  142. },
  143. getStatus(status){
  144. let str = ''
  145. switch(status){
  146. case 1:
  147. str = '待付款'
  148. break;
  149. case 2:
  150. str = '正在派送'
  151. break;
  152. case 3:
  153. str = '已派送'
  154. break;
  155. case 4:
  156. str = '已完成'
  157. break;
  158. case 5:
  159. str = '已取消'
  160. break;
  161. }
  162. return str
  163. }
  164. }
  165. })
  166. </script>
  167. </body>
  168. </html>