|
@@ -874,6 +874,118 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
+ <!--梯度优化器 -->
|
|
|
+ <el-dialog v-model="dialog.tidu" align-center :modal="false" :close-on-click-modal="false"
|
|
|
+ :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
|
|
|
+ :before-close="handleClose" width="430" class="dialog_class bgcolor tianjia sel">
|
|
|
+
|
|
|
+ <template #header="{ titleId, titleClass }">
|
|
|
+ <div class="my-header ">
|
|
|
+ <el-image :src="getImgPath('xuek12.png')" fit="contain"></el-image>
|
|
|
+ <h4 :id="titleId" :class="titleClass">梯度优化器</h4>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="numberinput lefttext">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="优化算法:" :label-width="formLabelWidth1">
|
|
|
+ <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
|
|
|
+ <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最大外迭代步数:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="输出精度等级:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="线性约束容差:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="非线性约束容差:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最优性度量容差::" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="梯度验证级别:" :label-width="formLabelWidth1">
|
|
|
+ <el-select v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
|
|
|
+ <el-option v-for="item in yslist" :key="item.value" :label="item.label" :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="dialog.tidu = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click=" dialog.tidu = false">
|
|
|
+ 确定
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ <!--CST -->
|
|
|
+ <el-dialog v-model="dialog.CSTt" align-center :modal="false" :close-on-click-modal="false"
|
|
|
+ :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
|
|
|
+ :before-close="handleClose" width="900" class="dialog_class bgcolor tianjia sel">
|
|
|
+
|
|
|
+ <template #header="{ titleId, titleClass }">
|
|
|
+ <div class="my-header ">
|
|
|
+ <el-image :src="getImgPath('xuek0.png')" fit="contain"></el-image>
|
|
|
+ <h4 :id="titleId" :class="titleClass">CST</h4>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="numberinput lefttext ">
|
|
|
+ <el-form>
|
|
|
+ <div style="width: 49%;">
|
|
|
+ <el-form-item label="CST阶数:" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="cstnum" :max="20" controls-position="right" @keydown.enter='keydownenter'/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex;">
|
|
|
+ <div class="cstleft ">
|
|
|
+ <el-form-item label="上表面类函数参数N1:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="下表面类函数参数N1:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="cstleft " style="margin-left: 20px;">
|
|
|
+ <el-form-item label="上表面类函数参数N2:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="下表面类函数参数N2:" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="classtable">
|
|
|
+ <el-table :data="tableDatacst" style="width: 100%" border>
|
|
|
+ <el-table-column prop="date" label="" width="180" />
|
|
|
+ <el-table-column
|
|
|
+ v-for="(column,index) in tablecstHeaders" :key="index"
|
|
|
+ :prop="column.prop"
|
|
|
+ :label="column.label">
|
|
|
+
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-input v-model="row.label" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="dialog.CSTt = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click=" dialog.CSTt = false">
|
|
|
+ 确定
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
<!-- 查看报告 -->
|
|
|
<el-dialog v-model="dialog.lookover" align-center :modal="false" :close-on-click-modal="false"
|
|
|
:append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
|
|
@@ -1210,10 +1322,13 @@ import BarChart from './echart/BarChart.vue'
|
|
|
import scatter from './echart/scatter.vue'
|
|
|
import radar from './echart/radar.vue'
|
|
|
let Sidebarref = ref();
|
|
|
+let cstnum=ref(0);
|
|
|
+let formLabelWidth3=ref(100)
|
|
|
+let tablecstHeaders=ref([]);
|
|
|
let treeitem = ref({});
|
|
|
let treeitem2 = ref({});
|
|
|
let treeitem3 = ref({});
|
|
|
-let percentage = ref(0);
|
|
|
+let percentage = ref(70);
|
|
|
let progressshow = ref(false);
|
|
|
let flowshow = ref(true);
|
|
|
let jiankong = ref(false);
|
|
@@ -1496,12 +1611,24 @@ let dialog = ref({
|
|
|
jboptimizer: false,
|
|
|
lookover:false,
|
|
|
Xfiol: false,
|
|
|
+ tidu:false,
|
|
|
+ CSTt:false,
|
|
|
enddialog: false,
|
|
|
addfun: false,
|
|
|
sufun: false,
|
|
|
task: false,
|
|
|
guanli: false,
|
|
|
})
|
|
|
+let tableDatacst=ref([
|
|
|
+ {date:"上表头"},{date:"下表头"}
|
|
|
+])
|
|
|
+let columns=ref[{
|
|
|
+ columns: [
|
|
|
+ { label: '上表面', prop: 'sbiao' },
|
|
|
+ { label: '下表面', prop: 'xbiao' },
|
|
|
+ // 动态添加更多列
|
|
|
+ ]
|
|
|
+}]
|
|
|
let options = ref([
|
|
|
{ label: '升阻比', value: '升阻比' },
|
|
|
{ label: 'RCS', value: 'RCS' },
|
|
@@ -1569,9 +1696,9 @@ const tasktable = ref([
|
|
|
])
|
|
|
const customColors = [
|
|
|
{ color: '#f56c6c', percentage: 20 },
|
|
|
- { color: '#e6a23c', percentage: 40 },
|
|
|
- { color: '#d3f12f', percentage: 60 },
|
|
|
- { color: '#1989fa', percentage: 80 },
|
|
|
+ { color: '#f56c6c', percentage: 40 },
|
|
|
+ { color: '#5cb87a', percentage: 60 },
|
|
|
+ { color: '#5cb87a', percentage: 80 },
|
|
|
{ color: '#5cb87a', percentage: 100 },
|
|
|
]
|
|
|
let name = ref("1")
|
|
@@ -1664,21 +1791,46 @@ const handleNodeClick = (data) => {
|
|
|
tabactive.value = data.label;
|
|
|
dialogbolen();
|
|
|
}
|
|
|
+// cst时间
|
|
|
+const keydownenter=()=>{
|
|
|
+ tablecstHeaders.value=[];
|
|
|
+ let arrheader=[];
|
|
|
+ let num=Number(cstnum.value);
|
|
|
+
|
|
|
+for(let i=0;i<=num;i++){
|
|
|
+ arrheader.push('x'+i)
|
|
|
+}
|
|
|
+arrheader.forEach(function (item){
|
|
|
+let obj ={ label: item,prop:null };
|
|
|
+tablecstHeaders.value.push(obj);
|
|
|
+});
|
|
|
+tableDatacst.value.forEach(function (item){
|
|
|
+
|
|
|
+
|
|
|
+});
|
|
|
+}
|
|
|
const optimizerfalse = (val) => {
|
|
|
if (val == '优化器') {
|
|
|
dialog.value.optimizer = true;
|
|
|
} else if (val == '进化优化器') {
|
|
|
dialog.value.jboptimizer = true;
|
|
|
getoptimize();
|
|
|
- } else if (val == 'AirfoilAero' || val == 'Rosenbrock') {
|
|
|
+ } else if (val == 'Xfiol' || val == 'Rosenbrock') {
|
|
|
importget();
|
|
|
dialog.value.Xfiol = true;
|
|
|
|
|
|
- } else {
|
|
|
+ }else if(val == '梯度优化器'){
|
|
|
+ dialog.value.tidu = true;
|
|
|
+ }else if(val == 'CST'){
|
|
|
+ dialog.value.CSTt = true;
|
|
|
+ }
|
|
|
+ else {
|
|
|
dialog.value.optimizer = false;
|
|
|
dialog.value.jboptimizer = false;
|
|
|
dialog.value.Xfiol = false;
|
|
|
dialog.value.lookover = false;
|
|
|
+ dialog.value.tidu = false;
|
|
|
+ dialog.value.CSTt = false;
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -2603,7 +2755,8 @@ function initWebSocket() {
|
|
|
|
|
|
//初始化weosocket
|
|
|
// const wsuri = "ws://192.168.0.43:8087//websocket?projectId="+this.pid; ws://192.168.0.131/diswebsocket?projectId=5
|
|
|
- const wsurl = "ws://192.168.108:8188//websocket?projectId=" + pid.value;
|
|
|
+ // const wsurl = "ws://192.168.108:8188//websocket?projectId=" + pid.value;
|
|
|
+ const wsurl = "ws://192.168.0.131:8188//websocket?projectId=" + pid.value;
|
|
|
// const wsurl =
|
|
|
// "ws://" +
|
|
|
// process.env.VUE_APP_BASE_websokt +
|
|
@@ -2674,7 +2827,7 @@ const websocketonmessage = (res) => {
|
|
|
// Websoket连接错误事件
|
|
|
const websocketonerror = (res) => {
|
|
|
console.log("连接错误", res);
|
|
|
- socket.close();
|
|
|
+ websock.close();
|
|
|
reconnect();
|
|
|
};
|
|
|
// Websoket断开事件
|
|
@@ -2987,4 +3140,9 @@ const footerShows = (evt) => {
|
|
|
.jindutiao .percentage-value {
|
|
|
font-size: 13px;
|
|
|
}
|
|
|
+.cstleft{
|
|
|
+ width:50%;
|
|
|
+ flex: 1;
|
|
|
+
|
|
|
+}
|
|
|
</style>
|