绿满眶商城微信小程序-uniapp
zxl
17 小时以前 e6e969ad460293d3e14ca5ed89fd3b1df82e37c3
页面调整优化
10个文件已修改
2个文件已添加
25个文件已删除
1575 ■■■■ 已修改文件
components/custom-tabbar.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 284 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cusbar/cart/cartList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cusbar/video/video.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/kitchen/KitchenCover.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/kitchen/KitchenCustomize.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/mine/help/customerService.vue 285 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/goods.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/index/home.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/user/my copy.vue 749 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/user/my.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tabbar/user/utils/tool.vue 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/cart-s.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/cart.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/category-s.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/category.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/home-s.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/home.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/mine-s.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/mine.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/video-selected.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/video.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/video1-selected.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/video1.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tabbar/vip.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/供应商入驻.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/关于我们.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/客服.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/待付款.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/待发货.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/待收货.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/我的订单-退货_售后.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/收货地址.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/浏览记录.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/积分.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/设置.png 补丁 | 查看 | 原始文档 | blame | 历史
static/tool/评价中心.png 补丁 | 查看 | 原始文档 | blame | 历史
components/custom-tabbar.vue
@@ -1,6 +1,6 @@
<!-- components/custom-tabbar.vue -->
<template>
    <view class="custom-tabbar" :style="{backgroundColor: bgColor, marginBottom: marginBottom + 'px'}">
    <view class="custom-tabbar" :style="{backgroundColor: bgColor, paddingBottom: paddingBottom + 'px'}">
        <view v-for="(item, index) in list" :key="index" class="tabbar-item" @click="switchTab(item)">
            <image :src="selected === item.key ? item.selectedIconPath : item.iconPath"
                :class="{'tabbar-icon': true, 'video-add': item.key == 'video'}" />
@@ -26,17 +26,21 @@
            },
            selectedTextColor: {
                type: String,
                default: '#ff573e'
                default: '#25a885'
            },
            fillBottom: {
                type: Boolean,
                default: false
            }
        },
        data() {
            return {
                color: '#999999',
                marginBottom: 0,
                paddingBottom: 0,
                list: [{
                        "pagePath": "/pages/tabbar/index/home",
                        "iconPath": "/static/tabbar/home.png",
                        "selectedIconPath": "/static/tabbar/home-s.png",
                        "iconPath": "/static/tabbar/home-new.png",
                        "selectedIconPath": "/static/tabbar/home-new-s.png",
                        "text": "首页",
                        "key": 'index'
                    },
@@ -45,28 +49,28 @@
                        // "pagePath": "/pages/tabbar/category/category",
                        "pagePath": "/pages/kitchen/KitchenCover",
                        "iconPath": "/static/tabbar/category.png",
                        "selectedIconPath": "/static/tabbar/category-s.png",
                        "iconPath": "/static/tabbar/category-new.png",
                        "selectedIconPath": "/static/tabbar/category-new-s.png",
                        "text": "神厨",
                        "key": 'kitchen'
                    },
                    {
                        "pagePath": "/pages/cusbar/video/video",
                        "iconPath": "/static/tabbar/video1.png",
                        "selectedIconPath": "/static/tabbar/video1-selected.png",
                        "iconPath": "/static/tabbar/video1-new.png",
                        "selectedIconPath": "/static/tabbar/video1-new-s.png",
                        "key": 'video'
                    },
                    {
                        "pagePath": "/pages/cusbar/cart/cartList",
                        "iconPath": "/static/tabbar/cart.png",
                        "selectedIconPath": "/static/tabbar/cart-s.png",
                        "iconPath": "/static/tabbar/cart-new.png",
                        "selectedIconPath": "/static/tabbar/cart-new-s.png",
                        "text": "购物车",
                        "key": 'buyCar'
                    },
                    {
                        "pagePath": "/pages/tabbar/user/my",
                        "iconPath": "/static/tabbar/mine.png",
                        "selectedIconPath": "/static/tabbar/mine-s.png",
                        "iconPath": "/static/tabbar/mine-new.png",
                        "selectedIconPath": "/static/tabbar/mine-new-s.png",
                        "text": "我的",
                        "key": 'my'
                    }
@@ -75,7 +79,9 @@
        },
        created() {
            console.log("底部安全区域", uni.getSystemInfoSync().safeAreaInsets);
            this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
            if (!this.fillBottom) {
                this.paddingBottom = uni.getSystemInfoSync().safeAreaInsets.bottom
            }
        },
        methods: {
            switchTab(item) {
@@ -95,14 +101,19 @@
        bottom: 0;
        left: 0;
        right: 0;
        height: 50px;
        /* ç¨å¾®è°ƒä½Žé«˜åº¦è‡³ 55px,并保持半透明效果 */
        height: calc(50px + constant(safe-area-inset-bottom));
        height: calc(50px + env(safe-area-inset-bottom));
        display: flex;
        align-items: center;
        align-items: flex-start;
        padding-top: 2rpx;
        justify-content: space-around;
        border-top: 1rpx solid rgba(255, 255, 255, 0.1);
        border-top: 1rpx solid rgba(0, 0, 0, 0.05);
        box-sizing: border-box;
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(15px);
        -webkit-backdrop-filter: blur(15px);
        z-index: 999;
    }
    .tabbar-item {
@@ -110,16 +121,12 @@
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .video-add {
        width: 30px !important;
        height: 30px !important;
        height: 55px; /* åŒæ­¥é«˜åº¦ */
    }
    .tabbar-icon {
        width: 24px;
        height: 24px;
        width: 26px;
        height: 26px;
        margin-bottom: 4px;
    }
pages.json
@@ -12,7 +12,9 @@
  "preloadRule": {
    "pages/prize/PrizeDetail/PrizeDetail": {
      "network": "all",
      "packages": ["pages/prize"]
      "packages": [
        "pages/prize"
      ]
    }
  },
  "pages": [
@@ -26,7 +28,6 @@
        "componentPlaceholder": {
          "u-icon": "view"
        }
        // éšè—é¡¶éƒ¨å¯¼èˆªæ 
      }
    },
@@ -36,7 +37,6 @@
        "navigationBarTitleText": ""
      }
    }
    // {
    //     "path": "pages/tabbar/home/index",
    //     "style": {
@@ -85,7 +85,6 @@
    // {
    //     // "path": "pages/tabbar/category/category",
    //     "path": "pages/commodity-square/commoditySquare",
    //     "style": {
    //         "navigationBarTitleText": "商品广场",
    //         "navigationStyle": "custom", // éšè—ç³»ç»Ÿå¯¼èˆªæ 
@@ -750,6 +749,17 @@
          }
        },
        {
          "path": "help/customerService",
          "style": {
            "navigationBarTitleText": "联系客服",
            "componentPlaceholder":{
              "u-icon": "view"
            }
          }
        },
        {
          "path": "help/tips",
          "style": {
            "navigationBarTitleText": "",
@@ -1217,10 +1227,10 @@
          "path": "home-page",
          "style": {
            "navigationBarTitleText": "TA的主页",
            "componentPlaceholder": {
                "u-icon": "view",
                "u-loadmore": "view"
            }
            "componentPlaceholder": {
              "u-icon": "view",
              "u-loadmore": "view"
            }
          }
        },
        {
@@ -1239,15 +1249,15 @@
          "path": "video-edit",
          "style": {
            "navigationBarTitleText": "视频编辑",
            "componentPlaceholder": {
              "u-popup": "view",
              "u-button": "view",
              "u-icon": "view",
              "u-form": "view",
              "u-form-item": "view",
              "u-input": "view",
              "u-search": "view"
            }
            "componentPlaceholder": {
              "u-popup": "view",
              "u-button": "view",
              "u-icon": "view",
              "u-form": "view",
              "u-form-item": "view",
              "u-input": "view",
              "u-search": "view"
            }
          }
        },
        {
@@ -1265,7 +1275,6 @@
            "navigationBarTitleText": ""
          }
        },
        {
          "path": "video-goods-detail-swiper",
          "style": {
@@ -1572,28 +1581,27 @@
          "path": "complain/complain",
          "style": {
            "navigationBarTitleText": "订单商品投诉",
            "componentPlaceholder": {
              "u-popup": "view",
              "u-icon": "view",
              "u-line": "view",
              "u-image": "view",
              "u-select": "view",
              "u-input": "view",
              "u-upload": "view"
            }
            "componentPlaceholder": {
              "u-popup": "view",
              "u-icon": "view",
              "u-line": "view",
              "u-image": "view",
              "u-select": "view",
              "u-input": "view",
              "u-upload": "view"
            }
          }
        },
        {
          "path": "complain/complainInfo",
          "style": {
            "navigationBarTitleText": "投诉详情",
            "componentPlaceholder": {
              "u-image": "view",
              "u-cell-group": "view",
              "u-cell-item": "view",
              "u-input": "view"
            }
            "componentPlaceholder": {
              "u-image": "view",
              "u-cell-group": "view",
              "u-cell-item": "view",
              "u-input": "view"
            }
          }
        },
        {
@@ -1754,19 +1762,19 @@
        },
        {
          "path": "afterSales/afterSalesDetailExpress",
          "style": {
              "componentPlaceholder":{
                "u-image": "view",
                "u-icon": "view",
                "u-form": "view",
                "u-form-item": "view",
                "u-input": "view",
                "u-button": "view",
                "u-select": "view",
                "u-calendar": "view",
                "u-toast": "view"
            }
          }
          "style": {
            "componentPlaceholder": {
              "u-image": "view",
              "u-icon": "view",
              "u-form": "view",
              "u-form-item": "view",
              "u-input": "view",
              "u-button": "view",
              "u-select": "view",
              "u-calendar": "view",
              "u-toast": "view"
            }
          }
        },
        {
          "path": "afterSales/afterSalesSelect",
@@ -1775,14 +1783,13 @@
            "componentPlaceholder": {
              "u-image": "view",
              "u-icon": "view",
              "u-form": "view",
              "u-form-item": "view",
              "u-input": "view",
              "u-button": "view",
              "u-select": "view",
              "u-calendar": "view",
              "u-toast": "view"
              "u-form": "view",
              "u-form-item": "view",
              "u-input": "view",
              "u-button": "view",
              "u-select": "view",
              "u-calendar": "view",
              "u-toast": "view"
            }
          }
        },
@@ -1834,61 +1841,57 @@
          }
        },
        {
            "path" : "claim-coupon/claim-coupon",
            "style" :
            {
                "navigationBarTitleText" : "商品兑换券领取",
                "enablePullDownRefresh" : true,
                "componentPlaceholder": {
                  "u-image": "view",
                  "u-tag": "view",
                  "u-loading": "view",
                  "u-empty": "view",
                  "u-modal":"view"
                }
            }
          "path": "claim-coupon/claim-coupon",
          "style": {
            "navigationBarTitleText": "商品兑换券领取",
            "enablePullDownRefresh": true,
            "componentPlaceholder": {
              "u-image": "view",
              "u-tag": "view",
              "u-loading": "view",
              "u-empty": "view",
              "u-modal": "view"
            }
          }
        },
        {
            "path" : "editOrderAddress/editOrderAddress",
            "style" :
            {
                "navigationBarTitleText" : "修改订单",
                "componentPlaceholder": {
                  "u-image": "view",
                  "u-row": "view",
                  "u-col": "view",
                  "u-input": "view",
                  "u-icon": "view",
                  "u-select": "view",
                  "u-notice-bar": "view"
                }
            }
          "path": "editOrderAddress/editOrderAddress",
          "style": {
            "navigationBarTitleText": "修改订单",
            "componentPlaceholder": {
              "u-image": "view",
              "u-row": "view",
              "u-col": "view",
              "u-input": "view",
              "u-icon": "view",
              "u-select": "view",
              "u-notice-bar": "view"
            }
          }
        },
        {
            "path" : "cardPack",
            "style" :
            {
                "navigationBarTitleText" : "优惠劵卡包",
                "componentPlaceholder": {
                  "u-navbar": "view",
                  "u-checkbox-group": "view",
                  "u-checkbox": "view",
                  "u-swipe-action": "view",
                  "u-image": "view",
                  "u-icon": "view",
                  "u-count-down": "view",
                  "u-modal": "view",
                  "u-popup": "view",
                  "u-empty": "view"
                }
            }
          "path": "cardPack",
          "style": {
            "navigationBarTitleText": "优惠劵卡包",
            "componentPlaceholder": {
              "u-navbar": "view",
              "u-checkbox-group": "view",
              "u-checkbox": "view",
              "u-swipe-action": "view",
              "u-image": "view",
              "u-icon": "view",
              "u-count-down": "view",
              "u-modal": "view",
              "u-popup": "view",
              "u-empty": "view"
            }
          }
        },
        {
            "path" : "constomize/constomize",
            "style" :
            {
                "navigationBarTitleText" : "定制信息"
            }
          "path": "constomize/constomize",
          "style": {
            "navigationBarTitleText": "定制信息"
          }
        }
      ]
    },
@@ -2293,43 +2296,40 @@
        }
      ]
    },
    {
      "root": "pages/storeClaim",
      "pages": [{
          "path" : "store-claim",
          "style" :
          {
              "navigationBarTitleText" : "优惠卷领取",
            "componentPlaceholder":{
                "u-card": "view",
                "u-navbar": "view",
                "u-tag": "view",
                "u-icon": "view",
                "u-button": "view",
                "u-empty": "view"
            }
          }
      },
      {
          "path" : "storePrizeClaim",
          "style" :
          {
              "navigationBarTitleText" : "领取抽奖机会",
            "componentPlaceholder":{
                "u-card": "view",
                "u-navbar": "view",
                "u-tag": "view",
                "u-icon": "view",
                "u-button": "view",
                "u-empty": "view",
                "u-image":"view"
            }
          }
      }]
    }
    {
      "root": "pages/storeClaim",
      "pages": [
        {
          "path": "store-claim",
          "style": {
            "navigationBarTitleText": "优惠卷领取",
            "componentPlaceholder": {
              "u-card": "view",
              "u-navbar": "view",
              "u-tag": "view",
              "u-icon": "view",
              "u-button": "view",
              "u-empty": "view"
            }
          }
        },
        {
          "path": "storePrizeClaim",
          "style": {
            "navigationBarTitleText": "领取抽奖机会",
            "componentPlaceholder": {
              "u-card": "view",
              "u-navbar": "view",
              "u-tag": "view",
              "u-icon": "view",
              "u-button": "view",
              "u-empty": "view",
              "u-image": "view"
            }
          }
        }
      ]
    }
  ],
  "globalStyle": {
    "navigationBarTextStyle": "black",
@@ -2395,4 +2395,4 @@
    //     "query": "" //启动参数,在页面的onLoad函数里面得到
    // }]
  }
}
}
pages/cusbar/cart/cartList.vue
@@ -181,7 +181,7 @@
      </view>
    </div>
    <u-toast ref="uToast" />
    <custom-tabbar bgColor="#ffffff" selected="buyCar"></custom-tabbar>
    <custom-tabbar bgColor="#ffffff" selected="buyCar" selectedTextColor="#25a885"></custom-tabbar>
  </view>
</template>
<script>
pages/cusbar/video/video.vue
@@ -200,7 +200,7 @@
      </view>
    </u-popup>
    <custom-tabbar bgColor="#ffffff" selected="video"></custom-tabbar>
    <custom-tabbar bgColor="#ffffff" selected="video" selectedTextColor="#25a885"></custom-tabbar>
  </view>
</template>
pages/kitchen/KitchenCover.vue
@@ -7,7 +7,8 @@
            <!-- åº•部留出导航栏高度的空间 -->
            <view class="safe-area-bottom"></view>
        </scroll-view>
        <custom-tabbar bgColor="rgba(0, 0, 0, 0.3)" selectedTextColor="#ffffff" selected="kitchen"></custom-tabbar>
        <custom-tabbar  bgColor="#ffffff" selectedTextColor="#25a885" selected="kitchen" ></custom-tabbar>
        <!-- <custom-tabbar  bgColor="#ffffff" selectedTextColor="#07c160" selected="kitchen" :fillBottom="true"></custom-tabbar> -->
    </view>
</template>
pages/kitchen/KitchenCustomize.vue
@@ -27,7 +27,7 @@
                        <view class="product-info">
                            <view class="product-remark">{{ item.remark }}</view>
                            <view class="product-bottom">
                                <view class="product-orign-price">
                                <view class="product-orign-price" v-if="item.orginPrice > item.price">
                                    <text class="symbol">原价¥</text>
                                    <text class="value">{{ item.orginPrice }}</text>
                                </view>
@@ -286,7 +286,6 @@
.product-top {
    flex: 1;
    margin-left: 20rpx;
    display: flex;
    // flex-direction: column;
    // justify-content: space-between;
pages/mine/help/customerService.vue
New file
@@ -0,0 +1,285 @@
<template>
    <view class="container">
        <view class="content-box">
            <!-- äºŒç»´ç éƒ¨åˆ† - æ˜¾è‘—放大 -->
            <view class="qr-card">
                <view class="qr-frame">
                    <image class="qr-code" :src="qrCodeImg" mode="aspectFit"></image>
                </view>
                <view class="qr-info">
                    <view class="wechat-id" @click="copyText('meiyikuang')">
                        <text>微信号:meiyikuang</text>
                    </view>
                </view>
            </view>
            <!-- ä¿¡æ¯åˆ—表部分 -->
            <view class="info-section">
                <view class="section-title">
                    <view class="line"></view>
                    <text>更多联系方式</text>
                </view>
                <view class="info-card">
                    <view class="info-item" @click="makePhoneCall('19980834650')">
                        <view class="icon-box hot">
                            <u-icon name="phone-fill" color="#fff" size="32"></u-icon>
                        </view>
                        <view class="item-content">
                            <text class="label">客服热线 1</text>
                            <text class="value phone">19980834650</text>
                        </view>
                        <u-icon name="arrow-right" color="#ccc" size="28"></u-icon>
                    </view>
                    <view class="info-item" @click="makePhoneCall('13880719801')">
                        <view class="icon-box hot">
                            <u-icon name="phone-fill" color="#fff" size="32"></u-icon>
                        </view>
                        <view class="item-content">
                            <text class="label">客服热线 2</text>
                            <text class="value phone">13880719801</text>
                        </view>
                        <u-icon name="arrow-right" color="#ccc" size="28"></u-icon>
                    </view>
                    <view class="info-item" @click="makePhoneCall('028-84472936')">
                        <view class="icon-box complain">
                            <u-icon name="error-circle-fill" color="#fff" size="32"></u-icon>
                        </view>
                        <view class="item-content">
                            <text class="label">投诉电话</text>
                            <text class="value phone">028-84472936</text>
                        </view>
                        <u-icon name="arrow-right" color="#ccc" size="28"></u-icon>
                    </view>
                    <view class="info-item" @click="makePhoneCall('13730617649')">
                        <view class="icon-box business">
                            <u-icon name="clock-fill" color="#fff" size="32"></u-icon>
                        </view>
                        <view class="item-content">
                            <text class="label">商务洽谈</text>
                            <text class="value phone">13730617649</text>
                        </view>
                        <u-icon name="arrow-right" color="#ccc" size="28"></u-icon>
                    </view>
                    <view class="info-item no-click">
                        <view class="icon-box time">
                            <u-icon name="clock-fill" color="#fff" size="32"></u-icon>
                        </view>
                        <view class="item-content">
                            <text class="label">工作时间</text>
                            <text class="value">9:00 - 22:00</text>
                        </view>
                    </view>
                </view>
            </view>
            <view class="footer-tip">
                æˆ‘们将竭诚为您服务
            </view>
        </view>
    </view>
</template>
<script>
import qrCodeImg from './qrcode.png';
export default {
    data() {
        return {
            qrCodeImg
        };
    },
    methods: {
        copyText(text) {
            uni.setClipboardData({
                data: text,
                success: () => {
                    uni.showToast({
                        title: '复制成功',
                        icon: 'success'
                    });
                }
            });
        },
        makePhoneCall(phoneNumber) {
            uni.makePhoneCall({
                phoneNumber: phoneNumber
            });
        }
    }
};
</script>
<style lang="scss" scoped>
.container {
    min-height: 100vh;
    background-color: #f8f8f8;
}
.content-box {
    padding: 30rpx;
}
// äºŒç»´ç å¡ç‰‡æ ·å¼
.qr-card {
    background-color: #fff;
    border-radius: 24rpx;
    padding: 40rpx;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 40rpx;
    box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.05);
    .qr-header {
        display: flex;
        align-items: center;
        margin-bottom: 30rpx;
        .title {
            font-size: 34rpx;
            font-weight: bold;
            color: #333;
            margin-left: 12rpx;
        }
    }
    .qr-frame {
        position: relative;
        padding: 20rpx;
        background-color: #fff;
        margin-bottom: 30rpx;
        .qr-code {
            width: 700rpx; // æ”¾å¤§äºŒç»´ç 
            height: 700rpx;
            background-color: #fafafa;
            display: block;
        }
    }
    .qr-info {
        display: flex;
        flex-direction: column;
        align-items: center;
        .wechat-id {
            display: flex;
            align-items: center;
            background-color: #f0fdf4;
            padding: 12rpx 30rpx;
            border-radius: 100rpx;
            margin-bottom: 16rpx;
            border: 1rpx solid #dcfce7;
            text {
                font-size: 28rpx;
                color: #07c160;
                font-weight: 500;
                margin-right: 8rpx;
            }
        }
        .qr-tip {
            font-size: 24rpx;
            color: #999;
        }
    }
}
// ä¿¡æ¯åˆ—表部分样式
.info-section {
    .section-title {
        display: flex;
        align-items: center;
        margin-bottom: 24rpx;
        padding-left: 10rpx;
        .line {
            width: 8rpx;
            height: 32rpx;
            background: linear-gradient(180deg, #07c160, #22c55e);
            border-radius: 4rpx;
            margin-right: 16rpx;
        }
        text {
            font-size: 30rpx;
            font-weight: bold;
            color: #333;
        }
    }
    .info-card {
        background-color: #fff;
        border-radius: 24rpx;
        padding: 0 30rpx;
        box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.05);
        .info-item {
            display: flex;
            align-items: center;
            padding: 36rpx 0;
            border-bottom: 1rpx solid #f5f5f5;
            &:last-child {
                border-bottom: none;
            }
            &.no-click {
                pointer-events: none;
            }
            .icon-box {
                width: 72rpx;
                height: 72rpx;
                border-radius: 20rpx;
                display: flex;
                align-items: center;
                justify-content: center;
                margin-right: 24rpx;
                &.hot { background: linear-gradient(135deg, #3b82f6, #2563eb); }
                &.complain { background: linear-gradient(135deg, #f59e0b, #d97706); }
                &.business { background: linear-gradient(135deg, #8b5cf6, #7c3aed); }
                &.time { background: linear-gradient(135deg, #64748b, #475569); }
            }
            .item-content {
                flex: 1;
                display: flex;
                flex-direction: column;
                .label {
                    font-size: 24rpx;
                    color: #999;
                    margin-bottom: 4rpx;
                }
                .value {
                    font-size: 30rpx;
                    color: #333;
                    font-weight: 500;
                    &.phone {
                        color: #333;
                    }
                }
            }
        }
    }
}
.footer-tip {
    text-align: center;
    font-size: 24rpx;
    color: #ccc;
    margin-top: 60rpx;
    padding-bottom: 40rpx;
}
</style>
pages/product/goods.vue
@@ -209,7 +209,7 @@
      <view class="page-bottom mp-iphonex-bottom" id="pageBottom">
        <view class="icon-btn">
        <view class="icon-btn-item" @click="navigateToStore(goodsDetail.storeId)">
            <u-icon size="34" class="red" name="home-fill"></u-icon>
            <image style="width: 34rpx; height: 34rpx;" src="/static/tabbar/home-new-s.png" mode="aspectFit"></image>
            <view class="red icon-btn-name">店铺</view>
          </view>
<!--          <view class="icon-btn-item" @click="linkMsgDetail()">
@@ -217,7 +217,7 @@
            <view class="icon-btn-name">客服</view>
          </view> -->
          <view class="icon-btn-item" @click="reluchToCart()">
            <u-icon size="34" name="storeping-cart"></u-icon>
            <image style="width: 34rpx; height: 34rpx;" src="/static/tabbar/cart-new.png" mode="aspectFit"></image>
            <view class="icon-btn-name">购物车</view>
            <view v-if="nums && nums > 0" class="num-icon">{{ nums }}</view>
          </view>
pages/tabbar/index/home.vue
@@ -247,7 +247,7 @@
        </uni-popup>
        <custom-tabbar bgColor="#333333" selected="index" selectedTextColor="#ffffff"></custom-tabbar>
        <custom-tabbar bgColor="rgba(255, 255, 255, 0.9)" selected="index" selectedTextColor="#25a885"></custom-tabbar>
        <ActivityPopup :show="activityPopup.show" :activityTitle="activityPopup.title"
            :activityDesc="activityPopup.desc" :activityImage="activityPopup.image" :endTime="activityPopup.endTime"
pages/tabbar/user/my copy.vue
New file
@@ -0,0 +1,749 @@
<template>
  <view class="user">
    <!-- ä¸ªäººä¿¡æ¯ -->
    <view class="status_bar">
      <!-- è¿™é‡Œæ˜¯çŠ¶æ€æ  -->
    </view>
    <view class="header"  @click="userDetail" :style="{ backgroundImage: `url(${base64image2.userInfoBg})` }">
      <view class="head-1">
        <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>
      </view>
      <view class="head-2" v-else>
        <view class="user-name">登录/注册</view>
      </view>
      <u-icon style="display: flex;align-items: flex-start;" name="arrow-right"></u-icon>
    </view>
    <!-- <button  type="default" @click="goTOSuccess">立即查看</button> -->
    <view class="member-gradient-bg" v-if="prizeActivity.enableStatus === 'ON'"
  :style="{ backgroundImage: `url(${base64image.prizeActivityBg})` }"
  >
    <view class="member-gradient-bg" @click="gotoPrizeActivity" >
      <!-- <view class="activity-content">
        <view class="activity-icon">
          <view class="floating-btn-content">
            <text class="floating-btn-icon">🎁</text>
          </view>
        </view>
        <view class="activity-info">
          <p class="activity-name">{{ prizeActivity.activityName }}</p>
          <p class="activity-desc">{{ prizeActivity.activityDes }}</p>
          <p class="activity-desc">{{ formatDate(prizeActivity.beginTime) }} - {{ formatDate(prizeActivity.endTime)}}</p>
        </view>
        <view class="activity-enter">
          <text class="enter-text">立即参与</text>
          <u-icon name="arrow-right"></u-icon>
        </view>
      </view> -->
    </view>
    </view>
    <!-- ç§¯åˆ†ï¼Œä¼˜æƒ åˆ¸ï¼Œå…³æ³¨ï¼Œ -->
    <div class="pointBox box">
      <u-row text-align="center" gutter="16" class="point">
        <u-col text-align="center" span="4" @click="navigateTo('/pages/mine/deposit/operation')">
          <view>余额</view>
          <view class="money">{{ walletNum | unitPrice }}</view>
        </u-col>
        <u-col text-align="center" span="4" @click="navigateTo('/pages/cart/coupon/myCoupon')">
          <view>优惠券</view>
          <view>{{ couponNum || 0 }}</view>
        </u-col>
        <u-col text-align="center" span="4" @click="navigateTo('/pages/mine/myTracks')">
          <view>足迹</view>
          <view>{{ footNum || 0 }}</view>
        </u-col>
      </u-row>
      <!-- æˆ‘的订单,代付款 -->
      <view class="order">
        <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=1')">
          <div class="bag bag2">
            <u-icon name="bag-fill" size="35" color="#fff"></u-icon>
          </div>
          <view>待付款</view>
        </view>
        <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=3')">
          <div class="bag bag3">
            <u-icon name="car-fill" size="35" color="#fff"></u-icon>
          </div>
          <view>待收货</view>
        </view>
        <view class="order-item" @click="navigateTo('/pages/order/evaluate/myEvaluate')">
          <div class="bag bag4">
            <u-icon name="star-fill" size="35" color="#fff"></u-icon>
          </div>
          <view>待评价</view>
        </view>
        <view class="order-item" @click="navigateTo('/pages/order/afterSales/afterSales')">
          <div class="bag bag5">
            <u-icon name="server-fill" size="35" color="#fff"></u-icon>
          </div>
          <view>售后</view>
        </view>
        <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=0')">
          <div class="bag bag1">
            <u-icon name="order" size="35" color="#fff"></u-icon>
          </div>
          <view>我的订单</view>
        </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>
    <!-- å¸¸ç”¨å·¥å…· -->
    <view class="pointBox box" style="margin-top: 20rpx;">
        <tool />
    </view>
    <!-- æ’‘起下方 -->
    <view style="height:64px;">
    </view>
  <custom-tabbar bgColor="#ffffff" selected="my"></custom-tabbar>
  </view>
</template>
<script>
import '@/pages/subComponents/uview-components/uview-ui';
import tool from "@/pages/tabbar/user/utils/tool.vue";
import { getSTSToken } from "@/api/common.js";
import { getCouponsNum, getFootprintNum,bindMemberAndStore } from "@/api/members.js";
import { getUserWallet } from "@/api/members";
import configs from '@/config/config'
import storage from '@/utils/storage.js'
import { getSessionId, userAction } from "@/api/userAction.js";
import {getONPrizeActivity} from "@/api/prize-activity";
import UIcon from "../../subComponents/uview-components/uview-ui/components/u-icon/u-icon.vue";
import base64image from '@/static/mine/base64image.js';
import base64image2 from '@/static/mine/base64image2.js';
export default {
  components: {
    UIcon,
    tool
  },
  data() {
    return {
       base64image,
       base64image2,
      prizeActivity: {},
      endpoint: '',
      configs,
      userImage:configs.defaultUserPhoto,
      coverTransform: "translateY(0px)",
      coverTransition: "0s",
      moving: false,
      userInfo: {},
      couponNum: "",
      footNum: "",
      walletNum: "",
      pageSessionNo:"",
      actionParam:{
            sessionId:'',
            actionType:"PAGE",
            joinType:"SELF",
            pageCode:"TBA_BAR_MY",
            pageParams:"{}",
            pageStatus:"JOIN",
            pageType:"DETAIL"
        }
    };
  },
  onLoad(option) {
    this.actionParam.pageParams = JSON.stringify(option)
    console.log('-----------分享出的数据---------->', option)
    let shareStoreId = null;
    let shareTime = null;
    // æ£€æŸ¥æ˜¯å¦å­˜åœ¨q参数
    if (option.q) {
      // åŒé‡è§£ç ï¼šå¾®ä¿¡å¯¹URL进行了两次编码
      const decodedUrl = decodeURIComponent(decodeURIComponent(option.q));
      console.log('原始URL:', decodedUrl);
      // è§£æžURL中的查询参数
      const params = this.parseUrlParams(decodedUrl);
      shareStoreId = params.shareStoreId;
      try {
        // å°†æ•°æ®å­˜å‚¨åˆ°æœ¬åœ°ç¼“å­˜
        uni.setStorageSync('shareStoreId', shareStoreId);
        //创建一个扫码的时间
        // èŽ·å–å½“å‰æ—¶é—´å¹¶æ ¼å¼åŒ–ä¸º yyyy-MM-dd HH:mm:ss
        const now = new Date();
        const year = now.getFullYear();
        const month = String(now.getMonth() + 1).padStart(2, '0'); // æœˆä»½ä»Ž0开始,需要+1
        const day = String(now.getDate()).padStart(2, '0');
        const hours = String(now.getHours()).padStart(2, '0');
        const minutes = String(now.getMinutes()).padStart(2, '0');
        const seconds = String(now.getSeconds()).padStart(2, '0');
        shareTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
        uni.setStorageSync('shareTime', shareTime);
        console.log('数据存储成功');
      } catch (e) {
        console.error('存储失败:', e);
      }
    }
    this.initCOS()
    },
  onUnload() {
    let    param = Object.assign({}, this.actionParam);
    if (this.sendOnShow)return
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  onHide() {
    this.startHidenTime = Date.now()
    let    param =Object.assign({}, this.actionParam);
    this.sendOnShow = true;
    param.pageStatus = "LEAVE"
    userAction(param)
  },
  // onLoad(options) {
    //
    //   this.initCOS()
  // },
  onShow() {
    this.getONPrizeActivity();
      getSessionId().then(res=>{
        this.pageSessionNo = res.data.data
        this.actionParam.sessionId = res.data.data
        if(this.pageSessionNo){
        let    param = Object.assign({}, this.actionParam);
            param.sessionId = this.pageSessionNo
            userAction(param)
        }
      })
    this.userInfo = this.$options.filters.isLogin() || {};
    if (this.$options.filters.isLogin("auth")) {
      this.getUserOrderNum();
    } else {
      this.walletNum = 0;
      this.couponNum = 0;
      this.footNum = 0;
    }
    let shareStoreId = uni.getStorageSync('shareStoreId');
    let shareTime = uni.getStorageSync('shareTime');
    console.log('从缓存读取参数:', { shareStoreId, shareTime });
    if (shareStoreId && shareTime) {
      console.log('检测到有效参数,调用后端接口');
      this.bindMemberAndStore(shareStoreId, shareTime);
    } else {
      console.log('无有效参数,执行正常逻辑');
    }
  },
  onPullDownRefresh() {
    this.getUserOrderNum();
    this.userInfo = this.$options.filters.isLogin();
    this.getONPrizeActivity(); // ä¸‹æ‹‰åˆ·æ–°åŒæ­¥æœ€æ–°æ´»åŠ¨çŠ¶æ€
  },
  // #ifndef MP
  onNavigationBarButtonTap(e) {
    const index = e.index;
    if (index === 0) {
      this.navigateTo("/pages/mine/set/setUp");
    }
  },
  // #endif
  mounted() { },
  methods: {
    formatDate(isoTime) {
      if (!isoTime) return '';
      const date = new Date(isoTime);
      const year = date.getFullYear();
      const month = String(date.getMonth() + 1).padStart(2, '0');
      const day = String(date.getDate()).padStart(2, '0');
      return `${year}å¹´${month}月${day}日`; // è½¬æ¢ä¸ºä¸­æ–‡æ ¼å¼
    },
    getONPrizeActivity(){
      getONPrizeActivity().then(res =>{
        if(res.statusCode=== 200){
          //后端没查到开启的抽奖活动 res.data.data.id值为null
          this.prizeActivity = res.data.data; // å­˜å‚¨å®Œæ•´æ´»åŠ¨æ•°æ®
          if (this.prizeActivity.endTime) {
          }else {
            this.prizeActivity = {}; // æ— æ´»åŠ¨æ—¶æ¸…ç©º
          }
        }
      })
    },
    gotoPrizeActivity(){
      uni.navigateTo({
        url:'/pages/prize/PrizeDetail/PrizeDetail?id=' + this.prizeActivity.id,
      });
    },
      // è§£æžURL参数
      parseUrlParams(url) {
          const params = {};
          // å¤„理可能存在的hash(如果有的话)
          const cleanUrl = url.split('#')[0];
          const queryStr = cleanUrl.split('?')[1] || '';
          queryStr.split('&').forEach(pair => {
              const [key, value] = pair.split('=');
              if (key) {
                  // å¦‚果值存在,则解码,否则设为空字符串
                  params[key] = value ? decodeURIComponent(value) : '';
              }
          });
          return params;
      },
    async bindMemberAndStore(shareStoreId, shareTime){
      let form ={
        shareStoreId: shareStoreId,
        shareTime: shareTime
      }
      // let form ={
      //               shareStoreId: "1376433565247471616",
      //               shareTime: "2025-09-26 16:18:00"
      // }
      try {
        const res = await bindMemberAndStore(form);
        if(res.statusCode === 200){
          //清除缓存
          uni.removeStorageSync('shareStoreId');
          uni.removeStorageSync('shareTime');
        }
      }
      catch(error) {
        console.error('出错:', error);
      };
    },
      // goTOSuccess(){
      //          uni.redirectTo({
      //             url:"/pages/cart/payment/success?paymentMethod=WECHAT" +
      //                      "&payPrice=" +
      //                      10,
      //                  });
      // },
      // åˆå§‹åŒ–腾讯云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
     */
    navigateTo(url) {
      uni.navigateTo({
        url,
      });
    },
    userDetail() {
      this.userInfo.id
        ? this.navigateTo("/pages/mine/set/personMsg")
        : this.$options.filters.navigateToLogin();;
    },
    async getUserOrderNum() {
      uni.stopPullDownRefresh();
      Promise.all([
        getCouponsNum(), //优惠券
        getFootprintNum(), //浏览数量
        getUserWallet(), //预存款
      ]).then((res) => {
        this.couponNum = res[0].data.result;
        this.footNum = res[1].data.result;
        this.walletNum = res[2].data.result.memberWallet;
      });
    },
  },
};
</script>
<style lang="scss" scoped>
    @import url("/pages/subComponents/static/bgStyle.css");
html,
body {
  overflow: auto;
}
  .floating-btn-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1;
    position: relative;
  }
  .floating-btn-icon {
    font-size: 75rpx;
    color: white;
    filter: drop-shadow(0 2rpx 4rpx rgba(0, 0, 0, 0.2));
    margin-bottom: 5rpx;
  }
  .floating-btn-text {
    font-size: 20rpx;
    color: white;
    z-index: 1;
    position: relative;
    text-shadow: 0 1rpx 3rpx rgba(0, 0, 0, 0.2);
    white-space: nowrap;
  }
.member-gradient-bg {
    width: 98%;
    height: 250rpx;
    margin: 1% 1%;
     border-radius: 24rpx;
      box-shadow: 0 8rpx 30rpx rgba(255, 82, 82, 0.3);
      transition: all 0.3s ease;
          background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
      &:active {
        transform: scale(0.98);
      }
  cursor: pointer; // å¢žåŠ ç‚¹å‡»æŒ‡é’ˆæ ·å¼
  overflow: hidden; // é˜²æ­¢å†…容溢出
  .activity-content {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0 40rpx;
    box-sizing: border-box;
  }
  // æ´»åŠ¨å›¾æ ‡
  .activity-icon {
    width: 130rpx;
    height: 130rpx;
    margin-right: 24rpx;
    border-radius: 16rpx;
    overflow: hidden;
    image {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
  }
  // æ´»åŠ¨ä¿¡æ¯åŒºåŸŸ
  .activity-info {
    flex: 1;
    .activity-name {
      font-size: 32rpx;
      font-weight: bold;
      color: #fff;
      margin: 0 0 8rpx 0;
      text-shadow: 0 2rpx 4rpx rgba(0,0,0,0.1);
    }
    .activity-desc {
      font-size: 22rpx;
      color: rgba(255,255,255,0.9);
      margin: 0;
    }
  }
  // å€’计时样式
  .activity-countdown {
    display: flex;
    align-items: center;
    margin-top: 12rpx;
    .countdown-label {
      font-size: 20rpx;
      color: rgba(255,255,255,0.8);
      margin-right: 8rpx;
    }
    .countdown-box {
      display: flex;
      align-items: center;
    }
    .countdown-item {
      display: inline-block;
      width: 36rpx;
      height: 36rpx;
      line-height: 36rpx;
      background: rgba(255,255,255,0.3);
      border-radius: 8rpx;
      color: #fff;
      font-size: 20rpx;
      text-align: center;
      margin: 0 4rpx;
    }
    .countdown-sep {
      color: #fff;
      font-size: 22rpx;
      margin: 0 4rpx;
    }
  }
  // ç«‹å³å‚与入口
  .activity-enter {
    display: flex;
    align-items: center;
    .enter-text {
      font-size: 24rpx;
      color: #fff;
      margin-right: 8rpx;
      font-weight: 500;
    }
  }
}
/* å†…容区域 */
.member-content {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  padding: 0 40rpx;
  box-sizing: border-box;
}
/* ä¼šå‘˜ä¿¡æ¯ */
.vip-info {
  flex: 1;
  .vip-level {
    font-size: 40rpx;
    font-weight: bold;
    color: #FFFFFF;
    margin: 0;
    line-height: 1;
    text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
  }
  .vip-validity {
    font-size: 26rpx;
    color: rgba(255, 255, 255, 0.9);
    margin: 10rpx 0 0 0;
  }
}
/* ä¼šå‘˜å›¾æ ‡ */
.vip-icon {
  width: 100rpx;
  height: 100rpx;
  margin-right: 30rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
}
.vip-icon image {
  width: 60rpx;
  height: 60rpx;
}
/* ç‰¹æƒæ ‡è¯† */
.vip-badge {
  padding: 8rpx 20rpx;
  background-color: rgba(255, 215, 0, 0.9);
  border-radius: 30rpx;
  box-shadow: 0 3rpx 6rpx rgba(0, 0, 0, 0.1);
}
.badge-text {
  font-size: 24rpx;
  color: #E63946;
  font-weight: 600;
}
.money {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.user {
    background: #e7e7e7;
  .header {
    max-width: 100%;
    padding: calc(50rpx + var(--status-bar-height)) 30rpx 0 6%;
    height: calc(360rpx);
    background-size: cover;
    border-bottom-left-radius: 30rpx;
    border-bottom-right-radius: 30rpx;
    background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
    color: #ffffff;
    display: flex;
    justify-content: space-between;
    .head-1 {
      text-align: center;
      width: 152rpx;
      position: relative;
      display: flex;
      align-items: center;
      image {
        width: 152rpx;
        height: 144rpx;
        border-radius: 50%;
        margin-bottom: 30rpx;
        border: 3px solid #fff;
      }
      .edti-head {
        position: absolute;
        width: 40rpx;
        height: 40rpx;
        border-radius: 50%;
        background-color: rgba(255, 255, 255, 0.3);
        top: 100rpx;
        right: 0;
        image {
          width: 100%;
          height: 100%;
        }
      }
    }
    .head-2 {
      flex: 1;
      margin-left: 30rpx;
      margin-top: 100rpx;
      line-height: 1;
    }
    /deep/ .u-icon,
    .u-icon {
      margin-top: 106rpx;
    }
  }
  .point {
    text-align: center;
    height: 160rpx;
    font-size: $font-sm;
    // #ifdef MP-WEIXIN
    padding: 24rpx;
    // #endif
    .u-col {
      view {
        color: $u-main-color;
        font-size: 28rpx;
      }
      view:last-child {
        margin-top: 8rpx;
        color: $main-color;
        font-size: $font-lg;
      }
    }
  }
  .order {
    height: 140rpx;
    text-align: center;
    font-size: $font-sm;
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 0 3%;
    color: #666;
    background: #fff;
    border-radius: 20rpx;
    box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
    margin: 0 20rpx;
    .order-item {
      position: relative;
      line-height: 2em;
      width: 96rpx;
      :first-child {
        font-size: 48rpx;
        margin-bottom: 12rpx;
        color: #333;
      }
    }
  }
}
.box {
    width: 95%;
    margin: auto;
    background: #fff;
    border-radius: 20rpx;
    box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
}
.user-name {
  font-size: 34rpx;
}
.bag {
  width: 56rpx;
  height: 56rpx;
  border-radius: 50%;
  margin: 0 auto;
}
.bag1 {
  background: #ff4a48;
}
.bag2 {
  background: #ff992f;
}
.bag3 {
  background: #009ee0;
}
.bag4 {
  background: #00d5d5;
}
.bag5 {
  background: #28ccb0;
}
</style>
pages/tabbar/user/my.vue
@@ -20,68 +20,67 @@
        </view>
        <u-icon style="display: flex;align-items: flex-start;" name="arrow-right"></u-icon>
      </view>
      <!-- ç§¯åˆ†ï¼Œä¼˜æƒ åˆ¸ï¼Œå…³æ³¨ï¼Œ -->
      <div class="pointBox1">
        <view class="point">
          <view class="point-col" @click="navigateTo('/pages/cart/coupon/myCoupon')">
            <view class="point-item">
              <text class="label">优惠券</text>
              <text class="value">{{ couponNum || 0 }}</text>
              <text class="label">å¼ </text>
            </view>
          </view>
          <view class="point-col" @click="navigateTo('/pages/mine/deposit/operation')">
            <view class="point-item">
              <text class="label">余额</text>
              <text class="value">{{ walletNum | unitPrice }}</text>
            </view>
          </view>
        </view>
        <!-- æˆ‘的订单,代付款 -->
        <view class="order">
          <view class="order-header" @click="navigateTo('/pages/order/myOrder?status=0')">
            <view class="left">我的订单</view>
            <view class="right">
              <text>全部订单</text>
              <u-icon name="arrow-right" size="24" color="#999"></u-icon>
            </view>
          </view>
          <view class="order-content">
            <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=1')">
              <view class="icon-box">
                <image src="/static/tool/待付款.png" mode="aspectFit"></image>
              </view>
              <view>待付款</view>
            </view>
            <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=2')">
              <view class="icon-box">
                <image src="/static/tool/待发货.png" mode="aspectFit"></image>
              </view>
              <view>待发货</view>
            </view>
            <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=3')">
              <view class="icon-box">
                <image src="/static/tool/待收货.png" mode="aspectFit"></image>
              </view>
              <view>待收货</view>
            </view>
            <view class="order-item" @click="navigateTo('/pages/order/evaluate/myEvaluate')">
              <view class="icon-box">
                <image src="/static/tool/评价中心.png" mode="aspectFit"></image>
              </view>
              <view>待评价</view>
            </view>
            <view class="order-item" @click="navigateTo('/pages/order/afterSales/afterSales')">
              <view class="icon-box">
                <image src="/static/tool/我的订单-退货_售后.png" mode="aspectFit"></image>
              </view>
              <view>售后</view>
            </view>
          </view>
        </view>
      </div>
    </view>
    <!-- ç§¯åˆ†ï¼Œä¼˜æƒ åˆ¸ï¼Œå…³æ³¨ï¼Œ -->
    <div class="pointBox1">
      <view class="point">
        <view class="point-col" @click="navigateTo('/pages/cart/coupon/myCoupon')">
          <view class="point-item">
            <text class="label">优惠券</text>
            <text class="value">{{ couponNum || 0 }}</text>
            <text class="label">å¼ </text>
          </view>
        </view>
        <view class="point-col" @click="navigateTo('/pages/mine/deposit/operation')">
          <view class="point-item">
            <text class="label">余额</text>
            <text class="value">{{ walletNum | unitPrice }}</text>
          </view>
        </view>
      </view>
      <!-- æˆ‘的订单,代付款 -->
      <view class="order">
        <view class="order-header" @click="navigateTo('/pages/order/myOrder?status=0')">
          <view class="left">我的订单</view>
          <view class="right">
            <text>全部订单</text>
            <u-icon name="arrow-right" size="24" color="#999"></u-icon>
          </view>
        </view>
        <view class="order-content">
          <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=1')">
            <view class="icon-box">
              <image src="/static/tool/unpaid.png" mode="aspectFit"></image>
            </view>
            <view>待付款</view>
          </view>
          <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=2')">
            <view class="icon-box">
              <image src="/static/tool/unshipped.png" mode="aspectFit"></image>
            </view>
            <view>待发货</view>
          </view>
          <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=3')">
            <view class="icon-box">
              <image src="/static/tool/unreceived.png" mode="aspectFit"></image>
            </view>
            <view>待收货</view>
          </view>
          <view class="order-item" @click="navigateTo('/pages/order/evaluate/myEvaluate')">
            <view class="icon-box">
              <image src="/static/tool/comment.png" mode="aspectFit"></image>
            </view>
            <view>待评价</view>
          </view>
          <view class="order-item" @click="navigateTo('/pages/order/afterSales/afterSales')">
            <view class="icon-box">
              <image src="/static/tool/refund.png" mode="aspectFit"></image>
            </view>
            <view>售后</view>
          </view>
        </view>
      </view>
    </div>
    <view class="member-gradient-bg" v-if="prizeActivity.enableStatus === 'ON'"
      :style="{ backgroundImage: `url(${base64image.prizeActivityBg})` }">
      <view class="member-gradient-bg" @click="gotoPrizeActivity">
@@ -117,11 +116,7 @@
    <view class="pointBox box" style="margin-top: 20rpx;">
      <tool />
    </view>
    <!-- æ’‘起下方 -->
    <view style="height:64px;">
    </view>
    <custom-tabbar bgColor="#ffffff" selected="my"></custom-tabbar>
    <custom-tabbar bgColor="#ffffff" selected="my" selectedTextColor="#25a885"></custom-tabbar>
  </view>
</template>
@@ -151,12 +146,8 @@
      endpoint: '',
      configs,
      userImage: configs.defaultUserPhoto,
      coverTransform: "translateY(0px)",
      coverTransition: "0s",
      moving: false,
      userInfo: {},
      couponNum: "",
      footNum: "",
      walletNum: "",
      pageSessionNo: "",
      actionParam: {
@@ -241,7 +232,6 @@
    } else {
      this.walletNum = 0;
      this.couponNum = 0;
      this.footNum = 0;
    }
    let shareStoreId = uni.getStorageSync('shareStoreId');
@@ -270,14 +260,6 @@
  mounted() { },
  methods: {
    formatDate(isoTime) {
      if (!isoTime) return '';
      const date = new Date(isoTime);
      const year = date.getFullYear();
      const month = String(date.getMonth() + 1).padStart(2, '0');
      const day = String(date.getDate()).padStart(2, '0');
      return `${year}å¹´${month}月${day}日`; // è½¬æ¢ä¸ºä¸­æ–‡æ ¼å¼
    },
    getONPrizeActivity() {
      getONPrizeActivity().then(res => {
        if (res.statusCode === 200) {
@@ -376,7 +358,6 @@
        getUserWallet(), //预存款
      ]).then((res) => {
        this.couponNum = res[0].data.result;
        this.footNum = res[1].data.result;
        this.walletNum = res[2].data.result.memberWallet;
      });
    },
@@ -597,8 +578,8 @@
}
.user {
  background: #e7e7e7;
  background: #f5f5f5;
  height: 100vh;
  .header-wrapper {
    background-size: 100% auto;
    background-repeat: no-repeat;
@@ -606,6 +587,7 @@
  }
  .header {
    min-height: 360rpx;
    max-width: 100%;
    padding: 100rpx 30rpx 0 5%;
    display: flex;
@@ -778,7 +760,7 @@
  background: #f5f5f5;
  border-radius: 40rpx 40rpx 0 0;
  box-shadow: 0 -4rpx 24rpx 0 rgba(0, 0, 0, 0.05);
  margin-top: 40rpx;
  margin-top: -40rpx;
}
.box {
pages/tabbar/user/utils/tool.vue
@@ -5,19 +5,22 @@
            <view class="paddingBox">
                <view class="interact-container">
                    <view class="interact-item" @click="navigateTo('/pages/mine/help/customerService')">
                        <image src="/static/tool/service.png" mode=""></image>
                        <view>联系客服</view>
                    </view>
                    <view class="interact-item" @click="navigateTo('/pages/mine/set/setUp')">
                        <image src="/static/tool/设置.png" mode=""></image>
                        <image src="/static/tool/settings.png" mode=""></image>
                        <view>设置</view>
                    </view>
                    <view class="interact-item" @click="navigateTo('/pages/mine/address/addressManage')">
                        <image src="/static/tool/收货地址.png" mode=""></image>
                        <image src="/static/tool/address.png" mode=""></image>
                        <view>收货地址</view>
                    </view>
                    <view class="interact-item" @click="navigateTo('/pages/mine/myTracks')">
                        <image src="/static/tool/浏览记录.png" mode=""></image>
                        <image src="/static/tool/history.png" mode=""></image>
                        <view>浏览记录</view>
                    </view>
@@ -27,7 +30,7 @@
                    </view> -->
                    <view class="interact-item" @click="navigateTo('/pages/mine/point/myPoint')">
                        <image src="/static/tool/积分.png" mode=""></image>
                        <image src="/static/tool/points.png" mode=""></image>
                        <view>我的积分</view>
                    </view>
                    <!-- <view class="interact-item" @click="linkMsgDetail()">
@@ -124,12 +127,12 @@
                    <view class="interact-item" @click="navigateTo('/pages/passport/entry/seller/index')">
                        <image src="/static/tool/供应商入驻.png" mode=""></image>
                        <image src="/static/tool/supplier.png" mode=""></image>
                        <view>供应商入驻</view>
                    </view>
                    <view class="interact-item" @click="navigateTo('/pages/mine/set/editionIntro')">
                        <image src="/static/tool/关于我们.png" mode=""></image>
                        <image src="/static/tool/about.png" mode=""></image>
                        <view>关于我们</view>
                    </view>
@@ -211,6 +214,7 @@
        navigateTo(url) {
            const ignores = [
                '/pages/mine/set/setUp',
                '/pages/mine/help/customerService',
                '/pages/mine/set/editionIntro',
                '/pages/mine/set/feedBack',
                '/pages/goods-manager/goodsList/goodsList',
@@ -312,10 +316,22 @@
        text-align: center;
        .interact-item {
            font-size: $font-sm;
            font-size: 24rpx;
            width: 25%;
            height: 160rpx;
            padding: 30rpx;
            padding: 30rpx 10rpx;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;
            view {
                width: 100%;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }
        }
    }
}
static/tabbar/cart-s.png
Binary files differ
static/tabbar/cart.png
Binary files differ
static/tabbar/category-s.png
Binary files differ
static/tabbar/category.png
Binary files differ
static/tabbar/home-s.png
Binary files differ
static/tabbar/home.png
Binary files differ
static/tabbar/mine-s.png
Binary files differ
static/tabbar/mine.png
Binary files differ
static/tabbar/video-selected.png
Binary files differ
static/tabbar/video.png
Binary files differ
static/tabbar/video1-selected.png
Binary files differ
static/tabbar/video1.png
Binary files differ
static/tabbar/vip.png
Binary files differ
static/tool/¹©Ó¦ÉÌÈëפ.png
Binary files differ
static/tool/¹ØÓÚÎÒÃÇ.png
Binary files differ
static/tool/¿Í·þ.png
Binary files differ
static/tool/´ý¸¶¿î.png
Binary files differ
static/tool/´ý·¢»õ.png
Binary files differ
static/tool/´ýÊÕ»õ.png
Binary files differ
static/tool/ÎҵĶ©µ¥-ÍË»õ_ÊÛºó.png
Binary files differ
static/tool/ÊÕ»õµØÖ·.png
Binary files differ
static/tool/ä¯ÀÀ¼Ç¼.png
Binary files differ
static/tool/»ý·Ö.png
Binary files differ
static/tool/ÉèÖÃ.png
Binary files differ
static/tool/ÆÀ¼ÛÖÐÐÄ.png
Binary files differ