useCameraOverview.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import { ref } from 'vue';
  2. import { defineStore } from 'pinia';
  3. import {
  4. CameraQueryParams,
  5. getCameraList,
  6. addCameraItem,
  7. updateCameraItem,
  8. } from '@/api/camera/camera-overview';
  9. import { CameraIPItem, CameraShowItem } from '../type';
  10. import { useRequest } from 'vue-hooks-plus';
  11. export const useCameraOverview = defineStore('camera-overview', () => {
  12. const queryType = ref('');
  13. const queryTypeContent = ref('');
  14. const queryCameraType = ref('');
  15. const queryWorkSpace = ref('');
  16. const total = ref(0);
  17. const page = ref(1);
  18. const size = ref(10);
  19. const cameraItems = ref<CameraShowItem[]>([]);
  20. // 条件查询事件
  21. const conditionSearch = () => {
  22. const params: CameraQueryParams = {
  23. pageNumber: page.value,
  24. pageSize: size.value,
  25. };
  26. if (queryType.value) {
  27. switch (queryType.value) {
  28. case 'cameraIp':
  29. params.ip = queryTypeContent.value;
  30. break;
  31. case 'name':
  32. params.code = queryTypeContent.value;
  33. break;
  34. }
  35. }
  36. if (queryCameraType.value) {
  37. params.cameraType = queryCameraType.value;
  38. }
  39. if (queryWorkSpace.value) {
  40. params.sceneCode = queryWorkSpace.value;
  41. }
  42. return getCameraList(params).then((res) => {
  43. return res;
  44. });
  45. };
  46. const { loading, run: getCameraItems } = useRequest(conditionSearch, {
  47. manual: true,
  48. onSuccess: (res) => {
  49. cameraItems.value = [...res.records];
  50. total.value = res.totalRow;
  51. },
  52. });
  53. const addCamera = (data: CameraIPItem) => {
  54. console.log(data);
  55. addCameraItem(data).then(() => {
  56. getCameraItems();
  57. });
  58. };
  59. const editCamera = (data: Partial<CameraShowItem>) => {
  60. updateCameraItem(data).then(() => {
  61. getCameraItems();
  62. });
  63. };
  64. return {
  65. queryType,
  66. queryTypeContent,
  67. queryCameraType,
  68. queryWorkSpace,
  69. cameraItems,
  70. loading,
  71. total,
  72. size,
  73. page,
  74. getCameraItems,
  75. addCamera,
  76. editCamera,
  77. };
  78. });
  79. export default useCameraOverview;