Quellcode durchsuchen

326接口修改,adflow修改

tangjunhao vor 5 Monaten
Ursprung
Commit
412ffd27ba

+ 114 - 64
src/views/home.vue

@@ -1778,6 +1778,10 @@ let input3=ref()
 let eid = ref('');//进步优化器的eid
 let logs = ref("");
 let pid = ref("");
+let pythonwid = ref();
+let youhuaqiwid = ref();
+let canshuhuawid = ref();
+let qidongyouhuawid = ref();
 let fid = ref('');
 let conid = ref('');
 let tableval = ref();
@@ -2319,37 +2323,39 @@ const handleNodeClick = (data) => {
 
 const optimizerfalse = (val) => {
   console.log('双击',val);
-  if (val == '优化器') {
+  const name = val.name;
+  const wid = val.wid;
+  if (name == '优化器') {
     // dialog.value.optimizer = true;
     activeadf.value='代理优化器';
-    initoptimize();
+    initoptimize(wid);
     dialog.value.optgroup = true;
-  } else if (val == '参数化') {
+  } else if (name == '参数化') {
     activeadf.value='CST';
-    initcstffds();
+    initcstffds(wid);
     dialog.value.cstffd = true;
-  }else if (val == '气动分析') {
+  }else if (name == '气动分析') {
     activeadf.value='Xfoil'
-    intxfoiladflow();
+    intxfoiladflow(wid);
     dialog.value.XfAD = true;
-  } else if (val == '进化优化器') {
+  } else if (name == '进化优化器') {
     activeadf.value='进化优化器';
     dialog.value.jboptimizer = true;
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Joptimizeref.value) {
         // 调用 Joptimize 的 getoptimize 方法
-        Joptimizeref.value.getoptimize(pid.value);
+        Joptimizeref.value.getoptimize(pid.value,wid);
       }
     });
-  } else if (val == '代理优化器') {
+  } else if (name == '代理优化器') {
     activeadf.value='代理优化器';
     // dialog.value.optgroup = true;
     dialog.value.dboptimizer = true;
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Doptimizeref.value) {
-        Doptimizeref.value.getDoptimize(pid.value);
+        Doptimizeref.value.getDoptimize(pid.value,wid);
       }
     });
   } 
@@ -2358,67 +2364,67 @@ const optimizerfalse = (val) => {
   //   dialog.value.Xfiol = true;
 
   // }
-  else if(val == '梯度优化器'){
+  else if(name == '梯度优化器'){
     activeadf.value='梯度优化器';
     dialog.value.tboptimizer = true;
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Toptimizeref.value) {
-        Toptimizeref.value.getToptimize(pid.value);
+        Toptimizeref.value.getToptimize(pid.value,wid);
       }
     });
-  }else if(val == 'CST'){
+  }else if(name == 'CST'){
    /// dialog.value.CSTt = true;
     activeadf.value='CST';
     dialog.value.CSTt = true;
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Cstref.value) {
-        Cstref.value.getcst(pid.value);
+        Cstref.value.getcst(pid.value,wid);
       }
     });
-  }else if(val == 'FFD'){
+  }else if(name == 'FFD'){
    /// dialog.value.CSTt = true;
     activeadf.value='FFD';
     dialog.value.ffdt = true;
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Ffdref.value) {
-        Ffdref.value.getffds(pid.value);
+        Ffdref.value.getffds(pid.value,wid);
       }
     });
   }
-  else if(val == 'ADflow'){
+  else if(name == 'ADflow'){
    // adfhandleClick();
    activeadf.value='ADflow';
    dialog.value.isADflow = true;
    nextTick(() => {
       // 确保 ref 已经初始化
       if (ADflowref.value) {
-        ADflowref.value.getadflow(pid.value);
+        ADflowref.value.getadflow(pid.value,wid);
       }
     });
-  }else if(val == 'Xfoil'){
+  }else if(name == 'Xfoil'){
   //  activeadf.value='Xfiol';
    dialog.value.Xfiol = true;
    nextTick(() => {
       // 确保 ref 已经初始化
       if (Xfoilref.value) {
-        Xfoilref.value.getxfoil(pid.value);
+        Xfoilref.value.getxfoil(pid.value,wid);
       }
     });
-  }else if(val == 'TACS'){
+  }else if(name == 'TACS'){
     dialog.value.Taxs = true;
-  }else if(val == '模版'){
+  }else if(name == '模版'){
     dialog.value.optgroup = true;
     activeadf.value='代理优化器';
-  }else if(val == 'Python'){
+  }else if(name == 'Python'){
     dialog.value.Pythonshow = true;
-    initPython();
-  }else if(val == 'FUM to FEM'){
+    initPython(wid);
+  }else if(name == 'FUM to FEM'){
     dialog.value.fsidialog = true;
     
-  }else if(val == 'Flight'){
+  }else if(name == 'Flight'){
     dialog.value.flightdialog = true;
     
   }
@@ -2439,18 +2445,22 @@ const optimizerfalse = (val) => {
 }
 
 // 优化器窗口初始化
-const initoptimize = () => {
+const initoptimize = (nowid) => {
+  youhuaqiwid.value = nowid;
   const params1 = {
     transCode:'MDO0018',
     pid: pid.value,
+    wid: youhuaqiwid.value
   }
   const params2 = {
     transCode:'MDO0031',
     pid: pid.value,
+    wid: youhuaqiwid.value
   }
   const params3 = {
     transCode:'MDO0033',
     pid: pid.value,
+    wid: youhuaqiwid.value
   }
   Promise.all([
     request(params1),
@@ -2489,14 +2499,17 @@ const initoptimize = () => {
 }
 
 // CST/FFD窗口初始化
-const initcstffds = () => {
+const initcstffds = (nowid) => {
+  canshuhuawid.value = nowid;
   const params1 = {
     transCode:'MDO0040',
     pid: pid.value,
+    wid: canshuhuawid.value
   }
   const params2 = {
     transCode:'MDO0043',
     pid: pid.value,
+    wid: canshuhuawid.value
   }
   Promise.all([
     request(params1),
@@ -2524,14 +2537,17 @@ const initcstffds = () => {
 }
 
 // Xfoil/ADflow窗口初始化
-const intxfoiladflow = () => {
+const intxfoiladflow = (nowid) => {
+  qidongyouhuawid.value = nowid;
   const params1 = {
     transCode:'MDO0046',
     pid: pid.value,
+    wid: qidongyouhuawid.value
   }
   const params2 = {
     transCode:'MDO0049',
     pid: pid.value,
+    wid: qidongyouhuawid.value
   }
   Promise.all([
     request(params1),
@@ -2559,11 +2575,13 @@ const intxfoiladflow = () => {
 }
 
 // Python窗口初始化
-const initPython = () => {
+const initPython = (nowid) => {
   console.log('Pythonchushihua');
+  pythonwid.value = nowid;
   const param = {
     transCode: 'MDO0036',
     pid: pid.value,
+    wid: pythonwid.value
   };
   
   request(param).then((res) => {
@@ -2574,7 +2592,7 @@ const initPython = () => {
       textarea1.value = res.ptython;
     }
   }).catch((err) => {
-    console.error('请求失败:', err);
+    console.error('Python内容初始化失败');
   });
 };
 
@@ -2584,12 +2602,16 @@ const pythonSubmit = () => {
   const param = {
     transCode:'MDO0037',
     pid: pid.value,
+    wid: pythonwid.value,
     python: textarea1.value,
   }
   request(param).then((res) => {
-    console.log('Python确认按钮提交:', res);
+    ElMessage({
+        message: '保存成功',
+        type: 'success',
+      })
   }).catch((err) => {
-    console.error('请求失败:', err);
+    ElMessage.error('保存失败')
   });
 }
 
@@ -3899,52 +3921,65 @@ const adfhandleClick=(tab,event)=>{
       // 确保 ref 已经初始化
       if (Joptimizeref.value) {
         // 调用 Joptimize 的 getoptimize 方法
-        Joptimizeref.value.getoptimize(pid.value);
+        Joptimizeref.value.getoptimize(pid.value,youhuaqiwid.value);
       }
     });
   }else if(tab.props.name === '代理优化器'){
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Doptimizeref.value) {
-        Doptimizeref.value.getDoptimize(pid.value);
+        Doptimizeref.value.getDoptimize(pid.value,youhuaqiwid.value);
       }
     });
   }else if(tab.props.name === '梯度优化器'){
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Toptimizeref.value) {
-        Toptimizeref.value.getToptimize(pid.value);
+        Toptimizeref.value.getToptimize(pid.value,youhuaqiwid.value);
       }
     });
   }
 }
 
-const getaddsave = () => {
+const getaddsave = (nowid) => {
   if (Joptimizeref.value && typeof Joptimizeref.value.getaddsave === 'function') {
-    Joptimizeref.value.getaddsave();
+    if(nowid){
+      Joptimizeref.value.getaddsave(nowid);
+    }else{
+      Joptimizeref.value.getaddsave();
+    }
+    
   }
 }
 
-const getDaddsave = () => {
+const getDaddsave = (nowid) => {
   if (Doptimizeref.value && typeof Doptimizeref.value.getaddDsave === 'function') {
-    Doptimizeref.value.getaddDsave();
+    if(nowid){
+      Doptimizeref.value.getaddDsave(nowid);
+    }else{
+      Doptimizeref.value.getaddDsave();
+    }
   }
 }
 
-const getTaddsave = () => {
+const getTaddsave = (nowid) => {
   if (Toptimizeref.value && typeof Toptimizeref.value.getaddTsave === 'function') {
-    Toptimizeref.value.getaddTsave();
+    if(nowid){
+      Toptimizeref.value.getaddTsave(nowid);
+    }else{
+      Toptimizeref.value.getaddTsave();
+    }
   }
 }
 
 
 const getSave = (ref) => {
   if (ref == '进化优化器'){
-    getaddsave();
+    getaddsave(youhuaqiwid.value);
   }else if(ref == '代理优化器'){
-    getDaddsave();
+    getDaddsave(youhuaqiwid.value);
   }else if(ref == '梯度优化器'){
-    getTaddsave();
+    getTaddsave(youhuaqiwid.value);
   }
 }
 
@@ -3957,14 +3992,14 @@ const adfhandleClick2=(tab,event)=>{
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Cstref.value) {
-        Cstref.value.getcst(pid.value);
+        Cstref.value.getcst(pid.value,canshuhuawid.value);
       }
     });
   }else if(tab.props.name === 'FFD'){
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Ffdref.value) {
-        Ffdref.value.getffds(pid.value);
+        Ffdref.value.getffds(pid.value,canshuhuawid.value);
       }
     });
   }
@@ -3972,19 +4007,27 @@ const adfhandleClick2=(tab,event)=>{
 
 
 // 单独cst保存
-const cstok=()=>{
- // cstnum.value='';
- if(Cstref.value){
-  Cstref.value.getcstsave();
+const cstok=(nowid)=>{
+  // cstnum.value='';
+  if(Cstref.value){
+    if(nowid){
+      Cstref.value.getcstsave(nowid);
+    }else{
+      Cstref.value.getcstsave();
+    }
   }
   dialog.value.CSTt = false;
 
 }
 // 单独ffd保存
-const ffdok=()=>{
+const ffdok=(nowid)=>{
 
    if(Ffdref.value){
-    Ffdref.value.getffdsave();
+    if(nowid){
+      Ffdref.value.getffdsave(nowid);
+    }else{
+      Ffdref.value.getffdsave();
+    }
     }
     dialog.value.ffdt = false;
   
@@ -3992,9 +4035,9 @@ const ffdok=()=>{
 // cstffd保存
 const getCstFfdsave = (activeadf) => {
   if (activeadf == 'CST') {
-    cstok();
+    cstok(canshuhuawid.value);
   } else if (activeadf == 'FFD') {
-    ffdok();
+    ffdok(canshuhuawid.value);
   }
 }
 
@@ -4006,40 +4049,47 @@ const adfhandleClick3=(tab,event)=>{
     nextTick(() => {
       // 确保 ref 已经初始化
       if (Xfoilref.value) {
-        console.log('pid-0:',pid.value)
-        Xfoilref.value.getxfoil(pid.value);
+        Xfoilref.value.getxfoil(pid.value,qidongyouhuawid.value);
       }
     });
   }else if(tab.props.name === 'ADflow'){
     nextTick(() => {
       // 确保 ref 已经初始化
       if (ADflowref.value) {
-        ADflowref.value.getadflow(pid.value);
+        ADflowref.value.getadflow(pid.value,qidongyouhuawid.value);
       }
     });
   }
 }
 
 // xfoil保存
-const xfoilok=()=>{
+const xfoilok=(nowid)=>{
   if(Xfoilref.value){
-    Xfoilref.value.getxfoilsave();
+    if(nowid){
+      Xfoilref.value.getxfoilsave(nowid);
+    }else{
+      Xfoilref.value.getxfoilsave();
+    }
   }
 }
 
 // adflow保存
-const adflowok=()=>{
+const adflowok=(nowid)=>{
   if(ADflowref.value){
-    ADflowref.value.getadflowsave();
+    if(nowid){
+      ADflowref.value.getadflowsave(nowid);
+    }else{ 
+      ADflowref.value.getadflowsave();
+    }
   }
 }
 
 // xfoiladflow保存
 const getXfoilAdflowsave = (activeadf) => {
   if (activeadf == 'Xfoil') {
-    xfoilok();
+    xfoilok(qidongyouhuawid.value);
   } else if (activeadf == 'ADflow') {
-    adflowok();
+    adflowok(qidongyouhuawid.value);
   }
 }
 

+ 59 - 8
src/views/titlecomponent/ADflow.vue

@@ -310,11 +310,36 @@
           </el-radio-group>  
       </el-form-item>
       <el-form-item label="输出切面信息:" :label-width="formLabelWidth1">
-          <el-radio-group v-model="radioq">
+          <el-radio-group v-model="writeslicesolution" @change="writeslicesolutionChange">
             <el-radio :value="1" :label="1">是</el-radio>
             <el-radio :value="0" :label="0">否</el-radio>
           </el-radio-group>  
       </el-form-item>
+      <el-form-item v-show="qiemiansetshow" label="切面法相方向:" :label-width="formLabelWidth1">
+        <el-select
+          v-model="spandirection"
+          :suffix-icon="CaretBottom"
+          placeholder="请选择"
+        >
+          <el-option
+            v-for="item in liftindexlist"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item v-show="qiemiansetshow" label="切面展向位置:" :label-width="formLabelWidth1">
+        <el-input
+          v-model="slices"
+          :step="100"
+          :min="0"
+          :max="1000"
+          controls-position="right"
+          placeholder="多个位置以逗号分隔"
+        />
+      </el-form-item>
     </div>
     <!-- 分析参数 v-show="currentTab=='0'"-->
     <div v-show="currentTab1 == '3'">
@@ -365,13 +390,16 @@ let formLabelWidth1 = ref(180)
 let formLabelWidth200 = ref(200)
 let currentTab1 = ref(0)
 let pid = ref()
+let wid = ref()
 let adid = ref()
 let resrho = ref(1)
 let cl = ref(1)
 let cd = ref(1)
 let cmz = ref(1)
 let writetecplotsurfacesolution = ref(1)
-let radioq = ref(1)
+let spandirection = ref(1)
+let slices = ref("")
+let writeslicesolution = ref(1)
 let equationtype = ref("RANS")
 let equationtypelist = ref([
   { label: "RANS", value: "RANS" },
@@ -536,7 +564,7 @@ let adflowvalue = ref({
   mgcycle: "sg",
   ncycles: 500,
   l2convergence: 1.0e-5,
-  l2convergencecoarse: 1.0e-4
+  l2convergencecoarse: 1.0e-4,
 })
 
 
@@ -569,6 +597,16 @@ const headerCellClassName = ({ column }) => {
   return '';
 };
 
+let qiemiansetshow = ref(false)
+const writeslicesolutionChange = (value) => {
+  if (value === 1) {
+    qiemiansetshow.value = true
+  } else {
+    qiemiansetshow.value = false
+  } 
+}
+
+
 const isairfoilChange = (value) => {
   if (value === 1) {
     outParams.value = outParams1.value
@@ -603,22 +641,25 @@ const convertToStringArray = (result, Data) => {
   return result
 }
 
-const getadflow = (id) => {
-  pid.value = id
+const getadflow = (id,nowid) => {
+  pid.value = id;
+  wid.value = nowid;
   const params = {
     transCode: "MDO0049",
-    pid: pid.value
+    pid: pid.value,
+    wid: wid.value
   }
   request(params)
     .then((res) => {
       if (res.hasOwnProperty("adid")) {
         getadflowAssign(res);
+        writeslicesolutionChange(writeslicesolution.value);
         console.log('adid flow:',adid.value)
         emitter.emit("adidFromadflow", adid);
       }
     })
     .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('ADflow初始化失败')
     })
 }
 
@@ -648,12 +689,19 @@ const getadflowAssign = (data) => {
   adflowvalue.value.l2convergencecoarse = data.l2convergencecoarse
   inParams.value = data.inParams
   outParams.value = data.outParams
+  writeslicesolution.value = data.writeslicesolution
+  spandirection.value = data.spandirection
+  slices.value = data.slices
 }
 
-const getadflowsave = () => {
+const getadflowsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   const params = {
     transCode: "MDO0050",
     pid: pid.value,
+    wid: wid.value,
     gridfile: adflowvalue.value.gridfile,
     fid: adflowvalue.value.fid,
     proname: adflowvalue.value.proname,
@@ -675,6 +723,9 @@ const getadflowsave = () => {
     ncycles: adflowvalue.value.ncycles,
     l2convergence: adflowvalue.value.l2convergence,
     l2convergencecoarse: adflowvalue.value.l2convergencecoarse,
+    writeslicesolution: writeslicesolution.value,
+    spandirection: spandirection.value,
+    slices: slices.value,
     checked: 1,
     inParams: convertToStringArray([], inParams.value),
     outParams: convertToStringArray([], outParams.value)

+ 11 - 4
src/views/titlecomponent/Doptimize.vue

@@ -186,6 +186,7 @@ let youhua = ref({
   pm: 0.05
 })
 let pid = ref();
+let wid = ref();
 let suid = ref();
 let cstnum=ref('');
 let yslist = ref([
@@ -292,11 +293,13 @@ const handlesurromodChange = (val) => {
   }
 }
 
-const getDoptimize = (id) => {
+const getDoptimize = (id,nowid) => {
   pid.value = id;
+  wid.value = nowid;
   const params = {
     transCode: 'MDO0031',
     pid: pid.value,
+    wid: wid.value,
   }
   request(params).then((res) => {
     console.log('chushihua')
@@ -346,10 +349,14 @@ const getDoptimizeAssign = (data) => {
 }
 
 //代理优化器,添加保存
-const getaddDsave = () => {
+const getaddDsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   const params = {
     transCode: 'MDO0032',
     pid: pid.value,
+    wid: wid.value,
     suid: suid.value,
     nsurro:nsurro.value,
     nkriging:n_kriging.value,
@@ -385,12 +392,12 @@ const getaddDsave = () => {
   }
   request(params).then((res) => {
     ElMessage({
-      message: res.returnMsg,
+      message: '保存成功',
       type: 'success'
     })
   })
   .catch((err) => {
-    ElMessage.error(err.returnMsg)
+    ElMessage.error('保存失败')
   })
 }
 defineExpose({

+ 11 - 4
src/views/titlecomponent/Joptimize.vue

@@ -76,6 +76,7 @@ operator: '倒立变异',
 gpu: 'NO'
 })
 let pid=ref();
+let wid=ref();
 let eid=ref();
 let cstnum=ref('');
 let yslist = ref([
@@ -106,11 +107,13 @@ let addlist8 = ref([
   { label: 'YES', value: 'YES' },
   { label: 'NO', value: 'NO' },
 ])
-const getoptimize = (id) => {
+const getoptimize = (id,nowid) => {
   pid.value=id;
+  wid.value = nowid
   const params = {
     transCode: 'MDO0018',
     pid: pid.value,
+    wid: wid.value
   }
   request(params)
     .then((res) => {
@@ -157,10 +160,14 @@ const getoptimizeAssign = (data) => {
 }
 
 //进化优化器 添加保存
-const getaddsave = () => {
+const getaddsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   const params = {
     transCode: 'MDO0019',
     pid: pid.value,
+    wid: wid.value,
     eid: eid.value,
     algorithm: youhua.value.algorithm,
     popsize: youhua.value.popsize,
@@ -178,12 +185,12 @@ const getaddsave = () => {
   request(params)
     .then((res) => {
       ElMessage({
-        message: res.returnMsg,
+        message: '保存成功',
         type: 'success',
       })
     })
     .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('保存失败')
     })
 }
 defineExpose({getoptimize,getoptimizeAssign,getaddsave});

+ 12 - 5
src/views/titlecomponent/Toptimize.vue

@@ -51,6 +51,7 @@ optimalitytolerance: 1e-4,
 verifylevel: '-1'
 })
 let pid = ref();
+let wid = ref();
 let grid = ref();
 let cstnum=ref('');
 let yslist = ref([
@@ -65,11 +66,13 @@ let tdlist= ref([
 { label: '目标+约束详细验证', value: '3' },
 
 ])
-const getToptimize = (id) => {
+const getToptimize = (id,nowid) => {
   pid.value = id;
+  wid.value = nowid;
   const params = {
     transCode: 'MDO0033',
     pid: pid.value,
+    wid: wid.value,
   }
   request(params).then((res) => {
     if (res.hasOwnProperty('grid')) {
@@ -105,11 +108,15 @@ const getToptimizeAssign = (data) => {
   youhua.value.verifylevel = data.verifylevel;
 }
 
-//代理优化器,添加保存
-const getaddTsave = () => {
+//梯度优化器,添加保存
+const getaddTsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   const params = {
     transCode: 'MDO0034',
     pid: pid.value,
+    wid: wid.value,
     grid: grid.value,
     algorithm: youhua.value.algorithm,
     majoriterationslimit: youhua.value.majoriterationslimit,
@@ -123,12 +130,12 @@ const getaddTsave = () => {
   request(params).then((res) => {
     pid.value = res.pid;
     ElMessage({
-      message: res.returnMsg,
+      message: '保存成功',
       type: 'success'
     })
   })
   .catch((err) => {
-    ElMessage.error(err.returnMsg)
+    ElMessage.error('保存失败')
   })
 }
 defineExpose({

+ 12 - 5
src/views/titlecomponent/Xfoil.vue

@@ -175,6 +175,7 @@ let checked3 = ref(true)
 let analyzed = ref('1')
 
 let pid = ref()
+let wid = ref()
 let xfid = ref()
 
 let xfoilvalue = ref({
@@ -317,12 +318,14 @@ const convertToStringArray = (result, Data) => {
 }
 
 
-const getxfoil = (id) => {
+const getxfoil = (id,nowid) => {
   pid.value = id;
+  wid.value = nowid;
   console.log('pid-1:',pid.value)
   const params = {
     transCode: "MDO0046",
     pid: pid.value,
+    wid: wid.value
   };
   request(params).then((res) => {
     if (res.hasOwnProperty("xfid")) {
@@ -331,7 +334,7 @@ const getxfoil = (id) => {
     }
   })
   .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('Xfoil初始化失败')
     })
 }
 
@@ -349,11 +352,15 @@ const getxfoilAssign = (data) => {
   outParams.value = data.outParams;
 }
 
-const getxfoilsave = () => {
+const getxfoilsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   // console.log("pid:",pid.value);
   const params = {
     transCode: "MDO0047",
     pid: pid.value,
+    wid: wid.value,
     iter: xfoilvalue.value.iter,
     ppar: xfoilvalue.value.ppar,
     cpwr: xfoilvalue.value.cpwr,
@@ -366,12 +373,12 @@ const getxfoilsave = () => {
   };
   request(params).then((res) => {
     ElMessage({
-        message: res.returnMsg,
+        message: '保存成功',
         type: 'success',
       })
   })
   .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('保存失败')
     })
 }
 

+ 12 - 5
src/views/titlecomponent/csts.vue

@@ -107,6 +107,7 @@ let formLabelWidth3 = ref(100)
 let formLabelWidth200 = ref(180)
 let cstn = ref("8")
 let pid = ref("")
+let wid = ref()
 let cstid = ref("")
 let cstvalue = ref({
   uppern1: "0.5",
@@ -194,12 +195,14 @@ const getupperlower = () => {
 
 
 //查询cst 
-const getcst = (id) => {
+const getcst = (id,nowid) => {
   pid.value=id;
+  wid.value = nowid;
   console.log('getcst:',pid.value)
   const params = {
     transCode: 'MDO0040',
     pid: pid.value,
+    wid: wid.value
   }
   request(params)
     .then((res) => {
@@ -215,7 +218,7 @@ const getcst = (id) => {
 
     })
     .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error("CST初始化失败")
     })
 }
 
@@ -256,11 +259,15 @@ const getcstAssign = (data) => {
 }
 
 //cst 保存
-const getcstsave = () => {
+const getcstsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   getupperlower();
   const params = {
     transCode: 'MDO0041',
     pid: pid.value,
+    wid: wid.value,
     cstn: cstn.value,
     uppern1: cstvalue.value.uppern1,
     lowern1: cstvalue.value.lowern1,
@@ -273,12 +280,12 @@ const getcstsave = () => {
   request(params)
     .then((res) => {
       ElMessage({
-        message: res.returnMsg,
+        message: '保存成功',
         type: 'success',
       })
     })
     .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('保存失败')
     })
 }
 

+ 13 - 6
src/views/titlecomponent/ffds.vue

@@ -106,6 +106,7 @@ let formLabelWidth1 = ref("200")
 let xyzData = ref()
 
 let pid = ref()
+let wid = ref()
 let fid = ref()
 let ffdid = ref()
 let ffdvalue = ref({
@@ -358,11 +359,13 @@ const initializeTableFromVars = () => {
 }
 
 // ffd查询
-const getffds = (id) => {
-  pid.value = id
+const getffds = (id,nowid) => {
+  pid.value = id;
+  wid.value = nowid;
   const params = {
     transCode: "MDO0043",
-    pid: pid.value
+    pid: pid.value,
+    wid: wid.value
   }
   request(params)
     .then((res) => {
@@ -399,11 +402,15 @@ const getffdsAssign = (data) => {
 }
 
 // ffd保存
-const getffdsave = () => {
+const getffdsave = (nowid) => {
+  if(nowid){
+    wid.value = nowid
+  }
   // generateVars()
   const params = {
     transCode: "MDO0044",
     pid: pid.value,
+    wid: wid.value,
     fid: fid.value,
     fname: ffdvalue.value.fname,
     nx: ffdvalue.value.nx,
@@ -416,12 +423,12 @@ const getffdsave = () => {
   request(params)
     .then((res) => {
       ElMessage({
-        message: res.returnMsg,
+        message: '保存成功',
         type: "success"
       })
     })
     .catch((err) => {
-      ElMessage.error(err.returnMsg)
+      ElMessage.error('保存失败')
     })
 }
 

+ 67 - 19
src/views/vuetree/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <VueFlow ref="vueFlowRef" :nodes="nodes" :edges="edges"  :class="{ dark }"
+  <VueFlow ref="vueFlowRef" v-model:nodes="nodes" v-model:edges="edges"  :class="{ dark }"
     class="basic-flow" 
     style="background-image: url('src/assets/flowimg/surromdao.png'); background-position: center; background-repeat: no-repeat;"
     :default-viewport="{ zoom: 1.5 }" :min-zoom="0.2" :max-zoom="2.5" @drop="onDrop1"
@@ -476,39 +476,40 @@ function onSelection(){
 
 function onNodeDoubleClick(e) {
   noid.value = e.node;
+  const nowid = e.node.data.wid;
   console.log( e.node.data.name);
   if (e.node.data.name == '优化器') {
-    emit('optimizerfalse','优化器');
+    emit('optimizerfalse',{name:'优化器',wid:nowid});
   }else if(e.node.data.name=="进化优化器"){
-    emit('optimizerfalse','进化优化器');
+    emit('optimizerfalse',{name:'进化优化器',wid:nowid});
 
   }else if(e.node.data.name=="代理优化器"){
-    emit('optimizerfalse','代理优化器');
+    emit('optimizerfalse',{name:'代理优化器',wid:nowid});
 
   }else if(e.node.data.name=="Xfoil"){
-    emit('optimizerfalse','Xfoil');
+    emit('optimizerfalse',{name:'Xfoil',wid:nowid});
   }else if(e.node.data.name=="梯度优化器"){
-    emit('optimizerfalse','梯度优化器');
+    emit('optimizerfalse',{name:'梯度优化器',wid:nowid});
   }else if(e.node.data.name=="CST"){
-    emit('optimizerfalse','CST');
+    emit('optimizerfalse',{name:'CST',wid:nowid});
   }else if(e.node.data.name=="ADflow"){
-    emit('optimizerfalse','ADflow');
+    emit('optimizerfalse',{name:'ADflow',wid:nowid});
   }else if(e.node.data.name=="FFD"){
-    emit('optimizerfalse','FFD');
+    emit('optimizerfalse',{name:'FFD',wid:nowid});
   }else if(e.node.data.name=="TACS"){
-    emit('optimizerfalse','TACS');
+    emit('optimizerfalse',{name:'TACS',wid:nowid});
   }else if(e.node.data.name=="参数化"){
-    emit('optimizerfalse','参数化');
+    emit('optimizerfalse',{name:'参数化',wid:nowid});
   }else if(e.node.data.name=="气动分析"){
-    emit('optimizerfalse','气动分析');
+    emit('optimizerfalse',{name:'气动分析',wid:nowid});
   }else if(onPythonlist.value.some(item => e.node.data.name.includes(item))){
-    emit('optimizerfalse','Python');
+    emit('optimizerfalse',{name:e.node.data.name,wid:nowid});
   }else if(e.node.data.name=="CATIA"){
-    emit('optimizerfalse','CATIA');
+    emit('optimizerfalse',{name:'CATIA',wid:nowid});
   }else if(e.node.data.name=="FSI"){
-    emit('optimizerfalse','FUM to FEM');
+    emit('optimizerfalse',{name:'FSI',wid:nowid});
   }else if(e.node.data.name=="Flight"){
-    emit('optimizerfalse','Flight');
+    emit('optimizerfalse',{name:'Flight',wid:nowid});
   }
 
 }
@@ -792,7 +793,10 @@ function updatePos() {
 
 function removeEdge(id) {
   id = Edgeid.value;
+  const wid = seledge.value.data.wid;
   vueFlowRef.value.removeEdges(id);
+  deleteflow(wid);
+  seledge.value=null;
   console.log('msg:',datatree.value);
 }
 
@@ -803,8 +807,12 @@ const onDrop1=(event)=>{
 emitter.emit('doSomethingEvent');
 
 }
+
+
 function removeNode(id) {
   id = noid.value.id;
+  const wid = noid.value.data.wid;
+  console.log('removeNodewid:',wid);
 if(datatree.value==undefined){
   if(nodes.value.length>0){
     for (let i = 0; i <nodes.value.length; i++) {
@@ -812,6 +820,7 @@ if(datatree.value==undefined){
           console.log(44444)
           console.log( nodes.value[i]);
           nodes.value.splice(i, 1)
+          deleteflow(wid);
         }
 }
 console.log( nodes.value);
@@ -830,8 +839,10 @@ console.log( nodes.value);
       for (let j = 0; j <datatree.value[0].children[i].children.length; j++) {
         if(id==datatree.value[0].children[i].children[j].id){
          //datatree.value[0].children.splice(datatree.value[0].children[i].children[j], 1); 
-           datatree.value[0].children[i].children.splice(j, 1)
+           datatree.value[0].children[i].children.splice(j, 1);
+           deleteflow(wid);
            vueFlowRef.value.removeNodes(id);
+           removeRelatedEdges(id);
         }
     
   }
@@ -841,6 +852,20 @@ console.log( nodes.value);
 }
 }
 
+function removeRelatedEdges(nodeId) { 
+  //过滤出与该节点相关的连线
+  const relatedEdges = edges.value.filter(
+    (edge) => edge.source === nodeId || edge.target === nodeId
+  );
+  
+  // 遍历删除关联的连线
+  relatedEdges.forEach((edge) => {
+    if (edge.data && edge.data.wid) {
+      deleteflow(edge.data.wid);
+    }
+  });
+}
+
 // 删除提示
 const confirmDelete = () => {
   ElMessageBox.confirm(
@@ -865,6 +890,19 @@ const confirmDelete = () => {
 
 function removeall() {
   try {
+    const allnodes = nodes.value;
+    const allEdges = edges.value;
+    for (let i = 0; i < allnodes.length; i++) {
+      if (allnodes[i].data.wid) {
+        deleteflow(allnodes[i].data.wid);
+      }
+    }
+    for (let i = 0; i < allEdges.length; i++) {
+      if (allEdges[i].data.wid) {
+        deleteflow(allEdges[i].data.wid);
+      }
+    }
+
     nodes.value = []
     edges.value = []
     Nested2.value = []
@@ -950,8 +988,18 @@ const saveflow = async (pid,wid, uid, type, fromuid, touid) => {
 // saveFlowExample();
 
 // 删除流
-const deleteflow = () => {
-
+const deleteflow = (nowid) => {
+  const params = {
+    transCode: 'MDO0059',
+    wid: nowid,
+  }
+  request(params)
+  .then((res) => {
+    console.log(res);
+  })
+  .catch((err) => {
+    ElMessage.error('删除流程失败')
+  })
 }