product_list.ts 1.02 KB
import create from 'zustand'
import type { Product, ProductListQuery } from '@/type'

const useProductListStore = create((set, get) => ({
  list: [],
  productCategoryId: '',
  keyword: '',
  pageNo: 1,
  pageSize: 20,
  total: 0,
  params: null,

  getList: async (params) => {
    if (params.productCategoryId || params.keyword) {
      const res = await postShopProductList(params)
      const data = res.data?.data || {}
      set({
        list: (data?.records || []).map(record => ({
          ...record,
          imgList: JSON.parse(record.productimageliststore).map(item => ({
            url: `/api/show/image?fileKey=${item.fileKey}&psize=p256`
          }))
        })) || [],
        total: data?.total || 0
      })
    }
  },

  updatePageNo: (value) => {
    set({ pageNo: value })
  },

  updateCategory: (value) => {
    set({ productCategoryId: value })
  },

  updateParams: (value) => {
    set({ params: value })
  },

  updateKeyword: (value) => {
    set({ keyword: value })
  }
}))

export default useProductListStore;