import { defineStore } from 'pinia' import { ref } from 'vue' import type { Order } from '../types' import { getOrderList, getOrderDetail as fetchOrderDetail } from '../api/order' export const useOrderStore = defineStore('order', () => { const orders = ref([]) const currentOrder = ref(null) function setOrders(list: Order[]) { orders.value = list } function setCurrentOrder(order: Order | null) { currentOrder.value = order } function updateOrderStatus(orderId: number, status: Order['status']) { const order = orders.value.find((o) => o.id === orderId) if (order) { order.status = status } if (currentOrder.value?.id === orderId) { currentOrder.value.status = status } } /** 从后端拉取订单列表 */ async function fetchOrders() { try { const list = await getOrderList() orders.value = list } catch { // 静默处理 } } /** 从后端拉取订单详情 */ async function fetchOrder(id: number) { try { const data = await fetchOrderDetail(id) currentOrder.value = data return data } catch { // 静默处理 return null } } return { orders, currentOrder, setOrders, setCurrentOrder, updateOrderStatus, fetchOrders, fetchOrder, } })