10个文件已修改
2个文件已添加
25个文件已删除
| | |
| | | <!-- 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'}" /> |
| | |
| | | }, |
| | | 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' |
| | | }, |
| | |
| | | // "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' |
| | | } |
| | |
| | | }, |
| | | created() { |
| | | console.log("åºé¨å®å
¨åºå", uni.getSystemInfoSync().safeAreaInsets); |
| | | this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom |
| | | if (!this.fillBottom) { |
| | | this.paddingBottom = uni.getSystemInfoSync().safeAreaInsets.bottom |
| | | } |
| | | }, |
| | | methods: { |
| | | switchTab(item) { |
| | |
| | | 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 { |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | "preloadRule": { |
| | | "pages/prize/PrizeDetail/PrizeDetail": { |
| | | "network": "all", |
| | | "packages": ["pages/prize"] |
| | | "packages": [ |
| | | "pages/prize" |
| | | ] |
| | | } |
| | | }, |
| | | "pages": [ |
| | |
| | | "componentPlaceholder": { |
| | | "u-icon": "view" |
| | | } |
| | | |
| | | // éèé¡¶é¨å¯¼èªæ |
| | | } |
| | | }, |
| | |
| | | "navigationBarTitleText": "" |
| | | } |
| | | } |
| | | |
| | | // { |
| | | // "path": "pages/tabbar/home/index", |
| | | // "style": { |
| | |
| | | // { |
| | | // // "path": "pages/tabbar/category/category", |
| | | // "path": "pages/commodity-square/commoditySquare", |
| | | |
| | | // "style": { |
| | | // "navigationBarTitleText": "åå广åº", |
| | | // "navigationStyle": "custom", // éèç³»ç»å¯¼èªæ |
| | |
| | | } |
| | | }, |
| | | { |
| | | "path": "help/customerService", |
| | | "style": { |
| | | "navigationBarTitleText": "è系客æ", |
| | | "componentPlaceholder":{ |
| | | "u-icon": "view" |
| | | } |
| | | |
| | | |
| | | } |
| | | }, |
| | | { |
| | | "path": "help/tips", |
| | | "style": { |
| | | "navigationBarTitleText": "", |
| | |
| | | "path": "home-page", |
| | | "style": { |
| | | "navigationBarTitleText": "TAç主页", |
| | | "componentPlaceholder": { |
| | | "u-icon": "view", |
| | | "u-loadmore": "view" |
| | | } |
| | | "componentPlaceholder": { |
| | | "u-icon": "view", |
| | | "u-loadmore": "view" |
| | | } |
| | | } |
| | | }, |
| | | { |
| | |
| | | "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" |
| | | } |
| | | } |
| | | }, |
| | | { |
| | |
| | | "navigationBarTitleText": "" |
| | | } |
| | | }, |
| | | |
| | | { |
| | | "path": "video-goods-detail-swiper", |
| | | "style": { |
| | |
| | | "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" |
| | | } |
| | | } |
| | | }, |
| | | { |
| | |
| | | }, |
| | | { |
| | | "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", |
| | |
| | | "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" |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | }, |
| | | { |
| | | "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": "å®å¶ä¿¡æ¯" |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "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", |
| | |
| | | // "query": "" //å¯å¨åæ°ï¼å¨é¡µé¢çonLoad彿°éé¢å¾å° |
| | | // }] |
| | | } |
| | | } |
| | | } |
| | |
| | | </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> |
| | |
| | | </view> |
| | | </u-popup> |
| | | |
| | | <custom-tabbar bgColor="#ffffff" selected="video"></custom-tabbar> |
| | | <custom-tabbar bgColor="#ffffff" selected="video" selectedTextColor="#25a885"></custom-tabbar> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | <!-- åºé¨çåºå¯¼èªæ é«åº¦çç©ºé´ --> |
| | | <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> |
| | | |
| | |
| | | <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> |
| | |
| | | |
| | | .product-top { |
| | | flex: 1; |
| | | margin-left: 20rpx; |
| | | display: flex; |
| | | // flex-direction: column; |
| | | // justify-content: space-between; |
| New file |
| | |
| | | <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> |
| | |
| | | <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()"> |
| | |
| | | <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> |
| | |
| | | </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" |
| New file |
| | |
| | | <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"></text> |
| | | </view> |
| | | <view>æçè§é¢</view> |
| | | </view> |
| | | <view class="order-item" @click="navigateTo('/pages/mine/myAttention')"> |
| | | <view> |
| | | <text class="iconfont"></text> |
| | | </view> |
| | | <view>æçå
³æ³¨</view> |
| | | </view> |
| | | <!-- <view class="order-item" @click="navigateTo('/pages/mine/myCollect/myCollect')"> |
| | | <view> |
| | | <text class="iconfont"></text> |
| | | </view> |
| | | <view>æ¶èå表</view> |
| | | </view --> |
| | | <view class="order-item" @click="navigateTo('/pages/mine/activity/myActivity')"> |
| | | <view> |
| | | <text class="iconfont"></text> |
| | | </view> |
| | | <view>æçæ´»å¨</view> |
| | | </view> |
| | | <!-- <view class="order-item" @click="navigateTo('/pages/mine/myTracks')"> |
| | | <view> |
| | | <text class="iconfont"></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> |
| | |
| | | </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"> |
| | |
| | | <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> |
| | |
| | | endpoint: '', |
| | | configs, |
| | | userImage: configs.defaultUserPhoto, |
| | | coverTransform: "translateY(0px)", |
| | | coverTransition: "0s", |
| | | moving: false, |
| | | userInfo: {}, |
| | | couponNum: "", |
| | | footNum: "", |
| | | walletNum: "", |
| | | pageSessionNo: "", |
| | | actionParam: { |
| | |
| | | } else { |
| | | this.walletNum = 0; |
| | | this.couponNum = 0; |
| | | this.footNum = 0; |
| | | } |
| | | |
| | | let shareStoreId = uni.getStorageSync('shareStoreId'); |
| | |
| | | |
| | | 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) { |
| | |
| | | getUserWallet(), //é¢å款 |
| | | ]).then((res) => { |
| | | this.couponNum = res[0].data.result; |
| | | this.footNum = res[1].data.result; |
| | | this.walletNum = res[2].data.result.memberWallet; |
| | | }); |
| | | }, |
| | |
| | | } |
| | | |
| | | .user { |
| | | background: #e7e7e7; |
| | | |
| | | background: #f5f5f5; |
| | | height: 100vh; |
| | | .header-wrapper { |
| | | background-size: 100% auto; |
| | | background-repeat: no-repeat; |
| | |
| | | } |
| | | |
| | | .header { |
| | | min-height: 360rpx; |
| | | max-width: 100%; |
| | | padding: 100rpx 30rpx 0 5%; |
| | | display: flex; |
| | |
| | | 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 { |
| | |
| | | |
| | | <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> |
| | | |
| | |
| | | </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()"> |
| | |
| | | |
| | | |
| | | <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> |
| | | |
| | |
| | | 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', |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |