Преглед на файлове

fix: 设别管理-相机设备,修改所属工位树结构value为唯一值

bxy преди 1 година
родител
ревизия
e3545a1d0a

+ 3 - 4
src/views/cameras/overview/components/AddCameraByIP.vue

@@ -144,7 +144,7 @@
   const emits = defineEmits(['cancel-execute', 'confirm-execute']);
 
   const treeWorkspaceInfo = useTreeWorkspaceInfo();
-  const { workspaceInfo, getWorkspaceFromTreeInfo } = treeWorkspaceInfo;
+  const { workspaceInfo, getWorkspaceFromTreeInfo, getWorkspaceIdFromTreeNode } = treeWorkspaceInfo;
 
   const IPFormRef = ref();
   const cameraIPData = ref<CameraDetailServer>({} as CameraDetailServer);
@@ -163,7 +163,6 @@
   };
 
   const handleUpdateSceneTemplateList = (data) => {
-    console.log('接收到的信息', data);
     cameraIPData.value.sceneTemplateList = data;
   };
 
@@ -184,8 +183,8 @@
 
   const handleTreeSelect = (node) => {
     if (node.disabled) return;
-    cameraIPData.value.workspaceId = node.value;
-    cameraIPData.value.principal = node.principalName;
+    cameraIPData.value.workspaceId = Number(getWorkspaceIdFromTreeNode(node.value));
+    cameraIPData.value.principal = node.principalName ? node.principalName : '该工位暂无负责人';
     cameraIPData.value.workshopId = node.workshopId;
   };
 

+ 5 - 9
src/views/cameras/overview/components/AddCameraByNVR.vue

@@ -124,7 +124,7 @@
 <script setup lang="ts">
   import { onBeforeMount, ref } from 'vue';
   import { cloneDeep } from 'lodash-es';
-  import { ElMessage, ElIcon } from 'element-plus';
+  import { ElIcon } from 'element-plus';
   import { InfoFilled } from '@element-plus/icons-vue';
   import { CameraDetailServer } from '@/types/camera/type';
   import {
@@ -143,7 +143,7 @@
   const { nvrDevice, getNvrDevice } = nvrDeviceInfo;
 
   const treeWorkspaceInfo = useTreeWorkspaceInfo();
-  const { workspaceInfo, getWorkspaceFromTreeInfo } = treeWorkspaceInfo;
+  const { workspaceInfo, getWorkspaceFromTreeInfo, getWorkspaceIdFromTreeNode } = treeWorkspaceInfo;
 
   const NVRFormRef = ref();
   const cameraNVRData = ref<CameraDetailServer>({} as CameraDetailServer);
@@ -160,7 +160,6 @@
   };
 
   const handleUpdateSceneTemplateList = (data) => {
-    console.log('接收到的信息', data);
     cameraNVRData.value.sceneTemplateList = data;
   };
 
@@ -180,13 +179,10 @@
   };
 
   const handleTreeSelect = (node) => {
-    console.log('点击选择车间', node);
-    cameraNVRData.value.workspaceId = node.value;
-    cameraNVRData.value.principal = node.principalName;
+    if (node.disabled) return;
+    cameraNVRData.value.workspaceId = Number(getWorkspaceIdFromTreeNode(node.value));
+    cameraNVRData.value.principal = node.principalName ? node.principalName : '该工位暂无负责人';
     cameraNVRData.value.workshopId = node.workshopId;
-    if (node.disabled && node.children.length < 1) {
-      ElMessage.error('请先添加工位');
-    }
   };
 
   onBeforeMount(() => {

+ 6 - 11
src/views/cameras/overview/components/AddCameraBySRS.vue

@@ -102,10 +102,9 @@
 
 <script setup lang="ts">
   import { onBeforeMount, ref } from 'vue';
-  import { CameraDetailServer } from '@/types/camera/type';
   import { cloneDeep } from 'lodash-es';
-  import { serviceTypeSelect, standardTypeSelect } from '../../../../types/camera/constant';
-  import { ElMessage } from 'element-plus';
+  import { CameraDetailServer } from '@/types/camera/type';
+  import { serviceTypeSelect, standardTypeSelect } from '@/types/camera/constant';
   import useTreeWorkspaceInfo from '../hooks/useTreeWorkspaceInfo';
   import sysConfigItemOfAddCamera from './sysConfigItemOfAddCamera.vue';
 
@@ -113,7 +112,7 @@
   const emits = defineEmits(['cancel-execute', 'confirm-execute']);
 
   const treeWorkspaceInfo = useTreeWorkspaceInfo();
-  const { workspaceInfo, getWorkspaceFromTreeInfo } = treeWorkspaceInfo;
+  const { workspaceInfo, getWorkspaceFromTreeInfo, getWorkspaceIdFromTreeNode } = treeWorkspaceInfo;
 
   const IPFormRef = ref();
   const CameraSRSData = ref<CameraDetailServer>({} as CameraDetailServer);
@@ -128,7 +127,6 @@
   };
 
   const handleUpdateSceneTemplateList = (data) => {
-    console.log('接收到的信息', data);
     CameraSRSData.value.sceneTemplateList = data;
   };
 
@@ -148,13 +146,10 @@
   };
 
   const handleTreeSelect = (node) => {
-    console.log('点击选择车间', node);
-    CameraSRSData.value.workspaceId = node.value;
-    CameraSRSData.value.principal = node.principalName;
+    if (node.disabled) return;
+    CameraSRSData.value.workspaceId = Number(getWorkspaceIdFromTreeNode(node.value));
+    CameraSRSData.value.principal = node.principalName ? node.principalName : '该工位暂无负责人';
     CameraSRSData.value.workshopId = node.workshopId;
-    if (node.disabled && node.children.length < 1) {
-      ElMessage.error('请先添加工位');
-    }
   };
 
   onBeforeMount(() => {

+ 13 - 3
src/views/cameras/overview/hooks/useTreeWorkspaceInfo.ts

@@ -9,14 +9,14 @@ interface TreeWorkspaceInfoType {
   id: number; // 自增主键
   name: string; // 公司名称
   code?: string; // 公司编号
-  nodeType: string; // 节点类型
+  nodeType: 'company' | 'workshop' | 'workspace'; // 节点类型
   workshopId?: number; // nodeType=workspace时携带车间Id
   principalName?: string; // nodeType=workspace时携带负责人name
   children?: TreeWorkspaceInfoType[];
 }
 
 interface ElTreeItem {
-  value: any;
+  value: string;
   label: string;
   children?: ElTreeItem[];
   disabled?: boolean;
@@ -30,7 +30,7 @@ export function useTreeWorkspaceInfo() {
   const setTreeWorkspaceInfo = (infos: TreeWorkspaceInfoType[]): ElTreeItem[] => {
     return infos.map((item) => {
       return {
-        value: item.id,
+        value: `${item.nodeType}-${item.id}`,
         label: item.name,
         workshopId: item.workshopId,
         principalName: item.principalName,
@@ -41,6 +41,15 @@ export function useTreeWorkspaceInfo() {
     });
   };
 
+  const getWorkspaceIdFromTreeNode = (inputStr: string) => {
+    let dashIndex = inputStr.indexOf('-');
+    if (dashIndex !== -1 && dashIndex < inputStr.length - 1) {
+      return inputStr.slice(dashIndex + 1);
+    } else {
+      return '';
+    }
+  };
+
   const getWorkspaceFromTreeInfo = async () => {
     await getTreeWorkspaceInfo().then((res) => {
       workspaceInfo.value = setTreeWorkspaceInfo(res);
@@ -50,6 +59,7 @@ export function useTreeWorkspaceInfo() {
   return {
     workspaceInfo,
     getWorkspaceFromTreeInfo,
+    getWorkspaceIdFromTreeNode,
   };
 }