|
|
@@ -5,6 +5,8 @@ import {
|
|
|
SaveFenceParams,
|
|
|
editFenceApi,
|
|
|
UpdateFenceParams,
|
|
|
+ deleteFenceApi,
|
|
|
+ DeleteFenceParams,
|
|
|
} from '@/api/camera/camera-preview';
|
|
|
import { defineStore } from 'pinia';
|
|
|
import { ref } from 'vue';
|
|
|
@@ -12,11 +14,11 @@ import { ServerLine, ServerLines } from '../components/FenceEditor/constants';
|
|
|
import safeParse from '@/utils/safeParse';
|
|
|
|
|
|
/** 当前电子围栏的store */
|
|
|
-export const useFenceStore = defineStore('electronicFencePolygonStore', () => {
|
|
|
+export const useFenceStore = defineStore('fencePolygonStore', () => {
|
|
|
/** 当前相机-预置位-算法对应的所有的电子围栏 */
|
|
|
const allFences = ref<ServerLines>([]);
|
|
|
/** 当前正在操作的电子围栏id */
|
|
|
- const currentFenceId = ref<number>();
|
|
|
+ const currentFenceId = ref<number | null>(null);
|
|
|
const loading = ref(false);
|
|
|
|
|
|
/** 获取电子围栏 */
|
|
|
@@ -33,7 +35,7 @@ export const useFenceStore = defineStore('electronicFencePolygonStore', () => {
|
|
|
allFences.value = newFence;
|
|
|
})
|
|
|
.catch(() => {
|
|
|
- currentFenceId.value = undefined;
|
|
|
+ currentFenceId.value = null;
|
|
|
allFences.value = [];
|
|
|
})
|
|
|
.finally(() => {
|
|
|
@@ -54,15 +56,24 @@ export const useFenceStore = defineStore('electronicFencePolygonStore', () => {
|
|
|
|
|
|
/** 修改电子围栏信息 */
|
|
|
const editFence = (param: UpdateFenceParams) => {
|
|
|
- return editFenceApi(param).then(() => getFence(param));
|
|
|
+ return editFenceApi(param);
|
|
|
+ };
|
|
|
+
|
|
|
+ const deleteFence = (param: DeleteFenceParams) => {
|
|
|
+ const { fenceId } = param;
|
|
|
+ if (currentFenceId.value === fenceId) {
|
|
|
+ currentFenceId.value = null;
|
|
|
+ }
|
|
|
+ allFences.value = allFences.value.filter((x) => x.id !== fenceId);
|
|
|
+ return deleteFenceApi(param);
|
|
|
};
|
|
|
|
|
|
const clear = () => {
|
|
|
allFences.value = [];
|
|
|
- currentFenceId.value = undefined;
|
|
|
+ currentFenceId.value = null;
|
|
|
};
|
|
|
|
|
|
- return { allFences, currentFenceId, getFence, createFence, editFence, clear };
|
|
|
+ return { allFences, currentFenceId, getFence, createFence, editFence, deleteFence, clear };
|
|
|
});
|
|
|
|
|
|
export default useFenceStore;
|