ソースを参照

增加接口,修改bug

tangjunhao 7 ヶ月 前
コミット
03367da776

+ 19 - 4
src/views/home.vue

@@ -904,12 +904,12 @@
                 <h4 :id="titleId" :class="titleClass">Xfoil</h4>
               </div>
             </template>
-            <Xfoil/>
+            <Xfoil ref="Xfoilref"/>
             <template #footer>
               <div class="dialog-footer">
                 <!-- <el-button type="info" @click="newxfoil">新建 </el-button> -->
                 <el-button type="info" @click="dialog.Xfiol = false">取消</el-button>
-                <el-button type="primary" @click="dialog.Xfiol = false">
+                <el-button type="primary" @click="xfoilok();dialog.Xfiol = false">
                   确定
                 </el-button>
               </div>
@@ -1838,6 +1838,7 @@ class Branin(BaseSolver):
 
 let Cstref = ref();
 let Ffdref = ref();
+let Xfoilref = ref();
 let Joptimizeref=ref();
 let Doptimizeref=ref();
 let Toptimizeref=ref();
@@ -2514,6 +2515,12 @@ const optimizerfalse = (val) => {
   }else if(val == 'Xfoil'){
   //  activeadf.value='Xfiol';
    dialog.value.Xfiol = true;
+   nextTick(() => {
+      // 确保 ref 已经初始化
+      if (Xfoilref.value) {
+        Xfoilref.value.getxfoil(pid.value);
+      }
+    });
   }else if(val == 'TACS'){
     dialog.value.Taxs = true;
   }else if(val == '模版'){
@@ -3134,9 +3141,10 @@ const getmub = () => {
         res.rows = res.rows.map((item, index) => {
           item.optdir = Number(item.optdir); // 将id属性转换为数字
           item.weight = Number(item.weight);
-          // item.scaling = Number(item.scaling);
-          // item.factor = Number(item.factor);
+          item.scaling = Number(item.scaling);
+          item.factor = Number(item.factor);
           item.reference = Number(item.reference);
+          item.remark = item.remark;
 
           treeitem3.value = {
             id: "1-3-3-" + index,
@@ -3803,6 +3811,13 @@ const getCstFfdsave = (activeadf) => {
 }
 
 
+// xfoil保存
+const xfoilok=()=>{
+  if(Xfoilref.value){
+    Xfoilref.value.getxfoilsave();
+  }
+}
+
 
 </script>
 <style lang="scss" scoped>

+ 6 - 3
src/views/home/newfile.vue

@@ -126,7 +126,7 @@ const handleChange = (val) => {
 
 }
 const newclick = () => {
-     sessionStorage.clear();
+  sessionStorage.clear();
   eldialog.value=true;
 
 
@@ -173,6 +173,7 @@ const saveclick=()=>{
 }
 //新建的保存
 const newbaocun=()=>{
+
   const params = {
         transCode: 'MDO0002',
         pid: pid.value,
@@ -180,7 +181,8 @@ const newbaocun=()=>{
         remark:newfile.value.remark,
         image:'',
         isshare:'1',
-        flow:'' 
+        flow:'',
+        
     }
     request(params)
         .then((res) => {
@@ -260,10 +262,11 @@ const modeladd=()=>{
         })
 }
 const clickimg=(data,index,id)=>{
+  
    mid.value=data.mid;
    mob.value=id;//判断当前点击第几的模版
    gcid.value=index;
-eldialog.value=true;
+   eldialog.value=true;
 
 }
 

+ 1 - 2
src/views/home/querylist.vue

@@ -127,8 +127,7 @@ const handleCurrentChange2=(val)=>{
 //点击列表
 const handlerow=(val)=>{
     router.push({ path: "/home",query:{id:'2',pid:val.pid}});
-console.log(val);
-sessionStorage.setItem("objlist",JSON.stringify(val));
+    sessionStorage.setItem("objlist",JSON.stringify(val));
 }
 
 const formatDate = datetime => !datetime ? '' : moment(datetime).format('YYYY-MM-DD HH:mm:ss');

+ 17 - 17
src/views/titlecomponent/ADflow.vue

@@ -25,7 +25,7 @@
                             </el-option>
                           </el-select> -->
           <el-input
-            v-model="adiflowvalue.path"
+            v-model="adiflowvalue.gridfile"
             :step="100"
             :min="0"
             :max="1000"
@@ -74,7 +74,7 @@
     >
       <el-form-item label="工况条件:" :label-width="formLabelWidth1">
         <el-select
-          v-model="adiflowvalue.wc"
+          v-model="adiflowvalue.proname"
           :suffix-icon="CaretBottom"
           placeholder="请选择"
         >
@@ -89,12 +89,12 @@
       </el-form-item>
       <el-form-item label="计算维数:" :label-width="formLabelWidth1">
         <el-select
-          v-model="ad1"
+          v-model="isairfoil"
           :suffix-icon="CaretBottom"
           placeholder="请选择"
         >
           <el-option
-            v-for="item in adlist1"
+            v-for="item in isairfoilList"
             :key="item.value"
             :label="item.label"
             :value="item.value"
@@ -227,13 +227,13 @@
           controls-position="right"
         />
       </el-form-item>
-      <el-form-item label="出物面信息:" :label-width="formLabelWidth1">
-          <el-radio-group v-model="radiow">
+      <el-form-item label="出物面信息:" :label-width="formLabelWidth1">
+          <el-radio-group v-model="writetecplotsurfacesolution">
             <el-radio :value="1" :label="1">是</el-radio>
-            <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 label="出切面信息:" :label-width="formLabelWidth1">
+      <el-form-item label="出切面信息:" :label-width="formLabelWidth1">
           <el-radio-group v-model="radioq">
             <el-radio :value="1" :label="1">是</el-radio>
             <el-radio :value="-1" :label="-1">否</el-radio>
@@ -283,17 +283,17 @@ let checked1 = ref(true)
 let checked2 = ref(true)
 let checked3 = ref(true)
 let checked4 = ref(true)
-let radiow = ref(1)
+let writetecplotsurfacesolution = ref(1)
 let radioq = ref(1)
 let ad2 = ref("RANS")
 let adlist2 = ref([
   { label: "RANS", value: "RANS" },
   { label: "Euler", value: "Euler" }
 ])
-let ad1 = ref("二维")
-let adlist1 = ref([
-  { label: "二维", value: "二维" },
-  { label: "三维", value: "三维" }
+let isairfoil = ref(1)
+let isairfoilList = ref([
+  { label: "二维", value: 1 },
+  { label: "三维", value: 0 }
 ])
 let ad3 = ref("x")
 let adlist3 = ref([
@@ -344,9 +344,9 @@ let fenxitable = ref([
 
 
 let adiflowvalue = ref({
-  path: "",
-  wc: "巡航工况",
-  FeatureLength: 1,
+  gridfile: "",
+  proname: "巡航工况",
+  isairfoil: 1,
   ReferenceTemperature: 288.15,
   ReferenceArea: 1,
   MomentCenterX: 0.25,
@@ -358,7 +358,7 @@ let adiflowvalue = ref({
 })
 
 let wclist = ref([
-  { label: "巡航工况", value: "巡航工况" }
+  { label: "巡航工况", value: "cruise" }
 ])
 let tabslist1 = ref([
   { id: "0", name: "网格文件" },

+ 116 - 16
src/views/titlecomponent/Xfoil.vue

@@ -141,6 +141,7 @@ import { ref, onMounted, reactive, provide, nextTick } from "vue"
 import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
 import { Edit, CaretBottom } from "@element-plus/icons-vue"
 import { tr } from "element-plus/es/locale/index.mjs"
+import { request, uploadFile } from "@/utils/request"
 let formLabelWidth3 = ref(100)
 let formLabelWidth1 = ref(170)
 let formLabelWidth2 = ref(250)
@@ -150,6 +151,9 @@ let checked2 = ref(true)
 let checked3 = ref(true)
 let analyzed = ref('1')
 
+let pid = ref()
+let xfid = ref()
+
 let xfoilvalue = ref({
   iter: 100,
   ppar: 200,
@@ -170,51 +174,66 @@ let inParams = ref([
     code: "1",
     value: 0.1,
     name: "AoA",
-    flag: 1
+    flag: 1,
+    type: 1
   },
   {
     code: "2",
     value: 0.1,
     name: "Ma",
-    flag: 1
+    flag: 1,
+    type: 1
   },
   {
     code: "3",
     value: 6.5e6,
     name: "Re",
-    flag: 1
+    flag: 1,
+    type: 1
   }
 ])
-let fenxtable = ref([
+let outParams = ref([
 {
-    data: "000",
+    code: "1",
+    value: "000",
     name: "升力系数Cl",
-    enable: 1
+    flag: 1,
+    type: 2
   },
   {
-    data: "000",
+    code: "2",
+    value: "000",
     name: "阻力系数Cd",
-    enable: 1
+    flag: 1,
+    type: 2
   },
   {
-    data: "000",
+    code: "3",
+    value: "000",
     name: "压阻力系数Cdp",
-    enable: 1
+    flag: 1,
+    type: 2
   },
   {
-    data: "000",
+    code: "4",
+    value: "000",
     name: "力矩系数Cm",
-    enable: 1
+    flag: 1,
+    type: 2
   },
   {
-    data: "000",
+    code: "5",
+    value: "000",
     name: "上表面转换点位置xtr-upper",
-    enable: 1
+    flag: 1,
+    type: 2
   },
   {
-    data: "000",
+    code: "6",
+    value: "000",
     name: "下表面转换点位置xtr-lower",
-    enable: 1
+    flag: 1,
+    type: 2
   }
 ])
 // 选项卡
@@ -231,6 +250,87 @@ const addRow = () => {
   })
 }
 
+const convertToStringArray = (result, Data) => {
+  console.log('Data:', Data);
+
+  // 安全检查 Data,确保它是一个数组
+  if (!Array.isArray(Data)) {
+    console.error('Data should be an array');
+    return result; // 返回原 result 或者根据需要返回其他默认值
+  }
+
+  result = Data.map(row => {
+    // 获取每一列的数据,排除带有 'id' 的字段
+    return Object.keys(row)
+      .map(key => {
+        const value = row[key];
+        return (value === null || value === undefined || value === '') ? ' ' : value; // 处理 null、undefined 和空字符串
+      })
+      .join(',');  // 将每个字段的值用逗号连接
+  }).join(';');
+
+  return result;
+}
+
+
+const getxfoil = (id) => {
+  pid.value = id;
+  const params = {
+    transCode: "MDO0046",
+    pid: pid.value,
+  };
+  request(params).then((res) => {
+    if (res.hasOwnProperty("xfid")) {
+      getxfoilAssign(res);
+    }
+  })
+  .catch((err) => {
+      ElMessage.error(err.returnMsg)
+    })
+}
+
+const getxfoilAssign = (data) => {
+  xfid.value = data.xfid;
+  xfoilvalue.value.iter = data.iter;
+  xfoilvalue.value.ppar = data.ppar;
+  xfoilvalue.value.cpwr = data.cpwr;
+  xfoilvalue.value.yxzb = data.yxzb;
+  xfoilvalue.value.pacc = data.pacc;
+  analyzed.value = data.analyzed;
+  inParams.value = data.inParams;
+  outParams.value = data.outParams;
+}
+
+const getxfoilsave = () => {
+  const params = {
+    transCode: "MDO0047",
+    pid: pid.value,
+    iter: xfoilvalue.value.iter,
+    ppar: xfoilvalue.value.ppar,
+    cpwr: xfoilvalue.value.cpwr,
+    yxzb: xfoilvalue.value.yxzb,
+    pacc: xfoilvalue.value.pacc,
+    analyzed: analyzed.value,
+    checked:1,
+    inParams: convertToStringArray([],inParams.value),
+    outParams: convertToStringArray([],outParams.value)
+  };
+  request(params).then((res) => {
+    ElMessage({
+        message: res.returnMsg,
+        type: 'success',
+      })
+  })
+  .catch((err) => {
+      ElMessage.error(err.returnMsg)
+    })
+}
+
+defineExpose({
+  getxfoil,
+  getxfoilAssign,
+  getxfoilsave
+})
 
 </script>
 

+ 5 - 1
src/views/vuetree/index.vue

@@ -485,6 +485,9 @@ async  function logToObject1() {
 }
 //添加接口
 const addflow = () => {
+    const savedObj = JSON.parse(sessionStorage.getItem("objlist"));
+    const stypeValue = savedObj ? savedObj.stype : '';
+    console.log(stypeValue);
     const params = {
         transCode: 'MDO0002',
         pid: pid.value,
@@ -492,7 +495,8 @@ const addflow = () => {
         remark:newobj.value.description,
         image:vueflowimg.value,
         isshare:'1',
-        flow:mergedObj.value 
+        flow:mergedObj.value ,
+        stype:stypeValue,
     }
     console.log(params);
     request(params)