import { ref } from 'vue'; import { defineStore } from 'pinia'; import { CameraQueryParams, getCameraList, addCameraItem, updateCameraItem, } from '@/api/camera/camera-overview'; import { CameraIPItem, CameraShowItem } from '../type'; import { useRequest } from 'vue-hooks-plus'; export const useCameraOverview = defineStore('camera-overview', () => { const queryType = ref(''); const queryTypeContent = ref(''); const queryCameraType = ref(''); const queryWorkSpace = ref(''); const total = ref(0); const page = ref(1); const size = ref(10); const cameraItems = ref([]); // 条件查询事件 const conditionSearch = () => { const params: CameraQueryParams = { pageNumber: page.value, pageSize: size.value, }; if (queryType.value) { switch (queryType.value) { case 'cameraIp': params.ip = queryTypeContent.value; break; case 'name': params.code = queryTypeContent.value; break; } } if (queryCameraType.value) { params.cameraType = queryCameraType.value; } if (queryWorkSpace.value) { params.sceneCode = queryWorkSpace.value; } return getCameraList(params).then((res) => { return res; }); }; const { loading, run: getCameraItems } = useRequest(conditionSearch, { manual: true, onSuccess: (res) => { cameraItems.value = [...res.records]; total.value = res.totalRow; }, }); const addCamera = (data: CameraIPItem) => { console.log(data); addCameraItem(data).then(() => { getCameraItems(); }); }; const editCamera = (data: Partial) => { updateCameraItem(data).then(() => { getCameraItems(); }); }; return { queryType, queryTypeContent, queryCameraType, queryWorkSpace, cameraItems, loading, total, size, page, getCameraItems, addCamera, editCamera, }; }); export default useCameraOverview;