diff --git a/.workbuddy/memory/2026-07-06.md b/.workbuddy/memory/2026-07-06.md index 3325b68..707038e 100644 --- a/.workbuddy/memory/2026-07-06.md +++ b/.workbuddy/memory/2026-07-06.md @@ -87,3 +87,9 @@ - **默认参数**: `width=750, quality=90, enabled=true` - **安全处理**: 空 URL 返回空串、已含 `x-oss-process` 不重复拼接、根据已有 query 参数自动选 `?`/`&` 分隔符 - **使用约定**: 列表/卡片等缩略图场景使用此函数;预览大图(`Taro.previewImage`)直接用原 URL,不调用此函数 + +## 全项目应用 getCompressedImageUrl +- **修改范围**: 35 个文件(4 个组件 + 31 个页面文件) +- **组件**: LazyImage、ProductCard、OrderCard、SkuSelector — 组件内部自动压缩 +- **页面**: shop/cart/checkout/category/index/seckill-list/group-buy-list/group-buy-detail, order/detail/evaluate/evaluate-detail/after-sale-*, order-list, user/favorite-list/history-list/benefit-*, points/*, store/goods/orders, index/index/article-list, activity/event/*, group-buy-list/detail, seckill-list/detail, history-list, favorite-list +- **跳过(不压缩)**: 头像(user/user, user/member, user/profile, user/index, user/team, store/center)、二维码(share, user/promotion)、商品详情大图/轮播(shop/product-detail, shop/seckill-detail)、所有 Taro.previewImage 调用 diff --git a/src/components/business/SkuSelector/index.tsx b/src/components/business/SkuSelector/index.tsx index de6afbe..dccdc7d 100644 --- a/src/components/business/SkuSelector/index.tsx +++ b/src/components/business/SkuSelector/index.tsx @@ -5,6 +5,7 @@ import type { ShopGoods, ShopGoodsSku } from '@/api/shop/shopGoods/model' import type { ShopGoodsSpec } from '@/api/shop/shopGoodsSpec/model' import Price from '@/components/common/Price' import { isVipMember } from '@/utils/vip' +import { getCompressedImageUrl } from '@/utils/image' interface SkuSelectorProps { visible: boolean @@ -256,7 +257,7 @@ const SkuSelector: React.FC = ({ {/* 商品信息 */} - + 库存: {currentStock} diff --git a/src/components/common/LazyImage/index.tsx b/src/components/common/LazyImage/index.tsx index 39c093c..f53c922 100644 --- a/src/components/common/LazyImage/index.tsx +++ b/src/components/common/LazyImage/index.tsx @@ -1,6 +1,7 @@ import { View, Image, Text } from '@tarojs/components'; import { useState, useEffect } from 'react'; import { useIntersectionObserver } from '@tarojs/taro'; +import { getCompressedImageUrl } from '@/utils/image'; interface LazyImageProps { src: string; @@ -46,7 +47,7 @@ export default function LazyImage({ src, placeholder, className, style, mode = ' )} {(inView || loaded) && ( setLoaded(true)} diff --git a/src/components/common/OrderCard/index.tsx b/src/components/common/OrderCard/index.tsx index de109ba..4e62b19 100644 --- a/src/components/common/OrderCard/index.tsx +++ b/src/components/common/OrderCard/index.tsx @@ -3,6 +3,7 @@ import { View, Text, Image } from '@tarojs/components' import Taro from '@tarojs/taro' import type { ShopOrder } from '@/api/shop/shopOrder/model' import Price from '../Price' +import { getCompressedImageUrl } from '@/utils/image' interface OrderCardProps { order: ShopOrder @@ -67,7 +68,7 @@ const OrderCard: React.FC = ({ order, onClick }) => { {item.image ? ( ) : ( @@ -104,7 +105,7 @@ const OrderCard: React.FC = ({ order, onClick }) => { {coverImage ? ( - + ) : ( 暂无图片 )} diff --git a/src/components/common/ProductCard/index.tsx b/src/components/common/ProductCard/index.tsx index 324ea3b..0b340ee 100644 --- a/src/components/common/ProductCard/index.tsx +++ b/src/components/common/ProductCard/index.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import Price from '../Price' import { isGuest } from '@/utils/auth' import { isVipMember } from '@/utils/vip' +import { getCompressedImageUrl } from '@/utils/image' import type { ShopGoods } from '@/api/shop/shopGoods/model' interface ProductCardProps { @@ -25,7 +26,7 @@ const ProductCard: React.FC = ({ product, onClick }) => { { {/* 活动头图 */} {activity.image ? ( - + ) : ( 🎉 diff --git a/src/pages/event/detail/index.tsx b/src/pages/event/detail/index.tsx index 6a6d26e..90fa9a2 100644 --- a/src/pages/event/detail/index.tsx +++ b/src/pages/event/detail/index.tsx @@ -3,6 +3,7 @@ import { View, Text, ScrollView, Image } from '@tarojs/components' import Taro from '@tarojs/taro' import { getShopEvent, getRegistrationStatus, getEventStatusLabel } from '@/api/shop/shopEvent' import type { ShopEvent, RegistrationStatus, EventFormField } from '@/api/shop/shopEvent' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '赛事详情' }) @@ -85,7 +86,7 @@ const EventDetailPage: React.FC = () => { {/* 封面 */} {event.image ? ( - + ) : ( 🏆 diff --git a/src/pages/event/list/index.tsx b/src/pages/event/list/index.tsx index 2000d9b..84001ad 100644 --- a/src/pages/event/list/index.tsx +++ b/src/pages/event/list/index.tsx @@ -5,6 +5,7 @@ import { pageShopEvent, getEventStatusLabel } from '@/api/shop/shopEvent' import type { ShopEvent } from '@/api/shop/shopEvent' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '赛事报名' }) @@ -84,7 +85,7 @@ const EventListPage: React.FC = () => { > {/* 封面 */} {event.image ? ( - + ) : ( 🏆 diff --git a/src/pages/favorite-list.tsx b/src/pages/favorite-list.tsx index fc2a726..bde605e 100644 --- a/src/pages/favorite-list.tsx +++ b/src/pages/favorite-list.tsx @@ -5,6 +5,7 @@ import { listShopGoodsFavorite } from '@/api/shop/shopGoodsFavorite' import type { ShopGoodsFavorite } from '@/api/shop/shopGoodsFavorite/model' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '我的收藏', @@ -69,7 +70,7 @@ const FavoriteListPage: React.FC = () => { diff --git a/src/pages/group-buy-detail.tsx b/src/pages/group-buy-detail.tsx index ad0eddc..1990769 100644 --- a/src/pages/group-buy-detail.tsx +++ b/src/pages/group-buy-detail.tsx @@ -7,6 +7,7 @@ import type { ShopGroupBuy, ShopGroupBuyRecord } from '@/api/shop/shopGroupBuy/m import type { ShopGoods } from '@/api/shop/shopGoods/model' import type { ShopGoodsSku } from '@/api/shop/shopGoodsSku/model' import SkuSelector from '@/components/business/SkuSelector' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '拼团详情', @@ -184,7 +185,7 @@ const GroupBuyDetailPage: React.FC = () => { diff --git a/src/pages/group-buy-list.tsx b/src/pages/group-buy-list.tsx index af78a58..4454f06 100644 --- a/src/pages/group-buy-list.tsx +++ b/src/pages/group-buy-list.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import { pageShopGroupBuy } from '@/api/shop/shopGroupBuy' import type { ShopGroupBuy } from '@/api/shop/shopGroupBuy/model' import EmptyState from '@/components/common/EmptyState' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '拼团活动', @@ -72,7 +73,7 @@ const GroupBuyListPage: React.FC = () => { > diff --git a/src/pages/history-list.tsx b/src/pages/history-list.tsx index d5a5a59..8d6614f 100644 --- a/src/pages/history-list.tsx +++ b/src/pages/history-list.tsx @@ -3,6 +3,7 @@ import { View, Text, Image, ScrollView } from '@tarojs/components' import Taro from '@tarojs/taro' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '浏览历史', @@ -82,7 +83,7 @@ const BrowseHistoryPage: React.FC = () => { diff --git a/src/pages/index/article-list.tsx b/src/pages/index/article-list.tsx index b3e8516..af3671f 100644 --- a/src/pages/index/article-list.tsx +++ b/src/pages/index/article-list.tsx @@ -5,6 +5,7 @@ import { listCmsArticle } from '@/api/cms/cmsArticle' import type { CmsArticle } from '@/api/cms/cmsArticle/model' import EmptyState from '@/components/common/EmptyState' import { useScrollHeight } from '@/hooks/useScrollHeight' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '活动列表', @@ -83,7 +84,7 @@ const ArticleListPage: React.FC = () => { {item.coverImage && ( diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 0c7b73c..b71e5ea 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -10,6 +10,7 @@ import type { CmsAd } from '@/api/cms/cmsAd/model' import type { CmsArticle } from '@/api/cms/cmsArticle/model' import type { ShopGoods } from '@/api/shop/shopGoods/model' import Price from '@/components/common/Price' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '首页', @@ -131,7 +132,7 @@ const IndexPage: React.FC = () => { { if (item.path) Taro.navigateTo({ url: item.path }) @@ -230,7 +231,7 @@ const IndexPage: React.FC = () => { {item.image ? ( ) : ( diff --git a/src/pages/order-list.tsx b/src/pages/order-list.tsx index 22e6b5b..e5c7d61 100644 --- a/src/pages/order-list.tsx +++ b/src/pages/order-list.tsx @@ -5,6 +5,7 @@ import { listShopPointsOrder, cancelShopPointsOrder } from '@/api/shop/shopPoint import type { ShopPointsOrder, PointsOrderStatus } from '@/api/shop/shopPointsOrder' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '积分订单', @@ -161,7 +162,7 @@ const PointsOrderListPage: React.FC = () => { diff --git a/src/pages/order/after-sale-apply.tsx b/src/pages/order/after-sale-apply.tsx index 5b4815c..17f76c0 100644 --- a/src/pages/order/after-sale-apply.tsx +++ b/src/pages/order/after-sale-apply.tsx @@ -5,6 +5,7 @@ import { Button, Uploader } from '@nutui/nutui-react-taro' import { getShopOrder } from '@/api/shop/shopOrder' import type { ShopOrder } from '@/api/shop/shopOrder/model' import Price from '@/components/common/Price' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '申请售后', @@ -243,7 +244,7 @@ const AfterSaleApplyPage: React.FC = () => { {/* 商品图片 */} diff --git a/src/pages/order/after-sale-detail.tsx b/src/pages/order/after-sale-detail.tsx index 0950b21..57c0134 100644 --- a/src/pages/order/after-sale-detail.tsx +++ b/src/pages/order/after-sale-detail.tsx @@ -5,6 +5,7 @@ import { Button } from '@nutui/nutui-react-taro' import { getAfterSaleDetail, cancelAfterSale, formatAfterSaleStatus, AFTER_SALE_TYPE_MAP } from '@/api/shop/shopAfterSale' import type { AfterSaleDetail } from '@/api/shop/shopAfterSale' import Price from '@/components/common/Price' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '售后详情', @@ -214,7 +215,7 @@ const AfterSaleDetailPage: React.FC = () => { ))} diff --git a/src/pages/order/detail.tsx b/src/pages/order/detail.tsx index 49b1658..0fb367f 100644 --- a/src/pages/order/detail.tsx +++ b/src/pages/order/detail.tsx @@ -7,6 +7,7 @@ import { listShopOrderGoodsByOrderId } from '@/api/shop/shopOrderGoods' import type { ShopOrder } from '@/api/shop/shopOrder/model' import { OrderStatus, OrderStatusText } from '@/types/order' import Price from '@/components/common/Price' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '订单详情', @@ -301,7 +302,7 @@ const OrderDetailPage: React.FC = () => { > {item.image ? ( - + ) : ( 暂无 diff --git a/src/pages/order/evaluate-detail/index.tsx b/src/pages/order/evaluate-detail/index.tsx index 54ab1da..54fbae4 100644 --- a/src/pages/order/evaluate-detail/index.tsx +++ b/src/pages/order/evaluate-detail/index.tsx @@ -3,6 +3,7 @@ import { View, Text, ScrollView, Image } from '@tarojs/components' import Taro from '@tarojs/taro' import { getShopEvaluation, likeShopEvaluation } from '@/api/shop/shopEvaluation' import type { ShopEvaluation } from '@/api/shop/shopEvaluation/model' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '评价详情', @@ -110,7 +111,7 @@ const EvaluateDetailPage: React.FC = () => { {evaluation.goodsImage ? ( - + ) : ( 🛍️ )} @@ -138,7 +139,7 @@ const EvaluateDetailPage: React.FC = () => { className='w-24 h-24 bg-gray-100 rounded-lg overflow-hidden' onClick={() => handleImagePreview(index)} > - + ))} diff --git a/src/pages/order/evaluate.tsx b/src/pages/order/evaluate.tsx index 8f3dc5f..be64987 100644 --- a/src/pages/order/evaluate.tsx +++ b/src/pages/order/evaluate.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import { Button } from '@nutui/nutui-react-taro' import { useUser } from '@/hooks/useUser' import { submitGoodsComment } from '@/api/shop/shopGoodsComment' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '商品评价', @@ -124,7 +125,7 @@ const EvaluatePage: React.FC = () => { {images.map((img, idx) => ( diff --git a/src/pages/order/evaluate/index.tsx b/src/pages/order/evaluate/index.tsx index 8f3dc5f..be64987 100644 --- a/src/pages/order/evaluate/index.tsx +++ b/src/pages/order/evaluate/index.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import { Button } from '@nutui/nutui-react-taro' import { useUser } from '@/hooks/useUser' import { submitGoodsComment } from '@/api/shop/shopGoodsComment' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '商品评价', @@ -124,7 +125,7 @@ const EvaluatePage: React.FC = () => { {images.map((img, idx) => ( diff --git a/src/pages/points/index.tsx b/src/pages/points/index.tsx index 5c3e5ce..0969e51 100644 --- a/src/pages/points/index.tsx +++ b/src/pages/points/index.tsx @@ -6,6 +6,7 @@ import { pageShopPointsProduct } from '@/api/shop/shopPointsProduct' import type { ShopPointsProduct } from '@/api/shop/shopPointsProduct/model' import { getUserPointsInfo, type UserPointsInfo } from '@/api/system/user/points' import EmptyState from '@/components/common/EmptyState' +import { getCompressedImageUrl } from '@/utils/image' const PointsPage: React.FC = () => { const { user } = useUser() @@ -81,7 +82,7 @@ const PointsPage: React.FC = () => { > {item.productImage ? ( - + ) : ( 暂无图片 )} diff --git a/src/pages/points/order-list/index.tsx b/src/pages/points/order-list/index.tsx index 5c0d8d4..bcec045 100644 --- a/src/pages/points/order-list/index.tsx +++ b/src/pages/points/order-list/index.tsx @@ -5,6 +5,7 @@ import { listShopPointsOrder, cancelShopPointsOrder } from '@/api/shop/shopPoint import type { ShopPointsOrder, PointsOrderStatus } from '@/api/shop/shopPointsOrder' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '积分订单', @@ -163,7 +164,7 @@ const PointsOrderListPage: React.FC = () => { diff --git a/src/pages/points/product-detail.tsx b/src/pages/points/product-detail.tsx index 6601245..67fa8f0 100644 --- a/src/pages/points/product-detail.tsx +++ b/src/pages/points/product-detail.tsx @@ -4,6 +4,7 @@ import Taro, { useRouter, useShareAppMessage } from '@tarojs/taro' import { getShopPointsProduct } from '@/api/shop/shopPointsProduct' import type { ShopPointsProduct } from '@/api/shop/shopPointsProduct/model' import EmptyState from '@/components/common/EmptyState' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '积分商品', @@ -95,7 +96,7 @@ const PointsProductDetail: React.FC = () => { Taro.previewImage({ current: product.productImage, urls: [product.productImage!] })} /> diff --git a/src/pages/points/product-list/index.tsx b/src/pages/points/product-list/index.tsx index 8ed4b18..36f811c 100644 --- a/src/pages/points/product-list/index.tsx +++ b/src/pages/points/product-list/index.tsx @@ -5,6 +5,7 @@ import { listShopPointsProduct, pageShopPointsProduct } from '@/api/shop/shopPoi import type { ShopPointsProduct } from '@/api/shop/shopPointsProduct/model' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '积分商城', @@ -106,7 +107,7 @@ const PointsProductListPage: React.FC = () => { diff --git a/src/pages/seckill-detail.tsx b/src/pages/seckill-detail.tsx index f3d4a20..0739f5a 100644 --- a/src/pages/seckill-detail.tsx +++ b/src/pages/seckill-detail.tsx @@ -7,6 +7,7 @@ import type { ShopSeckill } from '@/api/shop/shopSeckill/model' import type { ShopGoods } from '@/api/shop/shopGoods/model' import type { ShopGoodsSku } from '@/api/shop/shopGoodsSku/model' import SkuSelector from '@/components/business/SkuSelector' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '秒杀详情', @@ -176,7 +177,7 @@ const SeckillDetailPage: React.FC = () => { {seckill.goodsImage || seckill.product?.image ? ( ) : ( diff --git a/src/pages/seckill-list.tsx b/src/pages/seckill-list.tsx index b93b876..9841f16 100644 --- a/src/pages/seckill-list.tsx +++ b/src/pages/seckill-list.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import { pageShopSeckill } from '@/api/shop/shopSeckill' import type { ShopSeckill } from '@/api/shop/shopSeckill/model' import EmptyState from '@/components/common/EmptyState' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '限时秒杀', @@ -94,7 +95,7 @@ const SeckillListPage: React.FC = () => { > diff --git a/src/pages/shop/cart.tsx b/src/pages/shop/cart.tsx index d25acc5..489f035 100644 --- a/src/pages/shop/cart.tsx +++ b/src/pages/shop/cart.tsx @@ -8,6 +8,7 @@ import type { ShopGoods } from '@/api/shop/shopGoods/model' import EmptyState from '@/components/common/EmptyState' import Loading from '@/components/common/Loading' import { isGuest } from '@/utils/auth' +import { getCompressedImageUrl } from '@/utils/image' import { requireLogin } from '@/utils/login-guard' import { isVipMember } from '@/utils/vip' @@ -102,7 +103,7 @@ const CartPage: React.FC = () => { > @@ -169,7 +170,7 @@ const CartPage: React.FC = () => { @@ -221,7 +222,7 @@ const CartPage: React.FC = () => { > diff --git a/src/pages/shop/category.tsx b/src/pages/shop/category.tsx index 6db13ae..6eb942c 100644 --- a/src/pages/shop/category.tsx +++ b/src/pages/shop/category.tsx @@ -8,6 +8,7 @@ import type { ShopGoodsCategory } from '@/api/shop/shopGoodsCategory/model' import type { ShopGoods, ShopGoodsParam } from '@/api/shop/shopGoods/model' import { isGuest } from '@/utils/auth' import { isVipMember } from '@/utils/vip' +import { getCompressedImageUrl } from '@/utils/image' import { requireLogin } from '@/utils/login-guard' import LoadMore from '@/components/common/LoadMore' import EmptyState from '@/components/common/EmptyState' @@ -215,7 +216,7 @@ const CategoryPage: React.FC = () => { diff --git a/src/pages/shop/checkout.tsx b/src/pages/shop/checkout.tsx index c6673b1..0154699 100644 --- a/src/pages/shop/checkout.tsx +++ b/src/pages/shop/checkout.tsx @@ -14,6 +14,7 @@ import type { ShopGoods } from '@/api/shop/shopGoods/model' import type { ShopUserCoupon } from '@/api/shop/shopUserCoupon/model' import type { OrderGoodsItem, OrderCreateRequest } from '@/api/shop/shopOrder/model' import { isVipMember } from '@/utils/vip' +import { getCompressedImageUrl } from '@/utils/image' // 满减门槛配置 const THRESHOLDS = [ @@ -344,7 +345,7 @@ const CheckoutPage: React.FC = () => { @@ -495,7 +496,7 @@ const CheckoutPage: React.FC = () => { > diff --git a/src/pages/shop/group-buy-detail/index.tsx b/src/pages/shop/group-buy-detail/index.tsx index ad0eddc..1990769 100644 --- a/src/pages/shop/group-buy-detail/index.tsx +++ b/src/pages/shop/group-buy-detail/index.tsx @@ -7,6 +7,7 @@ import type { ShopGroupBuy, ShopGroupBuyRecord } from '@/api/shop/shopGroupBuy/m import type { ShopGoods } from '@/api/shop/shopGoods/model' import type { ShopGoodsSku } from '@/api/shop/shopGoodsSku/model' import SkuSelector from '@/components/business/SkuSelector' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '拼团详情', @@ -184,7 +185,7 @@ const GroupBuyDetailPage: React.FC = () => { diff --git a/src/pages/shop/group-buy-list/index.tsx b/src/pages/shop/group-buy-list/index.tsx index 928cb33..63401b1 100644 --- a/src/pages/shop/group-buy-list/index.tsx +++ b/src/pages/shop/group-buy-list/index.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import { pageShopGroupBuy } from '@/api/shop/shopGroupBuy' import type { ShopGroupBuy } from '@/api/shop/shopGroupBuy/model' import EmptyState from '@/components/common/EmptyState' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '拼团活动', @@ -72,7 +73,7 @@ const GroupBuyListPage: React.FC = () => { > diff --git a/src/pages/shop/index.tsx b/src/pages/shop/index.tsx index 1ea2cab..a449b83 100644 --- a/src/pages/shop/index.tsx +++ b/src/pages/shop/index.tsx @@ -8,6 +8,7 @@ import type { ShopGoodsCategory } from '@/api/shop/shopGoodsCategory/model' import type { ShopGoods, ShopGoodsParam } from '@/api/shop/shopGoods/model' import { isGuest } from '@/utils/auth' import { isVipMember } from '@/utils/vip' +import { getCompressedImageUrl } from '@/utils/image' import { requireLogin } from '@/utils/login-guard' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' @@ -269,7 +270,7 @@ const ShopPage: React.FC = () => { diff --git a/src/pages/shop/seckill-list/index.tsx b/src/pages/shop/seckill-list/index.tsx index 0bd8795..fdde0d2 100644 --- a/src/pages/shop/seckill-list/index.tsx +++ b/src/pages/shop/seckill-list/index.tsx @@ -4,6 +4,7 @@ import Taro from '@tarojs/taro' import { pageShopSeckill } from '@/api/shop/shopSeckill' import type { ShopSeckill } from '@/api/shop/shopSeckill/model' import EmptyState from '@/components/common/EmptyState' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '限时秒杀', @@ -94,7 +95,7 @@ const SeckillListPage: React.FC = () => { > diff --git a/src/pages/store/goods/index.tsx b/src/pages/store/goods/index.tsx index 8fd1e4e..8e97bd9 100644 --- a/src/pages/store/goods/index.tsx +++ b/src/pages/store/goods/index.tsx @@ -6,6 +6,7 @@ import { listShopGoodsCategory } from '@/api/shop/shopGoodsCategory' import { uploadFile } from '@/api/system/file' import type { ShopGoods, ShopGoodsParam } from '@/api/shop/shopGoods/model' import type { ShopGoodsCategory } from '@/api/shop/shopGoodsCategory/model' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '商品管理', @@ -317,7 +318,7 @@ export default function StoreGoodsPage() { {goods.image ? ( Taro.previewImage({ urls: [goods.image!] })} /> @@ -541,7 +542,7 @@ export default function StoreGoodsPage() { {editGoods.image ? ( - + ) : ( 📷 @@ -567,7 +568,7 @@ export default function StoreGoodsPage() { {editForm.files.map((file, index) => ( - + handleRemoveBanner(index)} diff --git a/src/pages/store/orders/index.tsx b/src/pages/store/orders/index.tsx index 1610d77..43b0b6b 100644 --- a/src/pages/store/orders/index.tsx +++ b/src/pages/store/orders/index.tsx @@ -5,6 +5,7 @@ import {pageShopOrder, updateShopOrder, removeShopOrder} from '@/api/shop/shopOr import type {ShopOrder, ShopOrderParam} from '@/api/shop/shopOrder/model' import {TenantId} from '@/config/app' import {useNewOrderDetector} from '@/hooks/useNewOrderDetector' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '订单管理', @@ -359,7 +360,7 @@ export default function StoreOrdersPage() { {orderGoods.map((goods: any, idx: number) => ( {goods.coverImage && ( - )} @@ -396,7 +397,7 @@ export default function StoreOrdersPage() { Taro.previewImage({ current: img, @@ -549,7 +550,7 @@ export default function StoreOrdersPage() { {proofImages.map((url, idx) => ( - + removeProofImage(idx)} diff --git a/src/pages/user/benefit-exchange-confirm/index.tsx b/src/pages/user/benefit-exchange-confirm/index.tsx index b4739c8..6f68f2a 100644 --- a/src/pages/user/benefit-exchange-confirm/index.tsx +++ b/src/pages/user/benefit-exchange-confirm/index.tsx @@ -5,6 +5,7 @@ import { getBenefitPackageDetail, exchangeBenefitPackage } from '@/api/shop/shop import { getDefaultAddress } from '@/api/shop/shopUserAddress'; import { getUserBalance } from '@/api/system/user/balance'; import './index.scss'; +import { getCompressedImageUrl } from '@/utils/image'; definePageConfig({ navigationBarTitleText: '确认兑换', @@ -113,7 +114,7 @@ export default function BenefitExchangeConfirmPage() { {/* 权益包信息 */} {pkg.coverImage && ( - + )} {pkg.name} diff --git a/src/pages/user/benefit-packages/index.tsx b/src/pages/user/benefit-packages/index.tsx index c175cf0..e2e5a4c 100644 --- a/src/pages/user/benefit-packages/index.tsx +++ b/src/pages/user/benefit-packages/index.tsx @@ -4,6 +4,7 @@ import { useState, useEffect } from 'react'; import { getBenefitPackageList } from '@/api/shop/shopMemberBenefit'; import EmptyState from '@/components/common/EmptyState'; import './index.scss'; +import { getCompressedImageUrl } from '@/utils/image'; definePageConfig({ navigationBarTitleText: '会员权益包', @@ -54,7 +55,7 @@ export default function BenefitPackagesPage() { {list.map((pkg) => ( {pkg.coverImage && ( - + )} diff --git a/src/pages/user/favorite-list/index.tsx b/src/pages/user/favorite-list/index.tsx index fc2a726..bde605e 100644 --- a/src/pages/user/favorite-list/index.tsx +++ b/src/pages/user/favorite-list/index.tsx @@ -5,6 +5,7 @@ import { listShopGoodsFavorite } from '@/api/shop/shopGoodsFavorite' import type { ShopGoodsFavorite } from '@/api/shop/shopGoodsFavorite/model' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '我的收藏', @@ -69,7 +70,7 @@ const FavoriteListPage: React.FC = () => { diff --git a/src/pages/user/history-list/index.tsx b/src/pages/user/history-list/index.tsx index d5a5a59..fe12d52 100644 --- a/src/pages/user/history-list/index.tsx +++ b/src/pages/user/history-list/index.tsx @@ -3,6 +3,7 @@ import { View, Text, Image, ScrollView } from '@tarojs/components' import Taro from '@tarojs/taro' import EmptyState from '@/components/common/EmptyState' import LoadMore from '@/components/common/LoadMore' +import { getCompressedImageUrl } from '@/utils/image' definePageConfig({ navigationBarTitleText: '浏览历史', @@ -82,7 +83,7 @@ const BrowseHistoryPage: React.FC = () => { diff --git a/src/utils/image.ts b/src/utils/image.ts index 56d3c17..99616ed 100644 --- a/src/utils/image.ts +++ b/src/utils/image.ts @@ -14,7 +14,7 @@ export interface ImageCompressOptions { * 默认压缩参数 */ const DEFAULT_OPTIONS: Required = { - width: 750, + width: 300, quality: 90, enabled: true, };