applyList.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <view class="apply-list">
  3. <view class="apply-list-item"   v-for="(item,index) in list" :key="index">
  4. <view class="apply-list-item-title">
  5. {{item.title}}
  6. </view>
  7. <view class="apply-info">
  8. <view @click="itemClick(item1,index1)" class="apply-info-item" v-for="(item1,index1) in item.childer"
  9. :key="index1">
  10. <view class="apply-info-item-img">
  11. <image style="width: 100%;height: 100%;" :src="item1.img" mode=""></image>
  12. </view>
  13. <view class="apply-info-item-text">
  14. {{item1.title}}
  15. </view>
  16. </view>
  17. </view>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. export default {
  23. name: "applyList",
  24. props: {
  25. list: {
  26. type: Array,
  27. default: () => []
  28. }
  29. },
  30. data() {
  31. return {
  32. };
  33. },
  34. methods: {
  35. itemClick(item, index) {
  36. this.$emit('itemClick',item)
  37. }
  38. }
  39. }
  40. </script>
  41. <style lang="scss" scoped>
  42. .apply-list {
  43. width: 100%;
  44. .apply-list-item {
  45. padding: 32rpx 32rpx 0 32rpx;
  46. background-color: #fff;
  47. border-radius: 5.33px;
  48. box-shadow: 0px 0px 6.67px 0px rgba(147, 147, 147, 0.20);
  49. margin-bottom: 32rpx;
  50. .apply-list-item-title {
  51. font-size: 32rpx;
  52. margin-bottom: 32rpx;
  53. }
  54. }
  55. .apply-info {
  56. width: 100%;
  57. display: flex;
  58. flex-wrap: wrap;
  59. .apply-info-item {
  60. width: 20%;
  61. display: flex;
  62. flex-direction: column;
  63. align-items: center;
  64. justify-content: center;
  65. margin-bottom: 32rpx;
  66. .apply-info-item-img {
  67. width: 50rpx;
  68. height: 50rpx;
  69. }
  70. .apply-info-item-text {
  71. font-size: 24rpx;
  72. }
  73. }
  74. }
  75. }
  76. </style>