CommonContent.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import CommonContent, { GetContentListParams } from "@/api/CommonContent";
  2. import { useSimpleDataLoader } from "@/common/composeabe/SimpleDataLoader";
  3. import { navTo } from "@/common/utils/PageAction"
  4. /**
  5. * 专用于通用内容的首页小列表控制代码组合
  6. * @param p
  7. * @returns
  8. */
  9. export function useHomePageMiniCommonListGoMoreAndGoDetail(p: {
  10. title?: string,
  11. mainBodyColumnId?: number,
  12. modelId?: number,
  13. itemType?: string,
  14. detailsPage: string,
  15. count?: number,
  16. }) {
  17. function goDetail(id: number) {
  18. navTo(p.detailsPage, {
  19. mainBodyColumnId: p.mainBodyColumnId,
  20. modelId: p.modelId,
  21. id,
  22. })
  23. }
  24. function goList() {
  25. navTo('/pages/article/common/list', {
  26. title: p.title,
  27. mainBodyColumnId: p.mainBodyColumnId,
  28. modelId: p.modelId,
  29. itemType: p.itemType,
  30. detailsPage: p.detailsPage,
  31. })
  32. }
  33. const loader = useSimpleDataLoader(async () =>
  34. (await CommonContent.getContentList(new GetContentListParams().setSelfValues({
  35. mainBodyColumnId: p.mainBodyColumnId,
  36. modelId: p.modelId,
  37. }), 1, p.count ?? 4)).list
  38. );
  39. return {
  40. loader,
  41. goDetail,
  42. goList,
  43. }
  44. }