绿满眶商城微信小程序-uniapp
xiangpei
2025-07-09 da1e3dbfc622f7f581d19a56c7e4d3abe13563e1
pages/tabbar/user/my.vue
@@ -6,7 +6,8 @@
    </view>
    <view class="header"  @click="userDetail">
      <view class="head-1">
        <image :src="userInfo.face || userImage"></image>
        <image v-if="userInfo.face" :src="endpoint + '/' + userInfo.face"></image>
        <image v-else :src="userImage"></image>
      </view>
      <view class="head-2" v-if="userInfo.id">
        <view class="user-name">{{ userInfo.nickName }}</view>
@@ -68,23 +69,67 @@
        </view>
      </view>
    </div>
   <!-- 视频相关, -->
   <div class="pointBox box" style="margin-top: 20rpx;">
     <view class="order">
       <view class="order-item" @click="jumpToVideoHome()">
         <view>
           <text class="iconfont">&#xe676;</text>
         </view>
         <view>视频主页</view>
       </view>
       <view class="order-item" @click="navigateTo('/pages/mine/myAttention')">
         <view>
           <text class="iconfont">&#xe66f;</text>
         </view>
         <view>关注列表</view>
       </view>
       <view class="order-item" @click="navigateTo('/pages/mine/myCollect/myCollect')">
         <view>
           <text class="iconfont">&#xe608;</text>
         </view>
         <view>收藏列表</view>
       </view>
      <view class="order-item" @click="navigateTo('/pages/mine/activity/myActivity')">
        <view>
          <text class="iconfont">&#xe635;</text>
        </view>
        <view>我的活动</view>
      </view>
      <view class="order-item" @click="navigateTo('/pages/mine/myTracks')">
        <view>
          <text class="iconfont">&#xe738;</text>
        </view>
        <view>浏览记录</view>
      </view>
     </view>
   </div>
    <!-- 常用工具 -->
    <tool />
  <custom-tabbar bgColor="#ffffff" :selected="3"></custom-tabbar>
   <view class="pointBox box" style="margin-top: 20rpx;">
      <tool />
   </view>
  <custom-tabbar bgColor="#ffffff" selected="my"></custom-tabbar>
  </view>
</template>
<script>
import '@/components/uview-components/uview-ui';
import tool from "@/pages/tabbar/user/utils/tool.vue";
import { getSTSToken } from "@/api/common.js";
import { getCouponsNum, getFootprintNum } from "@/api/members.js";
import { getUserWallet } from "@/api/members";
import configs from '@/config/config'
import storage from '@/utils/storage.js'
export default {
  components: {
    tool,
    tool
  },
  data() {
    return {
     endpoint: '',
      configs,
      userImage:configs.defaultUserPhoto,
      coverTransform: "translateY(0px)",
@@ -96,7 +141,9 @@
      walletNum: "",
    };
  },
  onLoad() { },
  onLoad() {
     this.initCOS()
  },
  onShow() {
    this.userInfo = this.$options.filters.isLogin() || {};
    if (this.$options.filters.isLogin("auth")) {
@@ -122,6 +169,19 @@
  mounted() { },
  methods: {
     // 初始化腾讯云cos客户端
     initCOS() {
        // 调用后端获取sts临时访问凭证
        getSTSToken().then(res => {
            this.endpoint = res.data.data.endpoint
        })
     },
     // 跳转视频主页
     jumpToVideoHome() {
        uni.navigateTo({
          url: '/pages/video/home-page?authorId=' + storage.getUserInfo().id
        });
     },
    /**
     * 统一跳转接口,拦截未登录路由
     * navigator标签现在默认没有转场动画,所以用view
@@ -170,7 +230,7 @@
  .header {
    max-width: 100%;
    padding: calc(50rpx + var(--status-bar-height)) 30rpx 0 6%;
    height: calc(var(--status-bar-height) + 360rpx);
    height: calc(360rpx);
    background-size: cover;
    border-bottom-left-radius: 30rpx;
    border-bottom-right-radius: 30rpx;