liuqiao 11 bulan lalu
induk
melakukan
a8db0193ad
2 mengubah file dengan 275 tambahan dan 83 penghapusan
  1. 1 1
      src/views/echart/index.vue
  2. 274 82
      src/views/home.vue

+ 1 - 1
src/views/echart/index.vue

@@ -4,7 +4,7 @@
 <!-- 折线图 -->
   <div>
   <div class="echartitem">
-      <div id="line" style="width: 340px;height:180px;"></div>
+      <div id="line"></div>
   </div>
   </div>
 </template>

+ 274 - 82
src/views/home.vue

@@ -901,17 +901,17 @@
               <div class="youhualog youhualog1" style="height: 480px;">
                 <ul>
                   <li v-for="(tab, index) in xfoil"  :key="index" :class="{ 'active2': activeIndex3 === index }"
-                  @click="activeIndex3 = index">{{ tab }}</li>
+                  @click="dianjia(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">
-                  <el-table-column prop="name" label="启用" width="50">
+                <el-table :data="srtable" border style="width: 100%" height="400">
+                  <el-table-column prop="enable" label="启用" width="50">
                     <template v-slot="scope">
-                    <el-checkbox :label="false" v-model="scope.row.qi" />
+                    <el-checkbox   :false-label="'0'"  :true-label="'1'" :label="false"  v-model="scope.row.enable" />
                   </template>
                 </el-table-column>
                   <el-table-column prop="name" label="参数">
@@ -919,16 +919,32 @@
                     <el-input v-model="row.name" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
-                <el-table-column prop="yin" label="参数值1">
+                <el-table-column prop="v1" label="参数值1">
                   <template #default="{ row }">
-                    <el-input v-model="row.yin" @change="handleEdit(row)" />
+                    <el-input v-model.number="row.v1" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
-                  <el-table-column prop="cai" label="参数值2" width="100">
+                  <el-table-column prop="v2" label="参数值2" width="100">
                   <template #default="{ row }">
-                    <el-input v-model="row.cai" @change="handleEdit(row)" />
+                    <el-input v-model.number="row.v2" @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
+                <el-table-column label="操作"  width="140">
+                          <template #default="scope">
+                            <el-button
+                              size="small"
+                              type="success"
+                              @click.stop="susave(scope.$index, scope.row)"
+                              >保存</el-button
+                            >
+                            <el-button
+                            size="small"
+                              type="danger"
+                              @click.stop="sudelete(scope.$index, scope.row)"
+                              >删除</el-button
+                            >
+                          </template>
+                        </el-table-column>
                 </el-table>
               </div>
               <!-- 执行 -->
@@ -942,34 +958,50 @@
               </div>
               <!-- 输出 -->
               <div class="eldesign classtable" style="margin-top: 10px;" v-if="activeIndex3==2">
-            <el-table :data="designtable" border style="width: 100%" height="400">
-              <el-table-column prop="name" label="启用" width="50">
-                <template v-slot="scope">
-                <el-checkbox :label="false" v-model="scope.row.qi" />
-              </template>
-            </el-table-column>
+            <el-table :data="sctable" border style="width: 100%" height="400">
+              <el-table-column prop="enable" label="启用" width="50">
+                    <template v-slot="scope">
+                    <el-checkbox   :false-label="'0'"  :true-label="'1'" :label="false"  v-model="scope.row.enable" />
+                  </template>
+                </el-table-column>
               <el-table-column prop="name" label="参数">
                 <template #default="{ row }">
                 <el-input v-model="row.name" @change="handleEdit(row)" />
               </template>
             </el-table-column>
-            <el-table-column prop="yin" label="参数值1">
+            <el-table-column prop="v1" label="参数值1">
               <template #default="{ row }">
-                <el-input v-model="row.yin" @change="handleEdit(row)" />
+                <el-input v-model="row.v1" @change="handleEdit(row)" />
               </template>
             </el-table-column>
-              <el-table-column prop="cai" label="参数值2" width="100">
+              <el-table-column prop="v2" label="参数值2" width="100">
               <template #default="{ row }">
-                <el-input v-model="row.cai" @change="handleEdit(row)" />
+                <el-input v-model="row.v2" @change="handleEdit(row)" />
               </template>
             </el-table-column>
+            <el-table-column label="操作"  width="140">
+                          <template #default="scope">
+                            <el-button
+                              size="small"
+                              type="success"
+                              @click.stop="scsave(scope.$index, scope.row)"
+                              >保存</el-button
+                            >
+                            <el-button
+                            size="small"
+                              type="danger"
+                              @click.stop="scdelete(scope.$index, scope.row)"
+                              >删除</el-button
+                            >
+                          </template>
+                        </el-table-column>
             </el-table>
             </div>
               </div>
               <template #footer>
                 <div class="dialog-footer">
-                  <el-button type="primary" >新建 </el-button>
-                  <el-button @click="dialog.Xfiol = false">取消</el-button>
+                  <el-button type="info"  @click="newxfiol" >新建 </el-button>
+                  <el-button  type="info" @click="dialog.Xfiol = false">取消</el-button>
                   <el-button type="primary" @click="dialog.Xfiol = false">
                     确定
                   </el-button>
@@ -1082,12 +1114,12 @@
                 </el-table-column> -->
                   <el-table-column prop="s1" label="上限值">
                     <template #default="{ row }">
-                    <el-input v-model="row.s1" @change="handleEdit(row)" />
+                    <el-input v-model.Number="row.s1"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
                 <el-table-column prop="x1" label="下限值">
                   <template #default="{ row }">
-                    <el-input v-model="row.x1" @change="handleEdit(row)" />
+                    <el-input v-model.Number="row.x1"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
                   <!-- <el-table-column prop="q" label="权重系数">
@@ -1097,7 +1129,7 @@
                 </el-table-column> -->
                   <el-table-column prop="f" label="基准值" width="100">
                   <template #default="{ row }">
-                    <el-input v-model="row.f" @change="handleEdit(row)" />
+                    <el-input v-model.Number="row.f"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
                   </template>
                 </el-table-column>
                 <el-table-column prop="d" label="说明">
@@ -1144,7 +1176,7 @@
                     </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.Number="row.address"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
                         </template>
                       </el-table-column>
                     </el-table>
@@ -1191,18 +1223,19 @@
                 </el-table-column>
                   <el-table-column prop="q" label="权重系数">
                     <template #default="{ row }">
-                          <el-input v-model="row.q" @change="handleEdit(row)" />
+                          <el-input v-model.number="row.q"   oninput ="value=value.replace(/^|[^0-9]/g,'')"   @change="handleEdit(row)" />
                         </template>
                   </el-table-column>
                   <el-table-column prop="s" label="数据缩放">
+                    <!-- :label="scope.row.s?'采用':'不采用'" -->
                     <template v-slot="scope">
-                    <el-checkbox :label="scope.row.qi?'采用':'不采用'" v-model="scope.row.qi" />
+                    <el-checkbox  :false-label="0"  :true-label="1" :label="scope.row.s?'采用':'不采用'"  v-model="scope.row.s" />
 
                   </template>
                 </el-table-column>
                   <el-table-column prop="yin" label="缩放因子">
                     <template #default="{ row }">
-                          <el-input v-model="row.yin" @change="handleEdit(row)" />
+                          <el-input v-model.number="row.yin" oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
                         </template>
                   </el-table-column>
                   <el-table-column prop="d" label="说明" >
@@ -1272,14 +1305,18 @@
   const route = useRoute();
   let logs=ref("");
   let pid=ref("");
+  let fid=ref('');
+  let conid=ref('');
   let tableval=ref();
   let vuefval=ref();
   let elodingfalse=ref(false);
   let footerShow=ref(true);
   let tabName=ref("one")
   const tabs = ['信息栏', '优化问题'];
-  const listli = ['设计变量', '约束条件', '优化目标'];
+  const listli = ['设计变量', '约束条件', '目标函数'];
   const xfoil = ['输入', '执行', '输出'];
+  let srtable=ref();
+  let sctable=ref();
   // let quxian=ref([{
   //   val:'1',name:"设计变量",
   //   val:'2',name:"约束条件",
@@ -1289,7 +1326,7 @@
   let quxian = ref([
   { label: '设计变量', value: '设计变量' },
   { label: '约束条件', value: '约束条件' },
-  { label: '优化目标', value: '优化目标' },
+  { label: '目标函数', value: '目标函数' },
 ])
 let quval = ref("设计变量")
   const activeIndex = ref(0);
@@ -1332,8 +1369,8 @@ let quval = ref("设计变量")
 { label: '翼型面积', value: '翼型面积' },
 ])
 let options3=ref([
-{ label: '大于', value: 1 },
-{ label: '小于', value: 0 },
+{ label: '大于', value: -1 },
+{ label: '小于', value: 1 },
 ])
   let  defaultExpandedArr=ref([]);
   const defaultProps = {
@@ -1448,7 +1485,7 @@ let options3=ref([
   ])
   
   let yslist = ref([
-  { label: 'GA遗传算法', value: 'GA遗传算法' },
+  { label: 'GA', value: 'GA' },
   { label: 'PSO', value: 'PSO' },
   { label: 'NSGA2', value: 'NSGA2' },
   ])
@@ -1551,21 +1588,21 @@ let options3=ref([
   ])
   const tableData = ref([
     {
-      name: '',
-      da:0,
+      name: 'g1',
+      da:-1,
       address:''
       
     },
   ])
   const designtable = ref([
-    {
-      name:"x1",
-      s1:'1',
-      x1:"2",
-      f:"1",
-      d:''
+  {
+          name:"x1",
+          s1:0,
+          x1:0,
+          f:0,
+          d:''
       
-    },
+    }
   ])
   const tasktable = ref([
   {
@@ -1651,7 +1688,7 @@ console.log(route.query.pid);
   }
   //表格点击事件
   const handleEdit = (row) => {
-  console.log('编辑后的数据:', row);
+ // console.log('编辑后的数据:', row);
   // 在这里处理数据保存逻辑,例如发送请求到后端更新数据
 };
   const footerClick = (tab, event) => {
@@ -1774,10 +1811,10 @@ console.log(route.query.pid);
     if(activeIndex2.value==0){
       for (let i = 0; i < tablevalnum; i++) {
         designtable.value.push( {
-          name:"",
-          s1:'',
-          x1:"",
-          f:"",
+          name:"x1",
+          s1:0,
+          x1:0,
+          f:0,
           d:''
       
     })
@@ -1785,8 +1822,8 @@ console.log(route.query.pid);
     } else if(activeIndex2.value==1){
       for (let i = 0; i < tablevalnum; i++) {
         tableData.value.push( {
-      name: '',
-      da:0,
+      name: 'g1',
+      da:-1,
       address:''
       
     })
@@ -1796,9 +1833,9 @@ console.log(route.query.pid);
         eloptimize.value.push({
           name:"",
           f:1,
-          q:Number(),
-          s:Number(),
-          yin:Number(),
+          q:0,
+          s:0,
+          yin:0,
           d:'',
         })
         
@@ -1806,51 +1843,63 @@ console.log(route.query.pid);
     }
 
   }
+//对象数组转化字符串
+const getarr=(name,arrays)=>{
+  for (let i = 0; i < arrays.length; i++) {
+    let arr=[];
+      for (const key in arrays[i]) {
+        if ( arrays[i].hasOwnProperty(key)) { 
+          arr.push(arrays[i][key]);
+  }
+
+}
+for (let j = 0; j < arr.length; j++) {
+              if(typeof arr[j]==='string'&&arr[j]==""){
+                console.log(11111)
+                arr[j]=" ";
+              }
+}
+console.log(arr)
+  const valuesWithSemiColons = arr.join(',');
+  name+= valuesWithSemiColons + ';';
+
+ }
+ console.log(name)
+ return name;
+}
 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();
+   svarlist.value= getarr(svarlist.value,designtable.value)
+    // for (let i = 0; i < designtable.value.length; i++) {
+    //     const values2 = Object.values(designtable.value[i]);
+    //     console.log(values2);
+    //       for (let j = 0; j < values2.length; j++) {
+    //         console.log(values2[j]);
+    //           if(values2[j]==""){
+    //             values2[j]=" ";
+    //           }
+    //       }
+    //     let valuesWithSemiColons2 = values2.join(',');
+    //     svarlist.value+= valuesWithSemiColons2 + ';';
+    // };
+    // console.log(  svarlist.value);
+  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);
-       for (let j = 0; j < values1.length; j++) {
-              if(values1[j]==""){
-                values1[j]=" ";
-              }
-          }
-      let valuesWithSemiColons1 = values1.join(',');
-      conlist.value+= valuesWithSemiColons1 + ';';
-    };
+      conlist.value= getarr( conlist.value, tableData.value)
        restrain();
   
     }else if(activeIndex2.value==2){
       funlist.value='';
-      for (let i = 0; i < eloptimize.value.length; i++) {
-        const values2 = Object.values(eloptimize.value[i]);
-        console.log(values2);
-          for (let j = 0; j < values2.length; j++) {
-              if(values2[j]==""){
-                values2[j]=" ";
-              }
-          }
-        let valuesWithSemiColons2 = values2.join(',');
-        funlist.value+= valuesWithSemiColons2 + ';';
-    };
-    console.log(conlist.value);
+      funlist.value= getarr(funlist.value,eloptimize.value)
       funlistaa();
     
     }
 }
+
 //设计变量的添加
 const devise=()=>{
   const params = {
@@ -1928,16 +1977,159 @@ const importget=()=>{
         transCode: 'MDO0012',
         pid:pid.value,
     }
+    request(params)
+        .then((res) => {
+          srtable.value=res.rows;
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+//输入保存
+const susave=(index,row)=>{
+console.log(row);
+const params = {
+        transCode: 'MDO0013',
+        pid:pid.value,
+        inid:row.inid,
+        vid:row.vid,
+        enable:row.enable,
+        name:row.name,
+        v1:row.v1,
+        v2:row.v2
+    }
     request(params)
         .then((res) => {
           ElMessage({
-                  message: res.returnMsg,
+                  message: '保存成功',
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+// 输入的删除
+
+const suelete=(index,row)=>{
+console.log(row);
+const params = {
+        transCode: 'MDO0014',
+        inid:row.inid,
+    }
+    request(params)
+        .then((res) => {
+          importget();
+          ElMessage({
+                  message:" 删除成功",
                   type: 'success',
               })
         })
         .catch((err) => {
             ElMessage.error(err.returnMsg)
         })
+}
+//输入输出的新建
+const newxfiol=()=>{
+if(activeIndex3.value==0){
+  srtable.value.push({
+          name:"",
+          v1:'0',
+          v2:'0',
+          enable:'0'
+       
+        })
+}else if(activeIndex3.value==2){
+  console.log( sctable.value);
+  sctable.value.push({
+          name:"",
+          v1:'',
+          v2:'',
+          enable:'0'
+       
+        })
+}
+   
+ 
+}
+// 点击掉查询接口
+const dianjia=(index)=>{
+  activeIndex3.value=index;
+  if(activeIndex3.value==0){
+    importget()
+}else if(activeIndex3.value==2){
+  console.log(11111)
+    exportget();
+}
+}
+
+//输出参数查询
+const exportget=()=>{
+  const params = {
+        transCode: 'MDO0015',
+        pid:pid.value,
+    }
+    request(params)
+        .then((res) => {
+          sctable.value=res.rows;
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+// 输出保存
+const scsave=(index,row)=>{
+if(row.hasOwnProperty('fid')==true){
+  fid.value=row.fid;
+}
+if(row.hasOwnProperty('conid')==true){
+  conid.value=row.conid;
+}
+const params = {
+        transCode: 'MDO0016',
+        pid:pid.value,
+        outid:row.outid,
+        fid:fid.value,
+        conid:conid.value,
+        enable:row.enable,
+        name:row.name,
+        v1:row.v1,
+        v2:row.v2
+    }
+    request(params)
+        .then((res) => {
+          ElMessage({
+                  message: '保存成功',
+                  type: 'success',
+              })
+              exportget();
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+}
+//输出删除scdelete
+const scdelete=(index,row)=>{
+console.log(row);
+if(row.hasOwnProperty('outid')==false){
+  console.log(2222)
+}else{
+const params = {
+        transCode: 'MDO0017',
+        outid:row.outid,
+    }
+    request(params)
+        .then((res) => {
+          exportget();
+          ElMessage({
+                  message:" 删除成功",
+                  type: 'success',
+              })
+        })
+        .catch((err) => {
+            ElMessage.error(err.returnMsg)
+        })
+      }
 }
   // 日志框
      // 日志的文本框