@quantabit/order-sdk 1.0.0
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/LICENSE +21 -0
- package/README.md +138 -0
- package/dist/index.cjs +1349 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +1322 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/styles.css +1 -0
- package/package.json +96 -0
- package/types/index.d.ts +260 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/services/orderApi.js","../src/i18n/index.js","../src/types/index.js","../src/context/OrderContext.jsx","../src/components/OrderCard.jsx","../src/components/OrderList.jsx","../src/utils/chainAnchor.js"],"sourcesContent":["/**\n * Order SDK - API 客户端\n * 订单系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 订单 API 客户端\n */\nexport class OrderApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/order', config);\n }\n\n // ============ 订单查询 ============\n\n /**\n * 获取订单列表\n * @param {Object} params - 查询参数\n */\n async getOrders(params = {}) {\n return this.get('/list', params);\n }\n\n /**\n * 获取订单详情\n * @param {string} orderId - 订单 ID\n */\n async getOrder(orderId) {\n return this.get(`/${orderId}`);\n }\n\n /**\n * 按状态查询订单\n * @param {string} status - 订单状态\n * @param {Object} params - 查询参数\n */\n async getOrdersByStatus(status, params = {}) {\n return this.get('/list', { status, ...params });\n }\n\n // ============ 订单创建 ============\n\n /**\n * 创建订单\n * @param {Object} data - 订单数据\n */\n async create(data) {\n return this.post('/', data);\n }\n\n /**\n * 预创建订单(获取价格等信息)\n * @param {Object} data - 订单数据\n */\n async preCreate(data) {\n return this.post('/pre-create', data);\n }\n\n // ============ 订单操作 ============\n\n /**\n * 取消订单\n * @param {string} orderId - 订单 ID\n * @param {string} reason - 取消原因\n */\n async cancel(orderId, reason = '') {\n return this.post(`/${orderId}/cancel`, { reason });\n }\n\n /**\n * 确认收货\n * @param {string} orderId - 订单 ID\n */\n async confirm(orderId) {\n return this.post(`/${orderId}/confirm`);\n }\n\n /**\n * 申请退款\n * @param {string} orderId - 订单 ID\n * @param {Object} data - 退款数据\n */\n async requestRefund(orderId, data) {\n return this.post(`/${orderId}/refund`, data);\n }\n\n /**\n * 取消退款申请\n * @param {string} orderId - 订单 ID\n */\n async cancelRefund(orderId) {\n return this.post(`/${orderId}/refund/cancel`);\n }\n\n /**\n * 延长收货时间\n * @param {string} orderId - 订单 ID\n */\n async extendConfirmTime(orderId) {\n return this.post(`/${orderId}/extend`);\n }\n\n // ============ 订单支付 ============\n\n /**\n * 获取支付信息\n * @param {string} orderId - 订单 ID\n */\n async getPaymentInfo(orderId) {\n return this.get(`/${orderId}/payment`);\n }\n\n /**\n * 发起支付\n * @param {string} orderId - 订单 ID\n * @param {Object} paymentData - 支付数据\n */\n async pay(orderId, paymentData) {\n return this.post(`/${orderId}/pay`, paymentData);\n }\n\n /**\n * 查询支付状态\n * @param {string} orderId - 订单 ID\n */\n async getPaymentStatus(orderId) {\n return this.get(`/${orderId}/payment/status`);\n }\n\n // ============ 链上证明 ============\n\n /**\n * 提交订单链上交易哈希\n * @param {string} orderId - 订单 ID\n * @param {string} txHash - QBit 主网交易哈希\n * @param {Object} data - 附加提交数据\n */\n async submitChainTx(orderId, txHash, data = {}) {\n return this.post(`/${orderId}/chain/submit`, {\n tx_hash: txHash,\n chain: 'qbit',\n network: 'mainnet',\n ...data,\n });\n }\n\n /**\n * 查询订单链上确认状态\n * @param {string} orderId - 订单 ID\n */\n async getChainStatus(orderId) {\n return this.get(`/${orderId}/chain/status`);\n }\n\n // ============ 物流信息 ============\n\n /**\n * 获取物流信息\n * @param {string} orderId - 订单 ID\n */\n async getShippingInfo(orderId) {\n return this.get(`/${orderId}/shipping`);\n }\n\n /**\n * 获取物流轨迹\n * @param {string} orderId - 订单 ID\n */\n async getShippingTrack(orderId) {\n return this.get(`/${orderId}/shipping/track`);\n }\n\n // ============ 评价 ============\n\n /**\n * 提交评价\n * @param {string} orderId - 订单 ID\n * @param {Object} review - 评价数据\n */\n async submitReview(orderId, review) {\n return this.post(`/${orderId}/review`, review);\n }\n\n /**\n * 获取订单评价\n * @param {string} orderId - 订单 ID\n */\n async getReview(orderId) {\n return this.get(`/${orderId}/review`);\n }\n\n // ============ 订单统计 ============\n\n /**\n * 获取订单统计\n */\n async getStats() {\n return this.get('/stats');\n }\n\n /**\n * 获取各状态订单数量\n */\n async getStatusCounts() {\n return this.get('/status-counts');\n }\n\n // ============ 平台订单同步 (QuantaBit) ============\n\n /**\n * 同步平台订单到 QuantaBit\n * @param {Object} data - 订单数据\n * @param {string} data.app_id - 来源应用 ID\n * @param {string} data.app_order_id - 应用内订单 ID\n * @param {string} data.title - 订单标题\n * @param {number} data.amount - 订单金额\n * @param {string} [data.currency] - 货币类型\n * @param {string} [data.buyer_did] - 买家 DID\n * @param {string} [data.seller_did] - 卖家 DID\n * @param {string} [data.status] - 订单状态\n * @param {Object} [data.metadata] - 额外元数据\n */\n async syncToQbitDid(data) {\n return this.post('/platform-orders/sync', data, {\n baseURL: this.config?.qbitDidApiUrl || this.baseURL.replace('/order', ''),\n });\n }\n\n /**\n * 同步支付结果到 QuantaBit\n * @param {Object} data - 支付数据\n * @param {string} data.app_id - 来源应用 ID\n * @param {string} data.app_order_id - 应用内订单 ID\n * @param {string} data.payment_method - 支付方式\n * @param {number} data.amount - 支付金额\n * @param {string} [data.status] - 支付状态\n * @param {string} [data.user_did] - 用户 DID\n */\n async syncPaymentToQbitDid(data) {\n return this.post('/platform-orders/sync-payment', data, {\n baseURL: this.config?.qbitDidApiUrl || this.baseURL.replace('/order', ''),\n });\n }\n\n /**\n * 从 QuantaBit 获取订单\n * @param {string} appId - 应用 ID\n * @param {string} appOrderId - 应用内订单 ID\n */\n async getFromQbitDid(appId, appOrderId) {\n return this.get(`/platform-orders/by-app/${appId}/${appOrderId}`, {}, {\n baseURL: this.config?.qbitDidApiUrl || this.baseURL.replace('/order', ''),\n });\n }\n\n /**\n * 从 QuantaBit 获取订单列表\n * @param {Object} params - 查询参数\n * @param {string} [params.app_id] - 应用 ID\n * @param {string} [params.user_did] - 用户 DID\n * @param {string} [params.status] - 状态\n */\n async listFromQbitDid(params = {}) {\n return this.get('/platform-orders/list', params, {\n baseURL: this.config?.qbitDidApiUrl || this.baseURL.replace('/order', ''),\n });\n }\n\n /**\n * 扣减 QuantaBit 积分\n * @param {Object} data - 扣减数据\n * @param {string} data.app_id - 应用 ID\n * @param {number} data.points - 积分数量\n * @param {string} [data.user_did] - 用户 DID\n * @param {string} [data.order_id] - 关联订单 ID\n * @param {string} [data.reason] - 扣减原因\n */\n async deductQbitDidPoints(data) {\n return this.post('/platform-orders/deduct-points', data, {\n baseURL: this.config?.qbitDidApiUrl || this.baseURL.replace('/order', ''),\n });\n }\n\n /**\n * 同步交易流水到 QuantaBit\n * @param {Object} data - 交易数据\n * @param {string} data.app_id - 应用 ID\n * @param {string} data.tx_type - 交易类型\n * @param {number} data.amount - 金额\n * @param {string} data.title - 交易标题\n * @param {string} [data.user_did] - 用户 DID\n */\n async syncTransactionToQbitDid(data) {\n return this.post('/platform-orders/sync-transaction', data, {\n baseURL: this.config?.qbitDidApiUrl || this.baseURL.replace('/order', ''),\n });\n }\n}\n\n// 创建默认实例\nexport const orderApi = new OrderApiClient();\n\n\n\nexport default orderApi;\n","/**\n * Order SDK - 国际化 i18n\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n loading: '加载中...',\n order: '订单',\n orders: '订单列表',\n myOrders: '我的订单',\n orderDetail: '订单详情',\n createOrder: '创建订单',\n \n // 订单状态\n statusPending: '待支付',\n statusPaid: '已支付',\n statusProcessing: '处理中',\n statusShipped: '已发货',\n statusDelivered: '已送达',\n statusCompleted: '已完成',\n statusCancelled: '已取消',\n statusRefunding: '退款中',\n statusRefunded: '已退款',\n \n // 订单类型\n typeGoods: '商品订单',\n typeService: '服务订单',\n typeVirtual: '虚拟商品',\n typeSubscription: '订阅订单',\n \n // 金额\n subtotal: '商品金额',\n shipping: '运费',\n discount: '优惠',\n total: '合计',\n actualPay: '实付款',\n \n // 商品\n items: '商品',\n quantity: '数量',\n unitPrice: '单价',\n \n // 操作\n pay: '去支付',\n cancel: '取消订单',\n confirmReceive: '确认收货',\n requestRefund: '申请退款',\n viewDetail: '查看详情',\n buyAgain: '再次购买',\n \n // 收货信息\n shippingAddress: '收货地址',\n receiver: '收货人',\n phone: '联系电话',\n \n // 提示\n noOrders: '暂无订单',\n cancelSuccess: '取消成功',\n paymentTimeout: '支付超时',\n confirmCancelOrder: '确定取消该订单?',\n payRemaining: '剩余支付时间',\n },\n \n en: {\n loading: 'Loading...',\n order: 'Order',\n orders: 'Orders',\n myOrders: 'My Orders',\n orderDetail: 'Order Detail',\n createOrder: 'Create Order',\n \n statusPending: 'Pending',\n statusPaid: 'Paid',\n statusProcessing: 'Processing',\n statusShipped: 'Shipped',\n statusDelivered: 'Delivered',\n statusCompleted: 'Completed',\n statusCancelled: 'Cancelled',\n statusRefunding: 'Refunding',\n statusRefunded: 'Refunded',\n \n typeGoods: 'Product',\n typeService: 'Service',\n typeVirtual: 'Virtual',\n typeSubscription: 'Subscription',\n \n subtotal: 'Subtotal',\n shipping: 'Shipping',\n discount: 'Discount',\n total: 'Total',\n actualPay: 'Amount Paid',\n \n items: 'Items',\n quantity: 'Qty',\n unitPrice: 'Price',\n \n pay: 'Pay Now',\n cancel: 'Cancel',\n confirmReceive: 'Confirm Receipt',\n requestRefund: 'Refund',\n viewDetail: 'Details',\n buyAgain: 'Buy Again',\n \n shippingAddress: 'Shipping Address',\n receiver: 'Receiver',\n phone: 'Phone',\n \n noOrders: 'No orders',\n cancelSuccess: 'Cancelled',\n paymentTimeout: 'Payment timeout',\n confirmCancelOrder: 'Cancel this order?',\n payRemaining: 'Time remaining',\n },\n \n ja: {\n loading: '読み込み中...',\n order: '注文',\n orders: '注文リスト',\n myOrders: 'マイオーダー',\n orderDetail: '注文詳細',\n createOrder: '注文を作成',\n \n statusPending: '支払い待ち',\n statusPaid: '支払い済み',\n statusProcessing: '処理中',\n statusShipped: '発送済み',\n statusDelivered: '配達済み',\n statusCompleted: '完了',\n statusCancelled: 'キャンセル',\n statusRefunding: '返金中',\n statusRefunded: '返金済み',\n \n typeGoods: '商品注文',\n typeService: 'サービス注文',\n typeVirtual: 'デジタル商品',\n typeSubscription: 'サブスクリプション',\n \n subtotal: '小計',\n shipping: '送料',\n discount: '割引',\n total: '合計',\n actualPay: '実際の支払い',\n \n items: '商品',\n quantity: '数量',\n unitPrice: '単価',\n \n pay: '支払いへ',\n cancel: '注文キャンセル',\n confirmReceive: '受取確認',\n requestRefund: '返金申請',\n viewDetail: '詳細を見る',\n buyAgain: '再度購入',\n \n shippingAddress: 'お届け先',\n receiver: '受取人',\n phone: '電話番号',\n \n noOrders: '注文はありません',\n cancelSuccess: 'キャンセル成功',\n paymentTimeout: '支払いタイムアウト',\n confirmCancelOrder: 'この注文をキャンセルしますか?',\n payRemaining: '支払い残り時間',\n },\n \n ko: {\n loading: '로딩 중...',\n order: '주문',\n orders: '주문 목록',\n myOrders: '내 주문',\n orderDetail: '주문 상세',\n createOrder: '주문 생성',\n \n statusPending: '결제 대기',\n statusPaid: '결제 완료',\n statusProcessing: '처리 중',\n statusShipped: '배송 중',\n statusDelivered: '배송 완료',\n statusCompleted: '완료됨',\n statusCancelled: '취소됨',\n statusRefunding: '환불 중',\n statusRefunded: '환불 완료',\n \n typeGoods: '상품 주문',\n typeService: '서비스 주문',\n typeVirtual: '디지털 상품',\n typeSubscription: '구독 주문',\n \n subtotal: '소계',\n shipping: '배송비',\n discount: '할인',\n total: '합계',\n actualPay: '실 결제액',\n \n items: '상품',\n quantity: '수량',\n unitPrice: '단가',\n \n pay: '결제하기',\n cancel: '주문 취소',\n confirmReceive: '수취 확인',\n requestRefund: '환불 신청',\n viewDetail: '상세 보기',\n buyAgain: '다시 구매',\n \n shippingAddress: '배송지',\n receiver: '수취인',\n phone: '전화번호',\n \n noOrders: '주문 내역이 없습니다',\n cancelSuccess: '취소 성공',\n paymentTimeout: '결제 시간 초과',\n confirmCancelOrder: '이 주문을 취소하시겠습니까?',\n payRemaining: '남은 결제 시간',\n },\n};\n\nlet currentLanguage = 'zh';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) {\n currentLanguage = lang;\n if (typeof window !== 'undefined') {\n localStorage.setItem('qbit_did_order_language', lang);\n }\n }\n}\n\nexport function getLanguage() {\n if (typeof window !== 'undefined') {\n const saved = localStorage.getItem('qbit_did_order_language');\n if (saved && SUPPORTED_LANGUAGES.includes(saved)) {\n currentLanguage = saved;\n }\n }\n return currentLanguage;\n}\n\nexport function t(key, params) {\n const msgs = messages[getLanguage()] || messages.zh;\n let text = msgs[key] || key;\n if (params) {\n Object.keys(params).forEach(k => {\n text = text.replace(new RegExp(`\\\\{${k}\\\\}`, 'g'), params[k]);\n });\n }\n return text;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","/**\n * Order SDK - 类型定义\n */\n\n// 订单状态\nexport const OrderStatus = {\n PENDING: 'pending', // 待支付\n PAID: 'paid', // 已支付\n PROCESSING: 'processing', // 处理中\n SHIPPED: 'shipped', // 已发货\n DELIVERED: 'delivered', // 已送达\n COMPLETED: 'completed', // 已完成\n CANCELLED: 'cancelled', // 已取消\n REFUNDING: 'refunding', // 退款中\n REFUNDED: 'refunded', // 已退款\n};\n\n// 订单类型\nexport const OrderType = {\n GOODS: 'goods', // 实物商品\n SERVICE: 'service', // 服务\n VIRTUAL: 'virtual', // 虚拟商品\n SUBSCRIPTION: 'subscription', // 订阅\n};\n\n// 支付方式\nexport const PaymentMethod = {\n BALANCE: 'balance', // 余额\n POINTS: 'points', // 积分\n ALIPAY: 'alipay', // 支付宝\n WECHAT: 'wechat', // 微信\n CRYPTO: 'crypto', // 加密货币\n CARD: 'card', // 银行卡\n};\n\n/**\n * 创建默认订单\n */\nexport function createDefaultOrder(overrides = {}) {\n return {\n id: null,\n order_no: '', // 订单号\n user_did: null,\n type: OrderType.GOODS,\n status: OrderStatus.PENDING,\n items: [], // 订单商品\n subtotal: 0, // 商品小计\n shipping_fee: 0, // 运费\n discount_amount: 0, // 优惠金额\n total_amount: 0, // 总金额\n actual_amount: 0, // 实付金额\n currency: 'CNY',\n payment_method: null,\n paid_at: null,\n shipping_address: null,\n remark: '',\n expire_at: null, // 支付过期时间\n created_at: null,\n ...overrides,\n };\n}\n\n/**\n * 创建默认订单项\n */\nexport function createDefaultOrderItem(overrides = {}) {\n return {\n id: null,\n product_id: null,\n product_name: '',\n product_image: null,\n sku_id: null,\n sku_name: '',\n unit_price: 0,\n quantity: 1,\n total_price: 0,\n ...overrides,\n };\n}\n\n/**\n * 获取状态显示文本\n */\nexport function getStatusText(status, language = 'zh') {\n const texts = {\n zh: {\n [OrderStatus.PENDING]: '待支付',\n [OrderStatus.PAID]: '已支付',\n [OrderStatus.PROCESSING]: '处理中',\n [OrderStatus.SHIPPED]: '已发货',\n [OrderStatus.DELIVERED]: '已送达',\n [OrderStatus.COMPLETED]: '已完成',\n [OrderStatus.CANCELLED]: '已取消',\n [OrderStatus.REFUNDING]: '退款中',\n [OrderStatus.REFUNDED]: '已退款',\n },\n en: {\n [OrderStatus.PENDING]: 'Pending',\n [OrderStatus.PAID]: 'Paid',\n [OrderStatus.PROCESSING]: 'Processing',\n [OrderStatus.SHIPPED]: 'Shipped',\n [OrderStatus.DELIVERED]: 'Delivered',\n [OrderStatus.COMPLETED]: 'Completed',\n [OrderStatus.CANCELLED]: 'Cancelled',\n [OrderStatus.REFUNDING]: 'Refunding',\n [OrderStatus.REFUNDED]: 'Refunded',\n },\n };\n return texts[language]?.[status] || status;\n}\n\n/**\n * 计算支付剩余时间\n */\nexport function getPaymentRemaining(expireAt) {\n if (!expireAt) return null;\n const now = new Date();\n const expire = new Date(expireAt);\n const diff = expire - now;\n \n if (diff <= 0) return { expired: true, minutes: 0, seconds: 0 };\n \n return {\n expired: false,\n minutes: Math.floor(diff / 60000),\n seconds: Math.floor((diff % 60000) / 1000),\n };\n}\n\n/**\n * 格式化金额\n */\nexport function formatPrice(amount, currency = 'CNY') {\n const symbols = { CNY: '¥', USD: '$', EUR: '€' };\n const symbol = symbols[currency] || '';\n return `${symbol}${parseFloat(amount).toFixed(2)}`;\n}\n\n/**\n * 检查订单是否可取消\n */\nexport function canCancel(order) {\n return order.status === OrderStatus.PENDING;\n}\n\n/**\n * 检查订单是否可支付\n */\nexport function canPay(order) {\n if (order.status !== OrderStatus.PENDING) return false;\n if (order.expire_at && new Date(order.expire_at) < new Date()) return false;\n return true;\n}\n","/**\n * Order SDK - Context Provider\n */\n\nimport React, { createContext, useContext, useState, useCallback, useEffect } from 'react';\nimport { orderApi } from '../services/orderApi';\nimport { setLanguage } from '../i18n';\nimport { OrderStatus } from '../types';\n\nconst OrderContext = createContext(null);\n\nexport function OrderProvider({\n children,\n apiUrl,\n token,\n language = 'zh',\n onOrderCreate,\n onOrderPay,\n}) {\n const [orders, setOrders] = useState([]);\n const [currentOrder, setCurrentOrder] = useState(null);\n const [stats, setStats] = useState(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n setLanguage(language);\n }, [language]);\n\n const handleError = useCallback((err) => {\n setError(err);\n onError?.(err);\n }, [onError]);\n\n const createOrder = useCallback(async (data) => {\n setLoading(true);\n try {\n const result = await orderApi.create(data);\n onOrderCreate?.(result);\n return result;\n } catch (err) {\n handleError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [handleError, onOrderCreate]);\n\n const loadOrders = useCallback(async (params = {}) => {\n setLoading(true);\n try {\n const result = await orderApi.getList(params);\n const items = result.items || result.data || result || [];\n setOrders(items);\n return items;\n } catch (err) {\n handleError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [handleError]);\n\n const loadOrder = useCallback(async (orderId) => {\n setLoading(true);\n try {\n const result = await orderApi.getDetail(orderId);\n setCurrentOrder(result);\n return result;\n } catch (err) {\n handleError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [handleError]);\n\n const cancelOrder = useCallback(async (orderId, reason) => {\n setLoading(true);\n try {\n await orderApi.cancel(orderId, reason);\n await loadOrders();\n } catch (err) {\n handleError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [loadOrders, handleError]);\n\n const payOrder = useCallback(async (orderId, paymentMethod) => {\n setLoading(true);\n try {\n const result = await orderApi.pay(orderId, paymentMethod);\n onOrderPay?.(result);\n return result;\n } catch (err) {\n handleError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [handleError, onOrderPay]);\n\n const confirmReceive = useCallback(async (orderId) => {\n setLoading(true);\n try {\n await orderApi.confirmReceive(orderId);\n await loadOrders();\n } catch (err) {\n handleError(err);\n throw err;\n } finally {\n setLoading(false);\n }\n }, [loadOrders, handleError]);\n\n const loadStats = useCallback(async () => {\n try {\n const result = await orderApi.getStats();\n setStats(result);\n return result;\n } catch (err) {\n handleError(err);\n }\n }, [handleError]);\n\n // 按状态过滤订单\n const getOrdersByStatus = useCallback((status) => {\n if (!status || status === 'all') return orders;\n return orders.filter(o => o.status === status);\n }, [orders]);\n\n const value = {\n orders,\n currentOrder,\n stats,\n loading,\n error,\n createOrder,\n loadOrders,\n loadOrder,\n cancelOrder,\n payOrder,\n confirmReceive,\n loadStats,\n getOrdersByStatus,\n api: orderApi,\n };\n\n return (\n <OrderContext.Provider value={value}>\n {children}\n </OrderContext.Provider>\n );\n}\n\nexport function useOrder() {\n const context = useContext(OrderContext);\n if (!context) {\n throw new Error('useOrder must be used within a OrderProvider');\n }\n return context;\n}\n\nexport default OrderContext;\n","import React from 'react';\nimport { t } from '../i18n';\n\n/**\n * Order SDK - OrderCard\n * 高品质玻璃拟态订单卡片组件\n */\nexport function OrderCard({ order = {}, onClick, className = '' }) {\n const {\n id = 'ORD-00000',\n status = 'pending',\n date = new Date().toISOString(),\n total = 0,\n currency = 'USD',\n items = [],\n } = order;\n\n const statusColors = {\n pending: { bg: 'rgba(255,237,213,0.8)', text: '#C2410C', border: 'rgba(255,237,213,1)', label: t('statusPending'), icon: '⏳' },\n paid: { bg: 'rgba(220,252,231,0.8)', text: '#15803D', border: 'rgba(220,252,231,1)', label: t('statusPaid'), icon: '💳' },\n shipped: { bg: 'rgba(219,234,254,0.8)', text: '#1D4ED8', border: 'rgba(219,234,254,1)', label: t('statusShipped'), icon: '🚚' },\n completed: { bg: 'rgba(241,245,249,0.8)', text: '#475569', border: 'rgba(226,232,240,1)', label: t('statusCompleted'), icon: '✅' },\n cancelled: { bg: 'rgba(254,226,226,0.8)', text: '#B91C1C', border: 'rgba(254,226,226,1)', label: t('statusCancelled'), icon: '❌' }\n };\n\n const currStatus = statusColors[status] || statusColors.pending;\n\n return (\n <div \n onClick={() => onClick?.(order)}\n className={`eco-order-card ${className}`}\n style={{\n background: 'rgba(255, 255, 255, 0.65)',\n backdropFilter: 'blur(24px)',\n WebkitBackdropFilter: 'blur(24px)',\n borderRadius: '24px',\n border: '1px solid rgba(255, 255, 255, 0.8)',\n boxShadow: '0 10px 30px -10px rgba(0, 0, 0, 0.05), inset 0 0 0 1px rgba(255,255,255,0.5)',\n padding: '24px',\n cursor: onClick ? 'pointer' : 'default',\n transition: 'all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n display: 'flex',\n flexDirection: 'column',\n gap: '20px',\n position: 'relative',\n overflow: 'hidden'\n }}\n onMouseEnter={(e) => {\n if(onClick) {\n e.currentTarget.style.transform = 'translateY(-4px) scale(1.01)';\n e.currentTarget.style.boxShadow = '0 20px 40px -12px rgba(0, 0, 0, 0.08), inset 0 0 0 1px rgba(255,255,255,0.8)';\n e.currentTarget.style.background = 'rgba(255, 255, 255, 0.85)';\n }\n }}\n onMouseLeave={(e) => {\n if(onClick) {\n e.currentTarget.style.transform = 'none';\n e.currentTarget.style.boxShadow = '0 10px 30px -10px rgba(0, 0, 0, 0.05), inset 0 0 0 1px rgba(255,255,255,0.5)';\n e.currentTarget.style.background = 'rgba(255, 255, 255, 0.65)';\n }\n }}\n >\n <div style={{ position: 'absolute', top: '-30px', right: '-30px', width: '100px', height: '100px', background: currStatus.text, opacity: 0.05, filter: 'blur(40px)', borderRadius: '50%', pointerEvents: 'none' }} />\n \n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '6px' }}>\n <span style={{ fontSize: '15px', color: '#0F172A', fontWeight: 800, letterSpacing: '-0.02em' }}>{t('order')} {id}</span>\n <span style={{ fontSize: '12px', color: '#64748B', fontWeight: 500 }}>{new Date(date).toLocaleString()}</span>\n </div>\n <span style={{\n padding: '6px 12px',\n borderRadius: '12px',\n fontSize: '12px',\n fontWeight: 700,\n background: currStatus.bg,\n color: currStatus.text,\n border: `1px solid ${currStatus.border}`,\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n boxShadow: '0 2px 8px rgba(0,0,0,0.02)'\n }}>\n <span>{currStatus.icon}</span> {currStatus.label}\n </span>\n </div>\n\n <div style={{ \n background: 'rgba(248, 250, 252, 0.6)', \n borderRadius: '16px', \n padding: '16px', \n display: 'flex', \n flexDirection: 'column', \n gap: '12px',\n border: '1px solid rgba(226,232,240,0.6)'\n }}>\n {items.slice(0, 2).map((item, i) => (\n <div key={i} style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', fontSize: '14px' }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px', maxWidth: '75%' }}>\n <div style={{ width: '32px', height: '32px', borderRadius: '8px', background: 'rgba(255,255,255,0.8)', border: '1px solid rgba(226,232,240,0.8)', display: 'flex', alignItems: 'center', justifyContent: 'center', flexShrink: 0, boxShadow: '0 2px 4px rgba(0,0,0,0.02)' }}>\n {item.image ? <img src={item.image} alt=\"\" style={{width: '24px', height: '24px', objectFit: 'cover', borderRadius: '4px'}} /> : '📦'}\n </div>\n <span style={{ color: '#334155', fontWeight: 600, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>\n {item.name || t('unknownItem')}\n </span>\n </div>\n <span style={{ color: '#64748B', fontWeight: 700, background: '#fff', padding: '2px 8px', borderRadius: '6px', border: '1px solid #E2E8F0', fontSize: '12px' }}>x{item.quantity || 1}</span>\n </div>\n ))}\n {items.length > 2 && (\n <div style={{ fontSize: '12px', color: '#64748B', marginTop: '4px', textAlign: 'center', fontWeight: 600, background: 'rgba(226,232,240,0.3)', padding: '6px', borderRadius: '8px' }}>\n {t('viewMoreItems', { count: items.length - 2 })}\n </div>\n )}\n {items.length === 0 && (\n <div style={{ fontSize: '13px', color: '#94A3B8', fontStyle: 'italic', textAlign: 'center', padding: '10px 0' }}>{t('noItems')}</div>\n )}\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', paddingTop: '16px', borderTop: '1px dashed rgba(203,213,225,0.8)' }}>\n <span style={{ fontSize: '14px', color: '#64748B', fontWeight: 600 }}>{t('total')}</span>\n <span style={{ fontSize: '20px', fontWeight: 900, color: '#0F172A', letterSpacing: '-0.02em' }}>\n {new Intl.NumberFormat('en-US', { style: 'currency', currency }).format(total)}\n </span>\n </div>\n </div>\n );\n}\n\nexport default OrderCard;\n","import React from 'react';\nimport { OrderCard } from './OrderCard';\nimport { t } from '../i18n';\n\n/**\n * Order SDK - OrderList\n * 订单列表展示组件\n */\nexport function OrderList({ orders = [], loading = false, onOrderClick, emptyText, className = '' }) {\n if (loading) {\n return (\n <div style={{\n padding: '80px 40px',\n textAlign: 'center',\n background: 'rgba(255, 255, 255, 0.65)',\n backdropFilter: 'blur(24px)',\n WebkitBackdropFilter: 'blur(24px)',\n borderRadius: '32px',\n border: '1px solid rgba(255, 255, 255, 0.8)',\n boxShadow: '0 20px 40px -10px rgba(0,0,0,0.05), inset 0 0 0 1px rgba(255,255,255,0.5)',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '20px'\n }}>\n <div style={{ width: '48px', height: '48px', border: '4px solid rgba(59, 130, 246, 0.2)', borderTopColor: '#3B82F6', borderRadius: '50%', animation: 'spin 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) infinite' }} />\n <div style={{ color: '#64748B', fontSize: '15px', fontWeight: 600 }}>{t('loading')}</div>\n <style>{`@keyframes spin { to { transform: rotate(360deg); } }`}</style>\n </div>\n );\n }\n\n if (!orders || orders.length === 0) {\n return (\n <div style={{\n padding: '80px 40px',\n textAlign: 'center',\n background: 'rgba(255,255,255,0.65)',\n backdropFilter: 'blur(24px)',\n WebkitBackdropFilter: 'blur(24px)',\n borderRadius: '32px',\n border: '1px dashed rgba(148, 163, 184, 0.5)',\n boxShadow: '0 20px 40px -10px rgba(0,0,0,0.02), inset 0 0 0 1px rgba(255,255,255,0.5)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }}>\n <div style={{ \n fontSize: '64px', marginBottom: '24px', opacity: 0.8, filter: 'drop-shadow(0 10px 20px rgba(0,0,0,0.05))',\n transform: 'translateY(0)', animation: 'float 4s ease-in-out infinite'\n }}>📦</div>\n <div style={{ fontSize: '18px', color: '#0F172A', fontWeight: 800, marginBottom: '8px', letterSpacing: '-0.02em' }}>{emptyText || t('noOrders')}</div>\n <div style={{ fontSize: '14px', color: '#64748B', fontWeight: 500 }}>{t('emptyOrdersHint')}</div>\n <style>{`@keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } }`}</style>\n </div>\n );\n }\n\n return (\n <div className={`eco-order-list ${className}`} style={{\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(340px, 1fr))',\n gap: '24px',\n padding: '16px'\n }}>\n {orders.map((order, idx) => (\n <div key={order.id || idx} style={{ animation: `fadeInUp 0.5s ease backwards ${idx * 0.05}s` }}>\n <OrderCard \n order={order} \n onClick={onOrderClick} \n />\n </div>\n ))}\n <style>{`\n @keyframes fadeInUp {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n }\n `}</style>\n </div>\n );\n}\n\nexport default OrderList;\n","const ORDER_ANCHOR_NAMESPACE = 'qbit_order';\n\nfunction pickOrderId(order) {\n return order?.id || order?.order_id || order?.orderId || order?.app_order_id || order?.appOrderId;\n}\n\nfunction pickContentHash(order, options) {\n return (\n options.contentHash ||\n order?.content_hash ||\n order?.order_hash ||\n order?.payment_hash ||\n order?.hash ||\n null\n );\n}\n\nexport async function buildOrderAnchorMemo(order, options = {}) {\n const { buildQBitAnchorMemo } = await import('@quantabit/qbit-chain-sdk');\n const orderId = options.orderId || pickOrderId(order);\n\n return buildQBitAnchorMemo({\n action: options.action || 'order_anchor',\n subject: orderId ? `order:${orderId}` : 'order',\n resource_id: orderId,\n content_hash: pickContentHash(order, options),\n version: options.version,\n timestamp: options.timestamp,\n extra: {\n app_id: order?.app_id || order?.appId,\n buyer_did: order?.buyer_did || order?.buyerDid,\n seller_did: order?.seller_did || order?.sellerDid,\n amount: order?.amount,\n currency: order?.currency,\n status: order?.status,\n ...options.extra,\n },\n }, {\n namespace: options.namespace || ORDER_ANCHOR_NAMESPACE,\n maxBytes: options.maxBytes,\n });\n}\n\nexport function buildOrderChainSubmit(orderId, txHash, options = {}) {\n return {\n order_id: orderId,\n tx_hash: txHash,\n chain: options.chain || 'qbit',\n network: options.network || 'mainnet',\n action: options.action || 'order_anchor',\n memo: options.memo,\n content_hash: options.contentHash,\n ...options.extra,\n };\n}\n\n/**\n * 将订单锚定到 QBit 链(构建 memo → 钱包签名广播 → 可选确认)\n *\n * @param {Object} provider - QBit 钱包 provider\n * @param {Object} order - 订单对象\n * @param {Object} options - 选项(endpoint, network, address, waitForConfirmation...)\n * @returns {Promise<{txHash: string|null, memo: string, confirmed?: boolean, slot?: number|null, submit: Object}>}\n */\nexport async function anchorOrder(provider, order, options = {}) {\n const sdk = await import('@quantabit/qbit-chain-sdk');\n const connection = new sdk.QBitConnection({\n endpoint: options.endpoint,\n network: options.network || 'mainnet',\n });\n const memo = await buildOrderAnchorMemo(order, options);\n\n const result = await sdk.broadcastQBitAnchor(connection, provider, memo, {\n address: options.address,\n priorityFee: options.priorityFee,\n skipPreflight: options.skipPreflight,\n waitForConfirmation: options.waitForConfirmation,\n commitment: options.commitment,\n timeoutMs: options.confirmTimeoutMs,\n });\n\n const orderId = options.orderId || pickOrderId(order);\n return {\n ...result,\n submit: buildOrderChainSubmit(orderId, result.txHash, {\n ...options,\n memo: result.memo,\n contentHash: pickContentHash(order, options),\n }),\n };\n}\n\n/**\n * 校验订单是否已成功锚定到链上\n *\n * @param {string} txHash - 交易签名\n * @param {Object} options - { endpoint, network, match }\n * @returns {Promise<{found: boolean, matched: boolean, memos: Array<Object>}>}\n */\nexport async function verifyOrderAnchor(txHash, options = {}) {\n const sdk = await import('@quantabit/qbit-chain-sdk');\n const connection = new sdk.QBitConnection({\n endpoint: options.endpoint,\n network: options.network || 'mainnet',\n });\n return sdk.verifyAnchoredMemo(connection, txHash, {\n namespace: options.namespace || ORDER_ANCHOR_NAMESPACE,\n match: options.match,\n commitment: options.commitment,\n });\n}\n\nexport { ORDER_ANCHOR_NAMESPACE };\n"],"names":["OrderApiClient","BaseApiClient","constructor","config","getOrders","params","get","getOrder","orderId","getOrdersByStatus","status","create","data","post","preCreate","cancel","reason","confirm","requestRefund","cancelRefund","extendConfirmTime","getPaymentInfo","pay","paymentData","getPaymentStatus","submitChainTx","txHash","tx_hash","chain","network","getChainStatus","getShippingInfo","getShippingTrack","submitReview","review","getReview","getStats","getStatusCounts","syncToQbitDid","baseURL","qbitDidApiUrl","replace","syncPaymentToQbitDid","getFromQbitDid","appId","appOrderId","listFromQbitDid","deductQbitDidPoints","syncTransactionToQbitDid","orderApi","SUPPORTED_LANGUAGES","messages","zh","loading","order","orders","myOrders","orderDetail","createOrder","statusPending","statusPaid","statusProcessing","statusShipped","statusDelivered","statusCompleted","statusCancelled","statusRefunding","statusRefunded","typeGoods","typeService","typeVirtual","typeSubscription","subtotal","shipping","discount","total","actualPay","items","quantity","unitPrice","confirmReceive","viewDetail","buyAgain","shippingAddress","receiver","phone","noOrders","cancelSuccess","paymentTimeout","confirmCancelOrder","payRemaining","en","ja","ko","currentLanguage","setLanguage","lang","includes","window","localStorage","setItem","getLanguage","saved","getItem","t","key","msgs","text","Object","keys","forEach","k","RegExp","OrderStatus","PENDING","PAID","PROCESSING","SHIPPED","DELIVERED","COMPLETED","CANCELLED","REFUNDING","REFUNDED","OrderType","GOODS","SERVICE","VIRTUAL","SUBSCRIPTION","PaymentMethod","BALANCE","POINTS","ALIPAY","WECHAT","CRYPTO","CARD","createDefaultOrder","overrides","id","order_no","user_did","type","shipping_fee","discount_amount","total_amount","actual_amount","currency","payment_method","paid_at","shipping_address","remark","expire_at","created_at","createDefaultOrderItem","product_id","product_name","product_image","sku_id","sku_name","unit_price","total_price","getStatusText","language","texts","getPaymentRemaining","expireAt","now","Date","expire","diff","expired","minutes","seconds","Math","floor","formatPrice","amount","symbols","CNY","USD","EUR","symbol","parseFloat","toFixed","canCancel","canPay","OrderContext","createContext","OrderProvider","children","apiUrl","token","onOrderCreate","onOrderPay","setOrders","useState","currentOrder","setCurrentOrder","stats","setStats","setLoading","error","setError","useEffect","handleError","useCallback","err","onError","result","loadOrders","getList","loadOrder","getDetail","cancelOrder","payOrder","paymentMethod","loadStats","filter","o","value","api","React","createElement","Provider","useOrder","context","useContext","Error","OrderCard","onClick","className","date","toISOString","statusColors","pending","bg","border","label","icon","paid","shipped","completed","cancelled","currStatus","style","background","backdropFilter","WebkitBackdropFilter","borderRadius","boxShadow","padding","cursor","transition","display","flexDirection","gap","position","overflow","onMouseEnter","e","currentTarget","transform","onMouseLeave","top","right","width","height","opacity","pointerEvents","justifyContent","alignItems","fontSize","color","fontWeight","letterSpacing","toLocaleString","slice","map","item","i","maxWidth","flexShrink","image","src","alt","objectFit","textOverflow","whiteSpace","name","length","marginTop","textAlign","count","fontStyle","paddingTop","borderTop","Intl","NumberFormat","format","OrderList","onOrderClick","emptyText","borderTopColor","animation","marginBottom","gridTemplateColumns","idx","ORDER_ANCHOR_NAMESPACE","pickOrderId","order_id","app_order_id","pickContentHash","options","contentHash","content_hash","order_hash","payment_hash","hash","buildOrderAnchorMemo","buildQBitAnchorMemo","action","subject","resource_id","version","timestamp","extra","app_id","buyer_did","buyerDid","seller_did","sellerDid","namespace","maxBytes","buildOrderChainSubmit","memo","anchorOrder","provider","sdk","connection","QBitConnection","endpoint","broadcastQBitAnchor","address","priorityFee","skipPreflight","waitForConfirmation","commitment","timeoutMs","confirmTimeoutMs","submit","verifyOrderAnchor","verifyAnchoredMemo","match"],"mappings":"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"}
|