|  | @@ -96,7 +96,7 @@
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        </template>
 | 
	
		
			
				|  |  |        <div style="margin-top: 5px;padding: 10px 35px;">
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '1'">
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '1'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -120,8 +120,8 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '2'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '2'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -145,8 +145,8 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '3'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '3'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -182,8 +182,69 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '4'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '1'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="youhuaFFDtable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          :is-youhua="false"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '2'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="youhuaCSTtable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          :is-youhua="false"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '3'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="ADflowyouhuatable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '4'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="Xfoilyouhuatable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '5'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="ADflowMathfunctable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          :is-youhua="false"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '6'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="TacsMathFunctable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          :is-youhua="false"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '7'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="youhuaTACStable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          :is-youhua="false"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <linetablecard v-if="datacontent === '8'"
 | 
	
		
			
				|  |  | +          v-model:check-all="checkAll"
 | 
	
		
			
				|  |  | +          v-model:table-data="MathFuncyouhuatable"
 | 
	
		
			
				|  |  | +          :steamtype-options="steamtypeoptions"
 | 
	
		
			
				|  |  | +          :is-indeterminate="isIndeterminate"
 | 
	
		
			
				|  |  | +          @check-flag-change="handlecheckFlagchange"
 | 
	
		
			
				|  |  | +        />
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '4'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -219,8 +280,8 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '5'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '5'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -256,8 +317,8 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '6'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '6'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -293,8 +354,8 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '7'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '7'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -318,8 +379,8 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div v-if="datacontent === '8'">
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  | +        <!-- <div v-if="datacontent === '8'">
 | 
	
		
			
				|  |  |            <el-card :shadow="none" style="min-height: 240px; max-height: 480px;">
 | 
	
		
			
				|  |  |            <el-checkbox v-model="checkAll" 
 | 
	
		
			
				|  |  |            :indeterminate="isIndeterminate"
 | 
	
	
		
			
				|  | @@ -355,7 +416,7 @@
 | 
	
		
			
				|  |  |              </el-table>
 | 
	
		
			
				|  |  |            </div>
 | 
	
		
			
				|  |  |            </el-card>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | +        </div> -->
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |        <template #footer>
 | 
	
	
		
			
				|  | @@ -404,6 +465,7 @@ import html2canvas from 'html2canvas';
 | 
	
		
			
				|  |  |  import Icon from './Icon.vue'
 | 
	
		
			
				|  |  |  import { formatTime } from '@/js/lindex.js';
 | 
	
		
			
				|  |  |  import emitter from "@/utils/emitter";
 | 
	
		
			
				|  |  | +import linetablecard from '@/views/vuetree/linetablecard.vue'
 | 
	
		
			
				|  |  |  // import func from 'vue-temp/vue-editor-bridge.js';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const dark = ref(false)
 | 
	
	
		
			
				|  | @@ -805,6 +867,7 @@ let Xfoilyouhuatable = ref([
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let checkAll = ref(false);
 | 
	
		
			
				|  |  |  let isIndeterminate = ref(false);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  const dataTables = {
 | 
	
		
			
				|  |  |    '1': youhuaFFDtable,
 | 
	
		
			
				|  |  |    '2': youhuaCSTtable,
 | 
	
	
		
			
				|  | @@ -841,7 +904,20 @@ const confirmselection=()=>{
 | 
	
		
			
				|  |  |    console.log('seledge:',seledge.value);
 | 
	
		
			
				|  |  |    seledge.value.label=checkedData.join('\n');
 | 
	
		
			
				|  |  |    // 保存数据流
 | 
	
		
			
				|  |  | -  dataFlowsave();
 | 
	
		
			
				|  |  | +  if(datacontent.value === '1'){
 | 
	
		
			
				|  |  | +    dataFlowsave1(ffdid.value,'2');
 | 
	
		
			
				|  |  | +  }else if(datacontent.value === '2'){
 | 
	
		
			
				|  |  | +    dataFlowsave1(cstid.value,'0');
 | 
	
		
			
				|  |  | +  }else if(datacontent.value === '7'){
 | 
	
		
			
				|  |  | +    dataFlowsave1(tacsid.value,'5');
 | 
	
		
			
				|  |  | +  }else if(datacontent.value === '5'){
 | 
	
		
			
				|  |  | +    dataFlowsave2(adid.value,'3',mfcid.value,'4');
 | 
	
		
			
				|  |  | +  }else if(datacontent.value === '6'){
 | 
	
		
			
				|  |  | +    dataFlowsave2(tacsid.value,'5',mfcid.value,'4');
 | 
	
		
			
				|  |  | +  }else{
 | 
	
		
			
				|  |  | +    dataFlowsave();
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |    dataflowshow.value = false;
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -852,6 +928,8 @@ const xfid = ref('')
 | 
	
		
			
				|  |  |  const adid = ref('')
 | 
	
		
			
				|  |  |  const mfcid = ref('')
 | 
	
		
			
				|  |  |  const tacsid = ref('')
 | 
	
		
			
				|  |  | +const ffdid = ref('')
 | 
	
		
			
				|  |  | +const cstid = ref('')
 | 
	
		
			
				|  |  |  // 监听组件xfoil返回的xfid
 | 
	
		
			
				|  |  |  const handleXfid = (xfidFromB) => {
 | 
	
		
			
				|  |  |    xfid.value = xfidFromB.value;
 | 
	
	
		
			
				|  | @@ -872,6 +950,19 @@ const handleTacsid = (tacsidFromB) => {
 | 
	
		
			
				|  |  |    noid.value.data.tacsid = tacsid.value;
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +const handleFfdid = (ffdidFromB) => {
 | 
	
		
			
				|  |  | +  // console.log('ffdidFromB:',ffdidFromB.value);
 | 
	
		
			
				|  |  | +  ffdid.value = ffdidFromB.value;
 | 
	
		
			
				|  |  | +  noid.value.data.ffdid = ffdid.value;
 | 
	
		
			
				|  |  | +  // console.log('noid.value.data.ffdid:',noid.value.data.ffdid);
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const handleCstid = (cstidFromB) => {
 | 
	
		
			
				|  |  | +  cstid.value = cstidFromB.value;
 | 
	
		
			
				|  |  | +  noid.value.data.cstid = cstid.value;
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let datacontent = ref('')
 | 
	
		
			
				|  |  |  // 判定是哪种线段
 | 
	
	
		
			
				|  | @@ -891,10 +982,21 @@ function onEdgeDoubleClick(e) {
 | 
	
		
			
				|  |  |    let youhualist = ['optimizer','optimizer3','optimizer1','optimizer2'];
 | 
	
		
			
				|  |  |    if( youhualist.includes(qidian) && zhongdian ==='FFD' ){
 | 
	
		
			
				|  |  |      datacontent.value = '1';
 | 
	
		
			
				|  |  | -    dataflowshow.value = true;
 | 
	
		
			
				|  |  | +    ffdid.value = e.edge.targetNode.data.ffdid;
 | 
	
		
			
				|  |  | +    if(ffdid.value) {
 | 
	
		
			
				|  |  | +      dataflowshow.value = true;
 | 
	
		
			
				|  |  | +    }else{
 | 
	
		
			
				|  |  | +      ElMessage.error('FFD未初始化!')
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    }else if( youhualist.includes(qidian) && zhongdian ==='CST') {
 | 
	
		
			
				|  |  |      datacontent.value = '2';
 | 
	
		
			
				|  |  | -    dataflowshow.value = true;
 | 
	
		
			
				|  |  | +    cstid.value = e.edge.targetNode.data.cstid;
 | 
	
		
			
				|  |  | +    if(cstid.value) {
 | 
	
		
			
				|  |  | +      dataflowshow.value = true;
 | 
	
		
			
				|  |  | +    }else{
 | 
	
		
			
				|  |  | +      ElMessage.error('CST未初始化!')
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // dataflowshow.value = true;
 | 
	
		
			
				|  |  |    }else if( qidian === 'ADflow' && youhualist.includes(zhongdian) ) {
 | 
	
		
			
				|  |  |      datacontent.value = '3';
 | 
	
		
			
				|  |  |      // emitter.emit('requestGetadid',pid.value);
 | 
	
	
		
			
				|  | @@ -920,24 +1022,30 @@ function onEdgeDoubleClick(e) {
 | 
	
		
			
				|  |  |    }else if ( qidian === 'ADflow' && zhongdian ==='MathFunc' ) {
 | 
	
		
			
				|  |  |      datacontent.value = '5';
 | 
	
		
			
				|  |  |      adid.value = e.edge.sourceNode.data.adid;
 | 
	
		
			
				|  |  | -    if(adid.value) {
 | 
	
		
			
				|  |  | +    if(adid.value&&mfcid.value) {
 | 
	
		
			
				|  |  |        querydataFlow(adid);
 | 
	
		
			
				|  |  |        dataflowshow.value = true;
 | 
	
		
			
				|  |  |      }else{
 | 
	
		
			
				|  |  | -      ElMessage.error('ADflow未初始化!')
 | 
	
		
			
				|  |  | +      ElMessage.error('ADflow或MathFunc未初始化!')
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }else if ( qidian === 'TACS' && zhongdian ==='MathFunc' ) {
 | 
	
		
			
				|  |  |      datacontent.value = '6';
 | 
	
		
			
				|  |  |      tacsid.value = e.edge.sourceNode.data.tacsid;
 | 
	
		
			
				|  |  | -    if(tacsid.value) {
 | 
	
		
			
				|  |  | +    if(tacsid.value&&mfcid.value) {
 | 
	
		
			
				|  |  |        querydataFlow(tacsid);
 | 
	
		
			
				|  |  |        dataflowshow.value = true;
 | 
	
		
			
				|  |  |      }else{
 | 
	
		
			
				|  |  | -      ElMessage.error('TACS未初始化!')
 | 
	
		
			
				|  |  | +      ElMessage.error('TACS或MathFunc未初始化!')
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }else if( youhualist.includes(qidian) && zhongdian ==='TACS') {
 | 
	
		
			
				|  |  |      datacontent.value = '7';
 | 
	
		
			
				|  |  | -    dataflowshow.value = true;
 | 
	
		
			
				|  |  | +    tacsid.value = e.edge.targetNode.data.tacsid;
 | 
	
		
			
				|  |  | +    if(tacsid.value) {
 | 
	
		
			
				|  |  | +      dataflowshow.value = true;
 | 
	
		
			
				|  |  | +    }else{
 | 
	
		
			
				|  |  | +      ElMessage.error('TACS未初始化!')
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // dataflowshow.value = true;
 | 
	
		
			
				|  |  |    }else if( qidian ==='MathFunc' && youhualist.includes(zhongdian)) {
 | 
	
		
			
				|  |  |      datacontent.value = '8';
 | 
	
		
			
				|  |  |      mfcid.value = e.edge.sourceNode.data.mfcid;
 | 
	
	
		
			
				|  | @@ -989,16 +1097,13 @@ const querydataFlow = (comid) => {
 | 
	
		
			
				|  |  |    })
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// 求解器到优化器的数据流保存
 | 
	
		
			
				|  |  |  const dataFlowsave = () => {
 | 
	
		
			
				|  |  |    let stringArray = '';
 | 
	
		
			
				|  |  |    if(datacontent.value === '3'){
 | 
	
		
			
				|  |  |      stringArray = convertToStringArray([],ADflowyouhuatable.value);
 | 
	
		
			
				|  |  |    }else if(datacontent.value === '4'){
 | 
	
		
			
				|  |  |      stringArray = convertToStringArray([],Xfoilyouhuatable.value);
 | 
	
		
			
				|  |  | -  }else if(datacontent.value === '5'){
 | 
	
		
			
				|  |  | -    stringArray = convertToStringArray([],ADflowMathfunctable.value);
 | 
	
		
			
				|  |  | -  }else if(datacontent.value === '6'){
 | 
	
		
			
				|  |  | -    stringArray = convertToStringArray([],TacsMathFunctable.value);
 | 
	
		
			
				|  |  |    }else if(datacontent.value === '8'){
 | 
	
		
			
				|  |  |      stringArray = convertToStringArray([],MathFuncyouhuatable.value);
 | 
	
		
			
				|  |  |    }else{
 | 
	
	
		
			
				|  | @@ -1020,7 +1125,7 @@ const dataFlowsave = () => {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const convertToStringArray = (result, Data) => {
 | 
	
		
			
				|  |  | -  console.log('Data:', Data);
 | 
	
		
			
				|  |  | +  // console.log('Data:', Data);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // 安全检查 Data,确保它是一个数组
 | 
	
		
			
				|  |  |    if (!Array.isArray(Data)) {
 | 
	
	
		
			
				|  | @@ -1029,7 +1134,7 @@ const convertToStringArray = (result, Data) => {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    result = Data.map(row => {
 | 
	
		
			
				|  |  | -    // 获取每一行的 `code`, `name`, `value` 和 `flag`
 | 
	
		
			
				|  |  | +    // 获取每一行的 `paramid`, `steamflag`, `steamtype`
 | 
	
		
			
				|  |  |      const paramid = row.paramid ?? ' ';
 | 
	
		
			
				|  |  |      const steamflag = row.steamflag ?? '';
 | 
	
		
			
				|  |  |      const steamtype = row.steamtype ?? ' ';
 | 
	
	
		
			
				|  | @@ -1041,6 +1146,74 @@ const convertToStringArray = (result, Data) => {
 | 
	
		
			
				|  |  |    return result;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// ffd、cst、tacs  等优化器到求解器的数据流保存
 | 
	
		
			
				|  |  | +const dataFlowsave1 = (comid,comtype) => {
 | 
	
		
			
				|  |  | +  const params = {
 | 
	
		
			
				|  |  | +    transCode: "MDO0073",
 | 
	
		
			
				|  |  | +    comid: comid,
 | 
	
		
			
				|  |  | +    comtype: comtype,
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  | +  request(params).then((res) => {
 | 
	
		
			
				|  |  | +    ElMessage({
 | 
	
		
			
				|  |  | +        message: '数据流保存成功',
 | 
	
		
			
				|  |  | +        type: 'success',
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  .catch((err) => {
 | 
	
		
			
				|  |  | +      ElMessage.error('数据流保存失败')
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 求解器之间数据流保存
 | 
	
		
			
				|  |  | +const dataFlowsave2 = (fcomid,fcomtype,tcomid,tcomtype) => {
 | 
	
		
			
				|  |  | +  let stringArray = '';
 | 
	
		
			
				|  |  | +  if(datacontent.value === '5'){
 | 
	
		
			
				|  |  | +    stringArray = convertToStringArray2([],ADflowMathfunctable.value);
 | 
	
		
			
				|  |  | +  }else if(datacontent.value === '6'){
 | 
	
		
			
				|  |  | +    stringArray = convertToStringArray2([],TacsMathFunctable.value);
 | 
	
		
			
				|  |  | +  }else{
 | 
	
		
			
				|  |  | +    return;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  const params = {
 | 
	
		
			
				|  |  | +    transCode: "MDO0074",
 | 
	
		
			
				|  |  | +    fcomid: fcomid,
 | 
	
		
			
				|  |  | +    fcomtype: fcomtype,
 | 
	
		
			
				|  |  | +    paramstr: stringArray,
 | 
	
		
			
				|  |  | +    tcomid: tcomid,
 | 
	
		
			
				|  |  | +    tcomtype: tcomtype,
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  | +  request(params).then((res) => {
 | 
	
		
			
				|  |  | +    ElMessage({
 | 
	
		
			
				|  |  | +        message: '数据流保存成功',
 | 
	
		
			
				|  |  | +        type: 'success',
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  .catch((err) => {
 | 
	
		
			
				|  |  | +      ElMessage.error('数据流保存失败')
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const convertToStringArray2 = (result, Data) => {
 | 
	
		
			
				|  |  | +  // console.log('Data:', Data);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 安全检查 Data,确保它是一个数组
 | 
	
		
			
				|  |  | +  if (!Array.isArray(Data)) {
 | 
	
		
			
				|  |  | +    console.error('Data should be an array');
 | 
	
		
			
				|  |  | +    return result; // 返回原 result 或者根据需要返回其他默认值
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  result = Data.map(row => {
 | 
	
		
			
				|  |  | +    // 获取每一行的 `paramid`, `steamflag`
 | 
	
		
			
				|  |  | +    const paramid = row.paramid ?? ' ';
 | 
	
		
			
				|  |  | +    const steamflag = row.steamflag ?? '';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // 将字段连接为一个以逗号分隔的字符串
 | 
	
		
			
				|  |  | +    return `${paramid},${steamflag}`;
 | 
	
		
			
				|  |  | +  }).join(';');  // 每行之间用分号分隔
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return result;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // 右键更改名字
 | 
	
		
			
				|  |  |  // const onContextMenu = (e) => {
 | 
	
		
			
				|  |  |  //       e.preventDefault();  // 阻止浏览器默认的右键菜单
 | 
	
	
		
			
				|  | @@ -1407,6 +1580,8 @@ onMounted(() => {
 | 
	
		
			
				|  |  |    emitter.on("adidFromadflow", handleAdid);
 | 
	
		
			
				|  |  |    emitter.on("mfcidFromMathFunc", handleMfcid);
 | 
	
		
			
				|  |  |    emitter.on("tacsidFromTACS", handleTacsid);
 | 
	
		
			
				|  |  | +  emitter.on("ffdidFromFfd", handleFfdid);
 | 
	
		
			
				|  |  | +  emitter.on("cstidFromCst", handleCstid);
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const cleanEdgeselect = () => {
 | 
	
	
		
			
				|  | @@ -1438,7 +1613,8 @@ onUnmounted(() => {
 | 
	
		
			
				|  |  |    emitter.off("adidFromadflow", handleAdid);
 | 
	
		
			
				|  |  |    emitter.off("mfcidFromMathFunc", handleMfcid);
 | 
	
		
			
				|  |  |    emitter.off("tacsidFromTACS", handleTacsid);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +  emitter.off("ffdidFromFfd", handleFfdid);
 | 
	
		
			
				|  |  | +  emitter.off("cstidFromCst", handleCstid);
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 |