diff --git a/business-css/frontend/src/components/antvx6/index.vue b/business-css/frontend/src/components/antvx6/index.vue index 30233ab..82d67fb 100644 --- a/business-css/frontend/src/components/antvx6/index.vue +++ b/business-css/frontend/src/components/antvx6/index.vue @@ -19,6 +19,9 @@ import insertCss from 'insert-css' import { updateProjects} from "@/api/business/project"; import Createscenario from '@/views/component/scenario/createscenario.vue' import ScenarioModel from '@/views/component/scenario/index.vue' +import { addDevices } from "@/api/business/database/device"; +import { saveOrUpdate} from "@/api/business/database/material"; + import img1 from '@/assets/x6/1.png' import img2 from '@/assets/x6/2.png' import img3 from '@/assets/x6/3.png' @@ -983,22 +986,27 @@ function deleteNode() { // 删除节点 +const isCopy = ref(false) +const copyNodeInfo:any = ref(null) function copyNode() { // 复制节点 if (selectedNode.value) { try { // 获取当前节点的位置 const position = selectedNode.value.position() // 创建新节点,使用节点的原始数据 - const newNode = selectedNode.value.clone() + copyNodeInfo.value = selectedNode.value.clone() // 设置新位置(偏移50px) - newNode.position(position.x + 50, position.y + 50) - deviceTypetype.value = newNode.store.data.deviceInfo.type + copyNodeInfo.value.position(position.x + 50, position.y + 50) + // deviceTypetype.value = newNode.store.data.deviceInfo.type // 添加到画布 - graph.addNode(newNode) - // - // :deviceId="nodeId" :projectInfo="projectInfo" - // :deviceTypetype="deviceTypetype" + // graph.addNode(newNode) + copyDeviceInfo.value = { + oldname: copyNodeInfo.value.store.data.deviceInfo.name, + name:'' + } + isMenuShow.value = false + isCopy.value = true } catch (error) { console.error('节点复制失败:', error) } @@ -1394,7 +1402,6 @@ function saveDesign() { // 保存设计 } } - console.log(devices) const topology = { projectId: projectInfo.value.projectId, name: projectInfo.value.name, @@ -1436,10 +1443,110 @@ const isBoundary = ref(false) const boundaryClick = () => { isBoundary.value = !isBoundary.value } + + +const copyDeviceInfo:any = ref({}) +function dialogCopy(){ + isCopy.value = false +} +const loading = ref(false) +const confirmCopyClick = async ()=>{ + + if(copyDeviceInfo.value.name == ''){ + ElMessage({ + type: "warning", + message: "请输入新设备名称", + }); + return + } + loading.value = true +copyNodeInfo.value.store.data.attrs.label.text = copyDeviceInfo.value.name + copyNodeInfo.value.store.data.deviceInfo.name = copyDeviceInfo.value.name + copyNodeInfo.value.store.data.deviceInfo.code = copyDeviceInfo.value.code + '-copy' + copyNodeInfo.value.store.data.deviceInfo.deviceId = copyNodeInfo.value.id + + if(copyNodeInfo.value.store.data.materialInfo != null && copyNodeInfo.value.store.data.materialInfo.materialId != null){ + copyNodeInfo.value.store.data.materialInfo.materialId = copyNodeInfo.value.id + } + if(copyNodeInfo.value.store.data.changesettings != null && + copyNodeInfo.value.store.data.changesettings.length >0){ + for(let i=0;i0){ + for(let j=0;j0){ + for(let k=0;k0){ + for(let l=0;l