stepBox.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div class="step-content" :class="isDone ? `step-4` : `step-${card.orderStatus ? card.orderStatus : card.orderStatus === 0 ? card.orderStatus : card.status}`">
  3. <div class="step-text t-r">专家</div>
  4. <div class="step-text b-l">农服</div>
  5. <div class="step-text b-r">农资</div>
  6. <!-- <div class="step-time time-t-l" v-if="card.updateDate0">
  7. {{ formatDate(card.updateDate0) }}
  8. </div>
  9. <div class="step-time time-b-r" v-if="card.updateDate1">
  10. {{ formatDate(card.updateDate1) }}
  11. </div>
  12. <div class="step-time time-b-l" v-if="card.updateDate4">
  13. {{ formatDate(card.updateDate4) }}
  14. </div> -->
  15. <img class="step-img" :src="require(`@/assets/img/gallery/step-${isDone ? 4 : (card.orderStatus ? card.orderStatus : card.orderStatus === 0 ? card.orderStatus : card.status)}.png`)" />
  16. </div>
  17. </template>
  18. <script setup>
  19. const props = defineProps({
  20. card: {},
  21. isDone: {
  22. type: Boolean,
  23. default: false
  24. }
  25. })
  26. // 正则表达式 将日期 YYYY-MM-DD 格式的字符串转换为 MM-DD
  27. const formatDate = (dateStr) => {
  28. return dateStr.replace(/^\d{4}-(\d{2}-\d{2})$/, "$1");
  29. };
  30. </script>
  31. <style lang="scss" scoped>
  32. .step-content {
  33. position: relative;
  34. width: 100px;
  35. height: 58px;
  36. display: flex;
  37. align-items: center;
  38. justify-content: center;
  39. &.step-0 {
  40. .t-r {
  41. color: #FFD489;
  42. }
  43. }
  44. &.step-1 {
  45. .t-r {
  46. color: #FFD489;
  47. }
  48. .b-r {
  49. color: #FFD489;
  50. }
  51. }
  52. &.step-2 {
  53. .t-r {
  54. color: #FFD489;
  55. }
  56. .b-r {
  57. color: #FFD489;
  58. }
  59. .b-l {
  60. color: #FFD489;
  61. }
  62. }
  63. &.step-3 {
  64. .t-r {
  65. color: #FFD489;
  66. }
  67. .b-r {
  68. color: #FFD489;
  69. }
  70. .b-l {
  71. color: #FFD489;
  72. }
  73. .t-l {
  74. color: #FFD489;
  75. }
  76. }
  77. &.step-4 {
  78. .t-r {
  79. color: #ffb132;
  80. }
  81. .b-r {
  82. color: #ffb132;
  83. }
  84. .b-l {
  85. color: #ffb132;
  86. }
  87. .t-l {
  88. color: #ffb132;
  89. }
  90. }
  91. .step-text {
  92. position: absolute;
  93. font-size: 12px;
  94. color: #bbbbbb;
  95. }
  96. .t-l {
  97. top: 0;
  98. left: 0;
  99. }
  100. .t-r {
  101. left: 50%;
  102. transform: translateX(-50%);
  103. top: -10px;
  104. }
  105. .b-l {
  106. bottom: 8px;
  107. left: 4px;
  108. }
  109. .b-r {
  110. bottom: 8px;
  111. right: 2px;
  112. }
  113. .step-time {
  114. position: absolute;
  115. font-size: 10px;
  116. color: rgba(0, 0, 0, 0.2);
  117. &.time-t-l {
  118. left: 0;
  119. right: 0;
  120. top: -12px;
  121. margin: 0 auto;
  122. text-align: center;
  123. }
  124. &.time-b-l {
  125. top: 0;
  126. bottom: 0;
  127. margin: 0 auto;
  128. left: 0;
  129. display: flex;
  130. align-items: center;
  131. }
  132. &.time-b-r {
  133. top: 0;
  134. bottom: 0;
  135. margin: 0 auto;
  136. right: 0;
  137. display: flex;
  138. align-items: center;
  139. }
  140. }
  141. .step-img {
  142. width: 42px;
  143. }
  144. }
  145. </style>