|  | @@ -39,6 +39,10 @@
 | 
	
		
			
				|  |  |                        <span>{{ f4ce }}</span>
 | 
	
		
			
				|  |  |                        <el-select v-model="f4ce" class="no-border headersele" :suffix-icon="CaretBottom">
 | 
	
		
			
				|  |  |                          <el-option v-for="item in optiongroup1" :key="item.value" :label="item.label" :value="item.value">
 | 
	
		
			
				|  |  | +                          <div style="display: flex; align-items: center;">
 | 
	
		
			
				|  |  | +                            <img :src="getflowImgPath(item.img)" style="width: 20px; height: 20px; margin-right: 10px;" />
 | 
	
		
			
				|  |  | +                            <span>{{ item.label }}</span>
 | 
	
		
			
				|  |  | +                          </div>
 | 
	
		
			
				|  |  |                          </el-option>
 | 
	
		
			
				|  |  |                        </el-select>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
	
		
			
				|  | @@ -46,10 +50,12 @@
 | 
	
		
			
				|  |  |                        <el-image :src="getImgPath('tow2.png')" fit="cover" />
 | 
	
		
			
				|  |  |                        <span>{{ modelban }}</span>
 | 
	
		
			
				|  |  |                        <el-select v-model="modelban" class="no-border headersele" :suffix-icon="CaretBottom">
 | 
	
		
			
				|  |  | -                        <el-option-group v-for="group in optiongroup" :key="group.label" :label="group.label">
 | 
	
		
			
				|  |  | -                          <el-option v-for="item in group.options" :key="item.value" :label="item.label"
 | 
	
		
			
				|  |  | -                            :value="item.value" />
 | 
	
		
			
				|  |  | -                        </el-option-group>
 | 
	
		
			
				|  |  | +                        <el-option v-for="item in optiongroup" :key="item.value" :label="item.label" :value="item.value">
 | 
	
		
			
				|  |  | +                          <div style="display: flex; align-items: center;">
 | 
	
		
			
				|  |  | +                            <img :src="getflowImgPath(item.img)" style="width: 20px; height: 20px; margin-right: 10px;" />
 | 
	
		
			
				|  |  | +                            <span>{{ item.label }}</span>
 | 
	
		
			
				|  |  | +                          </div>
 | 
	
		
			
				|  |  | +                        </el-option>
 | 
	
		
			
				|  |  |                        </el-select>
 | 
	
		
			
				|  |  |                      </div>
 | 
	
		
			
				|  |  |                      <div class="item2 margr" @click="clickgeometry($event, index, 'Role-' + '2', undmodel)">
 | 
	
	
		
			
				|  | @@ -753,7 +759,7 @@
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |              <div>
 | 
	
		
			
				|  |  | -              <ListSE @update="handleUpdate"/>
 | 
	
		
			
				|  |  | +              <ListSE :isList="true" @update="handleUpdate"/>
 | 
	
		
			
				|  |  |                <!-- <el-form>
 | 
	
		
			
				|  |  |                  <el-form-item label="设计集:" >
 | 
	
		
			
				|  |  |                    <el-select v-model="listval" :suffix-icon="CaretBottom" placeholder="请选择">
 | 
	
	
		
			
				|  | @@ -774,7 +780,7 @@
 | 
	
		
			
				|  |  |                <div class="dialog-footer">
 | 
	
		
			
				|  |  |                  
 | 
	
		
			
				|  |  |                  <el-button @click="dialog.listdialog = false">取消</el-button>
 | 
	
		
			
				|  |  | -                <el-button type="primary" @click="dialog.listdialog = false">
 | 
	
		
			
				|  |  | +                <el-button type="primary" @click="selectshujuto();dialog.listdialog = false">
 | 
	
		
			
				|  |  |                    确定
 | 
	
		
			
				|  |  |                  </el-button>
 | 
	
		
			
				|  |  |                </div>
 | 
	
	
		
			
				|  | @@ -791,7 +797,7 @@
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |              <div>
 | 
	
		
			
				|  |  | -              <ListSE @update="handleUpdate"/>
 | 
	
		
			
				|  |  | +              <ListSE :isList="false" @update="handleUpdate"/>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  |              <template #footer>
 | 
	
		
			
				|  |  |                <div class="dialog-footer">
 | 
	
	
		
			
				|  | @@ -814,7 +820,7 @@
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |              <div>
 | 
	
		
			
				|  |  | -              <ListSE @update="handleUpdate"/>
 | 
	
		
			
				|  |  | +              <ListSE :isList="false" @update="handleUpdate"/>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  |              <template #footer>
 | 
	
		
			
				|  |  |                <div class="dialog-footer">
 | 
	
	
		
			
				|  | @@ -1140,7 +1146,7 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              <template #header="{ titleId, titleClass }">
 | 
	
		
			
				|  |  |                <div class="my-header ">
 | 
	
		
			
				|  |  | -                <el-image :src="getImgPath('t2.png')" fit="contain"></el-image>
 | 
	
		
			
				|  |  | +                <!-- <el-image :src="getImgPath('t2.png')" fit="contain"></el-image> -->
 | 
	
		
			
				|  |  |                  <h4 :id="titleId" :class="titleClass">优化算法:</h4>
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
	
		
			
				|  | @@ -1263,6 +1269,33 @@
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  |            </el-dialog>
 | 
	
		
			
				|  |  | +          <!-- MathFunc -->
 | 
	
		
			
				|  |  | +          <el-dialog v-model="dialog.MathFuncdialog" align-center :modal="false" :close-on-click-modal="false"
 | 
	
		
			
				|  |  | +            :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
 | 
	
		
			
				|  |  | +            :before-close="handleClose" width="500" class="dialog_class bgcolor colortext tianjia sel">
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            <template #header="{ titleId, titleClass }">
 | 
	
		
			
				|  |  | +              <div class="my-header ">
 | 
	
		
			
				|  |  | +                <!-- <el-image :src="getImgPath('xuek0.png')" fit="contain"></el-image> -->
 | 
	
		
			
				|  |  | +                <h4 :id="titleId" :class="titleClass">MathFunc</h4>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +            <MathFunc ref="MathFuncref" @selectTab="MathFunctabchange"/>
 | 
	
		
			
				|  |  | +            <template #footer>
 | 
	
		
			
				|  |  | +              <div style="display: flex;justify-content: space-between;">
 | 
	
		
			
				|  |  | +                <div>
 | 
	
		
			
				|  |  | +                  <el-button v-show="MathFuncxinjian">新建</el-button>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +                <div class="dialog-footer">
 | 
	
		
			
				|  |  | +                  <el-button @click="dialog.MathFuncdialog = false">取消</el-button>
 | 
	
		
			
				|  |  | +                  <el-button type="primary" @click="; dialog.MathFuncdialog = false">
 | 
	
		
			
				|  |  | +                    确定
 | 
	
		
			
				|  |  | +                  </el-button>
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  | +              </div>
 | 
	
		
			
				|  |  | +              
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-dialog>
 | 
	
		
			
				|  |  |            <!-- FSI -->
 | 
	
		
			
				|  |  |             <el-dialog v-model="dialog.fsidialog" align-center :modal="false" :close-on-click-modal="false"
 | 
	
		
			
				|  |  |              :append-to-body="true" draggable :fullscreen="false" :modal-append-to-body="false" modal-class="summary-dlg"
 | 
	
	
		
			
				|  | @@ -1308,7 +1341,7 @@
 | 
	
		
			
				|  |  |              <!--left菜单栏  -->
 | 
	
		
			
				|  |  |              <Sidebar ref="Sidebarref" />
 | 
	
		
			
				|  |  |              <!-- 放图形 -->
 | 
	
		
			
				|  |  | -            <div class="main_container">
 | 
	
		
			
				|  |  | +            <div class="right_container">
 | 
	
		
			
				|  |  |                <div class="main_model">
 | 
	
		
			
				|  |  |                  <div class="jindutiao" v-show="progressshow">
 | 
	
		
			
				|  |  |                    <span style="width: 150px;">运行进度</span>
 | 
	
	
		
			
				|  | @@ -1656,6 +1689,7 @@ import ffds from './titlecomponent/ffds.vue'
 | 
	
		
			
				|  |  |  import cloudsecond from "./titlecomponent/Cloudsecond.vue";
 | 
	
		
			
				|  |  |  import FSI from './titlecomponent/FSI.vue'
 | 
	
		
			
				|  |  |  import Flight from './titlecomponent/Flight.vue'
 | 
	
		
			
				|  |  | +import MathFunc from './titlecomponent/MathFunc.vue'
 | 
	
		
			
				|  |  |  import ListSE from "./titlecomponent/ListSE.vue";
 | 
	
		
			
				|  |  |  import TACS from "./titlecomponent/TACS.vue";
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1693,11 +1727,12 @@ let Doptimizeref=ref();
 | 
	
		
			
				|  |  |  let Toptimizeref=ref();
 | 
	
		
			
				|  |  |  let Fsiref=ref();
 | 
	
		
			
				|  |  |  let Flightref=ref();
 | 
	
		
			
				|  |  | +let MathFuncref=ref();
 | 
	
		
			
				|  |  |  let f4ce = ref("优化问题组件");
 | 
	
		
			
				|  |  |  let modelban = ref("学科分析组件");
 | 
	
		
			
				|  |  |  let undmodel=ref('优化器组件');
 | 
	
		
			
				|  |  |  let optiongroup1 = ref([
 | 
	
		
			
				|  |  | -  { label: '优化问题', value: '优化问题' }
 | 
	
		
			
				|  |  | +  { label: '优化问题', value: '优化问题',img:'wen.png' }
 | 
	
		
			
				|  |  |  ])
 | 
	
		
			
				|  |  |  let options4 = ref([
 | 
	
		
			
				|  |  |    { label: '进化优化器', value: '进化优化器', icon:xuek10 },
 | 
	
	
		
			
				|  | @@ -2116,6 +2151,7 @@ let dialog = ref({
 | 
	
		
			
				|  |  |    guanli: false,
 | 
	
		
			
				|  |  |    optgroup:false,
 | 
	
		
			
				|  |  |    Pythonshow:false,
 | 
	
		
			
				|  |  | +  MathFuncdialog:false,
 | 
	
		
			
				|  |  |    listdialog:false,
 | 
	
		
			
				|  |  |    scatterdialog:false,
 | 
	
		
			
				|  |  |    echartLinedialog:false,
 | 
	
	
		
			
				|  | @@ -2143,39 +2179,23 @@ let tasklist = ref([
 | 
	
		
			
				|  |  |    { label: '噪声', value: '噪声' },
 | 
	
		
			
				|  |  |  ])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -const optiongroup = [
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    label: '大飞机',
 | 
	
		
			
				|  |  | -    options: [
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        value: '气动优化',
 | 
	
		
			
				|  |  | -        label: '气动优化',
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        value: '气弹优化',
 | 
	
		
			
				|  |  | -        label: '气弹优化',
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -    ],
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  {
 | 
	
		
			
				|  |  | -    label: '直升机',
 | 
	
		
			
				|  |  | -    options: [
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        value: '气动优化1',
 | 
	
		
			
				|  |  | -        label: '气动优化',
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        value: '气弹优化2',
 | 
	
		
			
				|  |  | -        label: '气弹优化',
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      {
 | 
	
		
			
				|  |  | -        value: '气动噪声优化',
 | 
	
		
			
				|  |  | -        label: '气动噪声优化',
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    ],
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -]
 | 
	
		
			
				|  |  | +const optiongroup =  ref([
 | 
	
		
			
				|  |  | +  { label: 'CST', value: 'CST', img:'xuek0.png' },
 | 
	
		
			
				|  |  | +  { label: 'FFD', value: 'FFD', img:'ffd.png' },
 | 
	
		
			
				|  |  | +  { label: 'Xfoil', value: 'Xfoil', img:'xuek9.png' },
 | 
	
		
			
				|  |  | +  { label: 'ADflow', value: 'ADflow', img:'ADflow.png' },
 | 
	
		
			
				|  |  | +  { label: 'TACS', value: 'TACS', img:'TACS.png' },
 | 
	
		
			
				|  |  | +  { label: 'CATIA', value: 'CATIA', img:'xuek1.png' },
 | 
	
		
			
				|  |  | +  { label: 'Python', value: 'Python', img:'xuek8.png' },
 | 
	
		
			
				|  |  | +  { label: 'Excel', value: 'Excel', img:'xuek2.png' },
 | 
	
		
			
				|  |  | +  { label: 'Feko', value: 'Feko', img:'xuek3.png' },
 | 
	
		
			
				|  |  | +  { label: 'Fluent', value: 'Fluent', img:'xuek4.png' },
 | 
	
		
			
				|  |  | +  { label: 'HCFD', value: 'HCFD', img:'xuek5.png' },
 | 
	
		
			
				|  |  | +  { label: 'Matlab', value: 'Matlab', img:'xuek6.png' },
 | 
	
		
			
				|  |  | +  { label: 'Nastran', value: 'Nastran', img:'xuek7.png' },
 | 
	
		
			
				|  |  | +  { label: 'FUM to FEM', value: 'FSI', img:'fsi.png' },
 | 
	
		
			
				|  |  | +  { label: 'Flight', value: 'Flight', img:'flight.png' },
 | 
	
		
			
				|  |  | +])
 | 
	
		
			
				|  |  |  const eloptimize = ref([])
 | 
	
		
			
				|  |  |  const tableData = ref([])
 | 
	
		
			
				|  |  |  const designtable = ref([])
 | 
	
	
		
			
				|  | @@ -2212,6 +2232,10 @@ let num = ref(1)
 | 
	
		
			
				|  |  |  const getImgPath = (url) => {
 | 
	
		
			
				|  |  |    return new URL(`../assets/img/${url}`, import.meta.url).href
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +const getflowImgPath = (url) => {
 | 
	
		
			
				|  |  | +  return new URL(`../assets/flowimg/${url}`, import.meta.url).href
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  onMounted(() => {
 | 
	
		
			
				|  |  |    //console.log( Sidebarref.value.datatree);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2426,6 +2450,8 @@ const optimizerfalse = (val) => {
 | 
	
		
			
				|  |  |    }else if(name == 'Flight'){
 | 
	
		
			
				|  |  |      dialog.value.flightdialog = true;
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | +  }else if(name == 'MathFunc'){
 | 
	
		
			
				|  |  | +    dialog.value.MathFuncdialog = true;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |     else {
 | 
	
		
			
				|  |  |      dialog.value.optimizer = false;
 | 
	
	
		
			
				|  | @@ -2437,6 +2463,7 @@ const optimizerfalse = (val) => {
 | 
	
		
			
				|  |  |      dialog.value.XfAD = false;
 | 
	
		
			
				|  |  |      dialog.value.cstffd = false;
 | 
	
		
			
				|  |  |      dialog.value.Pythonshow = false;
 | 
	
		
			
				|  |  | +    dialog.value.MathFuncdialog = false;
 | 
	
		
			
				|  |  |      dialog.value.fsidialog = false;
 | 
	
		
			
				|  |  |      dialog.value.flightdialog = false;
 | 
	
		
			
				|  |  |    }
 | 
	
	
		
			
				|  | @@ -2619,6 +2646,18 @@ const handleEditorChange = (value) => {
 | 
	
		
			
				|  |  |    console.log('Editor content changed in parent component:', value);
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +let MathFuncxinjian = ref('ture')
 | 
	
		
			
				|  |  | +const MathFunctabchange = (val) => {
 | 
	
		
			
				|  |  | +  // console.log('MathFunctabchange:',val);
 | 
	
		
			
				|  |  | +  if(val == '1'){
 | 
	
		
			
				|  |  | +    MathFuncxinjian.value = false;
 | 
	
		
			
				|  |  | +  }else{
 | 
	
		
			
				|  |  | +    MathFuncxinjian.value = true;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // 模块选择
 | 
	
		
			
				|  |  |  const clickgeometry = (e, index, key, name) => {
 | 
	
		
			
				|  |  |    // console.log(key);
 | 
	
	
		
			
				|  | @@ -2706,6 +2745,9 @@ const dialogbolen = () => {
 | 
	
		
			
				|  |  |      case "列表":
 | 
	
		
			
				|  |  |        echatsfunc();
 | 
	
		
			
				|  |  |        dialog.value.listdialog = true;
 | 
	
		
			
				|  |  | +      nextTick(() => {
 | 
	
		
			
				|  |  | +        initListSe();
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  |        break;
 | 
	
		
			
				|  |  |      case "面积图":
 | 
	
		
			
				|  |  |        echatsfunc();
 | 
	
	
		
			
				|  | @@ -2937,7 +2979,7 @@ const runok = () => {
 | 
	
		
			
				|  |  |        })
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |      .catch((err) => {
 | 
	
		
			
				|  |  | -      ElMessage.error(err.returnMsg)
 | 
	
		
			
				|  |  | +      ElMessage.error('运行失败')
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  const tableKey = ref(0);
 | 
	
	
		
			
				|  | @@ -3096,10 +3138,6 @@ const curveLine4 = () => {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |        console.log("表格数据:", datatotabledata.value);
 | 
	
		
			
				|  |  |        console.log("表头数据:", datatotableheader.value);
 | 
	
		
			
				|  |  | -      // emitter.emit('update:datatotableheader', datatotableheader.value);
 | 
	
		
			
				|  |  | -      // emitter.emit('update:datatotabledata', datatotabledata.value);
 | 
	
		
			
				|  |  | -      // scatterref.value.getshuju(datatotableheader.value,datatotabledata.value);
 | 
	
		
			
				|  |  | -      // echartLineref.value.getshuju(datatotableheader.value,datatotabledata.value);
 | 
	
		
			
				|  |  |      })
 | 
	
		
			
				|  |  |      .catch((err) => {
 | 
	
		
			
				|  |  |        ElMessage.error(err.returnMsg)
 | 
	
	
		
			
				|  | @@ -3197,6 +3235,8 @@ const selectshujuto = () => {
 | 
	
		
			
				|  |  |      scatterref.value.selectshuju(listcbval.value,listcbval2.value,datatotableheader.value,datatotabledata.value);
 | 
	
		
			
				|  |  |    }else if(tabactive.value === '折线图'){
 | 
	
		
			
				|  |  |      echartLineref.value.selectshuju(listcbval.value,listcbval2.value,datatotableheader.value,datatotabledata.value);
 | 
	
		
			
				|  |  | +  }else if(tabactive.value === '列表'){
 | 
	
		
			
				|  |  | +    tablelistref.value.selectshuju(listcbval2.value)
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4418,7 +4458,7 @@ const lbjkheaderCellClassName = ({ columnIndex }) => {
 | 
	
		
			
				|  |  |    font-family: 'Microsoft YaHei';
 | 
	
		
			
				|  |  |    font-size: 16px;
 | 
	
		
			
				|  |  |    color: rgba(51, 51, 51, 1);
 | 
	
		
			
				|  |  | -  line-height: 24px;
 | 
	
		
			
				|  |  | +  /* line-height: 24px; */
 | 
	
		
			
				|  |  |    text-align: left;
 | 
	
		
			
				|  |  |    font-style: normal;
 | 
	
		
			
				|  |  |    text-transform: none;
 | 
	
	
		
			
				|  | @@ -4441,7 +4481,7 @@ color: rgba(51, 51, 51, 0.8);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .custom-tree1>.el-tree-node>.el-tree-node__content>div img {
 | 
	
		
			
				|  |  | -  display: none;
 | 
	
		
			
				|  |  | +  /* display: none; */
 | 
	
		
			
				|  |  |    /* 隐藏一级节点复选框 */
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -4577,7 +4617,7 @@ color: #2267B1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .classtable .el-table th .cell {
 | 
	
		
			
				|  |  |   /* background: #fff; */
 | 
	
		
			
				|  |  | - /* line-height: 31px; */
 | 
	
		
			
				|  |  | + line-height: 31px;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .classtable .el-table td.el-table__cell, .classtable .el-table th.el-table__cell{
 |