|
@@ -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>
|