friendTree.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <template>
  2. <view class="sub-base-container">
  3. <member-level></member-level>
  4. <view class="tree-cont">
  5. <image class="drone-icon" :src="`${config.BASIC_IMG}img/treePage/drone-icon.png`"></image>
  6. <view class="tool-wrap">
  7. <view class="tool-left">
  8. <view :class="['tool-item',item.className]" v-for="(item,index) in toolList" :key="index">
  9. <image class="icon" :src="`${config.BASIC_IMG}img/treePage/${item.icon}.png`"></image>
  10. <view class="name">{{item.name}}</view>
  11. </view>
  12. </view>
  13. </view>
  14. </view>
  15. <view class="tree-footer">
  16. <view class="blessing">
  17. <image class="icon" :src="`${config.BASIC_IMG}img/treePage/b-tree-icon-2.png`"></image>
  18. <text>送ta祝福</text>
  19. </view>
  20. <view class="button">去看看我的树</view>
  21. </view>
  22. </view>
  23. <!-- 编辑树名称 -->
  24. <editNamePopup></editNamePopup>
  25. </template>
  26. <script setup>
  27. import config from "@/api/config.js"
  28. import memberLevel from "../components/memberLevel.vue"
  29. import {
  30. ref,
  31. reactive,
  32. onMounted
  33. } from 'vue';
  34. const toolList = [{
  35. name: "相册",
  36. icon:'l-tree-icon-1'
  37. },
  38. {
  39. name: "日记",
  40. icon:'l-tree-icon-2'
  41. },
  42. {
  43. name: "果园",
  44. icon:'r-tree-icon-3'
  45. }
  46. ]
  47. const handleToolItem = ({
  48. path
  49. }) => {
  50. uni.navigateTo({
  51. url: `/pages/tabBar/tree/subPages/${path}`
  52. });
  53. }
  54. </script>
  55. <style lang="scss" scoped>
  56. @import "@/static/style/mixin.scss";
  57. .sub-base-container {
  58. @include ossBg("tree-bg.png");
  59. padding: 22rpx 0;
  60. .tree-cont {
  61. width: 100%;
  62. margin-top: 10rpx;
  63. .drone-icon {
  64. width: 376rpx;
  65. height: 384rpx;
  66. margin-left: 26rpx;
  67. }
  68. .tool-wrap {
  69. width: 100%;
  70. padding: 14rpx;
  71. box-sizing: border-box;
  72. position: absolute;
  73. bottom: calc(50% - 350rpx);
  74. display: flex;
  75. justify-content: space-between;
  76. .tool-left{
  77. .tool-item {
  78. color: #fff;
  79. font-size: 24rpx;
  80. font-weight: 500;
  81. text-align: center;
  82. width: 100rpx;
  83. margin-bottom: 16rpx;
  84. text-shadow:
  85. 0 0 3rpx #D7660A,
  86. 0 0 3rpx #D7660A,
  87. 0 0 3rpx #D7660A,
  88. 0 0 3rpx #D7660A;
  89. .icon {
  90. width: 100%;
  91. height: 82rpx;
  92. position: relative;
  93. }
  94. .name {
  95. margin-top: -24rpx;
  96. position: relative;
  97. z-index: 2;
  98. }
  99. }
  100. }
  101. }
  102. }
  103. .tree-footer {
  104. position: absolute;
  105. left: 0;
  106. bottom: 130rpx;
  107. width: 100%;
  108. display: flex;
  109. flex-direction: column;
  110. align-items: center;
  111. color: #fff;
  112. .blessing{
  113. display: flex;
  114. align-items: center;
  115. background: rgba(0, 0, 0, 0.3);
  116. border-radius: 50rpx;
  117. padding: 6rpx 60rpx;
  118. border: 1rpx solid rgba(255, 255, 255, 0.6);
  119. .icon{
  120. width: 86rpx;
  121. height: 86rpx;
  122. margin-right: 10rpx;
  123. }
  124. }
  125. .button{
  126. padding: 26rpx 80rpx;
  127. border-radius: 50rpx;
  128. border: 2rpx solid #fff;
  129. background-image: linear-gradient(120deg,#FFD887,#ED9E1E);
  130. margin-top: 20rpx;
  131. }
  132. }
  133. }
  134. </style>