user.html 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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. <!--element-ui的样式-->
  10. <link rel="stylesheet" href="../../backend/plugins/element-ui/index.css" />
  11. <!-- 引入样式 -->
  12. <link rel="stylesheet" href="../styles/index.css" />
  13. <!--引入vant样式-->
  14. <link rel="stylesheet" href="../styles/vant.min.css"/>
  15. <!--本页面内容的样式-->
  16. <link rel="stylesheet" href="../styles/user.css" />
  17. </head>
  18. <body>
  19. <div id="user" class="app">
  20. <div class="divHead">
  21. <div class="divTitle">
  22. <i class="el-icon-arrow-left" @click="goBack"></i>个人中心
  23. </div>
  24. <div class="divUser">
  25. <img src="../images/headPage.png"/>
  26. <div class="desc">
  27. <div class="divName">林之迷 <img src="../images/women.png"/></div>
  28. <div class="divPhone">{{userPhone}}</div>
  29. </div>
  30. </div>
  31. </div>
  32. <div class="divContent">
  33. <div class="divLinks">
  34. <div class="item" @click="toAddressPage">
  35. <img src="../images/locations.png"/>
  36. <span>地址管理</span>
  37. <i class="el-icon-arrow-right"></i>
  38. </div>
  39. <div class="divSplit"></div>
  40. <div class="item" @click="toOrderPage">
  41. <img src="../images/orders.png"/>
  42. <span>历史订单</span>
  43. <i class="el-icon-arrow-right"></i>
  44. </div>
  45. </div>
  46. <div class="divOrders" v-if="order[0]">
  47. <div class="title">最新订单</div>
  48. <div class="timeStatus">
  49. <span>{{order[0].orderTime}}</span>
  50. <span>{{getStatus(order[0].status)}}</span>
  51. <!-- <span>正在派送</span> -->
  52. </div>
  53. <div class="dishList">
  54. <div v-for="(item,index) in order[0].orderDetails" :key="index" class="item">
  55. <span>{{item.name}}</span>
  56. <span>x{{item.number}}</span>
  57. </div>
  58. </div>
  59. <div class="result">
  60. <span>共{{order[0].sumNum}} 件商品,实付</span>
  61. <span class="price">¥{{order[0].amount}}</span>
  62. </div>
  63. <div class="btn" v-if="order[0].status === 4">
  64. <div class="btnAgain" @click="addOrderAgain">再来一单</div>
  65. </div>
  66. </div>
  67. <div class="quitLogin" @click="toPageLogin">
  68. 退出登录
  69. </div>
  70. </div>
  71. </div>
  72. <!-- 开发环境版本,包含了有帮助的命令行警告 -->
  73. <script src="../../backend/plugins/vue/vue.js"></script>
  74. <!-- 引入组件库 -->
  75. <script src="../../backend/plugins/element-ui/index.js"></script>
  76. <!-- 引入vant组件 -->
  77. <script src="../js/vant.min.js"></script>
  78. <!--不同屏幕尺寸根字体设置-->
  79. <script src="../js/base.js"></script>
  80. <!-- 引入axios -->
  81. <script src="../../backend/plugins/axios/axios.min.js"></script>
  82. <script src="../js/request.js"></script>
  83. <script src="../api/order.js"></script>
  84. <script src="../api/login.js"></script>
  85. <script>
  86. new Vue({
  87. el:"#user",
  88. data(){
  89. return {
  90. form:{
  91. phone:'',
  92. code:''
  93. },
  94. msgFlag:false,
  95. order:[{
  96. orderTime:'',//下单时间
  97. status:undefined,//订单状态 1已结账,2未结账,3已退单,4已完成,5已取消
  98. orderDetails:[{
  99. name:'',//菜品名称
  100. number:undefined,//数量
  101. }],//明细
  102. amount:undefined,//实收金额
  103. sumNum:0,//菜品总数
  104. }],
  105. }
  106. },
  107. computed:{},
  108. created(){
  109. this.userPhone =sessionStorage.getItem("userPhone")
  110. this.initData()
  111. },
  112. mounted(){},
  113. methods:{
  114. goBack(){
  115. history.go(-1)
  116. },
  117. toAddressPage(){
  118. window.requestAnimationFrame(()=>{
  119. window.location.href = '/front/page/address.html'
  120. })
  121. },
  122. toOrderPage(){
  123. window.requestAnimationFrame(()=>{
  124. window.location.href = '/front/page/order.html'
  125. })
  126. },
  127. initData(){
  128. this.getLatestOrder()
  129. },
  130. async getLatestOrder(){
  131. const params = {
  132. page:1,
  133. pageSize:1
  134. }
  135. const res = await orderPagingApi(params)
  136. if(res.code === 1){
  137. this.order = res.data.records
  138. if(this.order && this.order[0].orderDetails){
  139. let number = 0
  140. this.order[0].orderDetails.forEach(item=>{
  141. number += item.number
  142. })
  143. this.order[0].sumNum = number
  144. }
  145. }else{
  146. this.$notify({ type:'warning', message:res.msg});
  147. }
  148. },
  149. getStatus(status){
  150. let str = ''
  151. switch(status){
  152. case 1:
  153. str = '待付款'
  154. break;
  155. case 2:
  156. str = '正在派送'
  157. break;
  158. case 3:
  159. str = '已派送'
  160. break;
  161. case 4:
  162. str = '已完成'
  163. break;
  164. case 5:
  165. str = '已取消'
  166. break;
  167. }
  168. return str
  169. },
  170. async addOrderAgain(){
  171. const res = await orderAgainApi({id:this.order[0].id})
  172. if(res.code === 1){
  173. window.requestAnimationFrame(()=>{
  174. window.location.href = '/front/index.html'
  175. })
  176. }else{
  177. this.$notify({ type:'warning', message:res.msg});
  178. }
  179. },
  180. async toPageLogin(){
  181. const res = await loginoutApi()
  182. if(res.code === 1){
  183. window.requestAnimationFrame(()=>{
  184. window.location.href = '/front/page/login.html'
  185. })
  186. }else{
  187. this.$notify({ type:'warning', message:res.msg});
  188. }
  189. }
  190. }
  191. })
  192. </script>
  193. </body>
  194. </html>