pagging.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { usePagging } from "@/hook/pagging";
  2. import { SceneType, getScenePagging } from "@/store/scene";
  3. import { getFilepageList } from "@/store/case";
  4. import { computed, reactive, watch, watchEffect } from "vue";
  5. export const useScenePaggingParams = () => {
  6. const pagging = usePagging({
  7. get: getFilepageList,
  8. paramsTemlate: {
  9. sceneName: "",
  10. modelTitle: "",
  11. deptId: "",
  12. snCode: "",
  13. type: '1',
  14. },
  15. });
  16. const isSwmx = computed(() => pagging.state.query.type === SceneType.SWMX);
  17. const keyword = computed({
  18. get: () =>
  19. isSwmx.value
  20. ? pagging.state.query.modelTitle
  21. : pagging.state.query.sceneName,
  22. set: (val: string) => {
  23. pagging.state.query.modelTitle = val;
  24. pagging.state.query.sceneName = val;
  25. },
  26. });
  27. let oldSnCode = pagging.state.query.snCode;
  28. watchEffect(() => {
  29. if (isSwmx.value) {
  30. oldSnCode = pagging.state.query.snCode;
  31. pagging.state.query.snCode = "";
  32. } else {
  33. pagging.state.query.snCode = oldSnCode;
  34. }
  35. });
  36. watch(
  37. () => pagging.state.query.type,
  38. () => {
  39. pagging.state.pag.currentPage = 1;
  40. }
  41. );
  42. const queryResetRaw = pagging.queryReset;
  43. pagging.queryReset = () => {
  44. const type = pagging.state.query.type;
  45. queryResetRaw();
  46. pagging.state.query.type = type;
  47. };
  48. return reactive({ pagging, keyword, isSwmx });
  49. };
  50. export type ScenePagging = ReturnType<typeof useScenePaggingParams>["pagging"];