1
0

pagging.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import { usePagging } from "@/hook/pagging";
  2. import { SceneType, getScenePagging } from "@/store/scene";
  3. import { computed, reactive, watch, watchEffect } from "vue";
  4. export const useScenePaggingParams = () => {
  5. const pagging = usePagging({
  6. get: getScenePagging,
  7. paramsTemlate: {
  8. isObj: 1,
  9. sceneType: 0, //SceneType.SWKK,
  10. sceneName: "",
  11. modelTitle: "",
  12. deptId: "",
  13. snCode: "",
  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. const sceneType = computed({
  28. get: () => pagging.state.query.sceneType,
  29. set: (val) => {
  30. pagging.state.query.sceneType = val;
  31. },
  32. });
  33. let oldSnCode = pagging.state.query.snCode;
  34. watchEffect(() => {
  35. if (isSwmx.value) {
  36. oldSnCode = pagging.state.query.snCode;
  37. pagging.state.query.snCode = "";
  38. } else {
  39. pagging.state.query.snCode = oldSnCode;
  40. }
  41. });
  42. watch(
  43. () => pagging.state.query.type,
  44. () => {
  45. pagging.state.pag.currentPage = 1;
  46. }
  47. );
  48. const queryResetRaw = pagging.queryReset;
  49. pagging.queryReset = () => {
  50. const type = pagging.state.query.type;
  51. queryResetRaw();
  52. pagging.state.query.type = type;
  53. };
  54. return reactive({ pagging, keyword, isSwmx, sceneType });
  55. };
  56. export type ScenePagging = ReturnType<typeof useScenePaggingParams>["pagging"];