liuqiao 11 місяців тому
батько
коміт
ecd8ef2b88
4 змінених файлів з 256 додано та 80 видалено
  1. 216 70
      src/views/home.vue
  2. 31 3
      src/views/home/newfile.vue
  3. 2 1
      src/views/home/querylist.vue
  4. 7 6
      src/views/vuetree/index.vue

+ 216 - 70
src/views/home.vue

@@ -903,6 +903,9 @@
                   <li v-for="(tab, index) in xfoil"  :key="index" :class="{ 'active2': activeIndex3 === index }"
                   @click="activeIndex3 = index">{{ tab }}</li>
                 </ul>
+                <div class="chushij">
+                  <el-button type="info" size="small" @click="initialize()">初始化</el-button>
+                </div>
                 <!-- 输入 -->
                 <div class="eldesign classtable" style="margin-top: 10px;" v-if="activeIndex3==0">
                 <el-table :data="designtable" border style="width: 100%" height="400">
@@ -965,6 +968,7 @@
               </div>
               <template #footer>
                 <div class="dialog-footer">
+                  <el-button type="primary" >新建 </el-button>
                   <el-button @click="dialog.Xfiol = false">取消</el-button>
                   <el-button type="primary" @click="dialog.Xfiol = false">
                     确定
@@ -1076,14 +1080,14 @@
                     <el-input v-model="row.date" @change="handleEdit(row)" />
                   </template>
                 </el-table-column> -->
-                  <el-table-column prop="name" label="上限值">
+                  <el-table-column prop="s1" label="上限值">
                     <template #default="{ row }">
-                    <el-input v-model="row.name" @change="handleEdit(row)" />
+                    <el-input v-model="row.s1" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
-                <el-table-column prop="yin" label="下限值">
+                <el-table-column prop="x1" label="下限值">
                   <template #default="{ row }">
-                    <el-input v-model="row.yin" @change="handleEdit(row)" />
+                    <el-input v-model="row.x1" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
                   <!-- <el-table-column prop="q" label="权重系数">
@@ -1091,14 +1095,14 @@
                     <el-input v-model="row.q" @change="handleEdit(row)" />
                   </template>
                 </el-table-column> -->
-                  <el-table-column prop="cai" label="基准值" width="100">
+                  <el-table-column prop="f" label="基准值" width="100">
                   <template #default="{ row }">
-                    <el-input v-model="row.cai" @change="handleEdit(row)" />
+                    <el-input v-model="row.f" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
-                <el-table-column prop="q" label="说明">
+                <el-table-column prop="d" label="说明">
                     <template #default="{ row }">
-                    <el-input v-model="row.q" @change="handleEdit(row)" />
+                    <el-input v-model="row.d" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
                 </el-table>
@@ -1122,12 +1126,12 @@
                 </el-table-column> -->
                 <el-table-column prop="address" label="约束名称">
                         <template #default="{ row }">
-                          <el-input v-model="row.address" @change="handleEdit(row)" />
+                          <el-input v-model="row.name" @change="handleEdit(row)" />
                         </template>
                       </el-table-column>
                       <el-table-column prop="name" label="约束关系"  >
                         <template v-slot="scope">
-                        <el-select class="no-border "  v-model="scope.row.z" :suffix-icon="CaretBottom" placeholder="请选择">
+                        <el-select class="no-border " v-model="scope.row.da"  :suffix-icon="CaretBottom" placeholder="请选择">
                               <el-option
                                 v-for="item in options3"
                                 :key="item.value"
@@ -1167,14 +1171,14 @@
 
                   </template>
             </el-table-column> -->
-            <el-table-column prop="address" label="目标名称">
+            <el-table-column prop="name" label="目标名称">
                     <template #default="{ row }">
-                          <el-input v-model="row.address"  />
+                          <el-input v-model="row.name"  />
                         </template>
                   </el-table-column>
-                  <el-table-column prop="name" label="优化方向">
+                  <el-table-column prop="f" label="优化方向">
                     <template v-slot="scope">
-                    <el-select class="no-border "  v-model="scope.row.z" :suffix-icon="CaretBottom" placeholder="请选择">
+                    <el-select class="no-border "  v-model="scope.row.f" :suffix-icon="CaretBottom" placeholder="请选择">
                           <el-option
                             v-for="item in options1"
                             :key="item.value"
@@ -1190,7 +1194,7 @@
                           <el-input v-model="row.q" @change="handleEdit(row)" />
                         </template>
                   </el-table-column>
-                  <el-table-column prop="cai" label="数据缩放">
+                  <el-table-column prop="s" label="数据缩放">
                     <template v-slot="scope">
                     <el-checkbox :label="scope.row.qi?'采用':'不采用'" v-model="scope.row.qi" />
 
@@ -1201,9 +1205,9 @@
                           <el-input v-model="row.yin" @change="handleEdit(row)" />
                         </template>
                   </el-table-column>
-                  <el-table-column prop="address" label="说明" >
+                  <el-table-column prop="d" label="说明" >
                     <template #default="{ row }">
-                          <el-input v-model="row.address" @change="handleEdit(row)" />
+                          <el-input v-model="row.d" @change="handleEdit(row)" />
                         </template>
                   </el-table-column>
                 </el-table>
@@ -1220,7 +1224,7 @@
                     placeholder="请输入关键字" />   </el-form-item>
                     <el-button class="btncolor">导入</el-button>
                     <el-button class="btncolor" @click="onAddItem">新增</el-button>
-                    <el-button class="btncolor">确认</el-button>
+                    <el-button class="btncolor" @click="onokItem">确认</el-button>
                 </div>
               </div>
                 </div>
@@ -1245,8 +1249,9 @@
   </template>
   <script setup>
   import { ref, onMounted, reactive, } from "vue";
-  import { RouterView, RouterLink,useRouter } from "vue-router"
+  import { RouterView, RouterLink,useRouter,useRoute } from "vue-router"
   import myheader from "@/components/header.vue"
+  import { request, uploadFile } from "@/utils/request";
   import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
   import { Edit,CaretBottom } from '@element-plus/icons-vue'
   // import '@/utils/flexible'
@@ -1264,7 +1269,9 @@
   import vuefindex from './vuetree/index.vue'
   import Sidebar from './vuetree/Sidebar.vue'
   const router = useRouter();
+  const route = useRoute();
   let logs=ref("");
+  let pid=ref("");
   let tableval=ref();
   let vuefval=ref();
   let elodingfalse=ref(false);
@@ -1317,22 +1324,25 @@ let quval = ref("设计变量")
   
   ])
   let options1=ref([
-{ label: '最大化', value: '最大化' },
-{ label: '最小化', value: '最小化' },
+{ label: '最大化', value: -1},
+{ label: '最小化', value: 1 },
 ])
   let options2=ref([
 { label: '升力系数', value: '升力系数' },
 { label: '翼型面积', value: '翼型面积' },
 ])
 let options3=ref([
-{ label: '大于', value: '大于' },
-{ label: '小于', value: '小于' },
+{ label: '大于', value: 1 },
+{ label: '小于', value: 0 },
 ])
   let  defaultExpandedArr=ref([]);
   const defaultProps = {
     children: 'children',
     label: 'label',
   }
+  let svarlist=ref('');
+  let conlist=ref('');
+  let funlist=ref('');
 
   // treeData.value.forEach((item) => {
   //   defaultExpandedArr.value.push(item.id);
@@ -1531,34 +1541,29 @@ let options3=ref([
   ]
   const eloptimize = ref([
   {
-    qi:"false",
-    date: '2016-05-03',
-    device: '升阻比',
-    z: '大于',
-    q:1.0,
-    cai:false,
-    yin:1.0,
-    address:'serrrrrrr'
-  }
+          name:"f1",
+          f: 1,
+          q: 1,
+          s: 0,
+          yin:1,
+          d:'shuo',
+        }
   ])
   const tableData = ref([
     {
-      device: '升阻比',
-      z: '增大',
-      address:'serrrrrrr'
+      name: '',
+      da:0,
+      address:''
       
     },
   ])
   const designtable = ref([
     {
-      name:"false",
-      date: '2016-05-03',
-      device: '升阻比',
-      z: '增大',
-      q:1.0,
-      cai:'false',
-      yin:1.0,
-      address:'serrrrrrr'
+      name:"x1",
+      s1:'1',
+      x1:"2",
+      f:"1",
+      d:''
       
     },
   ])
@@ -1622,6 +1627,19 @@ let options3=ref([
   const getImgPath = (url) => {
     return new URL(`../assets/img/${url}`, import.meta.url).href
   }
+  onMounted(() => {
+  setTimeout(function() {
+    init();
+}, 1500);
+  // childfun();
+
+});
+  // 初始值
+const init=()=>{
+
+pid.value=route.query.pid;
+console.log(route.query.pid);
+}
   const handleClick = (tab, event) => {
   
     console.log(tab.props.name);
@@ -1664,8 +1682,10 @@ let options3=ref([
   dialog.value.optimizer=true;
  }else if(val=='进化优化器'){
   dialog.value.jboptimizer=true;
- }else if(val=='AirfoilAero'){
+ }else if(val=='AirfoilAero'||val=='Rosenbrock'){
+  importget();
   dialog.value.Xfiol=true;
+
  }else{
   dialog.value.optimizer=false;
   dialog.value.jboptimizer=false;
@@ -1753,43 +1773,161 @@ let options3=ref([
 
     if(activeIndex2.value==0){
       for (let i = 0; i < tablevalnum; i++) {
-        designtable.value.push({
-                name:"",
-                date: '',
-                device: '',
-                z: '',
-                q:'',
-                cai:'',
-                yin:'',
-                address:''
-                
-                })
+        designtable.value.push( {
+          name:"",
+          s1:'',
+          x1:"",
+          f:"",
+          d:''
+      
+    })
       }
     } else if(activeIndex2.value==1){
       for (let i = 0; i < tablevalnum; i++) {
-        tableData .value.push({
-          device: '升阻比',
-          z: '增大',
-          address:''
-                })
+        tableData.value.push( {
+      name: '',
+      da:0,
+      address:''
+      
+    })
       }
     }else if(activeIndex2.value==2){
       for (let i = 0; i < tablevalnum; i++) {
-        eloptimize.value.push( {
-        qi:"false",
-        date: '2016-05-03',
-        device: '升阻比',
-        z: '大于',
-        q:1.0,
-        cai:false,
-        yin:1.0,
-        address:'serrrrrrr'
- })
+        eloptimize.value.push({
+          name:"",
+          f:1,
+          q:Number(),
+          s:Number(),
+          yin:Number(),
+          d:'',
+        })
         
       }
     }
 
   }
+const onokItem=()=>{
+console.log(activeIndex2.value);
+  if(activeIndex2.value==0){
+    svarlist.value='';
+    for (let i = 0; i < designtable.value.length; i++) {
+      console.log(designtable.value[i])
+      const values = Object.values(designtable.value[i]);
+      const valuesWithSemiColons = values.join(',');
+      svarlist.value+= valuesWithSemiColons +','+ ';';
+    }
+    devise();
+      
+    } else if(activeIndex2.value==1){
+      conlist.value=''; 
+      for (let i = 0; i < tableData.value.length; i++) {
+      const values1 = Object.values(tableData.value[i]);
+      console.log(values1);
+      let valuesWithSemiColons1 = values1.join(',');
+      conlist.value+= valuesWithSemiColons1 + ';';
+    };
+       restrain();
+  
+    }else if(activeIndex2.value==2){
+      funlist.value='';
+      for (let i = 0; i < eloptimize.value.length; i++) {
+      const values2 = Object.values(eloptimize.value[i]);
+      let valuesWithSemiColons2 = values2.join(',');
+      funlist.value+= valuesWithSemiColons2 + ';';
+    };
+    console.log(conlist.value);
+      funlistaa();
+    
+    }
+}
+//设计变量的添加
+const devise=()=>{
+  const params = {
+        transCode: 'MDO0008',
+        pid:pid.value,
+        varlist: svarlist.value
+    }
+    request(params)
+        .then((res) => {
+          ElMessage({
+                  message: res.returnMsg,
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+//约束的添加restrain
+const restrain=()=>{
+  const params = {
+        transCode: 'MDO0009',
+        pid:pid.value,
+        conlist: conlist.value
+    }
+    request(params)
+        .then((res) => {
+          ElMessage({
+                  message: res.returnMsg,
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+//优化目标接口
+const funlistaa=()=>{
+  const params = {
+        transCode: 'MDO0010',
+        pid:pid.value,
+        funlist: funlist.value
+    }
+    request(params)
+        .then((res) => {
+          ElMessage({
+                  message: res.returnMsg,
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+//初始化
+const initialize=()=>{
+  const params = {
+        transCode: 'MDO0011',
+        pid:pid.value,
+    }
+    request(params)
+        .then((res) => {
+          ElMessage({
+                  message: res.returnMsg,
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+//输入参数查询
+const importget=()=>{
+  const params = {
+        transCode: 'MDO0012',
+        pid:pid.value,
+    }
+    request(params)
+        .then((res) => {
+          ElMessage({
+                  message: res.returnMsg,
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
   // 日志框
      // 日志的文本框
      const  footerShows=(evt)=>{
@@ -1983,4 +2121,12 @@ border: 1px solid #2267B1;
      .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
       background-color: #fff;
      }
+     .youhualog1{
+      position: relative;
+     }
+     .chushij{
+      position: absolute;
+      right: 13px;
+    top: 5px;
+     }
   </style>

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

@@ -67,6 +67,7 @@ let mid=ref('');
 let modelflow=ref();
 let gcid=ref('');//工程模版
 let mob=ref('');
+let pid=ref('');
 let newfile=ref({
   name:'',
   description:'',
@@ -100,15 +101,42 @@ const saveclick=()=>{
     ElMessage.error('描述不能为空')
   }
   else{
-    router.push({ path: "/home" ,query:{id:'1',name:1 ,vlaobj:JSON.stringify(newfile.value)}});
-  eldialog.value = false;
+   
   if(gcid.value=='2'){
     
     modeladd();
+  }else{
+    newbaocun();
   }
   }
 
 }
+//新建的保存
+const newbaocun=()=>{
+  const params = {
+        transCode: 'MDO0002',
+        pid: pid.value,
+        name: newfile.value.name,
+        remark:newfile.value.description,
+        image:'',
+        isshare:'1',
+        flow:'' 
+    }
+    request(params)
+        .then((res) => {
+            console.log(res);
+            pid.value=res.pid;
+            ElMessage({
+                  message: res.returnMsg,
+                  type: 'success',
+              })
+              eldialog.value = false;
+           router.push({ path: "/home" ,query:{id:'1',name:1 ,vlaobj:JSON.stringify(newfile.value),pid: pid.value}});
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
 //模版添加
 
 // 模版查询
@@ -142,7 +170,7 @@ const modeladd=()=>{
               })
               modelflow.value=res;
               console.log(modelflow.value);
-              router.push({ path: "/home",query:{id:'2'}});
+              router.push({ path: "/home",query:{id:'2',pid:res.pid}});
               sessionStorage.setItem("objlist",JSON.stringify(modelflow.value));
         })
         .catch((err) => {

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

@@ -56,6 +56,7 @@ let gd = ref({
     pageSize4:5,
     searchtag: ''
 })
+let pid=ref("");
 let tableHeight=(600);
 onMounted(() => {
     getsensor();
@@ -109,7 +110,7 @@ const handleCurrentChange2=(val)=>{
 }
 //点击列表
 const handlerow=(val)=>{
-    router.push({ path: "/home",query:{id:'2'}});
+    router.push({ path: "/home",query:{id:'2',pid:val.pid}});
 console.log(val);
 sessionStorage.setItem("objlist",JSON.stringify(val));
 }

+ 7 - 6
src/views/vuetree/index.vue

@@ -123,7 +123,7 @@ function onNodeDoubleClick(e) {
   }else if(e.node.data.label=='进化优化器'){
     emit('optimizerfalse','进化优化器');
 
-  }else if(e.node.data.label=='AirfoilAero'){
+  }else if(e.node.data.label=='AirfoilAero'||e.node.data.label=='Rosenbrock'){
     emit('optimizerfalse','AirfoilAero');
   }
 
@@ -245,12 +245,13 @@ const getroter=()=>{
     newobj.value.description=nodesflow.description;
 
  }else if(route.query.id=='2'){
+
   let objlist=JSON.parse(sessionStorage.getItem("objlist"));
-  let nodesflow=JSON.parse(objlist.flow)
-console.log(objlist);
-console.log(2233345)
-      nodes.value=nodesflow.nodes;
-      edges.value=nodesflow.edges;
+  if(objlist.flow!=''){
+    let nodesflow=JSON.parse(objlist.flow)
+    nodes.value=nodesflow.nodes;
+    edges.value=nodesflow.edges;
+  }
       newobj.value.name=objlist.name;
       newobj.value.description=objlist.remark;
       console.log(objlist.pid);