pagging.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { usePagging } from "@/hook/pagging";
  2. import {
  3. FirePaggingRoute,
  4. FireStatus,
  5. delFire,
  6. getFirePagging,
  7. } from "@/app/fire/store/fire";
  8. import { computed, watch, watchEffect } from "vue";
  9. import { router } from "@/router";
  10. import { FireRouteName } from "@/app/fire/routeConfig";
  11. import { UN_REQ_NUM } from "@/constant/sys";
  12. export const useFirePagging = () => {
  13. const isTeached = computed(
  14. () => router.currentRoute.value.name === FireRouteName.teaching
  15. );
  16. const pagging = usePagging({
  17. get: getFirePagging,
  18. del: delFire,
  19. mapper: {
  20. delMsg: "删除火调项目,相关档案也会一并删除,确定要删除吗?",
  21. },
  22. paramsTemlate: {
  23. projectSn: "",
  24. projectName: "",
  25. projectAddress: "",
  26. deptId: "",
  27. accidentDate: "",
  28. status: FireStatus.all,
  29. projectSiteCode: "",
  30. fireReason: UN_REQ_NUM.toString(),
  31. organizerUsers: "",
  32. } as any,
  33. });
  34. watch(
  35. () => [pagging.state.query.queryType, isTeached.value],
  36. () => {
  37. pagging.state.query.queryType = isTeached.value
  38. ? FirePaggingRoute.teached
  39. : FirePaggingRoute.fire;
  40. },
  41. { flush: "sync", immediate: true }
  42. );
  43. const params = [{ ...pagging.state.query }, { ...pagging.state.query }];
  44. watchEffect(
  45. () => {
  46. pagging.state.query = params[isTeached.value ? 0 : 1];
  47. },
  48. { flush: "post" }
  49. );
  50. return { pagging, isTeached };
  51. };
  52. export type FirePagging = ReturnType<typeof useFirePagging>["pagging"];