You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

flow-path-list.vue 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <!-- 办理流程 -->
  2. <template>
  3. <view :class="['as-layout-horizontal', index as any === 0?'active':'', 'logistics-gray']" style="overflow: visible" v-for="(item,index) in options" :key="index">
  4. <view class="logistics-layout">
  5. <view class="logistics-layout-top">
  6. <view class="title">
  7. {{(item as ItemType).title}}
  8. </view>
  9. <!-- <view class="more" v-if="(item as ItemType).right" @click="emit('more')">
  10. <span class="label">详细信息</span>
  11. <image class="arror" :src="`${$imgUrl}common/arror-right-green.png`"></image>
  12. </view> -->
  13. </view>
  14. <view class="desc">
  15. {{(item as ItemType).desc}}
  16. </view>
  17. </view>
  18. </view>
  19. </template>
  20. <script setup lang="ts">
  21. import { PropType } from "vue";
  22. interface ItemType{
  23. title:string,
  24. desc:string,
  25. right?:boolean,
  26. }
  27. const emit = defineEmits(['more'])
  28. const props = defineProps({
  29. //数据列表
  30. options:{
  31. type:Array as PropType<ItemType[]>,
  32. default: () => ([])
  33. },
  34. })
  35. </script>
  36. <style lang="scss" scoped>
  37. .as-layout-horizontal{
  38. border-left: 2px solid #00B38B;
  39. padding-bottom: 45rpx;
  40. margin-top: 10rpx;
  41. position: relative;
  42. &::after{
  43. content: '';
  44. left: -8rpx;
  45. top: -10rpx;
  46. position: absolute;
  47. width: 12rpx;
  48. height: 12rpx;
  49. border-radius: 50%;
  50. border: 2rpx solid #00B38B;
  51. box-sizing: border-box;
  52. }
  53. &:last-child{
  54. border-left: none;
  55. padding-bottom: 0px;
  56. &::after{
  57. left: -4.5rpx;
  58. }
  59. }
  60. .logistics-layout{
  61. padding-left: 35rpx;
  62. &-top{
  63. width: 100%;
  64. display: flex;
  65. margin-top: -20rpx;
  66. align-items: center;
  67. .more{
  68. display: flex;
  69. align-items: center;
  70. .label{
  71. font-size: 24rpx;
  72. color: #00B38B;
  73. }
  74. .arror{
  75. width: 30rpx;
  76. height: 30rpx;
  77. }
  78. }
  79. }
  80. .title{
  81. font-size: 28rpx;
  82. color: #0D0F26;
  83. flex: 1;
  84. font-weight: bold;
  85. }
  86. .desc{
  87. font-size: 24rpx;
  88. margin-top: 20rpx;
  89. margin-bottom: 20rpx;
  90. color: #666666;
  91. line-height: 25px;
  92. }
  93. }
  94. }
  95. .logistics-gray{
  96. border-color: #DCDCDC;
  97. &::after{
  98. background-color: #DCDCDC;
  99. border: none;
  100. }
  101. }
  102. .active{
  103. position: relative;
  104. &::after{
  105. content: '';
  106. position: absolute;
  107. width: 12rpx;
  108. height: 12rpx;
  109. left:-8rpx;
  110. border-radius: 50%;
  111. background-color: #00B38B;
  112. }
  113. }
  114. </style>