feat: v3.4.12 ticket iteration

Refund rollback, winery T+3, multi withdraw, mini-user store detail, dev plan batch edit and WeCom dispatch, support ticket edit/attachments/batch status, package imageUrl.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-04 23:53:31 +08:00
parent 71f508e02b
commit 4372018c09
34 changed files with 1032 additions and 86 deletions
@@ -34,6 +34,7 @@ type StorePackage = {
dishes: string;
usableTime?: string | null;
otherNotes?: string | null;
imageUrl?: string | null;
sortOrder?: number;
};
@@ -315,11 +316,7 @@ export default function StoreDetailPage() {
}
const envPhotos = envPhotoUrls(store);
const images = uniqueUrls([
store.coverUrl,
...(store.carouselUrls || []),
...envPhotos,
]);
const heroImages = uniqueUrls([store.coverUrl, ...(store.carouselUrls || [])]);
const intro = store.intro?.trim() || '';
const benefitRuleRaw = store.benefitUsageRule?.trim() || '';
@@ -346,7 +343,7 @@ export default function StoreDetailPage() {
/>
<View className="store-detail-hero full-bleed">
<ProductCarousel images={images} alt={store.name} variant="store" />
<ProductCarousel images={heroImages} alt={store.name} variant="store" previewable />
</View>
<View className="store-detail-info-card">
@@ -404,6 +401,9 @@ export default function StoreDetailPage() {
<Text className="store-detail-section-title"></Text>
{store.packages.map((pkg, index) => (
<View key={`${pkg.name}-${index}`} className="store-detail-package-card">
{pkg.imageUrl ? (
<Image className="store-detail-package-img" src={pkg.imageUrl} mode="aspectFill" />
) : null}
<Text className="store-detail-package-name">{pkg.name}</Text>
<Text className="store-detail-package-body">
{formatRedeemAmountYuan(pkg.price)} · {pkg.dishes}
@@ -443,7 +443,7 @@ export default function StoreDetailPage() {
className="store-detail-env-item"
onClick={() => previewEnv(index)}
>
<Image className="store-detail-env-img" src={url} mode="aspectFill" />
<Image className="store-detail-env-img" src={url} mode="widthFix" />
</View>
))}
</View>