LogisticsDetails.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <template>
  2. <view class="logisticsView">
  3. <NavHeader :BindClick="goBack">
  4. <template v-slot:body>
  5. <view class="defaultBody">
  6. 物流详情
  7. </view>
  8. </template>
  9. </NavHeader>
  10. <view class="LogisticsDetails_flow" v-if="Exstatus">
  11. <view class="flowItem" v-for="(item,index) in Exstatus" :key="index">
  12. <view class="statusNode" :class="{img_Success:index == 0}">
  13. <image v-if="index == 0" src="./image/successful.png" mode=""></image>
  14. </view>
  15. <p>{{item.context}}</p>
  16. <p>{{item.ftime}}</p>
  17. </view>
  18. </view>
  19. <view class="noData" v-else style="text-align: center;font-size: 38rpx;line-height: 160rpx;">
  20. 🤐暂时没有关于该订单的物流情况🤐
  21. </view>
  22. <view class="footer">
  23. <tui-button width="153rpx" height="64rpx" class="ExpressInfoBtn" plain>物流服务</tui-button>
  24. <tui-button width="153rpx" height="64rpx" class="ExpressInfoBtn" plain>延长收货</tui-button>
  25. <tui-button width="153rpx" height="64rpx" class="ExpressInfoBtn" type="primary">确认收货</tui-button>
  26. </view>
  27. </view>
  28. </template>
  29. <script>
  30. import NavHeader from "./components/header.vue";
  31. import tuiButton from "@/components/thorui/tui-button/tui-button.vue"
  32. import { getKuaiDiRecordMsg } from '@/api/convenient-services';
  33. export default {
  34. components: {
  35. NavHeader,
  36. tuiButton
  37. },
  38. data() {
  39. return {
  40. myExpressData: [],
  41. queryList: {
  42. page: 1,
  43. size: 10,
  44. type: 1001,
  45. recordId: "",
  46. },
  47. Exstatus: null
  48. };
  49. },
  50. onLoad(options) {
  51. this.queryList.recordId = options.id
  52. },
  53. created() {
  54. this.getDataList()
  55. },
  56. methods: {
  57. goBack() {
  58. uni.navigateBack()
  59. },
  60. getDataList() {
  61. getKuaiDiRecordMsg(this.queryList).then(res => {
  62. this.myExpressData = JSON.parse(JSON.stringify(res))
  63. res.records.forEach((item,index) => {
  64. let ResIndex = index
  65. this.myExpressData.records[index] = { ...item, req:JSON.parse(item.req), resp:JSON.parse(item.resp) }
  66. })
  67. this.Exstatus = this.myExpressData.records[0]?.req.lastResult.data
  68. })
  69. }
  70. }
  71. }
  72. </script>
  73. <style lang="scss" scoped>
  74. .errorInfo {
  75. width: 100vw;
  76. font-size: 40rpx;
  77. font-weight: 600;
  78. text-align: center;
  79. box-sizing: border-box;
  80. padding: 30rpx;
  81. }
  82. .logisticsView {
  83. box-sizing: border-box;
  84. width: 100vw;
  85. height: auto;
  86. padding-top: 88rpx;
  87. padding-bottom: 102rpx;
  88. }
  89. .defaultBody {
  90. position: absolute;
  91. left: 50%;
  92. transform:translateX(-50%);
  93. font-size: 34rpx;
  94. color: white;
  95. font-weight: 550;
  96. }
  97. .LogisticsDetails_flow {
  98. width: 100vw;
  99. height: auto;
  100. box-sizing: border-box;
  101. padding: 30rpx 32rpx;
  102. .flowItem {
  103. position: relative;
  104. border-left: 1px solid #9e9e9e;
  105. box-sizing: border-box;
  106. padding-left: 45rpx;
  107. padding-bottom: 45rpx;
  108. font-size: 35rpx;
  109. color: #9e9e9e;
  110. > p:nth-of-type(2) {
  111. margin-top: 10rpx;
  112. font-size: 25rpx;
  113. }
  114. .statusNode {
  115. position: absolute;
  116. top: 0;
  117. left: -12rpx;
  118. width: 20rpx;
  119. height: 20rpx;
  120. border-radius: 50%;
  121. background-color: #9e9e9e;
  122. }
  123. .img_Success {
  124. top: 0;
  125. left: -20rpx;
  126. width: 40rpx;
  127. height: 40rpx;
  128. background-color: #fff;
  129. display: flex;
  130. align-items: center;
  131. justify-content: center;
  132. > image {
  133. width: 35rpx;
  134. height: 35rpx;
  135. }
  136. }
  137. }
  138. }
  139. .footer {
  140. box-sizing: border-box;
  141. padding: 0rpx 24rpx;
  142. position: fixed;
  143. bottom: 0;
  144. left: 0;
  145. width: 100vw;
  146. height: 102rpx;
  147. display: flex;
  148. align-items: center;
  149. justify-content: flex-end;
  150. border-top: 1rpx solid #9e9e9ea7;
  151. .ExpressInfoBtn {
  152. margin-left: 20rpx !important;
  153. }
  154. }
  155. </style>