style:新增懒加载机制
This commit is contained in:
@@ -15,6 +15,7 @@
|
|||||||
:src="order.pictureUrl || order.productImage || '/static/default-product.png'"
|
:src="order.pictureUrl || order.productImage || '/static/default-product.png'"
|
||||||
mode="aspectFill"
|
mode="aspectFill"
|
||||||
class="product-image"
|
class="product-image"
|
||||||
|
lazy-load="true"
|
||||||
></image>
|
></image>
|
||||||
<view class="product-info">
|
<view class="product-info">
|
||||||
<view class="product-name">{{ order.productName || order.deviceName || '风电者2026新款' }}</view>
|
<view class="product-name">{{ order.productName || order.deviceName || '风电者2026新款' }}</view>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="empty-state" v-if="!isLoading && (!positions || positions.length === 0)">
|
<view class="empty-state" v-if="!isLoading && (!positions || positions.length === 0)">
|
||||||
<image class="empty-icon" src="/static/scan-icon.png" mode="aspectFit" />
|
<image class="empty-icon" src="/static/scan-icon.png" mode="aspectFit" lazy-load="true" />
|
||||||
<text class="empty-text">{{ $t('home.noNearbyDevice') }}</text>
|
<text class="empty-text">{{ $t('home.noNearbyDevice') }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<view class="header-right">
|
<view class="header-right">
|
||||||
<!-- 支付方式标识(移到头部右侧) -->
|
<!-- 支付方式标识(移到头部右侧) -->
|
||||||
<view class="payment-badge wx-score" v-if="order.payWay == 'wx_score_pay'">
|
<view class="payment-badge wx-score" v-if="order.payWay == 'wx_score_pay'">
|
||||||
<image src="/static/images/wxpayflag.png" mode="aspectFit" class="badge-icon"></image>
|
<image src="/static/images/wxpayflag.png" mode="aspectFit" class="badge-icon" lazy-load="true"></image>
|
||||||
<view class="badge-text">
|
<view class="badge-text">
|
||||||
<text>{{ $t('order.wxPayScore') }}</text>
|
<text>{{ $t('order.wxPayScore') }}</text>
|
||||||
<text class="divider">|</text>
|
<text class="divider">|</text>
|
||||||
@@ -63,16 +63,16 @@
|
|||||||
<view class="order-footer">
|
<view class="order-footer">
|
||||||
<view class="footer-left">
|
<view class="footer-left">
|
||||||
<view v-if="isInUse" class="renting">
|
<view v-if="isInUse" class="renting">
|
||||||
<image src="/static/order_time.png" mode="aspectFit" class="icon-time"></image>
|
<image src="/static/order_time.png" mode="aspectFit" class="icon-time" lazy-load="true"></image>
|
||||||
{{ $t('order.renting') }}
|
{{ $t('order.renting') }}
|
||||||
</view>
|
</view>
|
||||||
<view v-else-if="isFinished" class="meta">
|
<view v-else-if="isFinished" class="meta">
|
||||||
<view class="meta-item">
|
<view class="meta-item">
|
||||||
<image src="/static/order_time.png" mode="aspectFit" class="icon-time"></image>
|
<image src="/static/order_time.png" mode="aspectFit" class="icon-time" lazy-load="true"></image>
|
||||||
{{ usedDurationText }}
|
{{ usedDurationText }}
|
||||||
</view>
|
</view>
|
||||||
<view class="meta-item">
|
<view class="meta-item">
|
||||||
<image src="/static/order_price.png" mode="aspectFit" class="icon-price"></image>
|
<image src="/static/order_price.png" mode="aspectFit" class="icon-price" lazy-load="true"></image>
|
||||||
{{ displayAmount }}
|
{{ displayAmount }}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
// export const URL = "https://my.gxfs123.com/api" //正式服务器-弃用
|
// export const URL = "https://my.gxfs123.com/api" //正式服务器-弃用
|
||||||
export const URL = "https://manager.fdzpower.com/api" //正式服务器
|
// export const URL = "https://manager.fdzpower.com/api" //正式服务器
|
||||||
// export const URL = "https://fansdev.gxfs123.com/api" //测试服务器
|
export const URL = "https://fansdev.gxfs123.com/api" //测试服务器
|
||||||
// export const URL = "http://192.168.5.123:8080" //本地调试
|
// export const URL = "http://192.168.5.123:8080" //本地调试
|
||||||
// export const URL = "http://127.0.0.1:8080" //本地调试
|
// export const URL = "http://127.0.0.1:8080" //本地调试
|
||||||
|
|
||||||
|
|||||||
+6
-7
@@ -162,7 +162,7 @@ export default {
|
|||||||
|
|
||||||
order: {
|
order: {
|
||||||
myOrders: 'My Orders',
|
myOrders: 'My Orders',
|
||||||
myDeviceOrders:'Customize Orders',
|
myDeviceOrders: 'Customize Orders',
|
||||||
noOrderRecord: 'No order records',
|
noOrderRecord: 'No order records',
|
||||||
getOrderListFailed: 'Failed to get order list',
|
getOrderListFailed: 'Failed to get order list',
|
||||||
confirmCancelContent: 'Are you sure to cancel this order?',
|
confirmCancelContent: 'Are you sure to cancel this order?',
|
||||||
@@ -170,6 +170,7 @@ export default {
|
|||||||
orderNo: 'Order No.',
|
orderNo: 'Order No.',
|
||||||
orderStatus: 'Order Status',
|
orderStatus: 'Order Status',
|
||||||
deviceNo: 'Device No.',
|
deviceNo: 'Device No.',
|
||||||
|
deviceName: 'Device Name',
|
||||||
rentLocation: 'Rent Location',
|
rentLocation: 'Rent Location',
|
||||||
rentTime: 'Rent Time',
|
rentTime: 'Rent Time',
|
||||||
returnTime: 'Return Time',
|
returnTime: 'Return Time',
|
||||||
@@ -182,8 +183,8 @@ export default {
|
|||||||
deposit: 'Deposit',
|
deposit: 'Deposit',
|
||||||
rentFee: 'Rent Fee',
|
rentFee: 'Rent Fee',
|
||||||
payNow: 'Pay Now',
|
payNow: 'Pay Now',
|
||||||
myCoupons:'Coupons',
|
myCoupons: 'Coupons',
|
||||||
myCards:'Member Cards',
|
myCards: 'Member Cards',
|
||||||
cancelOrder: 'Cancel Order',
|
cancelOrder: 'Cancel Order',
|
||||||
quickReturn: 'Quick Return',
|
quickReturn: 'Quick Return',
|
||||||
returnDevice: 'Return Device',
|
returnDevice: 'Return Device',
|
||||||
@@ -815,7 +816,7 @@ export default {
|
|||||||
useNow: 'Use Now',
|
useNow: 'Use Now',
|
||||||
usedStatus: 'Used',
|
usedStatus: 'Used',
|
||||||
expiredStatus: 'Expired',
|
expiredStatus: 'Expired',
|
||||||
refundedStatus:'Refunded',
|
refundedStatus: 'Refunded',
|
||||||
noAvailableCoupons: 'No available coupons',
|
noAvailableCoupons: 'No available coupons',
|
||||||
noUsedCoupons: 'No used coupons',
|
noUsedCoupons: 'No used coupons',
|
||||||
noExpiredCoupons: 'No expired coupons',
|
noExpiredCoupons: 'No expired coupons',
|
||||||
@@ -827,7 +828,7 @@ export default {
|
|||||||
|
|
||||||
goods: {
|
goods: {
|
||||||
title: 'Product Details',
|
title: 'Product Details',
|
||||||
goodsTitle:'Customize Details',
|
goodsTitle: 'Customize Details',
|
||||||
productName: 'FengDianZhe Shared Fan + Power Bank + Hand Warmer Series - Cherry Blossom Pink',
|
productName: 'FengDianZhe Shared Fan + Power Bank + Hand Warmer Series - Cherry Blossom Pink',
|
||||||
perUnit: '/pc',
|
perUnit: '/pc',
|
||||||
buyNow: 'Buy Now',
|
buyNow: 'Buy Now',
|
||||||
@@ -847,5 +848,3 @@ export default {
|
|||||||
processing: 'Processing...'
|
processing: 'Processing...'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -131,6 +131,7 @@ export default {
|
|||||||
scanToUse: 'Pindai untuk Menggunakan',
|
scanToUse: 'Pindai untuk Menggunakan',
|
||||||
deviceInfo: 'Informasi Perangkat',
|
deviceInfo: 'Informasi Perangkat',
|
||||||
deviceNo: 'Nomor Perangkat',
|
deviceNo: 'Nomor Perangkat',
|
||||||
|
deviceName: 'Nama perangkat',
|
||||||
location: 'Lokasi',
|
location: 'Lokasi',
|
||||||
businessHours: 'Jam Operasional',
|
businessHours: 'Jam Operasional',
|
||||||
pricing: 'Penagihan',
|
pricing: 'Penagihan',
|
||||||
@@ -846,4 +847,4 @@ export default {
|
|||||||
purchaseFailed: 'Pembelian gagal',
|
purchaseFailed: 'Pembelian gagal',
|
||||||
processing: 'Sedang memproses...'
|
processing: 'Sedang memproses...'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+6
-7
@@ -56,10 +56,10 @@ export default {
|
|||||||
release: '释放刷新',
|
release: '释放刷新',
|
||||||
noMore: '没有更多了',
|
noMore: '没有更多了',
|
||||||
functionDeveloping: '功能开发中',
|
functionDeveloping: '功能开发中',
|
||||||
saveImage:'保存到手机',
|
saveImage: '保存到手机',
|
||||||
saveSuccess:'保存成功',
|
saveSuccess: '保存成功',
|
||||||
saving:'保存中...',
|
saving: '保存中...',
|
||||||
saveFailed:'保存失败'
|
saveFailed: '保存失败'
|
||||||
},
|
},
|
||||||
|
|
||||||
nav: {
|
nav: {
|
||||||
@@ -169,6 +169,7 @@ export default {
|
|||||||
orderNo: '订单号',
|
orderNo: '订单号',
|
||||||
orderStatus: '订单状态',
|
orderStatus: '订单状态',
|
||||||
deviceNo: '设备号',
|
deviceNo: '设备号',
|
||||||
|
deviceName: '设备名称',
|
||||||
rentLocation: '租借地点',
|
rentLocation: '租借地点',
|
||||||
rentTime: '租借时间',
|
rentTime: '租借时间',
|
||||||
returnTime: '归还时间',
|
returnTime: '归还时间',
|
||||||
@@ -277,7 +278,7 @@ export default {
|
|||||||
deviceNoEjectFailed: '反馈提交失败,请稍后重试',
|
deviceNoEjectFailed: '反馈提交失败,请稍后重试',
|
||||||
returnProblemTip: '产品归还入仓后,订单仍未结束,请前往',
|
returnProblemTip: '产品归还入仓后,订单仍未结束,请前往',
|
||||||
contactStaff: '联系工作人员。',
|
contactStaff: '联系工作人员。',
|
||||||
returnLocationMap:'归还点地图',
|
returnLocationMap: '归还点地图',
|
||||||
},
|
},
|
||||||
|
|
||||||
user: {
|
user: {
|
||||||
@@ -846,5 +847,3 @@ export default {
|
|||||||
processing: '正在处理...'
|
processing: '正在处理...'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,17 +4,22 @@
|
|||||||
<view class="card device-info-card">
|
<view class="card device-info-card">
|
||||||
<view class="device-location">
|
<view class="device-location">
|
||||||
<view class="location-left">
|
<view class="location-left">
|
||||||
<image src="/static/device_location.png" mode="aspectFit" class="location-icon"></image>
|
<image src="/static/device_location.png" mode="aspectFit" class="location-icon" lazy-load="true"></image>
|
||||||
<text class="location-name">{{ deviceLocation }}</text>
|
<text class="location-name">{{ deviceLocation }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="device-status" :class="deviceStatus.class">
|
<view class="device-status" :class="deviceStatus.class">
|
||||||
<text class="status-text">{{ deviceStatus.text }}</text>
|
<text class="status-text">{{ deviceStatus.text }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="device-id">
|
||||||
|
<text class="id-label">{{ $t('order.deviceName') }}:</text>
|
||||||
|
<text class="id-value">{{ deviceInfo.name }}</text>
|
||||||
|
</view>
|
||||||
<view class="device-id">
|
<view class="device-id">
|
||||||
<text class="id-label">{{ $t('device.deviceNo') }}:</text>
|
<text class="id-label">{{ $t('device.deviceNo') }}:</text>
|
||||||
<text class="id-value">{{ deviceId }}</text>
|
<text class="id-value">{{ deviceId }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 计费规则 -->
|
<!-- 计费规则 -->
|
||||||
@@ -87,7 +92,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<!-- 微信支付分标识仅在微信小程序环境显示 -->
|
<!-- 微信支付分标识仅在微信小程序环境显示 -->
|
||||||
<view class="wechat-credit" v-if="isWechatMiniProgram">
|
<view class="wechat-credit" v-if="isWechatMiniProgram">
|
||||||
<image src="/static/images/wxpayflag.png" mode="aspectFit" class="wx-icon"></image>
|
<image src="/static/images/wxpayflag.png" mode="aspectFit" class="wx-icon" lazy-load="true"></image>
|
||||||
<text class="credit-text">{{ $t('device.wxPayScoreDesc') }}</text>
|
<text class="credit-text">{{ $t('device.wxPayScoreDesc') }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -772,6 +777,7 @@
|
|||||||
.device-id {
|
.device-id {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
margin-bottom: 5rpx;
|
||||||
|
|
||||||
.id-label {
|
.id-label {
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
|
|||||||
@@ -46,21 +46,21 @@
|
|||||||
|
|
||||||
<view class="action-btn secondary small btn-nearby" @click="goToBuy">
|
<view class="action-btn secondary small btn-nearby" @click="goToBuy">
|
||||||
<view class="icon-wrap">
|
<view class="icon-wrap">
|
||||||
<image src="/static/shop_icon.png" class="action-icon" mode="scaleToFill"></image>
|
<image src="/static/shop_icon.png" class="action-icon" mode="scaleToFill" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<text class="action-label">{{ $t('home.buyDevice') }}</text>
|
<text class="action-label">{{ $t('home.buyDevice') }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="action-btn primary btn-scan" @click="handleScan">
|
<view class="action-btn primary btn-scan" @click="handleScan">
|
||||||
<view class="icon-wrap">
|
<view class="icon-wrap">
|
||||||
<image class="action-icon" src="/static/scan-icon.png" mode="aspectFill" />
|
<image class="action-icon" src="/static/scan-icon.png" mode="aspectFill" lazy-load="true" />
|
||||||
</view>
|
</view>
|
||||||
<text class="primary-label">{{ $t('home.scanToUse') }}</text>
|
<text class="primary-label">{{ $t('home.scanToUse') }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="action-btn secondary small btn-my" @click="goMy">
|
<view class="action-btn secondary small btn-my" @click="goMy">
|
||||||
<view class="icon-wrap">
|
<view class="icon-wrap">
|
||||||
<image class="action-icon" src="/static/user.png" mode="aspectFit" />
|
<image class="action-icon" src="/static/user.png" mode="aspectFit" lazy-load="true" />
|
||||||
</view>
|
</view>
|
||||||
<text class="action-label">{{ $t('home.personalCenter') }}</text>
|
<text class="action-label">{{ $t('home.personalCenter') }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="header-right" v-if="orderInfo.orderStatus === 'in_used'">
|
<view class="header-right" v-if="orderInfo.orderStatus === 'in_used'">
|
||||||
<view class="device-no-eject-btn" @click="handleDeviceNoEject">
|
<view class="device-no-eject-btn" @click="handleDeviceNoEject">
|
||||||
<image src="/static/power_no_popout.png" class="device-no-eject-icon" mode="aspectFit"></image>
|
<image src="/static/power_no_popout.png" class="device-no-eject-icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="device-no-eject-text">{{ $t('order.deviceNoEject') }}</text>
|
<text class="device-no-eject-text">{{ $t('order.deviceNoEject') }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<!-- 计费规则图片 -->
|
<!-- 计费规则图片 -->
|
||||||
<view class="fee-rule-image">
|
<view class="fee-rule-image">
|
||||||
<image :src="getFeeRuleImageUrl()" mode="widthFix" class="rule-image"></image>
|
<image :src="getFeeRuleImageUrl()" mode="widthFix" class="rule-image" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
<view class="rent-item" v-if="isOrderCompleted() && orderInfo.discountTypeName">
|
<view class="rent-item" v-if="isOrderCompleted() && orderInfo.discountTypeName">
|
||||||
<view class="rent-label">{{ $t('order.usedPromotion') }}</view>
|
<view class="rent-label">{{ $t('order.usedPromotion') }}</view>
|
||||||
<view class="rent-value promotion-value">
|
<view class="rent-value promotion-value">
|
||||||
<image src="/static/promotion-icon.png" class="promotion-icon" mode="aspectFit"></image>
|
<image src="/static/promotion-icon.png" class="promotion-icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
{{ orderInfo.discountTypeName }}<text
|
{{ orderInfo.discountTypeName }}<text
|
||||||
v-if="orderInfo.discountAmount">{{'-¥'+orderInfo.discountAmount||''}}</text>
|
v-if="orderInfo.discountAmount">{{'-¥'+orderInfo.discountAmount||''}}</text>
|
||||||
</view>
|
</view>
|
||||||
@@ -125,11 +125,11 @@
|
|||||||
<!-- 支付成功状态 -->
|
<!-- 支付成功状态 -->
|
||||||
<template v-if="orderInfo.orderStatus === 'payment_successful'">
|
<template v-if="orderInfo.orderStatus === 'payment_successful'">
|
||||||
<view class="bottom-icon-btn" @click="contactService">
|
<view class="bottom-icon-btn" @click="contactService">
|
||||||
<image src="/static/customer-service.png" class="icon" mode="aspectFit"></image>
|
<image src="/static/customer-service.png" class="icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text>{{ $t('user.customerService') }}</text>
|
<text>{{ $t('user.customerService') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom-icon-btn" @click="handleDeviceNoEject">
|
<view class="bottom-icon-btn" @click="handleDeviceNoEject">
|
||||||
<image src="/static/complaint.png" class="icon" mode="aspectFit"></image>
|
<image src="/static/complaint.png" class="icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text>{{ $t('order.deviceNoEject') }}</text>
|
<text>{{ $t('order.deviceNoEject') }}</text>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
<!-- 使用中状态 -->
|
<!-- 使用中状态 -->
|
||||||
<template v-if="orderInfo.orderStatus === 'in_used'">
|
<template v-if="orderInfo.orderStatus === 'in_used'">
|
||||||
<view class="bottom-icon-btn" @click="contactService">
|
<view class="bottom-icon-btn" @click="contactService">
|
||||||
<image src="/static/customer-service.png" class="icon" mode="aspectFit"></image>
|
<image src="/static/customer-service.png" class="icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text>{{ $t('user.customerService') }}</text>
|
<text>{{ $t('user.customerService') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<!-- 只有支持快递归还时才显示倒计时和快递归还按钮 -->
|
<!-- 只有支持快递归还时才显示倒计时和快递归还按钮 -->
|
||||||
@@ -166,11 +166,11 @@
|
|||||||
<template v-if="isOrderCompleted()">
|
<template v-if="isOrderCompleted()">
|
||||||
<view class="bottom-icon-btn" @click="handleWithdraw"
|
<view class="bottom-icon-btn" @click="handleWithdraw"
|
||||||
v-if="!orderInfo.isWithdrawn && orderInfo.refundAmount > 0">
|
v-if="!orderInfo.isWithdrawn && orderInfo.refundAmount > 0">
|
||||||
<image src="/static/suggess.png" class="icon" mode="aspectFit"></image>
|
<image src="/static/suggess.png" class="icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text>{{ $t('order.feeAppeal') }}</text>
|
<text>{{ $t('order.feeAppeal') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom-icon-btn" @click="contactService">
|
<view class="bottom-icon-btn" @click="contactService">
|
||||||
<image src="/static/customer-service.png" class="icon" mode="aspectFit"></image>
|
<image src="/static/customer-service.png" class="icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text>{{ $t('user.customerService') }}</text>
|
<text>{{ $t('user.customerService') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="action-btn primary" @click="rentAgain">
|
<view class="action-btn primary" @click="rentAgain">
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="popup-body">
|
<view class="popup-body">
|
||||||
<image :src="returnMapImageUrl" mode="widthFix" class="map-image"></image>
|
<image :src="returnMapImageUrl" mode="widthFix" class="map-image" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="popup-footer">
|
<view class="popup-footer">
|
||||||
<view class="save-btn" @click="saveReturnMapImage">
|
<view class="save-btn" @click="saveReturnMapImage">
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
@relocate="init" @markerTap="goToPositionDetail" />
|
@relocate="init" @markerTap="goToPositionDetail" />
|
||||||
<!-- 定位按钮 -->
|
<!-- 定位按钮 -->
|
||||||
<view class="relocate-btn" @click="init">
|
<view class="relocate-btn" @click="init">
|
||||||
<image src="/static/location.png" class="relocate-icon" mode="aspectFit"></image>
|
<image src="/static/location.png" class="relocate-icon" mode="aspectFit" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-wrap">
|
<view class="list-wrap">
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
indicator-active-color="#07c160">
|
indicator-active-color="#07c160">
|
||||||
<swiper-item v-for="(image, index) in goodsInfo.imageList" :key="index">
|
<swiper-item v-for="(image, index) in goodsInfo.imageList" :key="index">
|
||||||
<view class="swiper-item-wrapper">
|
<view class="swiper-item-wrapper">
|
||||||
<image :src="image" mode="aspectFit" class="product-image"></image>
|
<image :src="image" mode="aspectFit" class="product-image" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<view class="features-section">
|
<view class="features-section">
|
||||||
<view class="feature-item">
|
<view class="feature-item">
|
||||||
<view class="feature-icon">
|
<view class="feature-icon">
|
||||||
<image src="@/static/battery-icon.png" mode="aspectFit" class="icon-img"></image>
|
<image src="@/static/battery-icon.png" mode="aspectFit" class="icon-img" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
||||||
<text class="feature-label">{{ $t('goods.features.battery') }}</text>
|
<text class="feature-label">{{ $t('goods.features.battery') }}</text>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<view class="feature-item">
|
<view class="feature-item">
|
||||||
<view class="feature-icon">
|
<view class="feature-icon">
|
||||||
<image src="@/static/wind-icon.png" mode="aspectFit" class="icon-img"></image>
|
<image src="@/static/wind-icon.png" mode="aspectFit" class="icon-img" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
||||||
<text class="feature-label">{{ $t('goods.features.wind') }}</text>
|
<text class="feature-label">{{ $t('goods.features.wind') }}</text>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
|
|
||||||
<view class="feature-item">
|
<view class="feature-item">
|
||||||
<view class="feature-icon">
|
<view class="feature-icon">
|
||||||
<image src="@/static/temp-icon.png" mode="aspectFit" class="icon-img"></image>
|
<image src="@/static/temp-icon.png" mode="aspectFit" class="icon-img" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
||||||
<text class="feature-label">{{ $t('goods.features.temp') }}</text>
|
<text class="feature-label">{{ $t('goods.features.temp') }}</text>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
|
|
||||||
<view class="feature-item">
|
<view class="feature-item">
|
||||||
<view class="feature-icon">
|
<view class="feature-icon">
|
||||||
<image src="@/static/charge-icon.png" mode="aspectFit" class="icon-img"></image>
|
<image src="@/static/charge-icon.png" mode="aspectFit" class="icon-img" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
<view class="" style="display: flex;flex-direction: column;align-items: center;">
|
||||||
<text class="feature-label">{{ $t('goods.features.charge') }}</text>
|
<text class="feature-label">{{ $t('goods.features.charge') }}</text>
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
<!-- 底部购买按钮 -->
|
<!-- 底部购买按钮 -->
|
||||||
<view class="footer">
|
<view class="footer">
|
||||||
<view class="" style="display: flex;flex-direction: column;width: 140rpx;align-items: center;margin-right: 20rpx;" @click="GotoList">
|
<view class="" style="display: flex;flex-direction: column;width: 140rpx;align-items: center;margin-right: 20rpx;" @click="GotoList">
|
||||||
<image src="/static/jl.png" mode="scaleToFill" style="width: 35rpx;height:35rpx;"></image>
|
<image src="/static/jl.png" mode="scaleToFill" style="width: 35rpx;height:35rpx;" lazy-load="true"></image>
|
||||||
<text style="font-size: 26rpx;">定制记录</text>
|
<text style="font-size: 26rpx;">定制记录</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="buy-button" @click="handleBuy">
|
<view class="buy-button" @click="handleBuy">
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
|
|
||||||
<view class="sku-info">
|
<view class="sku-info">
|
||||||
<image v-if="selectedSku.pictureUrl" :src="selectedSku.pictureUrl" class="sku-image"
|
<image v-if="selectedSku.pictureUrl" :src="selectedSku.pictureUrl" class="sku-image"
|
||||||
mode="aspectFit"></image>
|
mode="aspectFit" lazy-load="true"></image>
|
||||||
<view class="sku-detail">
|
<view class="sku-detail">
|
||||||
<text class="sku-price">¥{{ selectedSku.price || goodsInfo.price }}</text>
|
<text class="sku-price">¥{{ selectedSku.price || goodsInfo.price }}</text>
|
||||||
<text class="sku-name">{{ selectedSku.optionName || '请选择规格' }}</text>
|
<text class="sku-name">{{ selectedSku.optionName || '请选择规格' }}</text>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<view class="order-list">
|
<view class="order-list">
|
||||||
<view class="empty-state" v-if="orderList.length === 0">
|
<view class="empty-state" v-if="orderList.length === 0">
|
||||||
<view class="empty-icon">
|
<view class="empty-icon">
|
||||||
<image src="/static/orderList.png" mode="aspectFill" class="empty-icon"></image>
|
<image src="/static/orderList.png" mode="aspectFill" class="empty-icon" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<text class="empty-text">{{ $t('order.noOrderRecord') }}</text>
|
<text class="empty-text">{{ $t('order.noOrderRecord') }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<view class="order-list">
|
<view class="order-list">
|
||||||
<view class="empty-state" v-if="orderList.length === 0">
|
<view class="empty-state" v-if="orderList.length === 0">
|
||||||
<view class="empty-icon">
|
<view class="empty-icon">
|
||||||
<image src="/static/orderList.png" mode="aspectFill" class="empty-icon"></image>
|
<image src="/static/orderList.png" mode="aspectFill" class="empty-icon" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<text class="empty-text">{{ $t('order.noOrderRecord') }}</text>
|
<text class="empty-text">{{ $t('order.noOrderRecord') }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<view class="my-page">
|
<view class="my-page">
|
||||||
<view class="user-card" @click="navigateTo('/pages/userProfile/index')">
|
<view class="user-card" @click="navigateTo('/pages/userProfile/index')">
|
||||||
<view class="avatar-box">
|
<view class="avatar-box">
|
||||||
<image class="avatar" v-if="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill"></image>
|
<image class="avatar" v-if="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill" lazy-load="true"></image>
|
||||||
<image v-else class="avatar" src="@/static/head.png" mode="aspectFill"></image>
|
<image v-else class="avatar" src="@/static/head.png" mode="aspectFill" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="user-text">
|
<view class="user-text">
|
||||||
<view class="nickname">{{ userInfo.nickName || $t('user.clickToLogin') }}</view>
|
<view class="nickname">{{ userInfo.nickName || $t('user.clickToLogin') }}</view>
|
||||||
@@ -29,20 +29,20 @@
|
|||||||
<swiper class="banner-swiper" :indicator-dots="bannerImages.length > 1"
|
<swiper class="banner-swiper" :indicator-dots="bannerImages.length > 1"
|
||||||
:autoplay="bannerImages.length > 1" :circular="true" :interval="3000">
|
:autoplay="bannerImages.length > 1" :circular="true" :interval="3000">
|
||||||
<swiper-item v-for="(image, index) in bannerImages" :key="index">
|
<swiper-item v-for="(image, index) in bannerImages" :key="index">
|
||||||
<image class="banner-image" :src="image" mode="aspectFill" @click="handleBannerClick(index)">
|
<image class="banner-image" :src="image" mode="aspectFill" @click="handleBannerClick(index)" lazy-load="true">
|
||||||
</image>
|
</image>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
</view>
|
</view>
|
||||||
<!-- 默认图片(当没有广告时显示) -->
|
<!-- 默认图片(当没有广告时显示) -->
|
||||||
<view class="banner-card" v-else @click="navigateTo('/pages/join/index')">
|
<view class="banner-card" v-else @click="navigateTo('/pages/join/index')">
|
||||||
<image class="banner-image" src="/static/userCenter_swiper.png" mode="aspectFill"></image>
|
<image class="banner-image" src="/static/userCenter_swiper.png" mode="aspectFill" lazy-load="true"></image>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="section-title">常用服务</view> -->
|
<!-- <view class="section-title">常用服务</view> -->
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<view class="list-item" @click="handleQuickReturn">
|
<view class="list-item" @click="handleQuickReturn">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/express_return.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/express_return.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.quickReturn') }}<text
|
<text class="title">{{ $t('user.quickReturn') }}<text
|
||||||
style="font-size: 18rpx;">{{ $t('user.quickReturnDesc') }}</text></text>
|
style="font-size: 18rpx;">{{ $t('user.quickReturnDesc') }}</text></text>
|
||||||
</view>
|
</view>
|
||||||
@@ -50,42 +50,42 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/pages/expressReturn/index')" v-if="showMenuItem">
|
<view class="list-item" @click="navigateTo('/pages/expressReturn/index')" v-if="showMenuItem">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/express.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/express.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.expressReturn') }}</text>
|
<text class="title">{{ $t('user.expressReturn') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/order/index')">
|
<view class="list-item" @click="navigateTo('/subPackages/order/index')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/orderList.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/orderList.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.myOrders') }}</text>
|
<text class="title">{{ $t('user.myOrders') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/user/my/card')">
|
<view class="list-item" @click="navigateTo('/subPackages/user/my/card')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/my_member.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/my_member.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.myCards') }}</text>
|
<text class="title">{{ $t('user.myCards') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/user/my/coupon')">
|
<view class="list-item" @click="navigateTo('/subPackages/user/my/coupon')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/my_coupon.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/my_coupon.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.myCoupons') }}</text>
|
<text class="title">{{ $t('user.myCoupons') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/service/help/index')">
|
<view class="list-item" @click="navigateTo('/subPackages/service/help/index')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/customer-service.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/customer-service.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.customerService') }}</text>
|
<text class="title">{{ $t('user.customerService') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/service/feedback/index')">
|
<view class="list-item" @click="navigateTo('/subPackages/service/feedback/index')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/suggess.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/suggess.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.feedback') }}</text>
|
<text class="title">{{ $t('user.feedback') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
@@ -99,14 +99,14 @@
|
|||||||
</view> -->
|
</view> -->
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/other/join/index')">
|
<view class="list-item" @click="navigateTo('/subPackages/other/join/index')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/peopleInWork.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/peopleInWork.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.cooperation') }}</text>
|
<text class="title">{{ $t('user.cooperation') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="list-item" @click="navigateTo('/subPackages/user/setting/index')">
|
<view class="list-item" @click="navigateTo('/subPackages/user/setting/index')">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<image class="icon" src="/static/setting.png" mode="aspectFit"></image>
|
<image class="icon" src="/static/setting.png" mode="aspectFit" lazy-load="true"></image>
|
||||||
<text class="title">{{ $t('user.settings') }}</text>
|
<text class="title">{{ $t('user.settings') }}</text>
|
||||||
</view>
|
</view>
|
||||||
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
<uv-icon name="arrow-right" size="16" color="#c8c8c8"></uv-icon>
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<view class="profile-page">
|
<view class="profile-page">
|
||||||
<view class="avatar-section">
|
<view class="avatar-section">
|
||||||
<view class="avatar-container">
|
<view class="avatar-container">
|
||||||
<image class="avatar" v-if="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill"></image>
|
<image class="avatar" v-if="userInfo.avatar" :src="userInfo.avatar" mode="aspectFill" lazy-load="true"></image>
|
||||||
<image v-else class="avatar" src="@/static/head.png" mode="aspectFill"></image>
|
<image v-else class="avatar" src="@/static/head.png" mode="aspectFill" lazy-load="true"></image>
|
||||||
<!-- 覆盖在头像上的微信选择头像授权按钮,仅小程序生效 -->
|
<!-- 覆盖在头像上的微信选择头像授权按钮,仅小程序生效 -->
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
<button class="avatar-choose-btn" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"></button>
|
<button class="avatar-choose-btn" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"></button>
|
||||||
|
|||||||
Reference in New Issue
Block a user