import { defineStore } from 'pinia' import type { OrderState, PackageListItem } from '/#/workorder' import { useMessage } from 'naive-ui' import { getPackageList } from '@/api/work/work' import { store } from '@/store' export const useWorkOrderStore = defineStore({ id: 'work-order', state: (): OrderState => ({ currentIndex: -1, activeId: '', packageList: [], immersion: false, }), getters: { getActiveId: (state: OrderState) => state.activeId, getCurrentIndex: (state: OrderState) => state.currentIndex, getOrderList: (state: OrderState) => state.packageList, }, actions: { setOrderList(list: PackageListItem[]) { this.packageList = list }, setActive(index: number, orderId?: string) { this.currentIndex = index const order = this.packageList[index] this.activeId = orderId || order?.id }, forward() { const len = this.packageList.length const message = useMessage() if (this.currentIndex === len - 1) message.error('已经到达最后一个') this.setActive(++this.currentIndex) }, back() { const message = useMessage() if (this.currentIndex === 0) message.error('已经到达第一个') this.setActive(--this.currentIndex) }, async fetchOrderList(pagination) { const res = await getPackageList(pagination) if (res.data.length > 0) { this.setOrderList(res.data) this.setActive(0) } return res }, updateImmersion() { this.immersion = !this.immersion }, reset() { this.currentIndex = -1 this.activeId = '' this.packageList = [] }, }, }) export function useWorkOrder() { return useWorkOrderStore(store) }