sa2kit 1.6.50 → 1.6.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/booking-BXtkG2ns.d.mts +386 -0
- package/dist/booking-BXtkG2ns.d.ts +386 -0
- package/dist/bookingAdminService-B2QDjSHJ.d.ts +193 -0
- package/dist/bookingAdminService-Dmg7dC6V.d.mts +193 -0
- package/dist/cart-CcZ7rQyG.d.mts +176 -0
- package/dist/cart-D3o67Q3H.d.ts +176 -0
- package/dist/chunk-53WLQ22S.js +119 -0
- package/dist/chunk-53WLQ22S.js.map +1 -0
- package/dist/{chunk-SHY424RZ.mjs → chunk-6NMIKAE7.mjs} +3 -3
- package/dist/{chunk-SHY424RZ.mjs.map → chunk-6NMIKAE7.mjs.map} +1 -1
- package/dist/chunk-ANKVXRPY.mjs +30 -0
- package/dist/chunk-ANKVXRPY.mjs.map +1 -0
- package/dist/{chunk-IZOIVYOW.js → chunk-DENROXAE.js} +2 -2
- package/dist/{chunk-IZOIVYOW.js.map → chunk-DENROXAE.js.map} +1 -1
- package/dist/chunk-HYZ5C6FY.mjs +3522 -0
- package/dist/chunk-HYZ5C6FY.mjs.map +1 -0
- package/dist/{chunk-7JN25DJB.js → chunk-IPY26RQH.js} +11 -11
- package/dist/{chunk-7JN25DJB.js.map → chunk-IPY26RQH.js.map} +1 -1
- package/dist/{chunk-GFVAIT6Y.mjs → chunk-MFG2Y6UR.mjs} +2 -2
- package/dist/{chunk-GFVAIT6Y.mjs.map → chunk-MFG2Y6UR.mjs.map} +1 -1
- package/dist/chunk-TJZDPOO7.js +34 -0
- package/dist/chunk-TJZDPOO7.js.map +1 -0
- package/dist/chunk-U7AQC2Z7.js +3542 -0
- package/dist/chunk-U7AQC2Z7.js.map +1 -0
- package/dist/chunk-UR5TU4MW.mjs +113 -0
- package/dist/chunk-UR5TU4MW.mjs.map +1 -0
- package/dist/chunk-V6BXO6ZS.mjs +6107 -0
- package/dist/chunk-V6BXO6ZS.mjs.map +1 -0
- package/dist/chunk-W2NCOORK.js +6138 -0
- package/dist/chunk-W2NCOORK.js.map +1 -0
- package/dist/iflytek/index.d.mts +109 -0
- package/dist/iflytek/index.d.ts +109 -0
- package/dist/iflytek/index.js +365 -0
- package/dist/iflytek/index.js.map +1 -0
- package/dist/iflytek/index.mjs +362 -0
- package/dist/iflytek/index.mjs.map +1 -0
- package/dist/iflytek/server.d.mts +59 -0
- package/dist/iflytek/server.d.ts +59 -0
- package/dist/iflytek/server.js +281 -0
- package/dist/iflytek/server.js.map +1 -0
- package/dist/iflytek/server.mjs +274 -0
- package/dist/iflytek/server.mjs.map +1 -0
- package/dist/showmasterpiece/db/index.d.mts +3028 -0
- package/dist/showmasterpiece/db/index.d.ts +3028 -0
- package/dist/showmasterpiece/db/index.js +179 -0
- package/dist/showmasterpiece/db/index.js.map +1 -0
- package/dist/showmasterpiece/db/index.mjs +6 -0
- package/dist/showmasterpiece/db/index.mjs.map +1 -0
- package/dist/showmasterpiece/index.d.mts +10 -1729
- package/dist/showmasterpiece/index.d.ts +10 -1729
- package/dist/showmasterpiece/index.js +435 -9654
- package/dist/showmasterpiece/index.js.map +1 -1
- package/dist/showmasterpiece/index.mjs +9 -9628
- package/dist/showmasterpiece/index.mjs.map +1 -1
- package/dist/showmasterpiece/logic/index.d.mts +372 -0
- package/dist/showmasterpiece/logic/index.d.ts +372 -0
- package/dist/showmasterpiece/logic/index.js +91 -0
- package/dist/showmasterpiece/logic/index.js.map +1 -0
- package/dist/showmasterpiece/logic/index.mjs +6 -0
- package/dist/showmasterpiece/logic/index.mjs.map +1 -0
- package/dist/showmasterpiece/server/index.d.mts +3 -2704
- package/dist/showmasterpiece/server/index.d.ts +3 -2704
- package/dist/showmasterpiece/server/index.js +43 -43
- package/dist/showmasterpiece/server/index.mjs +2 -2
- package/dist/showmasterpiece/ui/miniapp/index.d.mts +86 -0
- package/dist/showmasterpiece/ui/miniapp/index.d.ts +86 -0
- package/dist/showmasterpiece/ui/miniapp/index.js +196 -0
- package/dist/showmasterpiece/ui/miniapp/index.js.map +1 -0
- package/dist/showmasterpiece/ui/miniapp/index.mjs +183 -0
- package/dist/showmasterpiece/ui/miniapp/index.mjs.map +1 -0
- package/dist/showmasterpiece/ui/web/index.d.mts +600 -0
- package/dist/showmasterpiece/ui/web/index.d.ts +600 -0
- package/dist/showmasterpiece/ui/web/index.js +131 -0
- package/dist/showmasterpiece/ui/web/index.js.map +1 -0
- package/dist/showmasterpiece/ui/web/index.mjs +14 -0
- package/dist/showmasterpiece/ui/web/index.mjs.map +1 -0
- package/dist/types-C4bbgHHW.d.mts +100 -0
- package/dist/types-C4bbgHHW.d.ts +100 -0
- package/dist/universalFile/server/index.js +5882 -288
- package/dist/universalFile/server/index.js.map +1 -1
- package/dist/universalFile/server/index.mjs +5796 -5
- package/dist/universalFile/server/index.mjs.map +1 -1
- package/package.json +45 -4
- package/dist/chunk-QROLPPXP.mjs +0 -5797
- package/dist/chunk-QROLPPXP.mjs.map +0 -1
- package/dist/chunk-VLZ5N6XZ.js +0 -5888
- package/dist/chunk-VLZ5N6XZ.js.map +0 -1
- package/dist/popupConfig-BznThU1O.d.mts +0 -330
- package/dist/popupConfig-BznThU1O.d.ts +0 -330
- package/dist/showmasterpiece/migration/index.d.mts +0 -120
- package/dist/showmasterpiece/migration/index.d.ts +0 -120
- package/dist/showmasterpiece/migration/index.js +0 -595
- package/dist/showmasterpiece/migration/index.js.map +0 -1
- package/dist/showmasterpiece/migration/index.mjs +0 -589
- package/dist/showmasterpiece/migration/index.mjs.map +0 -1
- package/dist/showmasterpiece/scripts/index.d.mts +0 -28
- package/dist/showmasterpiece/scripts/index.d.ts +0 -28
- package/dist/showmasterpiece/scripts/index.js +0 -327
- package/dist/showmasterpiece/scripts/index.js.map +0 -1
- package/dist/showmasterpiece/scripts/index.mjs +0 -325
- package/dist/showmasterpiece/scripts/index.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/showmasterpiece/ui/miniapp/components/PageHeader.tsx","../../../../src/showmasterpiece/ui/miniapp/components/CategoryTabs.tsx","../../../../src/showmasterpiece/ui/miniapp/components/CollectionCard.tsx","../../../../src/showmasterpiece/ui/miniapp/components/BookingSteps.tsx","../../../../src/showmasterpiece/ui/miniapp/components/FormField.tsx","../../../../src/showmasterpiece/ui/miniapp/components/CartItemCard.tsx","../../../../src/showmasterpiece/ui/miniapp/components/HistoryRecordCard.tsx"],"names":["React","View","Text","Button","ScrollView","Image","getCategoryLabel","formatPrice","Input","Textarea"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { Button, Text, View } from '@tarojs/components';\n\ntype HeaderAction = {\n label: string;\n onClick: () => void;\n variant?: 'primary' | 'ghost';\n};\n\ntype HeaderCta = {\n label: string;\n onClick: () => void;\n};\n\ninterface PageHeaderProps {\n title: string;\n subtitle?: string;\n actions?: HeaderAction[];\n cta?: HeaderCta;\n}\n\nconst PageHeader: React.FC<PageHeaderProps> = ({ title, subtitle, actions, cta }) => {\n return (\n <View className=\"mx-4 mt-6 rounded-3xl bg-white px-5 py-5 shadow-xl\">\n <View className=\"flex items-start justify-between\">\n <View>\n <Text className=\"text-xl font-semibold\">{title}</Text>\n {subtitle && <Text className=\"mt-2 block text-sm text-slate-500\">{subtitle}</Text>}\n </View>\n {actions && actions.length > 0 && (\n <View className=\"flex flex-col items-end gap-2\">\n {actions.map(action => (\n <Button\n key={action.label}\n className={\n action.variant === 'ghost'\n ? 'h-8 rounded-full border border-slate-200 bg-white px-4 text-xs font-semibold text-slate-700'\n : 'h-8 rounded-full bg-slate-900 px-4 text-xs font-semibold text-white'\n }\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </View>\n )}\n </View>\n {cta && (\n <Button\n className=\"mt-4 h-10 w-32 rounded-full bg-slate-900 text-sm font-semibold text-white\"\n onClick={cta.onClick}\n >\n {cta.label}\n </Button>\n )}\n </View>\n );\n};\n\nexport default PageHeader;\n","import React from 'react';\nimport { ScrollView, Text, View } from '@tarojs/components';\n\nexport type CategoryTabItem<T extends string = string> = {\n value: T;\n label: string;\n};\n\ninterface CategoryTabsProps<T extends string = string> {\n items: CategoryTabItem<T>[];\n activeValue: T;\n onChange: (value: T) => void;\n}\n\nfunction CategoryTabs<T extends string = string>({\n items,\n activeValue,\n onChange\n}: CategoryTabsProps<T>) {\n return (\n <ScrollView scrollX className=\"mt-3\" showScrollbar={false}>\n <View className=\"flex gap-2 pb-2\">\n {items.map(item => (\n <View\n key={item.value}\n className={`rounded-full px-4 py-2 text-xs ${\n activeValue === item.value\n ? 'bg-slate-900 text-white'\n : 'bg-white text-slate-600 shadow-md'\n }`}\n onClick={() => onChange(item.value)}\n >\n <Text>{item.label}</Text>\n </View>\n ))}\n </View>\n </ScrollView>\n );\n}\n\nexport default CategoryTabs;\n","import React from 'react';\nimport { Button, Image, Text, View } from '@tarojs/components';\nimport type { ArtCollection, CollectionCategoryType } from '../../../types';\nimport { formatPrice } from '../../../logic/shared/format';\nimport { getCategoryLabel } from '../../../logic/shared/category';\n\ntype ActionButton = {\n label: string;\n onClick: () => void;\n variant?: 'primary' | 'ghost';\n};\n\ntype CollectionLike = Pick<\n ArtCollection,\n 'id' | 'title' | 'number' | 'coverImage' | 'price'\n> & {\n description?: string;\n category?: CollectionCategoryType;\n};\n\ninterface CollectionCardProps {\n collection: CollectionLike;\n actions?: ActionButton[];\n showCategory?: boolean;\n showDescription?: boolean;\n variant?: 'default' | 'compact';\n}\n\nconst CollectionCard: React.FC<CollectionCardProps> = ({\n collection,\n actions,\n showCategory = true,\n showDescription = true,\n variant = 'default'\n}) => {\n const isCompact = variant === 'compact';\n return (\n <View className=\"overflow-hidden rounded-3xl bg-white shadow-xl\">\n {collection.coverImage ? (\n <Image\n src={collection.coverImage}\n mode=\"aspectFill\"\n className={isCompact ? 'h-24 w-24 rounded-2xl' : 'h-44 w-full'}\n />\n ) : (\n <View\n className={\n isCompact\n ? 'flex h-24 w-24 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500'\n : 'flex h-44 items-center justify-center bg-slate-200 text-sm text-slate-500'\n }\n >\n 暂无图片\n </View>\n )}\n <View className={isCompact ? 'flex-1 px-3 py-1' : 'px-4 py-4'}>\n <View className=\"flex items-center justify-between gap-2\">\n <Text className={isCompact ? 'text-sm font-semibold' : 'text-base font-semibold'}>\n {collection.title}\n </Text>\n {showCategory && !isCompact && (\n <Text className=\"rounded-full bg-slate-100 px-3 py-1 text-xs text-slate-600\">\n {getCategoryLabel(collection.category)}\n </Text>\n )}\n </View>\n {showDescription && collection.description && !isCompact && (\n <Text className=\"mt-2 block text-xs text-slate-500\">{collection.description}</Text>\n )}\n <Text className=\"mt-1 block text-xs text-slate-500\">编号:{collection.number}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">\n 价格:{formatPrice(collection.price)}\n </Text>\n {actions && actions.length > 0 && (\n <View className={isCompact ? 'mt-2 flex gap-2' : 'mt-4 flex gap-2'}>\n {actions.map(action => (\n <Button\n key={action.label}\n className={\n action.variant === 'ghost'\n ? 'h-8 rounded-full border border-slate-200 bg-white px-4 text-xs font-semibold text-slate-700'\n : 'h-8 rounded-full bg-slate-900 px-4 text-xs font-semibold text-white'\n }\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </View>\n )}\n </View>\n </View>\n );\n};\n\nexport default CollectionCard;\n","import React from 'react';\nimport { Text, View } from '@tarojs/components';\n\ninterface BookingStepsProps {\n step: 'select' | 'form';\n}\n\nconst BookingSteps: React.FC<BookingStepsProps> = ({ step }) => {\n return (\n <View className=\"mx-4 mt-4 flex items-center gap-3\">\n <View\n className={`flex items-center gap-2 rounded-full px-4 py-2 text-xs ${\n step === 'select' ? 'bg-slate-900 text-white' : 'bg-white text-slate-600'\n }`}\n >\n <Text>{step === 'select' ? '1' : '✓'}</Text>\n <Text>选择画集</Text>\n </View>\n <View className=\"h-px flex-1 bg-slate-200\" />\n <View\n className={`flex items-center gap-2 rounded-full px-4 py-2 text-xs ${\n step === 'form' ? 'bg-slate-900 text-white' : 'bg-white text-slate-600'\n }`}\n >\n <Text>2</Text>\n <Text>填写信息</Text>\n </View>\n </View>\n );\n};\n\nexport default BookingSteps;\n","import React from 'react';\nimport { Input, Text, Textarea, View } from '@tarojs/components';\n\ninterface BaseFieldProps {\n label: string;\n value: string;\n placeholder?: string;\n disabled?: boolean;\n error?: string;\n type?: 'text' | 'number';\n}\n\ninterface FormInputProps extends BaseFieldProps {\n onChange: (value: string) => void;\n}\n\ninterface FormTextareaProps extends BaseFieldProps {\n onChange: (value: string) => void;\n}\n\nexport const FormInput: React.FC<FormInputProps> = ({\n label,\n value,\n placeholder,\n disabled,\n error,\n type = 'text',\n onChange\n}) => {\n return (\n <View className=\"mt-4\">\n <Text className=\"text-xs text-slate-600\">{label}</Text>\n <Input\n value={value}\n placeholder={placeholder}\n onInput={(event: { detail: { value: string } }) => onChange(event.detail.value)}\n className={`mt-2 h-10 w-full rounded-xl border px-3 text-sm ${\n error ? 'border-rose-400' : 'border-slate-200'\n }`}\n disabled={disabled}\n type={type}\n />\n {error && <Text className=\"mt-1 block text-xs text-rose-500\">{error}</Text>}\n </View>\n );\n};\n\nexport const FormTextarea: React.FC<FormTextareaProps> = ({\n label,\n value,\n placeholder,\n disabled,\n error,\n onChange\n}) => {\n return (\n <View className=\"mt-4\">\n <Text className=\"text-xs text-slate-600\">{label}</Text>\n <Textarea\n value={value}\n placeholder={placeholder}\n onInput={(event: { detail: { value: string } }) => onChange(event.detail.value)}\n className={`mt-2 min-h-24 w-full rounded-xl border px-3 py-2 text-sm ${\n error ? 'border-rose-400' : 'border-slate-200'\n }`}\n disabled={disabled}\n />\n {error && <Text className=\"mt-1 block text-xs text-rose-500\">{error}</Text>}\n </View>\n );\n};\n","import React from 'react';\nimport { Button, Image, Text, View } from '@tarojs/components';\nimport type { CartItem } from '../../../types/cart';\nimport { formatPrice } from '../../../logic/shared/format';\n\ninterface CartItemCardProps {\n item: CartItem;\n onIncrease: () => void;\n onDecrease: () => void;\n onRemove: () => void;\n}\n\nconst CartItemCard: React.FC<CartItemCardProps> = ({ item, onIncrease, onDecrease, onRemove }) => {\n return (\n <View className=\"flex gap-3 rounded-2xl bg-white p-3 shadow-md\">\n {item.collection.coverImage ? (\n <Image\n src={item.collection.coverImage}\n mode=\"aspectFill\"\n className=\"h-20 w-20 rounded-2xl\"\n />\n ) : (\n <View className=\"flex h-20 w-20 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500\">\n 暂无图片\n </View>\n )}\n <View className=\"flex-1\">\n <Text className=\"text-sm font-semibold\">{item.collection.title}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">编号:{item.collection.number}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">\n 价格:{formatPrice(item.collection.price)}\n </Text>\n <View className=\"mt-3 flex items-center gap-2\">\n <Button\n className=\"h-8 w-8 rounded-full border border-slate-200 bg-white text-base text-slate-700\"\n onClick={onDecrease}\n >\n -\n </Button>\n <Text className=\"text-sm font-semibold\">{item.quantity}</Text>\n <Button\n className=\"h-8 w-8 rounded-full border border-slate-200 bg-white text-base text-slate-700\"\n onClick={onIncrease}\n >\n +\n </Button>\n <Button\n className=\"ml-auto h-8 rounded-full border border-rose-200 bg-rose-50 px-3 text-xs text-rose-600\"\n onClick={onRemove}\n >\n 移除\n </Button>\n </View>\n </View>\n </View>\n );\n};\n\nexport default CartItemCard;\n","import React from 'react';\nimport { Image, Text, View } from '@tarojs/components';\nimport type { Booking } from '../../../types/booking';\nimport { formatPrice } from '../../../logic/shared/format';\n\nconst statusLabelMap: Record<string, string> = {\n pending: '待确认',\n confirmed: '已确认',\n completed: '已完成',\n cancelled: '已取消'\n};\n\ninterface HistoryRecordCardProps {\n record: Booking;\n}\n\nconst HistoryRecordCard: React.FC<HistoryRecordCardProps> = ({ record }) => {\n return (\n <View className=\"flex gap-3 rounded-2xl bg-white p-3 shadow-md\">\n {record.collection?.coverImage ? (\n <Image\n src={record.collection.coverImage}\n mode=\"aspectFill\"\n className=\"h-20 w-20 rounded-2xl\"\n />\n ) : (\n <View className=\"flex h-20 w-20 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500\">\n 暂无图片\n </View>\n )}\n <View className=\"flex-1\">\n <Text className=\"text-sm font-semibold\">{record.collection?.title || '画集'}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">数量:{record.quantity}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">\n 价格:{formatPrice(record.collection?.price)}\n </Text>\n <View className=\"mt-2 flex items-center justify-between\">\n <Text className=\"text-xs text-slate-500\">\n 状态:{statusLabelMap[record.status] || record.status}\n </Text>\n <Text className=\"text-xs text-slate-400\">{record.createdAt?.slice(0, 10)}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nexport default HistoryRecordCard;\n"]}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { getCategoryLabel, formatPrice } from '../../../chunk-ANKVXRPY.mjs';
|
|
2
|
+
import '../../../chunk-WMJKH4XE.mjs';
|
|
3
|
+
import React3 from 'react';
|
|
4
|
+
import { View, Text, Button, ScrollView, Image, Input, Textarea } from '@tarojs/components';
|
|
5
|
+
|
|
6
|
+
var PageHeader = ({ title, subtitle, actions, cta }) => {
|
|
7
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "mx-4 mt-6 rounded-3xl bg-white px-5 py-5 shadow-xl" }, /* @__PURE__ */ React3.createElement(View, { className: "flex items-start justify-between" }, /* @__PURE__ */ React3.createElement(View, null, /* @__PURE__ */ React3.createElement(Text, { className: "text-xl font-semibold" }, title), subtitle && /* @__PURE__ */ React3.createElement(Text, { className: "mt-2 block text-sm text-slate-500" }, subtitle)), actions && actions.length > 0 && /* @__PURE__ */ React3.createElement(View, { className: "flex flex-col items-end gap-2" }, actions.map((action) => /* @__PURE__ */ React3.createElement(
|
|
8
|
+
Button,
|
|
9
|
+
{
|
|
10
|
+
key: action.label,
|
|
11
|
+
className: action.variant === "ghost" ? "h-8 rounded-full border border-slate-200 bg-white px-4 text-xs font-semibold text-slate-700" : "h-8 rounded-full bg-slate-900 px-4 text-xs font-semibold text-white",
|
|
12
|
+
onClick: action.onClick
|
|
13
|
+
},
|
|
14
|
+
action.label
|
|
15
|
+
)))), cta && /* @__PURE__ */ React3.createElement(
|
|
16
|
+
Button,
|
|
17
|
+
{
|
|
18
|
+
className: "mt-4 h-10 w-32 rounded-full bg-slate-900 text-sm font-semibold text-white",
|
|
19
|
+
onClick: cta.onClick
|
|
20
|
+
},
|
|
21
|
+
cta.label
|
|
22
|
+
));
|
|
23
|
+
};
|
|
24
|
+
var PageHeader_default = PageHeader;
|
|
25
|
+
function CategoryTabs({
|
|
26
|
+
items,
|
|
27
|
+
activeValue,
|
|
28
|
+
onChange
|
|
29
|
+
}) {
|
|
30
|
+
return /* @__PURE__ */ React3.createElement(ScrollView, { scrollX: true, className: "mt-3", showScrollbar: false }, /* @__PURE__ */ React3.createElement(View, { className: "flex gap-2 pb-2" }, items.map((item) => /* @__PURE__ */ React3.createElement(
|
|
31
|
+
View,
|
|
32
|
+
{
|
|
33
|
+
key: item.value,
|
|
34
|
+
className: `rounded-full px-4 py-2 text-xs ${activeValue === item.value ? "bg-slate-900 text-white" : "bg-white text-slate-600 shadow-md"}`,
|
|
35
|
+
onClick: () => onChange(item.value)
|
|
36
|
+
},
|
|
37
|
+
/* @__PURE__ */ React3.createElement(Text, null, item.label)
|
|
38
|
+
))));
|
|
39
|
+
}
|
|
40
|
+
var CategoryTabs_default = CategoryTabs;
|
|
41
|
+
var CollectionCard = ({
|
|
42
|
+
collection,
|
|
43
|
+
actions,
|
|
44
|
+
showCategory = true,
|
|
45
|
+
showDescription = true,
|
|
46
|
+
variant = "default"
|
|
47
|
+
}) => {
|
|
48
|
+
const isCompact = variant === "compact";
|
|
49
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "overflow-hidden rounded-3xl bg-white shadow-xl" }, collection.coverImage ? /* @__PURE__ */ React3.createElement(
|
|
50
|
+
Image,
|
|
51
|
+
{
|
|
52
|
+
src: collection.coverImage,
|
|
53
|
+
mode: "aspectFill",
|
|
54
|
+
className: isCompact ? "h-24 w-24 rounded-2xl" : "h-44 w-full"
|
|
55
|
+
}
|
|
56
|
+
) : /* @__PURE__ */ React3.createElement(
|
|
57
|
+
View,
|
|
58
|
+
{
|
|
59
|
+
className: isCompact ? "flex h-24 w-24 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500" : "flex h-44 items-center justify-center bg-slate-200 text-sm text-slate-500"
|
|
60
|
+
},
|
|
61
|
+
"\u6682\u65E0\u56FE\u7247"
|
|
62
|
+
), /* @__PURE__ */ React3.createElement(View, { className: isCompact ? "flex-1 px-3 py-1" : "px-4 py-4" }, /* @__PURE__ */ React3.createElement(View, { className: "flex items-center justify-between gap-2" }, /* @__PURE__ */ React3.createElement(Text, { className: isCompact ? "text-sm font-semibold" : "text-base font-semibold" }, collection.title), showCategory && !isCompact && /* @__PURE__ */ React3.createElement(Text, { className: "rounded-full bg-slate-100 px-3 py-1 text-xs text-slate-600" }, getCategoryLabel(collection.category))), showDescription && collection.description && !isCompact && /* @__PURE__ */ React3.createElement(Text, { className: "mt-2 block text-xs text-slate-500" }, collection.description), /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-slate-500" }, "\u7F16\u53F7\uFF1A", collection.number), /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-slate-500" }, "\u4EF7\u683C\uFF1A", formatPrice(collection.price)), actions && actions.length > 0 && /* @__PURE__ */ React3.createElement(View, { className: isCompact ? "mt-2 flex gap-2" : "mt-4 flex gap-2" }, actions.map((action) => /* @__PURE__ */ React3.createElement(
|
|
63
|
+
Button,
|
|
64
|
+
{
|
|
65
|
+
key: action.label,
|
|
66
|
+
className: action.variant === "ghost" ? "h-8 rounded-full border border-slate-200 bg-white px-4 text-xs font-semibold text-slate-700" : "h-8 rounded-full bg-slate-900 px-4 text-xs font-semibold text-white",
|
|
67
|
+
onClick: action.onClick
|
|
68
|
+
},
|
|
69
|
+
action.label
|
|
70
|
+
)))));
|
|
71
|
+
};
|
|
72
|
+
var CollectionCard_default = CollectionCard;
|
|
73
|
+
var BookingSteps = ({ step }) => {
|
|
74
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "mx-4 mt-4 flex items-center gap-3" }, /* @__PURE__ */ React3.createElement(
|
|
75
|
+
View,
|
|
76
|
+
{
|
|
77
|
+
className: `flex items-center gap-2 rounded-full px-4 py-2 text-xs ${step === "select" ? "bg-slate-900 text-white" : "bg-white text-slate-600"}`
|
|
78
|
+
},
|
|
79
|
+
/* @__PURE__ */ React3.createElement(Text, null, step === "select" ? "1" : "\u2713"),
|
|
80
|
+
/* @__PURE__ */ React3.createElement(Text, null, "\u9009\u62E9\u753B\u96C6")
|
|
81
|
+
), /* @__PURE__ */ React3.createElement(View, { className: "h-px flex-1 bg-slate-200" }), /* @__PURE__ */ React3.createElement(
|
|
82
|
+
View,
|
|
83
|
+
{
|
|
84
|
+
className: `flex items-center gap-2 rounded-full px-4 py-2 text-xs ${step === "form" ? "bg-slate-900 text-white" : "bg-white text-slate-600"}`
|
|
85
|
+
},
|
|
86
|
+
/* @__PURE__ */ React3.createElement(Text, null, "2"),
|
|
87
|
+
/* @__PURE__ */ React3.createElement(Text, null, "\u586B\u5199\u4FE1\u606F")
|
|
88
|
+
));
|
|
89
|
+
};
|
|
90
|
+
var BookingSteps_default = BookingSteps;
|
|
91
|
+
var FormInput = ({
|
|
92
|
+
label,
|
|
93
|
+
value,
|
|
94
|
+
placeholder,
|
|
95
|
+
disabled,
|
|
96
|
+
error,
|
|
97
|
+
type = "text",
|
|
98
|
+
onChange
|
|
99
|
+
}) => {
|
|
100
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "mt-4" }, /* @__PURE__ */ React3.createElement(Text, { className: "text-xs text-slate-600" }, label), /* @__PURE__ */ React3.createElement(
|
|
101
|
+
Input,
|
|
102
|
+
{
|
|
103
|
+
value,
|
|
104
|
+
placeholder,
|
|
105
|
+
onInput: (event) => onChange(event.detail.value),
|
|
106
|
+
className: `mt-2 h-10 w-full rounded-xl border px-3 text-sm ${error ? "border-rose-400" : "border-slate-200"}`,
|
|
107
|
+
disabled,
|
|
108
|
+
type
|
|
109
|
+
}
|
|
110
|
+
), error && /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-rose-500" }, error));
|
|
111
|
+
};
|
|
112
|
+
var FormTextarea = ({
|
|
113
|
+
label,
|
|
114
|
+
value,
|
|
115
|
+
placeholder,
|
|
116
|
+
disabled,
|
|
117
|
+
error,
|
|
118
|
+
onChange
|
|
119
|
+
}) => {
|
|
120
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "mt-4" }, /* @__PURE__ */ React3.createElement(Text, { className: "text-xs text-slate-600" }, label), /* @__PURE__ */ React3.createElement(
|
|
121
|
+
Textarea,
|
|
122
|
+
{
|
|
123
|
+
value,
|
|
124
|
+
placeholder,
|
|
125
|
+
onInput: (event) => onChange(event.detail.value),
|
|
126
|
+
className: `mt-2 min-h-24 w-full rounded-xl border px-3 py-2 text-sm ${error ? "border-rose-400" : "border-slate-200"}`,
|
|
127
|
+
disabled
|
|
128
|
+
}
|
|
129
|
+
), error && /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-rose-500" }, error));
|
|
130
|
+
};
|
|
131
|
+
var CartItemCard = ({ item, onIncrease, onDecrease, onRemove }) => {
|
|
132
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "flex gap-3 rounded-2xl bg-white p-3 shadow-md" }, item.collection.coverImage ? /* @__PURE__ */ React3.createElement(
|
|
133
|
+
Image,
|
|
134
|
+
{
|
|
135
|
+
src: item.collection.coverImage,
|
|
136
|
+
mode: "aspectFill",
|
|
137
|
+
className: "h-20 w-20 rounded-2xl"
|
|
138
|
+
}
|
|
139
|
+
) : /* @__PURE__ */ React3.createElement(View, { className: "flex h-20 w-20 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500" }, "\u6682\u65E0\u56FE\u7247"), /* @__PURE__ */ React3.createElement(View, { className: "flex-1" }, /* @__PURE__ */ React3.createElement(Text, { className: "text-sm font-semibold" }, item.collection.title), /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-slate-500" }, "\u7F16\u53F7\uFF1A", item.collection.number), /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-slate-500" }, "\u4EF7\u683C\uFF1A", formatPrice(item.collection.price)), /* @__PURE__ */ React3.createElement(View, { className: "mt-3 flex items-center gap-2" }, /* @__PURE__ */ React3.createElement(
|
|
140
|
+
Button,
|
|
141
|
+
{
|
|
142
|
+
className: "h-8 w-8 rounded-full border border-slate-200 bg-white text-base text-slate-700",
|
|
143
|
+
onClick: onDecrease
|
|
144
|
+
},
|
|
145
|
+
"-"
|
|
146
|
+
), /* @__PURE__ */ React3.createElement(Text, { className: "text-sm font-semibold" }, item.quantity), /* @__PURE__ */ React3.createElement(
|
|
147
|
+
Button,
|
|
148
|
+
{
|
|
149
|
+
className: "h-8 w-8 rounded-full border border-slate-200 bg-white text-base text-slate-700",
|
|
150
|
+
onClick: onIncrease
|
|
151
|
+
},
|
|
152
|
+
"+"
|
|
153
|
+
), /* @__PURE__ */ React3.createElement(
|
|
154
|
+
Button,
|
|
155
|
+
{
|
|
156
|
+
className: "ml-auto h-8 rounded-full border border-rose-200 bg-rose-50 px-3 text-xs text-rose-600",
|
|
157
|
+
onClick: onRemove
|
|
158
|
+
},
|
|
159
|
+
"\u79FB\u9664"
|
|
160
|
+
))));
|
|
161
|
+
};
|
|
162
|
+
var CartItemCard_default = CartItemCard;
|
|
163
|
+
var statusLabelMap = {
|
|
164
|
+
pending: "\u5F85\u786E\u8BA4",
|
|
165
|
+
confirmed: "\u5DF2\u786E\u8BA4",
|
|
166
|
+
completed: "\u5DF2\u5B8C\u6210",
|
|
167
|
+
cancelled: "\u5DF2\u53D6\u6D88"
|
|
168
|
+
};
|
|
169
|
+
var HistoryRecordCard = ({ record }) => {
|
|
170
|
+
return /* @__PURE__ */ React3.createElement(View, { className: "flex gap-3 rounded-2xl bg-white p-3 shadow-md" }, record.collection?.coverImage ? /* @__PURE__ */ React3.createElement(
|
|
171
|
+
Image,
|
|
172
|
+
{
|
|
173
|
+
src: record.collection.coverImage,
|
|
174
|
+
mode: "aspectFill",
|
|
175
|
+
className: "h-20 w-20 rounded-2xl"
|
|
176
|
+
}
|
|
177
|
+
) : /* @__PURE__ */ React3.createElement(View, { className: "flex h-20 w-20 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500" }, "\u6682\u65E0\u56FE\u7247"), /* @__PURE__ */ React3.createElement(View, { className: "flex-1" }, /* @__PURE__ */ React3.createElement(Text, { className: "text-sm font-semibold" }, record.collection?.title || "\u753B\u96C6"), /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-slate-500" }, "\u6570\u91CF\uFF1A", record.quantity), /* @__PURE__ */ React3.createElement(Text, { className: "mt-1 block text-xs text-slate-500" }, "\u4EF7\u683C\uFF1A", formatPrice(record.collection?.price)), /* @__PURE__ */ React3.createElement(View, { className: "mt-2 flex items-center justify-between" }, /* @__PURE__ */ React3.createElement(Text, { className: "text-xs text-slate-500" }, "\u72B6\u6001\uFF1A", statusLabelMap[record.status] || record.status), /* @__PURE__ */ React3.createElement(Text, { className: "text-xs text-slate-400" }, record.createdAt?.slice(0, 10)))));
|
|
178
|
+
};
|
|
179
|
+
var HistoryRecordCard_default = HistoryRecordCard;
|
|
180
|
+
|
|
181
|
+
export { BookingSteps_default as BookingSteps, CartItemCard_default as CartItemCard, CategoryTabs_default as CategoryTabs, FormInput, FormTextarea, HistoryRecordCard_default as HistoryRecordCard, CollectionCard_default as MiniappCollectionCard, PageHeader_default as PageHeader };
|
|
182
|
+
//# sourceMappingURL=index.mjs.map
|
|
183
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/showmasterpiece/ui/miniapp/components/PageHeader.tsx","../../../../src/showmasterpiece/ui/miniapp/components/CategoryTabs.tsx","../../../../src/showmasterpiece/ui/miniapp/components/CollectionCard.tsx","../../../../src/showmasterpiece/ui/miniapp/components/BookingSteps.tsx","../../../../src/showmasterpiece/ui/miniapp/components/FormField.tsx","../../../../src/showmasterpiece/ui/miniapp/components/CartItemCard.tsx","../../../../src/showmasterpiece/ui/miniapp/components/HistoryRecordCard.tsx"],"names":["React","View","Text","Button","Image"],"mappings":"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","file":"index.mjs","sourcesContent":["import React from 'react';\nimport { Button, Text, View } from '@tarojs/components';\n\ntype HeaderAction = {\n label: string;\n onClick: () => void;\n variant?: 'primary' | 'ghost';\n};\n\ntype HeaderCta = {\n label: string;\n onClick: () => void;\n};\n\ninterface PageHeaderProps {\n title: string;\n subtitle?: string;\n actions?: HeaderAction[];\n cta?: HeaderCta;\n}\n\nconst PageHeader: React.FC<PageHeaderProps> = ({ title, subtitle, actions, cta }) => {\n return (\n <View className=\"mx-4 mt-6 rounded-3xl bg-white px-5 py-5 shadow-xl\">\n <View className=\"flex items-start justify-between\">\n <View>\n <Text className=\"text-xl font-semibold\">{title}</Text>\n {subtitle && <Text className=\"mt-2 block text-sm text-slate-500\">{subtitle}</Text>}\n </View>\n {actions && actions.length > 0 && (\n <View className=\"flex flex-col items-end gap-2\">\n {actions.map(action => (\n <Button\n key={action.label}\n className={\n action.variant === 'ghost'\n ? 'h-8 rounded-full border border-slate-200 bg-white px-4 text-xs font-semibold text-slate-700'\n : 'h-8 rounded-full bg-slate-900 px-4 text-xs font-semibold text-white'\n }\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </View>\n )}\n </View>\n {cta && (\n <Button\n className=\"mt-4 h-10 w-32 rounded-full bg-slate-900 text-sm font-semibold text-white\"\n onClick={cta.onClick}\n >\n {cta.label}\n </Button>\n )}\n </View>\n );\n};\n\nexport default PageHeader;\n","import React from 'react';\nimport { ScrollView, Text, View } from '@tarojs/components';\n\nexport type CategoryTabItem<T extends string = string> = {\n value: T;\n label: string;\n};\n\ninterface CategoryTabsProps<T extends string = string> {\n items: CategoryTabItem<T>[];\n activeValue: T;\n onChange: (value: T) => void;\n}\n\nfunction CategoryTabs<T extends string = string>({\n items,\n activeValue,\n onChange\n}: CategoryTabsProps<T>) {\n return (\n <ScrollView scrollX className=\"mt-3\" showScrollbar={false}>\n <View className=\"flex gap-2 pb-2\">\n {items.map(item => (\n <View\n key={item.value}\n className={`rounded-full px-4 py-2 text-xs ${\n activeValue === item.value\n ? 'bg-slate-900 text-white'\n : 'bg-white text-slate-600 shadow-md'\n }`}\n onClick={() => onChange(item.value)}\n >\n <Text>{item.label}</Text>\n </View>\n ))}\n </View>\n </ScrollView>\n );\n}\n\nexport default CategoryTabs;\n","import React from 'react';\nimport { Button, Image, Text, View } from '@tarojs/components';\nimport type { ArtCollection, CollectionCategoryType } from '../../../types';\nimport { formatPrice } from '../../../logic/shared/format';\nimport { getCategoryLabel } from '../../../logic/shared/category';\n\ntype ActionButton = {\n label: string;\n onClick: () => void;\n variant?: 'primary' | 'ghost';\n};\n\ntype CollectionLike = Pick<\n ArtCollection,\n 'id' | 'title' | 'number' | 'coverImage' | 'price'\n> & {\n description?: string;\n category?: CollectionCategoryType;\n};\n\ninterface CollectionCardProps {\n collection: CollectionLike;\n actions?: ActionButton[];\n showCategory?: boolean;\n showDescription?: boolean;\n variant?: 'default' | 'compact';\n}\n\nconst CollectionCard: React.FC<CollectionCardProps> = ({\n collection,\n actions,\n showCategory = true,\n showDescription = true,\n variant = 'default'\n}) => {\n const isCompact = variant === 'compact';\n return (\n <View className=\"overflow-hidden rounded-3xl bg-white shadow-xl\">\n {collection.coverImage ? (\n <Image\n src={collection.coverImage}\n mode=\"aspectFill\"\n className={isCompact ? 'h-24 w-24 rounded-2xl' : 'h-44 w-full'}\n />\n ) : (\n <View\n className={\n isCompact\n ? 'flex h-24 w-24 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500'\n : 'flex h-44 items-center justify-center bg-slate-200 text-sm text-slate-500'\n }\n >\n 暂无图片\n </View>\n )}\n <View className={isCompact ? 'flex-1 px-3 py-1' : 'px-4 py-4'}>\n <View className=\"flex items-center justify-between gap-2\">\n <Text className={isCompact ? 'text-sm font-semibold' : 'text-base font-semibold'}>\n {collection.title}\n </Text>\n {showCategory && !isCompact && (\n <Text className=\"rounded-full bg-slate-100 px-3 py-1 text-xs text-slate-600\">\n {getCategoryLabel(collection.category)}\n </Text>\n )}\n </View>\n {showDescription && collection.description && !isCompact && (\n <Text className=\"mt-2 block text-xs text-slate-500\">{collection.description}</Text>\n )}\n <Text className=\"mt-1 block text-xs text-slate-500\">编号:{collection.number}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">\n 价格:{formatPrice(collection.price)}\n </Text>\n {actions && actions.length > 0 && (\n <View className={isCompact ? 'mt-2 flex gap-2' : 'mt-4 flex gap-2'}>\n {actions.map(action => (\n <Button\n key={action.label}\n className={\n action.variant === 'ghost'\n ? 'h-8 rounded-full border border-slate-200 bg-white px-4 text-xs font-semibold text-slate-700'\n : 'h-8 rounded-full bg-slate-900 px-4 text-xs font-semibold text-white'\n }\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </View>\n )}\n </View>\n </View>\n );\n};\n\nexport default CollectionCard;\n","import React from 'react';\nimport { Text, View } from '@tarojs/components';\n\ninterface BookingStepsProps {\n step: 'select' | 'form';\n}\n\nconst BookingSteps: React.FC<BookingStepsProps> = ({ step }) => {\n return (\n <View className=\"mx-4 mt-4 flex items-center gap-3\">\n <View\n className={`flex items-center gap-2 rounded-full px-4 py-2 text-xs ${\n step === 'select' ? 'bg-slate-900 text-white' : 'bg-white text-slate-600'\n }`}\n >\n <Text>{step === 'select' ? '1' : '✓'}</Text>\n <Text>选择画集</Text>\n </View>\n <View className=\"h-px flex-1 bg-slate-200\" />\n <View\n className={`flex items-center gap-2 rounded-full px-4 py-2 text-xs ${\n step === 'form' ? 'bg-slate-900 text-white' : 'bg-white text-slate-600'\n }`}\n >\n <Text>2</Text>\n <Text>填写信息</Text>\n </View>\n </View>\n );\n};\n\nexport default BookingSteps;\n","import React from 'react';\nimport { Input, Text, Textarea, View } from '@tarojs/components';\n\ninterface BaseFieldProps {\n label: string;\n value: string;\n placeholder?: string;\n disabled?: boolean;\n error?: string;\n type?: 'text' | 'number';\n}\n\ninterface FormInputProps extends BaseFieldProps {\n onChange: (value: string) => void;\n}\n\ninterface FormTextareaProps extends BaseFieldProps {\n onChange: (value: string) => void;\n}\n\nexport const FormInput: React.FC<FormInputProps> = ({\n label,\n value,\n placeholder,\n disabled,\n error,\n type = 'text',\n onChange\n}) => {\n return (\n <View className=\"mt-4\">\n <Text className=\"text-xs text-slate-600\">{label}</Text>\n <Input\n value={value}\n placeholder={placeholder}\n onInput={(event: { detail: { value: string } }) => onChange(event.detail.value)}\n className={`mt-2 h-10 w-full rounded-xl border px-3 text-sm ${\n error ? 'border-rose-400' : 'border-slate-200'\n }`}\n disabled={disabled}\n type={type}\n />\n {error && <Text className=\"mt-1 block text-xs text-rose-500\">{error}</Text>}\n </View>\n );\n};\n\nexport const FormTextarea: React.FC<FormTextareaProps> = ({\n label,\n value,\n placeholder,\n disabled,\n error,\n onChange\n}) => {\n return (\n <View className=\"mt-4\">\n <Text className=\"text-xs text-slate-600\">{label}</Text>\n <Textarea\n value={value}\n placeholder={placeholder}\n onInput={(event: { detail: { value: string } }) => onChange(event.detail.value)}\n className={`mt-2 min-h-24 w-full rounded-xl border px-3 py-2 text-sm ${\n error ? 'border-rose-400' : 'border-slate-200'\n }`}\n disabled={disabled}\n />\n {error && <Text className=\"mt-1 block text-xs text-rose-500\">{error}</Text>}\n </View>\n );\n};\n","import React from 'react';\nimport { Button, Image, Text, View } from '@tarojs/components';\nimport type { CartItem } from '../../../types/cart';\nimport { formatPrice } from '../../../logic/shared/format';\n\ninterface CartItemCardProps {\n item: CartItem;\n onIncrease: () => void;\n onDecrease: () => void;\n onRemove: () => void;\n}\n\nconst CartItemCard: React.FC<CartItemCardProps> = ({ item, onIncrease, onDecrease, onRemove }) => {\n return (\n <View className=\"flex gap-3 rounded-2xl bg-white p-3 shadow-md\">\n {item.collection.coverImage ? (\n <Image\n src={item.collection.coverImage}\n mode=\"aspectFill\"\n className=\"h-20 w-20 rounded-2xl\"\n />\n ) : (\n <View className=\"flex h-20 w-20 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500\">\n 暂无图片\n </View>\n )}\n <View className=\"flex-1\">\n <Text className=\"text-sm font-semibold\">{item.collection.title}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">编号:{item.collection.number}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">\n 价格:{formatPrice(item.collection.price)}\n </Text>\n <View className=\"mt-3 flex items-center gap-2\">\n <Button\n className=\"h-8 w-8 rounded-full border border-slate-200 bg-white text-base text-slate-700\"\n onClick={onDecrease}\n >\n -\n </Button>\n <Text className=\"text-sm font-semibold\">{item.quantity}</Text>\n <Button\n className=\"h-8 w-8 rounded-full border border-slate-200 bg-white text-base text-slate-700\"\n onClick={onIncrease}\n >\n +\n </Button>\n <Button\n className=\"ml-auto h-8 rounded-full border border-rose-200 bg-rose-50 px-3 text-xs text-rose-600\"\n onClick={onRemove}\n >\n 移除\n </Button>\n </View>\n </View>\n </View>\n );\n};\n\nexport default CartItemCard;\n","import React from 'react';\nimport { Image, Text, View } from '@tarojs/components';\nimport type { Booking } from '../../../types/booking';\nimport { formatPrice } from '../../../logic/shared/format';\n\nconst statusLabelMap: Record<string, string> = {\n pending: '待确认',\n confirmed: '已确认',\n completed: '已完成',\n cancelled: '已取消'\n};\n\ninterface HistoryRecordCardProps {\n record: Booking;\n}\n\nconst HistoryRecordCard: React.FC<HistoryRecordCardProps> = ({ record }) => {\n return (\n <View className=\"flex gap-3 rounded-2xl bg-white p-3 shadow-md\">\n {record.collection?.coverImage ? (\n <Image\n src={record.collection.coverImage}\n mode=\"aspectFill\"\n className=\"h-20 w-20 rounded-2xl\"\n />\n ) : (\n <View className=\"flex h-20 w-20 items-center justify-center rounded-2xl bg-slate-200 text-xs text-slate-500\">\n 暂无图片\n </View>\n )}\n <View className=\"flex-1\">\n <Text className=\"text-sm font-semibold\">{record.collection?.title || '画集'}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">数量:{record.quantity}</Text>\n <Text className=\"mt-1 block text-xs text-slate-500\">\n 价格:{formatPrice(record.collection?.price)}\n </Text>\n <View className=\"mt-2 flex items-center justify-between\">\n <Text className=\"text-xs text-slate-500\">\n 状态:{statusLabelMap[record.status] || record.status}\n </Text>\n <Text className=\"text-xs text-slate-400\">{record.createdAt?.slice(0, 10)}</Text>\n </View>\n </View>\n </View>\n );\n};\n\nexport default HistoryRecordCard;\n"]}
|