orderDetail.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <div class="orderDetail" v-loading="loading">
  3. <div class="orderDetail-box">
  4. <div class="orderDetail-box-header">
  5. 订单信息
  6. </div>
  7. <div class="orderDetail-box-content">
  8. <el-row :gutter="20">
  9. <el-col :span="8"><span class="label">订单编号:</span><span class="txt">{{datas.orderNo}}</span></el-col>
  10. <el-col :span="8"><span class="label">订单状态:</span><span class="txt">{{datas.orderStatus || '-'}}</span></el-col>
  11. <el-col :span="8"><span class="label">下单时间:</span><span class="txt">{{datas.createTime || '-'}}</span></el-col>
  12. </el-row>
  13. </div>
  14. </div>
  15. <div class="orderDetail-box">
  16. <div class="orderDetail-box-header">
  17. 客户信息
  18. </div>
  19. <div class="orderDetail-box-content">
  20. <el-row :gutter="20">
  21. <el-col :span="8"><span class="label">客户账号:</span><span class="txt">{{datas.account || '-'}}</span></el-col>
  22. <el-col :span="8"><span class="label">联系电话:</span><span class="txt">{{datas.phone || '-'}}</span></el-col>
  23. <el-col :span="8"><span class="label">客户名称:</span><span class="txt">{{datas.customerName || '-'}}</span></el-col>
  24. </el-row>
  25. <el-row :gutter="20">
  26. <el-col :span="8"><span class="label">客户类型:</span><span class="txt">{{datas.customerTypeName || '-'}}</span></el-col>
  27. <el-col :span="8"></el-col>
  28. <el-col :span="8"></el-col>
  29. </el-row>
  30. </div>
  31. </div>
  32. <div class="orderDetail-box">
  33. <div class="orderDetail-box-header">
  34. 订单商品
  35. </div>
  36. <div class="orderDetail-box-content">
  37. <el-table :data="datas.items" border>
  38. <el-table-column label="序号" type="index" width="50" align="center" />
  39. <el-table-column label="商品编号" align="center" prop="goodsCode" />
  40. <el-table-column label="商品名称" align="center" prop="goodsName"/>
  41. <el-table-column label="商品类型" align="center" prop="goodsType"/>
  42. <el-table-column label="认购期" align="center" prop="subscriptionDate"/>
  43. <el-table-column label="单价" align="center" prop="goodsPrice"/>
  44. <el-table-column label="碳汇量(kg)" align="center" prop="saleNum"/>
  45. <el-table-column label="金额" align="center" prop="amount"></el-table-column>
  46. </el-table>
  47. <div class="tableTotal">
  48. 总计 <span class="num">{{saleNumTotal}}</span> <span class="price">{{priceTotal}}</span>
  49. </div>
  50. </div>
  51. </div>
  52. <div class="orderDetail-footer">
  53. <el-button type="info" @click="goPage">返回</el-button>
  54. </div>
  55. </div>
  56. </template>
  57. <script>
  58. import { orderDetail } from "@/api/order/subscription";
  59. export default{
  60. name:"orderDetail",
  61. created() {
  62. console.log(this.$route.query)
  63. this.getDetail();
  64. },
  65. data(){
  66. return{
  67. datas:{
  68. orderNo:'',
  69. items:[],
  70. },
  71. loading:false,
  72. list:[]
  73. }
  74. },
  75. methods:{
  76. getDetail(){
  77. this.loading = true
  78. let params = {
  79. guid:this.$route.query.id
  80. }
  81. orderDetail(params).then(res => {
  82. if (res.retHead.errCode === 0) {
  83. this.datas = res.retBody
  84. this.loading = false
  85. }
  86. });
  87. },
  88. goPage(){
  89. this.$router.go(-1)
  90. }
  91. },
  92. computed:{
  93. //碳汇量计算
  94. saleNumTotal(){
  95. let totalSumAll = 0;
  96. this.datas.items.map((item) => {
  97. if(!isNaN(item.saleNum)) totalSumAll += item.saleNum
  98. })
  99. if(isNaN(totalSumAll)){
  100. return 0
  101. }
  102. return totalSumAll
  103. },
  104. //总价计算
  105. priceTotal(){
  106. let totalPrice = 0;
  107. this.datas.items.map((item) => {
  108. if(!isNaN(item.goodsPrice)) totalPrice += item.goodsPrice
  109. })
  110. if(isNaN(totalPrice)){
  111. return 0
  112. }
  113. return totalPrice
  114. }
  115. }
  116. }
  117. </script>
  118. <style lang="scss" scoped>
  119. .orderDetail{
  120. margin:30px 40px;
  121. &-box{
  122. border-bottom:1px solid #EBEBEB;
  123. &-header{
  124. margin-top:10px;
  125. height:50px;
  126. line-height:50px;
  127. font-size:16px;
  128. font-weight:bold;
  129. }
  130. &-content{
  131. padding-bottom:10px;
  132. .el-col{
  133. height:35px;
  134. line-height:35px;
  135. font-size:14px;
  136. .label{
  137. color:#272727;
  138. font-weight:bold;
  139. margin-right:10px;
  140. }
  141. .txt{
  142. color:#5A5A5A;
  143. }
  144. }
  145. .tableTotal{
  146. position:relative;
  147. height:40px;
  148. line-height:50px;
  149. .num,
  150. .price{
  151. position:absolute;
  152. top:0;
  153. }
  154. .num{
  155. right:320px;
  156. }
  157. .price{
  158. right:90px;
  159. }
  160. }
  161. }
  162. }
  163. &-footer{
  164. text-align:center;
  165. padding:15px 0;
  166. }
  167. }
  168. </style>