logistics.vue 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <template>
  2. <view class="page" :style="vuex_skin">
  3. <view class="" >
  4. <!-- 圆通快递 -->
  5. <view class="express">
  6. <view class="top ali-c">
  7. <view class="picture">
  8. <image class="img" mode="scaleToFill" :src="logo"></image>
  9. </view>
  10. <view class="text" style="display: flex;justify-content: center;align-items: center;">
  11. <view class="text1">
  12. <text>{{orderDetail.trackingName}}</text>
  13. <text class="margin-left-50">{{orderDetail.trackingNumber}}</text>
  14. </view>
  15. </view>
  16. </view>
  17. <view class="center margin-right-30 text-gray">
  18. <text @click="$util.copy(orderDetail.trackingNumber)">复制</text>
  19. </view>
  20. </view>
  21. <!-- 收货地址 -->
  22. <view class="content bgf">
  23. <view>
  24. <view class="flex list">
  25. <view class="time center">
  26. <view style="font-size: 28rpx;font-weight: 800;color: #111111;">
  27. </view>
  28. </view>
  29. <view class="info flex1">
  30. <view class="title address">[收货地址]{{orderDetail.address}}</view>
  31. </view>
  32. </view>
  33. <view class="flex list" :class="{one: index == 0 && wlInfo.State == 3}"
  34. v-for="(item, index) in wlInfo.Traces" :key="index">
  35. <view class="time">
  36. <view class="day">{{item.AcceptTime}}</view>
  37. </view>
  38. <view class="info flex1">
  39. <view class="title">{{index == 0 && wlInfo.State == 3 ? '已签收' : '配送中'}}</view>
  40. <view class="text">{{item.AcceptStation}}</view>
  41. </view>
  42. </view>
  43. </view>
  44. </view>
  45. </view>
  46. <loading ref="loading" type="3" />
  47. </view>
  48. </template>
  49. <script>
  50. let plugin = requirePlugin("wt-logistics");
  51. import config from "@/assets/http/config.js"
  52. export default {
  53. data() {
  54. return {
  55. logo:'',
  56. wlInfo: {},
  57. //商品订单
  58. id:'',
  59. orderDetail:{}
  60. }
  61. },
  62. async onLoad(options) {
  63. this.id=options.id
  64. await this.fetchDetail()
  65. this.query()
  66. },
  67. methods: {
  68. async fetchDetail(){
  69. let params={
  70. id:this.id
  71. }
  72. let res=await this.$api.goodsorder.detail(params)
  73. this.orderDetail=res.data.data
  74. this.logo='/static/kd/'+this.orderDetail.shipperCode+'.png'
  75. },
  76. query() {
  77. let appId = config.kdniao.appId
  78. let appKey = config.kdniao.appKey
  79. let _this = this
  80. plugin.reglogis(_this.orderDetail.trackingNumber, _this.orderDetail.shipperCode, appId, appKey, '1002', '2', '',
  81. 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx').then(function(res) {
  82. if (res.Success) {
  83. _this.wlInfo = res
  84. } else {
  85. _this.$refs.toast.error('查询失败')
  86. }
  87. });
  88. }
  89. }
  90. }
  91. </script>
  92. <style lang="scss" scoped>
  93. .page {
  94. height: 100vh;
  95. /* #ifdef H5 */
  96. height: calc(100vh - 44px);
  97. /* #endif */
  98. font-size: 24rpx;
  99. background-color: #F6F7F8;
  100. overflow-y: auto;
  101. }
  102. /*flex 转换成flex容器*/
  103. .flex {
  104. display: flex;
  105. flex-direction: row;
  106. }
  107. /*flex1 自动填充*/
  108. .flex1 {
  109. flex: 1;
  110. }
  111. /*ali-c 竖直居中*/
  112. .ali-c {
  113. display: flex;
  114. flex-direction: row;
  115. align-items: center;
  116. }
  117. .bgf {
  118. background-color: #fff;
  119. }
  120. .express {
  121. //圆通快递
  122. background-color: #ffffff;
  123. border-radius: 20rpx;
  124. margin: 30rpx 20rpx 30rpx 20rpx;
  125. display: flex;
  126. justify-content: space-between;
  127. .top {
  128. padding: 28rpx 29rpx 25rpx 29rpx;
  129. .img {
  130. display: block;
  131. width: 60rpx;
  132. height: 60rpx;
  133. border-radius: 50%;
  134. }
  135. .text {
  136. margin-left: 20rpx;
  137. .text1 {
  138. margin-bottom: 6rpx;
  139. font-size: 28rpx;
  140. color: #000000;
  141. }
  142. .text2 {
  143. font-size: 20rpx;
  144. color: #000000;
  145. }
  146. }
  147. }
  148. .right {
  149. background-color: rgba(8, 175, 254, 0.02);
  150. border-radius: 0rpx 0rpx 20rpx 20rpx;
  151. padding: 15rpx 30rpx 20rpx 30rpx;
  152. .text {
  153. color: #666666;
  154. font-size: 22rpx;
  155. }
  156. }
  157. }
  158. //收货地址
  159. .content {
  160. margin: 20rpx;
  161. padding: 56rpx 46rpx 56rpx 5rpx;
  162. border-radius: 20rpx;
  163. .list {
  164. &:first-child {
  165. .info::before {
  166. bottom: -20rpx;
  167. margin-top: 40rpx;
  168. border-left: 1px dashed #e5e5e5;
  169. }
  170. .title {
  171. margin-bottom: 56rpx;
  172. &::before {
  173. width: 46rpx;
  174. height: 46rpx;
  175. left: -23rpx;
  176. background: url('data:image/jpeg;base64,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') no-repeat center;
  177. background-size: 46rpx 46rpx;
  178. }
  179. }
  180. }
  181. &:last-child {
  182. .info::before {
  183. height: 32rpx;
  184. }
  185. }
  186. &.one {
  187. .info::before {
  188. margin-top: 20rpx;
  189. }
  190. .title {
  191. color: #111111;
  192. &::before {
  193. width: 46rpx;
  194. height: 46rpx;
  195. left: -23rpx;
  196. background: url('data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAFCklEQVRoQ92az28bRRTHv28cBbxuIgoCClRUICREixD9AfGaVEpJslZa5dCWgNQeUNU7CojChR9F5QIcyF9QLi2VKEokKAre9IdFacZpSYoQAeUCFNGChKAowWtI431oN9nEduzszuIktX3Zg9+vz+x7M29mllAnP6omx1S8o01AtBNRE7Pd7D6BZscHAZPMPEUk3KcN+0xT5nS6Wv7/F8hfrbvWNtozT7PN7SA8Q8CdKoEx8DsYH5OgM9Oi4extX352XUW/UDYUCPf0RHJXJ3vB3AtgfVjnJXq/gKgvel9zH508mVe1qQyS05P7GHYvQE+oOgsmz5cIoi8qUx8Gk5+VCgzCLV3NOWF/APAeFQfhZak/aosDNDI4GcRGIJDck8YDiOBTBjYFMVotGQLGkUd39KL5o59NX5DsU53byKYMgIifsWX6P8+C47ELQ18tZX9JkKl4xyMREt8tU4BKZvNsb2zKnP6+klJFkOz25D00w9eUvC2zMDfQvbHzqV/LuSkLwm1ta3LTjWkwti5zbGrmCaPRxuk2Sqf/LlUsC2LpRj+A3WpeVkx6QJPmoplzEYilJ3sBfn/FwgrliF7UZKqv4so+Wxe2BGhDGPtOy0Hg8TC6xTrUtrQNvsINQi+sl6I3YiWS74D5lbCBCKD7VmmeCqvv6Vm68TKA95a0Q/SuNpx61ZOZB8nGk1uIWAJoDBtInu0d1ehonS46QuKcTxzTzKTHMqkxR64AxDhChNfCQjh6KwwCZrwdy5ivF4FYunEZwOO1BALga02am+dBpuPJLTPEo4oQh/JsL2obVjC13HAbmLY2ZlJjbmpl42ppxcDBmDSPKoIHFg9YI649L71cEEs3hgHoQTwxMBCT5h6nI7YFnhcA2wDFMubhIPpBZFRAAEhNmgkP5AqA+wM4uQFQqyZTF62EcQyM/Z6OJk3fTjqAfVdEEeRnTZobPJCZIG06gY5EZeoNq6WjFUKcLwxsFUHymjQbiFva786JyG/+o0WXJ7O8fd03ZtbSjU8AdN8kIIja+XUUdMZixltOHeTixn4mHCsFX8U34s5cgUHAiGsZcySnG9+W2/KuOkjQ1HICdYqwUgpWY/3wbCsW+2xqzU2/vsVezRH3q0dFkNlinwPxnX5vYpCi6dd3QSwFyeodmwVFHmXYdwmmiaDt+7we4w7b5vE1I+ZQ6RtSfCMLC2KQFqUQJBs3DgvCIQamALpG4IdBuMA8c0CTZ69WSp15PcYfTLhOwGMMHI1J82ChjgpIUYsSZAr2QLKJ5C5iPsWMnbGMOej2O3ry9n/AXzB4QpNDe8uBOBBEeDNiRzbdMjLoHjFZLV3rIfJpgMY0mXo2TLEXNY1zdeLTxvM+TQ6dsHTjOAFro9LcWRjwvy1dG22Rz0Sl6V4jlP5yieSEbfOJ0p7M0jt3A9TvDdTCoAQ61Sxu4x2nQdLLC85bHEuDtfTOc0Dl/XaljZelG+w3k5X7v+zGSmmrSxjVhs1t6nnNaU0O7SjUs/TOHoA+CgFSfqvrppfK4QPjJYIYiGY+/ykbN7qInEMLv9MPp6DwQpToOMnUn1YiuReM5wDuUQapdPjgppf6cdANAM4a9JByIMAPAB4MoeeMxtLHQbNFXwcHdN7o1MWRqbsu1Msh9kK91Pi1QsEKW/sXPR5MXVy9eTB1cRk635bUw/V04aJV8x8MFMLUxScchUA1/1FNpf6oZj9zCtfwLY/Wf/HouMfV4hN8AAAAAElFTkSuQmCC') no-repeat center;
  197. background-size: 46rpx 46rpx;
  198. }
  199. }
  200. .text {
  201. color: #555555;
  202. }
  203. .time {
  204. color: #333;
  205. .day {
  206. font-size: 26rpx;
  207. }
  208. }
  209. }
  210. }
  211. .time {
  212. width: 200rpx;
  213. padding-right: 30rpx;
  214. font-size: 20rpx;
  215. text-align: right;
  216. color: #999;
  217. .day {
  218. margin-bottom: 4rpx;
  219. }
  220. }
  221. .info {
  222. position: relative;
  223. padding-top: 12rpx;
  224. color: #999;
  225. &::before {
  226. content: "";
  227. position: absolute;
  228. left: 0;
  229. top: 0;
  230. bottom: 0;
  231. z-index: 1;
  232. width: 0;
  233. border-left: 1px solid #e5e5e5;
  234. }
  235. .title {
  236. position: relative;
  237. margin-bottom: 10rpx;
  238. padding-left: 32rpx;
  239. font-size: 28rpx;
  240. &::before {
  241. content: "";
  242. position: absolute;
  243. left: -3px;
  244. top: 0;
  245. bottom: 0;
  246. z-index: 1;
  247. width: 7px;
  248. height: 7px;
  249. margin: auto 0;
  250. border-radius: 50%;
  251. background-color: #cecece;
  252. }
  253. &.address {
  254. font-size: 24rpx;
  255. color: #333;
  256. }
  257. }
  258. .text {
  259. padding: 0 0 44rpx 32rpx;
  260. }
  261. }
  262. }
  263. </style>