|  | @@ -389,7 +389,7 @@
 | 
											
												
													
														|  |                  <div>
 |  |                  <div>
 | 
											
												
													
														|  |                    <!-- <div class="title2">GA遗传算法</div> -->
 |  |                    <!-- <div class="title2">GA遗传算法</div> -->
 | 
											
												
													
														|  |                    <el-form-item label="优化算法" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="优化算法" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="ys" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in yslist"
 |  |                                v-for="item in yslist"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -399,19 +399,19 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                         <el-form-item label="种群规模:" :label-width="formLabelWidth1">
 |  |                         <el-form-item label="种群规模:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :min="1" :max="10" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.popsize" :min="1" :max="10" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  | -                  <el-form-item label="最大进化代数:" :label-width="formLabelWidth1">
 |  | 
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :min="1" :max="10" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-form-item label="进化代数:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.epoch" :min="1" :max="10" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :min="1" :max="10" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.probcrossover" :min="1" :max="10" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="变异概率:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="变异概率:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :min="1" :max="10" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.probmut" :min="1" :max="10" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval2" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.proboperator" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist2"
 |  |                                v-for="item in addlist2"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -421,10 +421,10 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :min="1" :max="10" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.probscale" :min="1" :max="10" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval3" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.strategy" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist3"
 |  |                                v-for="item in addlist3"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -434,7 +434,7 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval4" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.operator" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist4"
 |  |                                v-for="item in addlist4"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -443,7 +443,7 @@
 | 
											
												
													
														|  |                              </el-option>
 |  |                              </el-option>
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  | -                  <el-form-item label="precision:" :label-width="formLabelWidth1">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <!-- <el-form-item label="precision:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  |                      <el-select   v-model="addval7" :suffix-icon="CaretBottom" placeholder="请选择">
 |  |                      <el-select   v-model="addval7" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist7"
 |  |                                v-for="item in addlist7"
 | 
											
										
											
												
													
														|  | @@ -452,9 +452,9 @@
 | 
											
												
													
														|  |                                :value="item.value">
 |  |                                :value="item.value">
 | 
											
												
													
														|  |                              </el-option>
 |  |                              </el-option>
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  | -                  </el-form-item>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  </el-form-item> -->
 | 
											
												
													
														|  |                    <el-form-item label="GPU" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="GPU" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval8" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.gpu" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist8"
 |  |                                v-for="item in addlist8"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -805,7 +805,7 @@
 | 
											
												
													
														|  |                <div class="numberinput lefttext">
 |  |                <div class="numberinput lefttext">
 | 
											
												
													
														|  |                  <el-form >
 |  |                  <el-form >
 | 
											
												
													
														|  |                    <el-form-item label="优化算法:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="优化算法:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="ys" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.algorithm" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in yslist"
 |  |                                v-for="item in yslist"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -815,19 +815,19 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                         <el-form-item label="种群规模:" :label-width="formLabelWidth1">
 |  |                         <el-form-item label="种群规模:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :step="100" :min="1" :max="1000" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.popsize" :step="100" :min="0" :max="1000" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="迭代次数:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="迭代次数:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :step="100" :min="1" :max="1000" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.epoch" :step="100" :min="0" :max="1000" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="交叉概率:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num"  :step="0.1" :min="1" :max="1000" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.probcrossover"  :step="0.1" :min="0" :max="1000" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="变异概率:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="变异概率:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num"  :step="0.1" :min="1" :max="1000" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.probmut"  :step="0.1" :min="0" :max="1000" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="交叉算子:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval2" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.proboperator" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist2"
 |  |                                v-for="item in addlist2"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -837,10 +837,10 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="竞赛规模:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-input-number v-model="num" :min="1" :max="10" controls-position="right" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input-number v-model="youhua.probscale" :min="0" :max="100" controls-position="right" />
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="保留优选策略:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval3" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.strategy" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist3"
 |  |                                v-for="item in addlist3"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -850,7 +850,7 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="变异算子选择:" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval4" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.operator" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist4"
 |  |                                v-for="item in addlist4"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -860,7 +860,7 @@
 | 
											
												
													
														|  |                            </el-select>
 |  |                            </el-select>
 | 
											
												
													
														|  |                    </el-form-item>
 |  |                    </el-form-item>
 | 
											
												
													
														|  |                    <el-form-item label="GPU" :label-width="formLabelWidth1">
 |  |                    <el-form-item label="GPU" :label-width="formLabelWidth1">
 | 
											
												
													
														|  | -                    <el-select   v-model="addval8" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select   v-model="youhua.gpu" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                              <el-option
 |  |                              <el-option
 | 
											
												
													
														|  |                                v-for="item in addlist8"
 |  |                                v-for="item in addlist8"
 | 
											
												
													
														|  |                                :key="item.value"
 |  |                                :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -874,7 +874,7 @@
 | 
											
												
													
														|  |                <template #footer>
 |  |                <template #footer>
 | 
											
												
													
														|  |                  <div class="dialog-footer">
 |  |                  <div class="dialog-footer">
 | 
											
												
													
														|  |                    <el-button @click="dialog.jboptimizer = false">取消</el-button>
 |  |                    <el-button @click="dialog.jboptimizer = false">取消</el-button>
 | 
											
												
													
														|  | -                  <el-button type="primary" @click="dialog.jboptimizer = false">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-button type="primary" @click="getaddsave(); dialog.jboptimizer = false">
 | 
											
												
													
														|  |                      确定
 |  |                      确定
 | 
											
												
													
														|  |                    </el-button>
 |  |                    </el-button>
 | 
											
												
													
														|  |                  </div>
 |  |                  </div>
 | 
											
										
											
												
													
														|  | @@ -1066,7 +1066,7 @@
 | 
											
												
													
														|  |                 <div class="footerTitle   el-tag--primary">
 |  |                 <div class="footerTitle   el-tag--primary">
 | 
											
												
													
														|  |                  <div >
 |  |                  <div >
 | 
											
												
													
														|  |                    <span   v-for="(tab, index) in tabs"  :key="index" :class="{ 'active': activeIndex === index }"
 |  |                    <span   v-for="(tab, index) in tabs"  :key="index" :class="{ 'active': activeIndex === index }"
 | 
											
												
													
														|  | -                  @click="activeIndex = index">{{ tab }}</span>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  @click="xxclick(index)">{{ tab }}</span>
 | 
											
												
													
														|  |                  </div>
 |  |                  </div>
 | 
											
												
													
														|  |                  <div>
 |  |                  <div>
 | 
											
												
													
														|  |                    <!-- <li
 |  |                    <!-- <li
 | 
											
										
											
												
													
														|  | @@ -1096,7 +1096,7 @@
 | 
											
												
													
														|  |                <div class="youhualog" v-if="activeIndex==1">
 |  |                <div class="youhualog" v-if="activeIndex==1">
 | 
											
												
													
														|  |                  <ul>
 |  |                  <ul>
 | 
											
												
													
														|  |                    <li v-for="(tab, index) in listli"  :key="index" :class="{ 'active2': activeIndex2 === index }"
 |  |                    <li v-for="(tab, index) in listli"  :key="index" :class="{ 'active2': activeIndex2 === index }"
 | 
											
												
													
														|  | -                  @click="activeIndex2 = index">{{ tab }}</li>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  @click="issueclick(index)">{{ tab }}</li>
 | 
											
												
													
														|  |                  </ul>
 |  |                  </ul>
 | 
											
												
													
														|  |                  <div  class="footer-content">
 |  |                  <div  class="footer-content">
 | 
											
												
													
														|  |                  <div class="eldesign classtable" v-if="activeIndex2==0">
 |  |                  <div class="eldesign classtable" v-if="activeIndex2==0">
 | 
											
										
											
												
													
														|  | @@ -1112,14 +1112,14 @@
 | 
											
												
													
														|  |                      <el-input v-model="row.date" @change="handleEdit(row)" />
 |  |                      <el-input v-model="row.date" @change="handleEdit(row)" />
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column> -->
 |  |                  </el-table-column> -->
 | 
											
												
													
														|  | -                  <el-table-column prop="s1" label="上限值">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="upper" label="上限值">
 | 
											
												
													
														|  |                      <template #default="{ row }">
 |  |                      <template #default="{ row }">
 | 
											
												
													
														|  | -                    <el-input v-model.Number="row.s1"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input type="text" v-model="row.upper"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column>
 |  |                  </el-table-column>
 | 
											
												
													
														|  | -                <el-table-column prop="x1" label="下限值">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                <el-table-column prop="lower" label="下限值">
 | 
											
												
													
														|  |                    <template #default="{ row }">
 |  |                    <template #default="{ row }">
 | 
											
												
													
														|  | -                    <el-input v-model.Number="row.x1"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input v-model.Number="row.lower"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column>
 |  |                  </el-table-column>
 | 
											
												
													
														|  |                    <!-- <el-table-column prop="q" label="权重系数">
 |  |                    <!-- <el-table-column prop="q" label="权重系数">
 | 
											
										
											
												
													
														|  | @@ -1127,14 +1127,14 @@
 | 
											
												
													
														|  |                      <el-input v-model="row.q" @change="handleEdit(row)" />
 |  |                      <el-input v-model="row.q" @change="handleEdit(row)" />
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column> -->
 |  |                  </el-table-column> -->
 | 
											
												
													
														|  | -                  <el-table-column prop="f" label="基准值" width="100">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="reference" label="基准值" width="100">
 | 
											
												
													
														|  |                    <template #default="{ row }">
 |  |                    <template #default="{ row }">
 | 
											
												
													
														|  | -                    <el-input v-model.Number="row.f"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input v-model.Number="row.reference"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column>
 |  |                  </el-table-column>
 | 
											
												
													
														|  | -                <el-table-column prop="d" label="说明">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                <el-table-column prop="remark" label="说明">
 | 
											
												
													
														|  |                      <template #default="{ row }">
 |  |                      <template #default="{ row }">
 | 
											
												
													
														|  | -                    <el-input v-model="row.d" @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-input v-model="row.remark" @change="handleEdit(row)" />
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column>
 |  |                  </el-table-column>
 | 
											
												
													
														|  |                  </el-table>
 |  |                  </el-table>
 | 
											
										
											
												
													
														|  | @@ -1156,14 +1156,14 @@
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column> -->
 |  |                  </el-table-column> -->
 | 
											
												
													
														|  | -                <el-table-column prop="address" label="约束名称">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                <el-table-column prop="name" label="约束名称">
 | 
											
												
													
														|  |                          <template #default="{ row }">
 |  |                          <template #default="{ row }">
 | 
											
												
													
														|  |                            <el-input v-model="row.name" @change="handleEdit(row)" />
 |  |                            <el-input v-model="row.name" @change="handleEdit(row)" />
 | 
											
												
													
														|  |                          </template>
 |  |                          </template>
 | 
											
												
													
														|  |                        </el-table-column>
 |  |                        </el-table-column>
 | 
											
												
													
														|  | -                      <el-table-column prop="name" label="约束关系"  >
 |  | 
 | 
											
												
													
														|  | 
 |  | +                      <el-table-column prop="con" label="约束关系"  >
 | 
											
												
													
														|  |                          <template v-slot="scope">
 |  |                          <template v-slot="scope">
 | 
											
												
													
														|  | -                        <el-select class="no-border " v-model="scope.row.da"  :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        <el-select class="no-border " v-model.number="scope.row.con"  :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                                <el-option
 |  |                                <el-option
 | 
											
												
													
														|  |                                  v-for="item in options3"
 |  |                                  v-for="item in options3"
 | 
											
												
													
														|  |                                  :key="item.value"
 |  |                                  :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -1174,9 +1174,9 @@
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                        </template>
 |  |                        </template>
 | 
											
												
													
														|  |                      </el-table-column>
 |  |                      </el-table-column>
 | 
											
												
													
														|  | -                      <el-table-column prop="address" label="约束基准值">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                      <el-table-column prop="reference" label="约束基准值">
 | 
											
												
													
														|  |                          <template #default="{ row }">
 |  |                          <template #default="{ row }">
 | 
											
												
													
														|  | -                          <el-input v-model.Number="row.address"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          <el-input v-model.Number="row.reference"    oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 | 
											
												
													
														|  |                          </template>
 |  |                          </template>
 | 
											
												
													
														|  |                        </el-table-column>
 |  |                        </el-table-column>
 | 
											
												
													
														|  |                      </el-table>
 |  |                      </el-table>
 | 
											
										
											
												
													
														|  | @@ -1208,9 +1208,9 @@
 | 
											
												
													
														|  |                            <el-input v-model="row.name"  />
 |  |                            <el-input v-model="row.name"  />
 | 
											
												
													
														|  |                          </template>
 |  |                          </template>
 | 
											
												
													
														|  |                    </el-table-column>
 |  |                    </el-table-column>
 | 
											
												
													
														|  | -                  <el-table-column prop="f" label="优化方向">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="optdir" label="优化方向">
 | 
											
												
													
														|  |                      <template v-slot="scope">
 |  |                      <template v-slot="scope">
 | 
											
												
													
														|  | -                    <el-select class="no-border "  v-model="scope.row.f" :suffix-icon="CaretBottom" placeholder="请选择">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-select class="no-border "  v-model="scope.row.optdir" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
											
												
													
														|  |                            <el-option
 |  |                            <el-option
 | 
											
												
													
														|  |                              v-for="item in options1"
 |  |                              v-for="item in options1"
 | 
											
												
													
														|  |                              :key="item.value"
 |  |                              :key="item.value"
 | 
											
										
											
												
													
														|  | @@ -1221,26 +1221,26 @@
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column>
 |  |                  </el-table-column>
 | 
											
												
													
														|  | -                  <el-table-column prop="q" label="权重系数">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="weight" label="权重系数">
 | 
											
												
													
														|  |                      <template #default="{ row }">
 |  |                      <template #default="{ row }">
 | 
											
												
													
														|  | -                          <el-input v-model.number="row.q"   oninput ="value=value.replace(/^|[^0-9]/g,'')"   @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          <el-input v-model.number="row.weight"   oninput ="value=value.replace(/^|[^0-9]/g,'')"   @change="handleEdit(row)" />
 | 
											
												
													
														|  |                          </template>
 |  |                          </template>
 | 
											
												
													
														|  |                    </el-table-column>
 |  |                    </el-table-column>
 | 
											
												
													
														|  | -                  <el-table-column prop="s" label="数据缩放">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="scaling" label="数据缩放">
 | 
											
												
													
														|  |                      <!-- :label="scope.row.s?'采用':'不采用'" -->
 |  |                      <!-- :label="scope.row.s?'采用':'不采用'" -->
 | 
											
												
													
														|  |                      <template v-slot="scope">
 |  |                      <template v-slot="scope">
 | 
											
												
													
														|  | -                    <el-checkbox  :false-label="0"  :true-label="1" :label="scope.row.s?'采用':'不采用'"  v-model="scope.row.s" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    <el-checkbox  :false-label="0"  :true-label="1"  v-model="scope.row.scaling" />
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                    </template>
 |  |                    </template>
 | 
											
												
													
														|  |                  </el-table-column>
 |  |                  </el-table-column>
 | 
											
												
													
														|  | -                  <el-table-column prop="yin" label="缩放因子">
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="factor" label="缩放因子">
 | 
											
												
													
														|  |                      <template #default="{ row }">
 |  |                      <template #default="{ row }">
 | 
											
												
													
														|  | -                          <el-input v-model.number="row.yin" oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          <el-input v-model.number="row.factor" oninput ="value=value.replace(/^|[^0-9]/g,'')"  @change="handleEdit(row)" />
 | 
											
												
													
														|  |                          </template>
 |  |                          </template>
 | 
											
												
													
														|  |                    </el-table-column>
 |  |                    </el-table-column>
 | 
											
												
													
														|  | -                  <el-table-column prop="d" label="说明" >
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <el-table-column prop="remark" label="说明" >
 | 
											
												
													
														|  |                      <template #default="{ row }">
 |  |                      <template #default="{ row }">
 | 
											
												
													
														|  | -                          <el-input v-model="row.d" @change="handleEdit(row)" />
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          <el-input v-model="row.remark" @change="handleEdit(row)" />
 | 
											
												
													
														|  |                          </template>
 |  |                          </template>
 | 
											
												
													
														|  |                    </el-table-column>
 |  |                    </el-table-column>
 | 
											
												
													
														|  |                  </el-table>
 |  |                  </el-table>
 | 
											
										
											
												
													
														|  | @@ -1303,6 +1303,27 @@
 | 
											
												
													
														|  |    import Sidebar from './vuetree/Sidebar.vue'
 |  |    import Sidebar from './vuetree/Sidebar.vue'
 | 
											
												
													
														|  |    const router = useRouter();
 |  |    const router = useRouter();
 | 
											
												
													
														|  |    const route = useRoute();
 |  |    const route = useRoute();
 | 
											
												
													
														|  | 
 |  | +  let youhua=ref({
 | 
											
												
													
														|  | 
 |  | +    algorithm:'GA',
 | 
											
												
													
														|  | 
 |  | +    popsize:100,
 | 
											
												
													
														|  | 
 |  | +    epoch:100,
 | 
											
												
													
														|  | 
 |  | +    probcrossover:0.1,
 | 
											
												
													
														|  | 
 |  | +    probmut:0.1,
 | 
											
												
													
														|  | 
 |  | +    proboperator:'SBX交叉',
 | 
											
												
													
														|  | 
 |  | +    probscale:1,
 | 
											
												
													
														|  | 
 |  | +    strategy:'最佳保留策略',
 | 
											
												
													
														|  | 
 |  | +    operator:'倒位变异',
 | 
											
												
													
														|  | 
 |  | +    gpu:'YES'
 | 
											
												
													
														|  | 
 |  | +  })
 | 
											
												
													
														|  | 
 |  | +  let websock=ref(null);
 | 
											
												
													
														|  | 
 |  | +  let times=ref({
 | 
											
												
													
														|  | 
 |  | +      lockReconnect: false, //是否真正建立连接
 | 
											
												
													
														|  | 
 |  | +      timeout: 28 * 1000, //30秒一次心跳
 | 
											
												
													
														|  | 
 |  | +      timeoutObj: null, //心跳倒计时
 | 
											
												
													
														|  | 
 |  | +      serverTimeout0bj: null, //
 | 
											
												
													
														|  | 
 |  | +      timeoutnum: null, //断开重连倒计时
 | 
											
												
													
														|  | 
 |  | +  })
 | 
											
												
													
														|  | 
 |  | +  let eid=ref('');//进步优化器的eid
 | 
											
												
													
														|  |    let logs=ref("");
 |  |    let logs=ref("");
 | 
											
												
													
														|  |    let pid=ref("");
 |  |    let pid=ref("");
 | 
											
												
													
														|  |    let fid=ref('');
 |  |    let fid=ref('');
 | 
											
										
											
												
													
														|  | @@ -1498,7 +1519,7 @@ let options3=ref([
 | 
											
												
													
														|  |    { label: 'SBX交叉', value: 'SBX交叉' },
 |  |    { label: 'SBX交叉', value: 'SBX交叉' },
 | 
											
												
													
														|  |    ])
 |  |    ])
 | 
											
												
													
														|  |    let addval3=ref("最佳保留策略")
 |  |    let addval3=ref("最佳保留策略")
 | 
											
												
													
														|  | -  let ys=ref("GA遗传算法")
 |  | 
 | 
											
												
													
														|  | 
 |  | +  let ys=ref("GA")
 | 
											
												
													
														|  |    let addlist3 = ref([
 |  |    let addlist3 = ref([
 | 
											
												
													
														|  |    { label: '最佳保留策略', value: '最佳保留策略' },
 |  |    { label: '最佳保留策略', value: '最佳保留策略' },
 | 
											
												
													
														|  |    ])
 |  |    ])
 | 
											
										
											
												
													
														|  | @@ -1576,34 +1597,9 @@ let options3=ref([
 | 
											
												
													
														|  |        ],
 |  |        ],
 | 
											
												
													
														|  |      },
 |  |      },
 | 
											
												
													
														|  |    ]
 |  |    ]
 | 
											
												
													
														|  | -  const eloptimize = ref([
 |  | 
 | 
											
												
													
														|  | -  {
 |  | 
 | 
											
												
													
														|  | -          name:"f1",
 |  | 
 | 
											
												
													
														|  | -          f: 1,
 |  | 
 | 
											
												
													
														|  | -          q: 1,
 |  | 
 | 
											
												
													
														|  | -          s: 0,
 |  | 
 | 
											
												
													
														|  | -          yin:1,
 |  | 
 | 
											
												
													
														|  | -          d:'shuo',
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -  ])
 |  | 
 | 
											
												
													
														|  | -  const tableData = ref([
 |  | 
 | 
											
												
													
														|  | -    {
 |  | 
 | 
											
												
													
														|  | -      name: 'g1',
 |  | 
 | 
											
												
													
														|  | -      da:-1,
 |  | 
 | 
											
												
													
														|  | -      address:''
 |  | 
 | 
											
												
													
														|  | -      
 |  | 
 | 
											
												
													
														|  | -    },
 |  | 
 | 
											
												
													
														|  | -  ])
 |  | 
 | 
											
												
													
														|  | -  const designtable = ref([
 |  | 
 | 
											
												
													
														|  | -  {
 |  | 
 | 
											
												
													
														|  | -          name:"x1",
 |  | 
 | 
											
												
													
														|  | -          s1:0,
 |  | 
 | 
											
												
													
														|  | -          x1:0,
 |  | 
 | 
											
												
													
														|  | -          f:0,
 |  | 
 | 
											
												
													
														|  | -          d:''
 |  | 
 | 
											
												
													
														|  | -      
 |  | 
 | 
											
												
													
														|  | -    }
 |  | 
 | 
											
												
													
														|  | -  ])
 |  | 
 | 
											
												
													
														|  | 
 |  | +  const eloptimize = ref([])
 | 
											
												
													
														|  | 
 |  | +  const tableData = ref([])
 | 
											
												
													
														|  | 
 |  | +  const designtable = ref([])
 | 
											
												
													
														|  |    const tasktable = ref([
 |  |    const tasktable = ref([
 | 
											
												
													
														|  |    {
 |  |    {
 | 
											
												
													
														|  |        id:"01",
 |  |        id:"01",
 | 
											
										
											
												
													
														|  | @@ -1667,6 +1663,7 @@ let options3=ref([
 | 
											
												
													
														|  |    onMounted(() => {
 |  |    onMounted(() => {
 | 
											
												
													
														|  |    setTimeout(function() {
 |  |    setTimeout(function() {
 | 
											
												
													
														|  |      init();
 |  |      init();
 | 
											
												
													
														|  | 
 |  | +    initWebSocket();
 | 
											
												
													
														|  |  }, 1500);
 |  |  }, 1500);
 | 
											
												
													
														|  |    // childfun();
 |  |    // childfun();
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -1678,8 +1675,8 @@ pid.value=route.query.pid;
 | 
											
												
													
														|  |  console.log(route.query.pid);
 |  |  console.log(route.query.pid);
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |    const handleClick = (tab, event) => {
 |  |    const handleClick = (tab, event) => {
 | 
											
												
													
														|  | -  
 |  | 
 | 
											
												
													
														|  |      console.log(tab.props.name);
 |  |      console.log(tab.props.name);
 | 
											
												
													
														|  | 
 |  | + 
 | 
											
												
													
														|  |      tabactive.value=tab.props.name;
 |  |      tabactive.value=tab.props.name;
 | 
											
												
													
														|  |      if(tabactive.value=='User'){
 |  |      if(tabactive.value=='User'){
 | 
											
												
													
														|  |          router.replace({ path: '/' })
 |  |          router.replace({ path: '/' })
 | 
											
										
											
												
													
														|  | @@ -1719,6 +1716,7 @@ console.log(route.query.pid);
 | 
											
												
													
														|  |    dialog.value.optimizer=true;
 |  |    dialog.value.optimizer=true;
 | 
											
												
													
														|  |   }else if(val=='进化优化器'){
 |  |   }else if(val=='进化优化器'){
 | 
											
												
													
														|  |    dialog.value.jboptimizer=true;
 |  |    dialog.value.jboptimizer=true;
 | 
											
												
													
														|  | 
 |  | +  getoptimize();
 | 
											
												
													
														|  |   }else if(val=='AirfoilAero'||val=='Rosenbrock'){
 |  |   }else if(val=='AirfoilAero'||val=='Rosenbrock'){
 | 
											
												
													
														|  |    importget();
 |  |    importget();
 | 
											
												
													
														|  |    dialog.value.Xfiol=true;
 |  |    dialog.value.Xfiol=true;
 | 
											
										
											
												
													
														|  | @@ -1784,10 +1782,91 @@ console.log(route.query.pid);
 | 
											
												
													
														|  |          break;
 |  |          break;
 | 
											
												
													
														|  |          case "数据流连线":
 |  |          case "数据流连线":
 | 
											
												
													
														|  |          vuefval.value.linestrokeWidth(3);
 |  |          vuefval.value.linestrokeWidth(3);
 | 
											
												
													
														|  | -        console.log("数据流")
 |  | 
 | 
											
												
													
														|  | 
 |  | +        break;
 | 
											
												
													
														|  | 
 |  | +        case "开始":
 | 
											
												
													
														|  | 
 |  | +       runok();
 | 
											
												
													
														|  | 
 |  | +      
 | 
											
												
													
														|  |        default: 
 |  |        default: 
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |     }
 |  |     }
 | 
											
												
													
														|  | 
 |  | +  //  求解
 | 
											
												
													
														|  | 
 |  | +  const runok= ()=>{
 | 
											
												
													
														|  | 
 |  | +    const params = {
 | 
											
												
													
														|  | 
 |  | +        transCode: 'MDO0020',
 | 
											
												
													
														|  | 
 |  | +        pid:pid.value,
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    request(params)
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +          ElMessage({
 | 
											
												
													
														|  | 
 |  | +                  message: "开始运行",
 | 
											
												
													
														|  | 
 |  | +                  type: 'success',
 | 
											
												
													
														|  | 
 |  | +              })
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch((err) => {
 | 
											
												
													
														|  | 
 |  | +            ElMessage.error(err.returnMsg)
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +   //进化优化器
 | 
											
												
													
														|  | 
 |  | +   const getoptimize = () => {
 | 
											
												
													
														|  | 
 |  | +    const params = {
 | 
											
												
													
														|  | 
 |  | +        transCode: 'MDO0018',
 | 
											
												
													
														|  | 
 |  | +        pid:pid.value,
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    request(params)
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +       
 | 
											
												
													
														|  | 
 |  | +         if(res.hasOwnProperty('eid')){
 | 
											
												
													
														|  | 
 |  | +         
 | 
											
												
													
														|  | 
 |  | +          eid.value=res.eid;
 | 
											
												
													
														|  | 
 |  | +          youhua.value.algorithm= res.algorithm
 | 
											
												
													
														|  | 
 |  | +          youhua.value.popsize = Number(res.popsize); // 将id属性转换为数字
 | 
											
												
													
														|  | 
 |  | +          youhua.value.epoch = Number(res.epoch); 
 | 
											
												
													
														|  | 
 |  | +          youhua.value.probcrossover = Number(res.probcrossover); 
 | 
											
												
													
														|  | 
 |  | +          youhua.value.probmut = Number(res.probmut); 
 | 
											
												
													
														|  | 
 |  | +          youhua.value.probscale = Number(res.probscale); 
 | 
											
												
													
														|  | 
 |  | +          youhua.value.proboperator= res.proboperator;
 | 
											
												
													
														|  | 
 |  | +          youhua.value.strategy= res.strategy;
 | 
											
												
													
														|  | 
 |  | +          youhua.value.operator= res.operator;
 | 
											
												
													
														|  | 
 |  | +          youhua.value.gpu= res.gpu;
 | 
											
												
													
														|  | 
 |  | +          
 | 
											
												
													
														|  | 
 |  | +         // youhua=res;
 | 
											
												
													
														|  | 
 |  | +         
 | 
											
												
													
														|  | 
 |  | +         }else{
 | 
											
												
													
														|  | 
 |  | +          youhua=res;
 | 
											
												
													
														|  | 
 |  | +         }
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch((err) => {
 | 
											
												
													
														|  | 
 |  | +            ElMessage.error(err.returnMsg)
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +   }
 | 
											
												
													
														|  | 
 |  | +    //进化优化器 添加保存
 | 
											
												
													
														|  | 
 |  | +    const getaddsave = () => {
 | 
											
												
													
														|  | 
 |  | +    const params = {
 | 
											
												
													
														|  | 
 |  | +        transCode: 'MDO0019',
 | 
											
												
													
														|  | 
 |  | +        pid:pid.value,
 | 
											
												
													
														|  | 
 |  | +        eid:eid.value,
 | 
											
												
													
														|  | 
 |  | +        algorithm:youhua.value.algorithm,
 | 
											
												
													
														|  | 
 |  | +        popsize:youhua.value.popsize,
 | 
											
												
													
														|  | 
 |  | +        epoch:youhua.value.epoch,
 | 
											
												
													
														|  | 
 |  | +        probcrossover:youhua.value.probcrossover,
 | 
											
												
													
														|  | 
 |  | +        probmut:youhua.value.probmut,
 | 
											
												
													
														|  | 
 |  | +        proboperator:youhua.value.proboperator,
 | 
											
												
													
														|  | 
 |  | +        probscale:youhua.value.probscale,
 | 
											
												
													
														|  | 
 |  | +        strategy:youhua.value.strategy,
 | 
											
												
													
														|  | 
 |  | +        operator:youhua.value.operator,
 | 
											
												
													
														|  | 
 |  | +        gpu:youhua.value.gpu
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    request(params)
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +         console.log(res);
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch((err) => {
 | 
											
												
													
														|  | 
 |  | +            ElMessage.error(err.returnMsg)
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +   }
 | 
											
												
													
														|  |     //选择颜色改变线的颜色
 |  |     //选择颜色改变线的颜色
 | 
											
												
													
														|  |     const colorpicker = (e) => {
 |  |     const colorpicker = (e) => {
 | 
											
												
													
														|  |      vuefval.value.changeAllEdgesColor(color1.value);
 |  |      vuefval.value.changeAllEdgesColor(color1.value);
 | 
											
										
											
												
													
														|  | @@ -1812,19 +1891,19 @@ console.log(route.query.pid);
 | 
											
												
													
														|  |        for (let i = 0; i < tablevalnum; i++) {
 |  |        for (let i = 0; i < tablevalnum; i++) {
 | 
											
												
													
														|  |          designtable.value.push( {
 |  |          designtable.value.push( {
 | 
											
												
													
														|  |            name:"x1",
 |  |            name:"x1",
 | 
											
												
													
														|  | -          s1:0,
 |  | 
 | 
											
												
													
														|  | -          x1:0,
 |  | 
 | 
											
												
													
														|  | -          f:0,
 |  | 
 | 
											
												
													
														|  | -          d:''
 |  | 
 | 
											
												
													
														|  | 
 |  | +          upper:null,
 | 
											
												
													
														|  | 
 |  | +          lower:null,
 | 
											
												
													
														|  | 
 |  | +          reference:null,
 | 
											
												
													
														|  | 
 |  | +          remark:''
 | 
											
												
													
														|  |        
 |  |        
 | 
											
												
													
														|  |      })
 |  |      })
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |      } else if(activeIndex2.value==1){
 |  |      } else if(activeIndex2.value==1){
 | 
											
												
													
														|  |        for (let i = 0; i < tablevalnum; i++) {
 |  |        for (let i = 0; i < tablevalnum; i++) {
 | 
											
												
													
														|  | -        tableData.value.push( {
 |  | 
 | 
											
												
													
														|  | 
 |  | +        tableData.value.push({
 | 
											
												
													
														|  |        name: 'g1',
 |  |        name: 'g1',
 | 
											
												
													
														|  | -      da:-1,
 |  | 
 | 
											
												
													
														|  | -      address:''
 |  | 
 | 
											
												
													
														|  | 
 |  | +      con:-1,
 | 
											
												
													
														|  | 
 |  | +      reference:''
 | 
											
												
													
														|  |        
 |  |        
 | 
											
												
													
														|  |      })
 |  |      })
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
										
											
												
													
														|  | @@ -1832,21 +1911,109 @@ console.log(route.query.pid);
 | 
											
												
													
														|  |        for (let i = 0; i < tablevalnum; i++) {
 |  |        for (let i = 0; i < tablevalnum; i++) {
 | 
											
												
													
														|  |          eloptimize.value.push({
 |  |          eloptimize.value.push({
 | 
											
												
													
														|  |            name:"",
 |  |            name:"",
 | 
											
												
													
														|  | -          f:1,
 |  | 
 | 
											
												
													
														|  | -          q:0,
 |  | 
 | 
											
												
													
														|  | -          s:0,
 |  | 
 | 
											
												
													
														|  | -          yin:0,
 |  | 
 | 
											
												
													
														|  | -          d:'',
 |  | 
 | 
											
												
													
														|  | 
 |  | +          optdir:1,
 | 
											
												
													
														|  | 
 |  | +          weight:0,
 | 
											
												
													
														|  | 
 |  | +          scaling:0,
 | 
											
												
													
														|  | 
 |  | +          factor:0,
 | 
											
												
													
														|  | 
 |  | +          remark:'',
 | 
											
												
													
														|  |          })
 |  |          })
 | 
											
												
													
														|  |          
 |  |          
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    }
 |  |    }
 | 
											
												
													
														|  | 
 |  | +  const xxclick=(index)=>{
 | 
											
												
													
														|  | 
 |  | +    activeIndex.value=index
 | 
											
												
													
														|  | 
 |  | +    if(activeIndex.value==0){
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }else if(activeIndex.value==1){
 | 
											
												
													
														|  | 
 |  | +      getissue();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +//底部优化问题
 | 
											
												
													
														|  | 
 |  | +const issueclick=(index)=>{
 | 
											
												
													
														|  | 
 |  | +   activeIndex2.value = index;
 | 
											
												
													
														|  | 
 |  | +  console.log(activeIndex2.value);
 | 
											
												
													
														|  | 
 |  | +  if(activeIndex2.value==0){
 | 
											
												
													
														|  | 
 |  | +    getissue();
 | 
											
												
													
														|  | 
 |  | +  }else if(activeIndex2.value==1){
 | 
											
												
													
														|  | 
 |  | +    getyueshu();
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  }else if(activeIndex2.value==2){
 | 
											
												
													
														|  | 
 |  | +    getmub();
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +//变量设计查询
 | 
											
												
													
														|  | 
 |  | +const getissue=()=>{
 | 
											
												
													
														|  | 
 |  | +  const params = {
 | 
											
												
													
														|  | 
 |  | +        transCode: 'MDO0022',
 | 
											
												
													
														|  | 
 |  | +        pid:pid.value,
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    request(params)
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +       
 | 
											
												
													
														|  | 
 |  | +          res.rows = res.rows.map(item => {
 | 
											
												
													
														|  | 
 |  | +          item.lower = Number(item.lower); // 将id属性转换为数字
 | 
											
												
													
														|  | 
 |  | +          item.upper = Number(item.upper); 
 | 
											
												
													
														|  | 
 |  | +          item.upper = Number(item.reference); 
 | 
											
												
													
														|  | 
 |  | +          return item;
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        designtable.value=res.rows;
 | 
											
												
													
														|  | 
 |  | +         })
 | 
											
												
													
														|  | 
 |  | +        .catch((err) => {
 | 
											
												
													
														|  | 
 |  | +            ElMessage.error(err.returnMsg)
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +//约束条件查询
 | 
											
												
													
														|  | 
 |  | +const getyueshu=()=>{
 | 
											
												
													
														|  | 
 |  | +  const params = {
 | 
											
												
													
														|  | 
 |  | +        transCode: 'MDO0023',
 | 
											
												
													
														|  | 
 |  | +        pid:pid.value,
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    request(params)
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +          res.rows = res.rows.map(item => {
 | 
											
												
													
														|  | 
 |  | +          item.con = Number(item.con); // 将id属性转换为数字
 | 
											
												
													
														|  | 
 |  | +          item.reference = Number(item.reference); 
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +          return item;
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +          tableData.value=res.rows;
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch((err) => {
 | 
											
												
													
														|  | 
 |  | +            ElMessage.error(err.returnMsg)
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +//目标函数查询
 | 
											
												
													
														|  | 
 |  | +const getmub=()=>{
 | 
											
												
													
														|  | 
 |  | +  const params = {
 | 
											
												
													
														|  | 
 |  | +        transCode: 'MDO0024',
 | 
											
												
													
														|  | 
 |  | +        pid:pid.value,
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    request(params)
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +          res.rows = res.rows.map(item => {
 | 
											
												
													
														|  | 
 |  | +          item.optdir = Number(item.optdir); // 将id属性转换为数字
 | 
											
												
													
														|  | 
 |  | +          item.weight = Number(item.weight); 
 | 
											
												
													
														|  | 
 |  | +          item.scaling = Number(item.scaling);
 | 
											
												
													
														|  | 
 |  | +          item.factor = Number(item.factor);
 | 
											
												
													
														|  | 
 |  | +          return item;
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +          eloptimize.value=res.rows;
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch((err) => {
 | 
											
												
													
														|  | 
 |  | +            ElMessage.error(err.returnMsg)
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  |  //对象数组转化字符串
 |  |  //对象数组转化字符串
 | 
											
												
													
														|  |  const getarr=(name,arrays)=>{
 |  |  const getarr=(name,arrays)=>{
 | 
											
												
													
														|  | 
 |  | +  console.log(arrays)
 | 
											
												
													
														|  |    for (let i = 0; i < arrays.length; i++) {
 |  |    for (let i = 0; i < arrays.length; i++) {
 | 
											
												
													
														|  |      let arr=[];
 |  |      let arr=[];
 | 
											
												
													
														|  | 
 |  | +    let att=[];
 | 
											
												
													
														|  |        for (const key in arrays[i]) {
 |  |        for (const key in arrays[i]) {
 | 
											
												
													
														|  |          if ( arrays[i].hasOwnProperty(key)) { 
 |  |          if ( arrays[i].hasOwnProperty(key)) { 
 | 
											
												
													
														|  |            arr.push(arrays[i][key]);
 |  |            arr.push(arrays[i][key]);
 | 
											
										
											
												
													
														|  | @@ -1859,14 +2026,20 @@ for (let j = 0; j < arr.length; j++) {
 | 
											
												
													
														|  |                  arr[j]=" ";
 |  |                  arr[j]=" ";
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  | -console.log(arr)
 |  | 
 | 
											
												
													
														|  | -  const valuesWithSemiColons = arr.join(',');
 |  | 
 | 
											
												
													
														|  | 
 |  | +if(arrays[i].hasOwnProperty('pid')==true){
 | 
											
												
													
														|  | 
 |  | +  att=arr.slice(1,-1);
 | 
											
												
													
														|  | 
 |  | +}else{
 | 
											
												
													
														|  | 
 |  | +  att=arr;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  const valuesWithSemiColons = att.join(',');
 | 
											
												
													
														|  |    name+= valuesWithSemiColons + ';';
 |  |    name+= valuesWithSemiColons + ';';
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |   }
 |  |   }
 | 
											
												
													
														|  |   console.log(name)
 |  |   console.log(name)
 | 
											
												
													
														|  |   return name;
 |  |   return name;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  | 
 |  | +//保存优化问题
 | 
											
												
													
														|  |  const onokItem=()=>{
 |  |  const onokItem=()=>{
 | 
											
												
													
														|  |  console.log(activeIndex2.value);
 |  |  console.log(activeIndex2.value);
 | 
											
												
													
														|  |    if(activeIndex2.value==0){
 |  |    if(activeIndex2.value==0){
 | 
											
										
											
												
													
														|  | @@ -2131,6 +2304,87 @@ const params = {
 | 
											
												
													
														|  |          })
 |  |          })
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  | 
 |  | +//websockct的连接
 | 
											
												
													
														|  | 
 |  | +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.104:8188//websocket?projectId="+pid.value;
 | 
											
												
													
														|  | 
 |  | +      // const wsurl =
 | 
											
												
													
														|  | 
 |  | +      //   "ws://" +
 | 
											
												
													
														|  | 
 |  | +      //   process.env.VUE_APP_BASE_websokt +
 | 
											
												
													
														|  | 
 |  | +      //   "/diswebsocket?projectId=" +'5'
 | 
											
												
													
														|  | 
 |  | +        // aid.value;
 | 
											
												
													
														|  | 
 |  | +        websock = new WebSocket(wsurl);
 | 
											
												
													
														|  | 
 |  | +        websock.onopen = websocketonopen;
 | 
											
												
													
														|  | 
 |  | +        websock.onmessage = websocketonmessage;
 | 
											
												
													
														|  | 
 |  | +        websock.onerror = websocketonerror;
 | 
											
												
													
														|  | 
 |  | +        websock.onclose = websocketclose;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | + 	// Websoket连接成功事件
 | 
											
												
													
														|  | 
 |  | +   const websocketonopen = (res) => {
 | 
											
												
													
														|  | 
 |  | +      console.log("WebSocket连接成功", res);
 | 
											
												
													
														|  | 
 |  | +  console.log(res.data);
 | 
											
												
													
														|  | 
 |  | +      start();
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  | 
 |  | +    // Websoket接收消息事件
 | 
											
												
													
														|  | 
 |  | +    const websocketonmessage = (res) => {
 | 
											
												
													
														|  | 
 |  | +     // console.log("数据", res);
 | 
											
												
													
														|  | 
 |  | +      //logs.value=res.data;
 | 
											
												
													
														|  | 
 |  | +    
 | 
											
												
													
														|  | 
 |  | +      
 | 
											
												
													
														|  | 
 |  | +      reset();
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  | 
 |  | +    // Websoket连接错误事件
 | 
											
												
													
														|  | 
 |  | +    const websocketonerror = (res) => {
 | 
											
												
													
														|  | 
 |  | +      console.log("连接错误", res);
 | 
											
												
													
														|  | 
 |  | +      socket.close();
 | 
											
												
													
														|  | 
 |  | +      reconnect();
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  | 
 |  | +    // Websoket断开事件
 | 
											
												
													
														|  | 
 |  | +    const websocketclose = (res) => {
 | 
											
												
													
														|  | 
 |  | +      console.log("断开连接", res);
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  | 
 |  | +      // 创建 websocket 的实例
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +     // 心跳包
 | 
											
												
													
														|  | 
 |  | +     const reconnect = () => {
 | 
											
												
													
														|  | 
 |  | +      if (times.value.lockReconnect) return;
 | 
											
												
													
														|  | 
 |  | +      times.value.lockReconnect = true;
 | 
											
												
													
														|  | 
 |  | +      //没连接上会一直重连,设置延迟避免请求过多
 | 
											
												
													
														|  | 
 |  | +      times.value.timeoutnum && clearTimeout(times.value.timeoutnum);
 | 
											
												
													
														|  | 
 |  | +      times.value.timeoutnum = setTimeout(function () {
 | 
											
												
													
														|  | 
 |  | +        //新连接
 | 
											
												
													
														|  | 
 |  | +     initWebSocket();
 | 
											
												
													
														|  | 
 |  | +        times.value.lockReconnect = false;
 | 
											
												
													
														|  | 
 |  | +      }, 10000);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    const  reset = () => {
 | 
											
												
													
														|  | 
 |  | +      //重置心跳
 | 
											
												
													
														|  | 
 |  | +      clearTimeout(times.value.timeoutObj);
 | 
											
												
													
														|  | 
 |  | +      clearTimeout(times.value.serverTimeoutObj);
 | 
											
												
													
														|  | 
 |  | +    start();
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    const start = () => {
 | 
											
												
													
														|  | 
 |  | +      //开启心跳
 | 
											
												
													
														|  | 
 |  | +      times.value.timeoutObj && clearTimeout(times.value.timeoutObj);
 | 
											
												
													
														|  | 
 |  | +      times.value.serverTimeoutObj && clearTimeout(times.value.serverTimeoutObj);
 | 
											
												
													
														|  | 
 |  | +      times.value.timeoutObj = setTimeout(function () {
 | 
											
												
													
														|  | 
 |  | +        //这里发送一个心跳,后端收到后,返回一个心跳消息
 | 
											
												
													
														|  | 
 |  | +        if (websock.readyState == 1) {
 | 
											
												
													
														|  | 
 |  | +          //如果连接正常
 | 
											
												
													
														|  | 
 |  | +         websock.send("heartCheck");
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          //否则重连
 | 
											
												
													
														|  | 
 |  | +          reconnect();
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        times.value.serverTimeoutObj = setTimeout(function () {
 | 
											
												
													
														|  | 
 |  | +          // 超时关闭
 | 
											
												
													
														|  | 
 |  | +          websock.close(); //如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次
 | 
											
												
													
														|  | 
 |  | +        }, times.value.timeout);
 | 
											
												
													
														|  | 
 |  | +      }, times.value.timeout);
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |    // 日志框
 |  |    // 日志框
 | 
											
												
													
														|  |       // 日志的文本框
 |  |       // 日志的文本框
 | 
											
												
													
														|  |       const  footerShows=(evt)=>{
 |  |       const  footerShows=(evt)=>{
 |