parkingFeeList.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. <template>
  2. <scroll-view
  3. style="background-color: #f4f7ff"
  4. :class="['scroll-Y', theme]"
  5. id="slideview"
  6. scroll-y
  7. lower-threshold="50"
  8. scroll-top="0"
  9. scroll-left="0"
  10. scroll-with-animation="false"
  11. enable-back-to-top="false"
  12. @scrolltolower="bindscrolltolower"
  13. >
  14. <div>
  15. <!-- <LoginDom></LoginDom> -->
  16. <div
  17. :class="['choice_card', index === 0 && 'mt30']"
  18. v-for="(item, index) in list"
  19. :key="index"
  20. @click="toDetail(item.id)"
  21. >
  22. <div class="carno-box">
  23. <div class="carno">{{ item.orderNo }}</div>
  24. <div :class="['status-box', item.paymentStatus !== 'PAID' ? '' : '']">
  25. <!-- {{ ['支付成功', '支付失败', '已退款'][item.refundStatus] }} -->
  26. {{ item.refundStatus !== 'NO_REFUND' ? '已退款' : {'PAID': '支付成功', 'FAILED': '支付失败'}[item.paymentStatus || 'FAIED'] }}
  27. </div>
  28. <!-- <div class="servicefee">{{ item.actualPayFee | currency }}</div> -->
  29. </div>
  30. <div class="van-hairline--bottom"></div>
  31. <div class="choice_card_index orderno-box">
  32. <div class="orderno">{{ item.vehicleNo }}</div>
  33. <!-- <van-icon name="arrow" /> -->
  34. </div>
  35. <div class="choice_card_index" style="margin-bottom:0;">
  36. <div class="choice_card_index_icon">
  37. <img
  38. class="car-icon"
  39. :src="require(`./static/images/vector.png`)"
  40. />
  41. <div class="choice_card_index_text">入场时间</div>
  42. </div>
  43. <div class="choice_card_index_icon">
  44. <img
  45. class="car-icon"
  46. :src="require(`./static/images/car_time.png`)"
  47. />
  48. <div class="choice_card_index_text">停车时长</div>
  49. </div>
  50. <!-- {{ item.enterTime }} -->
  51. </div>
  52. <div class="choice_card_index" >
  53. <div class="choice_card_index_icon">
  54. {{ item.enterTime }}
  55. </div>
  56. <div class="choice_card_index_icon">
  57. {{ item.serviceMin | parkingTime }}
  58. </div>
  59. <!-- {{ item.enterTime }} -->
  60. </div>
  61. <div class="choice_card_index" style="padding-bottom:21px;margin-bottom: 0;" >
  62. <div class="choice_card_index_icon bg_parkingRoom">
  63. <img
  64. class="car-icon"
  65. style="
  66. padding-left: 8px;"
  67. :src="require(`./static/images/parking_room.png`)"
  68. />
  69. <div class="choice_card_index_text2">{{item.parkName}}</div>
  70. </div>
  71. <!-- {{ item.enterTime }} -->
  72. </div>
  73. <div class="van-hairline--bottom"></div>
  74. <div class="choice_card_index orderno-box2">
  75. <div class="orderFee">{{ item.actualPayFee | currency }}</div>
  76. <div class="orderDetail">查看详情</div>
  77. <!-- <van-icon name="arrow" /> -->
  78. </div>
  79. </div>
  80. <div class="no-more-data">
  81. <!-- 为确保用户可以执行下滑动作,设置单次响应的数据量为4 -->
  82. <div
  83. >{{ numberOfElements ? '查看更多' : '没有更多啦' }}
  84. </div>
  85. </div>
  86. <div style="height: 10vh;"></div>
  87. </div>
  88. </scroll-view>
  89. </template>
  90. <script>
  91. import parkingFeeListJs from './mixins/parkingFeeList'
  92. import baseMixins from './mixins/base'
  93. export default {
  94. mixins:[baseMixins, parkingFeeListJs]
  95. }
  96. </script>
  97. <style lang="less" scoped>
  98. .scroll-Y {
  99. width: 100%;
  100. display: flex;
  101. flex-direction: column;
  102. height: 100vh;
  103. background: #f2f2f2;
  104. }
  105. .wrap {
  106. display: flex;
  107. flex-direction: column;
  108. width: 100%;
  109. }
  110. .car-icon {
  111. width: 40px;
  112. height: 40px;
  113. margin-right: 10px;
  114. }
  115. .parkingFeeList-item {
  116. background: #fff;
  117. display: flex;
  118. flex-direction: column;
  119. margin-top: 8px;
  120. .item {
  121. display: flex;
  122. align-items: center;
  123. justify-content: space-between;
  124. padding: 30px 36px;
  125. box-sizing: border-box;
  126. span {
  127. font-size: 16px;
  128. }
  129. }
  130. .item-bottom {
  131. border-top: 1px solid #f2f2f2;
  132. display: flex;
  133. flex-direction: column;
  134. padding: 0px 36px;
  135. box-sizing: border-box;
  136. padding-top: 8px;
  137. div {
  138. display: flex;
  139. flex-direction: column;
  140. }
  141. span {
  142. color: #999;
  143. font-size: 14px;
  144. margin-bottom: 10px;
  145. }
  146. }
  147. }
  148. .choice_card {
  149. width: calc(100% - 48px);
  150. margin:20px 24px;
  151. // margin-top: 30px;
  152. // padding: 30px;
  153. // border-radius: 20px;
  154. position: relative;
  155. background-color: #fafbff;
  156. border-radius: 4px;
  157. // border: 1px solid #d8dae0;
  158. &.mt30 {
  159. margin-top: 30px;
  160. }
  161. .carno-box {
  162. display: flex;
  163. padding-bottom: 18px;
  164. // border-bottom: 1px solid #d8dae0;`
  165. justify-content: space-between;
  166. padding: 20px 35px;
  167. .carno {
  168. font-family: 'PingFang SC';
  169. font-style: normal;
  170. font-weight: 400;
  171. font-size: 28px;
  172. line-height: 5.6vw;
  173. color: #999999;
  174. }
  175. .servicefee {
  176. font-size: 30px;
  177. font-weight: 600;
  178. color: #333333;
  179. line-height: 42px;
  180. }
  181. .status-box {
  182. font-family: 'PingFang SC';
  183. font-style: normal;
  184. font-weight: 400;
  185. font-size: 30px;
  186. color: var(--k-color-primary-01);
  187. line-height: 42px;
  188. &.other {
  189. color: #B15124;
  190. }
  191. }
  192. }
  193. .choice_card_index {
  194. // width: calc(100% - 48px);
  195. font-size: 28px;
  196. font-weight: 400;
  197. color: #999999;
  198. line-height: 40px;
  199. margin-bottom: 12px;
  200. display: flex;
  201. padding: 11px 35px;
  202. .choice_card_index_icon {
  203. width: 50%;
  204. height:40px;
  205. line-height: 40px;
  206. display: flex;
  207. color:#333;
  208. }
  209. .bg_parkingRoom {
  210. background-color: #F4F7FF;
  211. width: 100%;
  212. padding: 15px 0;
  213. }
  214. .choice_card_index_text {
  215. display: inline-block;
  216. line-height: 40px;
  217. font-family: 'PingFang SC';
  218. font-style: normal;
  219. font-weight: 400;
  220. font-size: 28px;
  221. color:#666;
  222. }
  223. .choice_card_index_text2 {
  224. display: inline-block;
  225. line-height: 40px;
  226. font-family: 'PingFang SC';
  227. font-style: normal;
  228. font-weight: 400;
  229. font-size: 28px;
  230. color:#333;
  231. }
  232. // justify-content: space-between;
  233. &.mt0 {
  234. margin-top: 0;
  235. }
  236. &.mb0 {
  237. margin-bottom: 0;
  238. }
  239. &.pb0 {
  240. padding-bottom: 0;
  241. }
  242. .status-box {
  243. font-size: 30px;
  244. font-weight: 400;
  245. color: #064c8a;
  246. line-height: 42px;
  247. &.other {
  248. color: #999999;
  249. }
  250. }
  251. }
  252. .orderno-box {
  253. display: flex;
  254. justify-content: space-between;
  255. font-weight: 600;
  256. font-size: 36px;
  257. color: #333;
  258. padding-top: 31px;
  259. line-height:28px;
  260. }
  261. .orderno-box2 {
  262. display: flex;
  263. justify-content: space-between;
  264. font-weight: 600;
  265. color: #333;
  266. padding: 20px 35px 15px 28px;
  267. margin-bottom: 0;
  268. }
  269. .orderFee {
  270. font-family: 'PingFang SC';
  271. font-style: normal;
  272. font-weight: 500;
  273. font-size: 34px;
  274. line-height:40px;
  275. // vertical-align: middle;
  276. align-self: center;
  277. // margin-top:5px;
  278. // padding: 10px 0;
  279. }
  280. .orderDetail {
  281. border: 1px solid #333333;
  282. border-radius: 32.5px;
  283. padding: 5px 33px;
  284. font-family: 'PingFang SC';
  285. font-style: normal;
  286. font-weight: 400;
  287. font-size: 28px;
  288. }
  289. }
  290. .notice-info {
  291. text-align: center;
  292. color: #b5b3b3;
  293. padding-bottom: 30px;
  294. div {
  295. margin-bottom: -7px;
  296. }
  297. }
  298. .no-more-data {
  299. width: 100%;
  300. position: relative;
  301. text-align: center;
  302. box-sizing: border-box;
  303. margin-top: 60px;
  304. font-size: 22px;
  305. font-weight: 400;
  306. color: #999999;
  307. line-height: 41px;
  308. background:rgba(255,255,255,0);
  309. padding:0 24px;
  310. &::before {
  311. content: '';
  312. display: block;
  313. width: calc(40% - 49px);
  314. position: absolute;
  315. left: 49px;
  316. top: 16px;
  317. border-top: 1px dashed #cfcfcf;
  318. }
  319. &::after {
  320. content: '';
  321. display: block;
  322. width: calc(40% - 49px);
  323. position: absolute;
  324. right: 49px;
  325. top: 16px;
  326. border-top: 1px dashed #cfcfcf;
  327. }
  328. }
  329. </style>