|
@@ -105,7 +105,7 @@
|
|
|
selectedCameraList.value.push({
|
|
selectedCameraList.value.push({
|
|
|
code: e.id,
|
|
code: e.id,
|
|
|
name: e.name,
|
|
name: e.name,
|
|
|
- isMainCamera: selectedCameraList.value.length === 0 ? IsMainCamera.YES : IsMainCamera.NO,
|
|
|
|
|
|
|
+ isMainCamera: checkMainCameraExists() ? IsMainCamera.NO : IsMainCamera.YES,
|
|
|
algoName: '',
|
|
algoName: '',
|
|
|
algoCode: '',
|
|
algoCode: '',
|
|
|
isActive: false,
|
|
isActive: false,
|
|
@@ -130,6 +130,7 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const handleTreeCheck = (node: CameraTreeTempType, checked: { checkedNodes: CameraTreeTempType[] }) => {
|
|
const handleTreeCheck = (node: CameraTreeTempType, checked: { checkedNodes: CameraTreeTempType[] }) => {
|
|
|
|
|
+ selectedAlgo.value = '';
|
|
|
// 获取当前所有选中节点中的相机节点
|
|
// 获取当前所有选中节点中的相机节点
|
|
|
const currentCameraNodes = checked.checkedNodes.filter(
|
|
const currentCameraNodes = checked.checkedNodes.filter(
|
|
|
(n) => n.nodeType === CameraTreeNodeType.camera && n.integrationState !== IntegrationState.DISABLED,
|
|
(n) => n.nodeType === CameraTreeNodeType.camera && n.integrationState !== IntegrationState.DISABLED,
|
|
@@ -140,24 +141,22 @@
|
|
|
(n) => n.nodeType === CameraTreeNodeType.camera && n.integrationState === IntegrationState.DISABLED,
|
|
(n) => n.nodeType === CameraTreeNodeType.camera && n.integrationState === IntegrationState.DISABLED,
|
|
|
);
|
|
);
|
|
|
disabledNodes.forEach((n) => {
|
|
disabledNodes.forEach((n) => {
|
|
|
- // ElMessage.warning(`${n.name} 已禁用,不可选中`);
|
|
|
|
|
treeRef.value?.setChecked(n.tempCode as string, false, true);
|
|
treeRef.value?.setChecked(n.tempCode as string, false, true);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
// 生成当前选中的code集合
|
|
// 生成当前选中的code集合
|
|
|
- const currentCodes = new Set(currentCameraNodes.map((n) => n.code));
|
|
|
|
|
|
|
+ const currentCodes = new Set(currentCameraNodes.map((n) => n.id));
|
|
|
|
|
+
|
|
|
|
|
+ // 精确同步选中列表:移除不在当前选中列表中的项
|
|
|
|
|
+ selectedCameraList.value = selectedCameraList.value.filter((item) => currentCodes.has(item.code));
|
|
|
|
|
|
|
|
- // 移除已取消选中的项
|
|
|
|
|
- selectedCameraList.value = selectedCameraList.value.filter((item: SelectOption) =>
|
|
|
|
|
- currentCodes.has(item.code + ''),
|
|
|
|
|
- );
|
|
|
|
|
// 添加新选中的项
|
|
// 添加新选中的项
|
|
|
currentCameraNodes.forEach((camera) => {
|
|
currentCameraNodes.forEach((camera) => {
|
|
|
if (!selectedCameraList.value.some((item) => item.code === camera.id)) {
|
|
if (!selectedCameraList.value.some((item) => item.code === camera.id)) {
|
|
|
selectedCameraList.value.push({
|
|
selectedCameraList.value.push({
|
|
|
code: camera.id,
|
|
code: camera.id,
|
|
|
name: camera.name.replace(/ \[\w+\] $/, ''),
|
|
name: camera.name.replace(/ \[\w+\] $/, ''),
|
|
|
- isMainCamera: selectedCameraList.value.length === 0 ? IsMainCamera.YES : IsMainCamera.NO,
|
|
|
|
|
|
|
+ isMainCamera: checkMainCameraExists() ? IsMainCamera.NO : IsMainCamera.YES,
|
|
|
algoName: '',
|
|
algoName: '',
|
|
|
algoCode: '',
|
|
algoCode: '',
|
|
|
isActive: false,
|
|
isActive: false,
|
|
@@ -166,6 +165,10 @@
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+ const checkMainCameraExists = () => {
|
|
|
|
|
+ return selectedCameraList.value.some((item) => item.isMainCamera === IsMainCamera.YES);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
const getCameraData = async () => {
|
|
const getCameraData = async () => {
|
|
|
await queryCameraTreeByCondition(queryForm.value).then((res) => {
|
|
await queryCameraTreeByCondition(queryForm.value).then((res) => {
|
|
|
cameraTreeTemp.value = getCameraNameCode(res);
|
|
cameraTreeTemp.value = getCameraNameCode(res);
|
|
@@ -236,6 +239,7 @@
|
|
|
if (targetNode?.tempCode) {
|
|
if (targetNode?.tempCode) {
|
|
|
treeRef.value?.setChecked(targetNode.tempCode, false, false);
|
|
treeRef.value?.setChecked(targetNode.tempCode, false, false);
|
|
|
}
|
|
}
|
|
|
|
|
+ selectedAlgo.value = '';
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const selectedAlgo = ref();
|
|
const selectedAlgo = ref();
|