usePositionMonitorCameraEdit.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * @description: 治安重点部位+保密要害部位监控相机编辑(二者返回结构一致)
  3. * @return {
  4. * titleOfUpdatePositionMonitorCamera: 编辑重点监控部位/编辑要害监控部位
  5. * allCameraTree: 所有相机列表
  6. * dataOfPosition: 当前分组数据(即治安重点部位或保密要害部位数据)
  7. * idOfPosition: 当前分组id
  8. * nameOfPosition: 当前分组名称
  9. * selectedCameraIdsOfPosition: 当前分组已选择的相机id列表
  10. * }
  11. */
  12. import { ref } from 'vue';
  13. import { defineStore } from 'pinia';
  14. import { getCameraTreeList } from '@/api/disaster-overview';
  15. import { PositionMonitorCameraListRes } from '@/api/security-confidentiality-position';
  16. export const usePositionMonitorCameraEdit = defineStore('positionMonitorCameraEdit', () => {
  17. // 编辑重点监控部位/编辑要害监控部位(dialog标题)
  18. const titleOfUpdatePositionMonitorCamera = ref('编辑重点监控部位');
  19. // 所有相机列表
  20. const allCameraTree = ref();
  21. // 初始化所有相机列表
  22. const getAllCameraTree = async () => {
  23. const res = await getCameraTreeList();
  24. allCameraTree.value = res;
  25. };
  26. const dataOfPosition = ref<PositionMonitorCameraListRes>();
  27. const idOfPosition = ref<number>();
  28. const nameOfPosition = ref<string>('');
  29. interface SelectedCameraIds {
  30. id: number;
  31. name: string;
  32. code: string;
  33. }
  34. const selectedCameraIdsOfPosition = ref<SelectedCameraIds[]>([]);
  35. const initDataOfPosition = () => {
  36. // 添加
  37. if (!dataOfPosition.value) {
  38. idOfPosition.value = undefined;
  39. nameOfPosition.value = '';
  40. selectedCameraIdsOfPosition.value = [];
  41. return;
  42. }
  43. // 编辑
  44. idOfPosition.value = dataOfPosition.value.id;
  45. nameOfPosition.value = dataOfPosition.value.groupName;
  46. selectedCameraIdsOfPosition.value = dataOfPosition.value.children.map((item) => ({
  47. id: item.id,
  48. name: item.name,
  49. code: item.code,
  50. }));
  51. };
  52. const resetPositionMonitorCameraEdit = () => {
  53. titleOfUpdatePositionMonitorCamera.value = '编辑重点监控部位';
  54. dataOfPosition.value = undefined;
  55. idOfPosition.value = undefined;
  56. nameOfPosition.value = '';
  57. selectedCameraIdsOfPosition.value = [];
  58. };
  59. return {
  60. titleOfUpdatePositionMonitorCamera,
  61. allCameraTree,
  62. getAllCameraTree,
  63. initDataOfPosition,
  64. dataOfPosition,
  65. idOfPosition,
  66. nameOfPosition,
  67. selectedCameraIdsOfPosition,
  68. resetPositionMonitorCameraEdit,
  69. };
  70. });
  71. export default usePositionMonitorCameraEdit;