goods.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { defineStore } from 'pinia';
  2. import { message } from 'ant-design-vue';
  3. import { getList, addToCard, addFavorite, delFavorite, getFavoriteList } from '@/api/goods';
  4. import { goodsList } from '@/utils/mock';
  5. export const useGoodsStore = defineStore('goods', {
  6. state: () => ({
  7. params: {
  8. pageNum: 1,
  9. pageSize: 24,
  10. total: 0,
  11. categoryId: ''
  12. },
  13. list: []
  14. }),
  15. actions: {
  16. resetListData() {
  17. this.list = [];
  18. },
  19. async fetchListData() {
  20. const res = await getList({
  21. pageNum: this.params.pageNum,
  22. pageSize: this.params.pageSize,
  23. categoryId: this.params.categoryId
  24. });
  25. this.list = res.data?.records || [];
  26. this.params.total = res.data?.total || 0;
  27. // this.list = goodsList;
  28. // this.params.total = 120;
  29. },
  30. async fetchAllData(params) {
  31. const res = await getList(params);
  32. return Promise.resolve(res.data?.records || []);
  33. // return new Promise(resolve => resolve(goodsList))
  34. },
  35. resetParams() {
  36. this.params.pageNum = 1;
  37. this.params.total = 0;
  38. this.params.categoryId = '';
  39. },
  40. updateParams(object = {}) {
  41. Object.keys(object).forEach(key => {
  42. if (this.params[key] != undefined) {
  43. this.params[key] = object[key];
  44. }
  45. })
  46. },
  47. async addToCard(params) {
  48. await addToCard(params)
  49. message.success('添加成功')
  50. },
  51. async addFavorite(params) {
  52. await addFavorite(params)
  53. message.success('添加成功')
  54. },
  55. async getFavoriteList(params) {
  56. return getFavoriteList(params)
  57. },
  58. async delFavorite(params) {
  59. return delFavorite(params).then(() => {
  60. message.success('删除成功')
  61. })
  62. }
  63. }
  64. })