|
@@ -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);
|
|
|
});
|
|
|
|
|
|
|