|  | @@ -1427,7 +1427,7 @@
 | 
	
		
			
				|  |  |              <template #footer>
 | 
	
		
			
				|  |  |                <div class="dialog-footer">
 | 
	
		
			
				|  |  |                  <el-button @click="dialog.Pythonshow = false">检查</el-button>
 | 
	
		
			
				|  |  | -                <el-button type="primary">
 | 
	
		
			
				|  |  | +                <el-button type="primary" @click="pythonSubmit(); dialog.Pythonshow = false">
 | 
	
		
			
				|  |  |                    保存
 | 
	
		
			
				|  |  |                  </el-button>
 | 
	
		
			
				|  |  |                </div>
 | 
	
	
		
			
				|  | @@ -1541,19 +1541,19 @@
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  |                                <el-table-column prop="upper" label="上限值">
 | 
	
		
			
				|  |  |                                  <template #default="{ row }">
 | 
	
		
			
				|  |  | -                                  <el-input type="text" v-model="row.upper" oninput="value=value.replace(/^|[^0-9]/g,'')"
 | 
	
		
			
				|  |  | +                                  <el-input type="text" v-model.Number="row.upper" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  |                                      @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  |                                <el-table-column prop="lower" label="下限值">
 | 
	
		
			
				|  |  |                                  <template #default="{ row }">
 | 
	
		
			
				|  |  | -                                  <el-input v-model.Number="row.lower" oninput="value=value.replace(/^|[^0-9]/g,'')"
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.lower" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  |                                      @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  |                                <el-table-column prop="reference" label="基准值" width="100">
 | 
	
		
			
				|  |  |                                  <template #default="{ row }">
 | 
	
		
			
				|  |  | -                                  <el-input v-model.Number="row.reference" oninput="value=value.replace(/^|[^0-9]/g,'')"
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.reference" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  |                                      @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
	
		
			
				|  | @@ -1579,7 +1579,7 @@
 | 
	
		
			
				|  |  |                                    <el-input v-model="row.name" @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  | -                              <el-table-column prop="con" label="约束关系">
 | 
	
		
			
				|  |  | +                              <!-- <el-table-column prop="con" label="约束关系">
 | 
	
		
			
				|  |  |                                  <template v-slot="scope">
 | 
	
		
			
				|  |  |                                    <el-select class="no-border " v-model.number="scope.row.con" :suffix-icon="CaretBottom"
 | 
	
		
			
				|  |  |                                      placeholder="请选择">
 | 
	
	
		
			
				|  | @@ -1589,10 +1589,24 @@
 | 
	
		
			
				|  |  |                                    </el-select>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  | -                              </el-table-column>
 | 
	
		
			
				|  |  | +                              </el-table-column> -->
 | 
	
		
			
				|  |  |                                <el-table-column prop="reference" label="约束基准值">
 | 
	
		
			
				|  |  |                                  <template #default="{ row }">
 | 
	
		
			
				|  |  | -                                  <el-input v-model.Number="row.reference" oninput="value=value.replace(/^|[^0-9]/g,'')"
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.reference" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  | +                                    @change="handleEdit(row)" />
 | 
	
		
			
				|  |  | +                                </template>
 | 
	
		
			
				|  |  | +                              </el-table-column>
 | 
	
		
			
				|  |  | +                              <el-table-column prop="upper" label="上限值">
 | 
	
		
			
				|  |  | +                                <template #default="{ row }">
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.upper" 
 | 
	
		
			
				|  |  | +                                    
 | 
	
		
			
				|  |  | +                                    oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  | +                                    @change="handleEdit(row)" />
 | 
	
		
			
				|  |  | +                                </template>
 | 
	
		
			
				|  |  | +                              </el-table-column>
 | 
	
		
			
				|  |  | +                              <el-table-column prop="lower" label="下限值">
 | 
	
		
			
				|  |  | +                                <template #default="{ row }">
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.lower" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  |                                      @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
	
		
			
				|  | @@ -1644,12 +1658,11 @@
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  |                                <el-table-column prop="weight" label="权重系数">
 | 
	
		
			
				|  |  |                                  <template #default="{ row }">
 | 
	
		
			
				|  |  | -                                  <el-input v-model.number="row.weight" oninput="value=value.replace(/^|[^0-9]/g,'')"
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.weight" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  |                                      @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  | -                              <el-table-column prop="scaling" label="数据缩放">
 | 
	
		
			
				|  |  | -                                <!-- :label="scope.row.s?'采用':'不采用'" -->
 | 
	
		
			
				|  |  | +                              <!-- <el-table-column prop="scaling" label="数据缩放">
 | 
	
		
			
				|  |  |                                  <template v-slot="scope">
 | 
	
		
			
				|  |  |                                    <el-checkbox :false-label="0" :true-label="1" v-model="scope.row.scaling" />
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1660,6 +1673,12 @@
 | 
	
		
			
				|  |  |                                    <el-input v-model.number="row.factor" oninput="value=value.replace(/^|[^0-9]/g,'')"
 | 
	
		
			
				|  |  |                                      @change="handleEdit(row)" />
 | 
	
		
			
				|  |  |                                  </template>
 | 
	
		
			
				|  |  | +                              </el-table-column> -->
 | 
	
		
			
				|  |  | +                              <el-table-column prop="reference" label="约束基准值">
 | 
	
		
			
				|  |  | +                                <template #default="{ row }">
 | 
	
		
			
				|  |  | +                                  <el-input v-model.Number="row.reference" oninput="value=value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1')"
 | 
	
		
			
				|  |  | +                                    @change="handleEdit(row)" />
 | 
	
		
			
				|  |  | +                                </template>
 | 
	
		
			
				|  |  |                                </el-table-column>
 | 
	
		
			
				|  |  |                                <el-table-column prop="remark" label="说明">
 | 
	
		
			
				|  |  |                                  <template #default="{ row }">
 | 
	
	
		
			
				|  | @@ -1833,7 +1852,7 @@ let times = ref({
 | 
	
		
			
				|  |  |    lockReconnect: false, //是否真正建立连接
 | 
	
		
			
				|  |  |    timeout: 28 * 1000, //30秒一次心跳
 | 
	
		
			
				|  |  |    timeoutObj: null, //心跳倒计时
 | 
	
		
			
				|  |  | -  serverTimeout0bj: null, //
 | 
	
		
			
				|  |  | +  serverTimeoutObj: null, //
 | 
	
		
			
				|  |  |    timeoutnum: null, //断开重连倒计时
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  let input3=ref()
 | 
	
	
		
			
				|  | @@ -2221,7 +2240,7 @@ const optiongroup = [
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  ]
 | 
	
		
			
				|  |  |  const eloptimize = ref([])
 | 
	
		
			
				|  |  | -let tableData = ref([])
 | 
	
		
			
				|  |  | +const tableData = ref([])
 | 
	
		
			
				|  |  |  const designtable = ref([])
 | 
	
		
			
				|  |  |  const tasktable = ref([
 | 
	
		
			
				|  |  |    // {
 | 
	
	
		
			
				|  | @@ -2414,6 +2433,7 @@ const optimizerfalse = (val) => {
 | 
	
		
			
				|  |  |      activeadf.value='代理优化器';
 | 
	
		
			
				|  |  |    }else if(val == 'Python'){
 | 
	
		
			
				|  |  |      dialog.value.Pythonshow = true;
 | 
	
		
			
				|  |  | +    initPython();
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |     else {
 | 
	
		
			
				|  |  |      dialog.value.optimizer = false;
 | 
	
	
		
			
				|  | @@ -2429,6 +2449,7 @@ const optimizerfalse = (val) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// 优化器窗口初始化
 | 
	
		
			
				|  |  |  const initoptimize = () => {
 | 
	
		
			
				|  |  |    console.log('优化器chushihua');
 | 
	
		
			
				|  |  |    const params1 = {
 | 
	
	
		
			
				|  | @@ -2466,6 +2487,34 @@ const initoptimize = () => {
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// Python窗口初始化
 | 
	
		
			
				|  |  | +const initPython = () => {
 | 
	
		
			
				|  |  | +  console.log('Pythonchushihua');
 | 
	
		
			
				|  |  | +  const param = {
 | 
	
		
			
				|  |  | +    transCode:'MDO0036',
 | 
	
		
			
				|  |  | +    pid: pid.value,
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  request(param).then((res) => {
 | 
	
		
			
				|  |  | +    console.log('Python:', res);
 | 
	
		
			
				|  |  | +  }).catch((err) => {
 | 
	
		
			
				|  |  | +    console.error('请求失败:', err);
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Python确认按钮提交
 | 
	
		
			
				|  |  | +const pythonSubmit = () => {
 | 
	
		
			
				|  |  | +  console.log('Python确认按钮提交');
 | 
	
		
			
				|  |  | +  const param = {
 | 
	
		
			
				|  |  | +    transCode:'MDO0037',
 | 
	
		
			
				|  |  | +    pid: pid.value,
 | 
	
		
			
				|  |  | +    code: textarea1.value,
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  request(param).then((res) => {
 | 
	
		
			
				|  |  | +    console.log('Python确认按钮提交:', res);
 | 
	
		
			
				|  |  | +  }).catch((err) => {
 | 
	
		
			
				|  |  | +    console.error('请求失败:', err);
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 模块选择
 | 
	
		
			
				|  |  |  const clickgeometry = (e, index, key, name) => {
 | 
	
	
		
			
				|  | @@ -2474,6 +2523,8 @@ const clickgeometry = (e, index, key, name) => {
 | 
	
		
			
				|  |  |    tabactive.value = name;
 | 
	
		
			
				|  |  |    dialogbolen();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  const dialogbolen = () => {
 | 
	
		
			
				|  |  |    switch (tabactive.value) {
 | 
	
		
			
				|  |  |      case "新建任务":
 | 
	
	
		
			
				|  | @@ -2739,7 +2790,7 @@ const modelgroup=()=>{
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  //新增
 | 
	
		
			
				|  |  |  const onAddItem = () => {
 | 
	
		
			
				|  |  | -  let tablevalnum = Number(tableval.value)
 | 
	
		
			
				|  |  | +  let tablevalnum = Number(tableval.value) > 1 ? Number(tableval.value) : 1
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (activeIndex2.value == 0) {
 | 
	
		
			
				|  |  |      for (let i = 0; i < tablevalnum; i++) {
 | 
	
	
		
			
				|  | @@ -2757,7 +2808,9 @@ const onAddItem = () => {
 | 
	
		
			
				|  |  |        tableData.value.push({
 | 
	
		
			
				|  |  |          name: `g${i + 1}`,
 | 
	
		
			
				|  |  |          con: -1,
 | 
	
		
			
				|  |  | -        reference: ''
 | 
	
		
			
				|  |  | +        reference: null,
 | 
	
		
			
				|  |  | +        upper: 0,
 | 
	
		
			
				|  |  | +        lower: 0,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -2769,6 +2822,7 @@ const onAddItem = () => {
 | 
	
		
			
				|  |  |          weight: 0,
 | 
	
		
			
				|  |  |          scaling: 0,
 | 
	
		
			
				|  |  |          factor: 0,
 | 
	
		
			
				|  |  | +        reference: null,
 | 
	
		
			
				|  |  |          remark: '',
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2832,17 +2886,17 @@ const getissue = () => {
 | 
	
		
			
				|  |  |            item.lower = Number(item.lower); // 将属性转换为数字
 | 
	
		
			
				|  |  |            item.upper = Number(item.upper);
 | 
	
		
			
				|  |  |            item.reference = Number(item.reference);
 | 
	
		
			
				|  |  | -          //console.log(index);
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |            treeitem.value = {
 | 
	
		
			
				|  |  |              id: "1-1-1-" + index,
 | 
	
		
			
				|  |  |              label: item.name,
 | 
	
		
			
				|  |  |              img: f21,
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -          console.log(Sidebarref.value.datatree[0].children[0].children[0].children)
 | 
	
		
			
				|  |  | +          // console.log(Sidebarref.value.datatree[0].children[0].children[0].children)
 | 
	
		
			
				|  |  |           childernarr.forEach((item,index)=>{
 | 
	
		
			
				|  |  |            if(item.label=='设计变量'){
 | 
	
		
			
				|  |  | -            let   addnode = Sidebarref.value.datatree[0].children[0].children[index].children.push(treeitem.value);
 | 
	
		
			
				|  |  | +            let addnode = Sidebarref.value.datatree[0].children[0].children[index].children.push(treeitem.value);
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |           })
 | 
	
		
			
				|  |  |           return item;
 | 
	
	
		
			
				|  | @@ -2859,7 +2913,6 @@ const getissue = () => {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  //约束条件查询
 | 
	
		
			
				|  |  |  const getyueshu = () => {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |    const params = {
 | 
	
		
			
				|  |  |      transCode: 'MDO0023',
 | 
	
		
			
				|  |  |      pid: pid.value,
 | 
	
	
		
			
				|  | @@ -2879,35 +2932,44 @@ const getyueshu = () => {
 | 
	
		
			
				|  |  |          if (!result) {
 | 
	
		
			
				|  |  |            Sidebarref.value.datatree[0].children[0].children.push(item2);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        Sidebarref.value.datatree[0].children[0].children.forEach((item,index)=>{
 | 
	
		
			
				|  |  | -          if(item.label=='约束条件'){
 | 
	
		
			
				|  |  | -          Sidebarref.value.datatree[0].children[0].children[index].children=[];
 | 
	
		
			
				|  |  | +        Sidebarref.value.datatree[0].children[0].children.forEach((item, index) => {
 | 
	
		
			
				|  |  | +          if (item.label == '约束条件') {
 | 
	
		
			
				|  |  | +            Sidebarref.value.datatree[0].children[0].children[index].children = [];
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        let   childernarr=Sidebarref.value.datatree[0].children[0].children
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        let childernarr = Sidebarref.value.datatree[0].children[0].children;
 | 
	
		
			
				|  |  |          res.rows = res.rows.map((item, index) => {
 | 
	
		
			
				|  |  | -          item.con = Number(item.con); // 将id属性转换为数字
 | 
	
		
			
				|  |  | +          // 确保转换为数字
 | 
	
		
			
				|  |  | +          item.con = Number(item.con);
 | 
	
		
			
				|  |  |            item.reference = Number(item.reference);
 | 
	
		
			
				|  |  | +          item.upper = Number(item.upper); // 添加对 upper 的处理
 | 
	
		
			
				|  |  | +          item.lower = Number(item.lower); // 添加对 lower 的处理
 | 
	
		
			
				|  |  | +          console.log('item:', item);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            treeitem2.value = {
 | 
	
		
			
				|  |  |              id: "1-2-2-" + index,
 | 
	
		
			
				|  |  |              label: item.name,
 | 
	
		
			
				|  |  |              img: f21,
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -          childernarr.forEach((item,index)=>{
 | 
	
		
			
				|  |  | -          if(item.label=='约束条件'){
 | 
	
		
			
				|  |  | -            let addnode = Sidebarref.value.datatree[0].children[0].children[index].children.push(treeitem2.value);
 | 
	
		
			
				|  |  | -     }
 | 
	
		
			
				|  |  | -    })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          childernarr.forEach((item, index) => {
 | 
	
		
			
				|  |  | +            if (item.label == '约束条件') {
 | 
	
		
			
				|  |  | +              let addnode = Sidebarref.value.datatree[0].children[0].children[index].children.push(treeitem2.value);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            return item;
 | 
	
		
			
				|  |  | -        })
 | 
	
		
			
				|  |  | -        tableData.value = res.rows;
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        tableData.value = res.rows; // 更新表格数据
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |      .catch((err) => {
 | 
	
		
			
				|  |  | -      ElMessage.error(err.returnMsg)
 | 
	
		
			
				|  |  | +      ElMessage.error(err.returnMsg);
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  //目标函数查询
 | 
	
		
			
				|  |  |  const getmub = () => {
 | 
	
		
			
				|  |  |    const params = {
 | 
	
	
		
			
				|  | @@ -2938,8 +3000,10 @@ const getmub = () => {
 | 
	
		
			
				|  |  |          res.rows = res.rows.map((item, index) => {
 | 
	
		
			
				|  |  |            item.optdir = Number(item.optdir); // 将id属性转换为数字
 | 
	
		
			
				|  |  |            item.weight = Number(item.weight);
 | 
	
		
			
				|  |  | -          item.scaling = Number(item.scaling);
 | 
	
		
			
				|  |  | -          item.factor = Number(item.factor);
 | 
	
		
			
				|  |  | +          // item.scaling = Number(item.scaling);
 | 
	
		
			
				|  |  | +          // item.factor = Number(item.factor);
 | 
	
		
			
				|  |  | +          item.reference = Number(item.reference);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            treeitem3.value = {
 | 
	
		
			
				|  |  |              id: "1-3-3-" + index,
 | 
	
		
			
				|  |  |              label: item.name,
 | 
	
	
		
			
				|  | @@ -2994,25 +3058,40 @@ const getarr = (name, arrays) => {
 | 
	
		
			
				|  |  |      name += valuesWithSemiColons + ';';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  console.log(name)
 | 
	
		
			
				|  |  | +  console.log('conlist',name)
 | 
	
		
			
				|  |  |    return name;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const convertToStringArray = (result,Data) => {
 | 
	
		
			
				|  |  | +  result = Data.map(row => {
 | 
	
		
			
				|  |  | +    // 获取每一列的数据,排除带有 'id' 的字段
 | 
	
		
			
				|  |  | +    return Object.keys(row)
 | 
	
		
			
				|  |  | +      .filter(key => !key.includes('id'))  // 过滤掉包含 'id' 的字段
 | 
	
		
			
				|  |  | +      .map(key => row[key] || ' ')      // 获取每个字段的值,空值替换为 ' '
 | 
	
		
			
				|  |  | +      .join(',');                          // 将每个字段的值用逗号连接
 | 
	
		
			
				|  |  | +  }).join(';');  
 | 
	
		
			
				|  |  | +    return result;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  //保存优化问题
 | 
	
		
			
				|  |  |  const onokItem = () => {
 | 
	
		
			
				|  |  |    console.log(activeIndex2.value);
 | 
	
		
			
				|  |  |    if (activeIndex2.value == 0) {
 | 
	
		
			
				|  |  |      svarlist.value = '';
 | 
	
		
			
				|  |  | -    svarlist.value = getarr(svarlist.value, designtable.value)
 | 
	
		
			
				|  |  | +    console.log("designtable:",designtable.value)
 | 
	
		
			
				|  |  | +    svarlist.value = convertToStringArray(svarlist.value, designtable.value)
 | 
	
		
			
				|  |  |      devise();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    } else if (activeIndex2.value == 1) {
 | 
	
		
			
				|  |  |      conlist.value = '';
 | 
	
		
			
				|  |  | -    conlist.value = getarr(conlist.value, tableData.value)
 | 
	
		
			
				|  |  | +    console.log("tabledata:",tableData.value)
 | 
	
		
			
				|  |  | +    conlist.value = convertToStringArray(conlist.value, tableData.value)
 | 
	
		
			
				|  |  |      restrain();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    } else if (activeIndex2.value == 2) {
 | 
	
		
			
				|  |  |      funlist.value = '';
 | 
	
		
			
				|  |  | -    funlist.value = getarr(funlist.value, eloptimize.value)
 | 
	
		
			
				|  |  | +    console.log("eloptimize:",eloptimize.value)
 | 
	
		
			
				|  |  | +    funlist.value = convertToStringArray(funlist.value, eloptimize.value)
 | 
	
		
			
				|  |  |      funlistaa();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -3056,7 +3135,6 @@ const restrain = () => {
 | 
	
		
			
				|  |  |        ElMessage.error(err.returnMsg)
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -//进度条percentage
 | 
	
		
			
				|  |  |  //优化目标接口
 | 
	
		
			
				|  |  |  const funlistaa = () => {
 | 
	
		
			
				|  |  |    const params = {
 | 
	
	
		
			
				|  | @@ -3295,7 +3373,8 @@ const logsget = () => {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |    request(params)
 | 
	
		
			
				|  |  |      .then((res) => {
 | 
	
		
			
				|  |  | -      logs.value = res.logs;
 | 
	
		
			
				|  |  | +      // 去除空行
 | 
	
		
			
				|  |  | +      logs.value = res.logs.split('\n').filter(line => line.trim() !== '').join('\n');
 | 
	
		
			
				|  |  |        const results = extractBracesContent(logs.value);
 | 
	
		
			
				|  |  |        for (let i = 0; i < results.length; i++) {
 | 
	
		
			
				|  |  |          arrobj.value.push(results[i]);
 | 
	
	
		
			
				|  | @@ -3396,8 +3475,9 @@ const websocketonmessage = (res) => {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      if (res.data.indexOf('msg=heartChec') == -1) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      logs.value = logs.value + '"\n"' + res.data;
 | 
	
		
			
				|  |  | +      // 去除空行
 | 
	
		
			
				|  |  | +      const cleanedLog = res.data.split('\n').filter(line => line.trim() !== '').join('\n');
 | 
	
		
			
				|  |  | +      logs.value = logs.value + '\n' + cleanedLog;
 | 
	
		
			
				|  |  |        let textarea = document.getElementById("textarea_id");
 | 
	
		
			
				|  |  |        textarea.scrollTop = textarea.scrollHeight;
 | 
	
		
			
				|  |  |      }
 |