|  | @@ -20,7 +20,7 @@
 | 
	
		
			
				|  |  |      >
 | 
	
		
			
				|  |  |        <el-form label-position="left">
 | 
	
		
			
				|  |  |          <el-form-item label="网格文件:" :label-width="formLabelWidth120">
 | 
	
		
			
				|  |  | -          <el-input v-model="tacsFilename">
 | 
	
		
			
				|  |  | +          <el-input v-model="fname">
 | 
	
		
			
				|  |  |              <template #append>
 | 
	
		
			
				|  |  |                <fileUploads
 | 
	
		
			
				|  |  |                  :projectId="125"
 | 
	
	
		
			
				|  | @@ -47,7 +47,7 @@
 | 
	
		
			
				|  |  |      >
 | 
	
		
			
				|  |  |        <el-form-item label="分析对象名称:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |          <el-input
 | 
	
		
			
				|  |  | -          v-model="tacsvalue.objname"
 | 
	
		
			
				|  |  | +          v-model="tacsvalue.proname"
 | 
	
		
			
				|  |  |            :step="100"
 | 
	
		
			
				|  |  |            :min="0"
 | 
	
		
			
				|  |  |            :max="1000"
 | 
	
	
		
			
				|  | @@ -61,7 +61,7 @@
 | 
	
		
			
				|  |  |            </template>
 | 
	
		
			
				|  |  |            <el-form-item label="材料密度:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |              <el-input
 | 
	
		
			
				|  |  | -              v-model="tacsvalue.density"
 | 
	
		
			
				|  |  | +              v-model="tacsvalue.rho"
 | 
	
		
			
				|  |  |                :step="100"
 | 
	
		
			
				|  |  |                :min="0"
 | 
	
		
			
				|  |  |                :max="1000"
 | 
	
	
		
			
				|  | @@ -70,7 +70,7 @@
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |            <el-form-item label="杨氏模量:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |              <el-input
 | 
	
		
			
				|  |  | -              v-model="tacsvalue.ysml"
 | 
	
		
			
				|  |  | +              v-model="tacsvalue.e"
 | 
	
		
			
				|  |  |                :step="100"
 | 
	
		
			
				|  |  |                :min="0"
 | 
	
		
			
				|  |  |                :max="1000"
 | 
	
	
		
			
				|  | @@ -79,7 +79,7 @@
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |            <el-form-item label="泊松比:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |              <el-input
 | 
	
		
			
				|  |  | -              v-model="tacsvalue.ratio"
 | 
	
		
			
				|  |  | +              v-model="tacsvalue.nu"
 | 
	
		
			
				|  |  |                :step="100"
 | 
	
		
			
				|  |  |                :min="0"
 | 
	
		
			
				|  |  |                :max="1000"
 | 
	
	
		
			
				|  | @@ -88,7 +88,7 @@
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |            <el-form-item label="屈服应力:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |              <el-input
 | 
	
		
			
				|  |  | -              v-model="tacsvalue.stress"
 | 
	
		
			
				|  |  | +              v-model="tacsvalue.ys"
 | 
	
		
			
				|  |  |                :step="100"
 | 
	
		
			
				|  |  |                :min="0"
 | 
	
		
			
				|  |  |                :max="1000"
 | 
	
	
		
			
				|  | @@ -96,9 +96,9 @@
 | 
	
		
			
				|  |  |              />
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |            <el-form-item label="启用FFD参数化:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  | -            <el-radio-group v-model="tacsvalue.radio">
 | 
	
		
			
				|  |  | -              <el-radio label="1">是</el-radio>
 | 
	
		
			
				|  |  | -              <el-radio label="0">否</el-radio>
 | 
	
		
			
				|  |  | +            <el-radio-group v-model="tacsvalue.useffd">
 | 
	
		
			
				|  |  | +              <el-radio :label='1'>是</el-radio>
 | 
	
		
			
				|  |  | +              <el-radio :label='0'>否</el-radio>
 | 
	
		
			
				|  |  |              </el-radio-group>
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |          </el-collapse-item>
 | 
	
	
		
			
				|  | @@ -108,7 +108,7 @@
 | 
	
		
			
				|  |  |            </template>
 | 
	
		
			
				|  |  |            <el-form-item label="绝对收敛参数:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |              <el-input
 | 
	
		
			
				|  |  | -              v-model="tacsvalue.absolute "
 | 
	
		
			
				|  |  | +              v-model="tacsvalue.l2convergence "
 | 
	
		
			
				|  |  |                :step="100"
 | 
	
		
			
				|  |  |                :min="0"
 | 
	
		
			
				|  |  |                :max="1000"
 | 
	
	
		
			
				|  | @@ -117,7 +117,7 @@
 | 
	
		
			
				|  |  |            </el-form-item>
 | 
	
		
			
				|  |  |            <el-form-item label="相对收敛参数:" :label-width="formLabelWidth1">
 | 
	
		
			
				|  |  |              <el-input
 | 
	
		
			
				|  |  | -              v-model="tacsvalue.relative "
 | 
	
		
			
				|  |  | +              v-model="tacsvalue.l2convergencerel "
 | 
	
		
			
				|  |  |                :step="100"
 | 
	
		
			
				|  |  |                :min="0"
 | 
	
		
			
				|  |  |                :max="1000"
 | 
	
	
		
			
				|  | @@ -131,7 +131,7 @@
 | 
	
		
			
				|  |  |      <div v-show="currentTab2 == '1'">
 | 
	
		
			
				|  |  |        <div class="eldesign classtable" style="margin-top: 10px">
 | 
	
		
			
				|  |  |          <el-table
 | 
	
		
			
				|  |  | -          :data="TACSlailiutable"
 | 
	
		
			
				|  |  | +          :data="inParams"
 | 
	
		
			
				|  |  |            border
 | 
	
		
			
				|  |  |            style="width: 100%; "
 | 
	
		
			
				|  |  |          >
 | 
	
	
		
			
				|  | @@ -143,15 +143,15 @@
 | 
	
		
			
				|  |  |              <template v-slot:header>
 | 
	
		
			
				|  |  |                <!-- 表头显示复选框 -->
 | 
	
		
			
				|  |  |                <el-checkbox
 | 
	
		
			
				|  |  | -                :false-label="'-1'"
 | 
	
		
			
				|  |  | -                :true-label="'1'"
 | 
	
		
			
				|  |  | +                :false-label="0"
 | 
	
		
			
				|  |  | +                :true-label="1"
 | 
	
		
			
				|  |  |                  :label="false"
 | 
	
		
			
				|  |  | -                v-model="thcheckbox"
 | 
	
		
			
				|  |  | +                v-model="writesolution"
 | 
	
		
			
				|  |  |                />
 | 
	
		
			
				|  |  |              </template>
 | 
	
		
			
				|  |  | -            <el-table-column prop="data" label="厚度分布" width="100">
 | 
	
		
			
				|  |  | +            <el-table-column prop="value" label="厚度分布" width="100">
 | 
	
		
			
				|  |  |                <template #default="{ row }">
 | 
	
		
			
				|  |  | -                <el-input v-model.number="row.data" />
 | 
	
		
			
				|  |  | +                <el-input v-model.number="row.value" />
 | 
	
		
			
				|  |  |                </template>
 | 
	
		
			
				|  |  |              </el-table-column>
 | 
	
		
			
				|  |  |            </el-table-column>
 | 
	
	
		
			
				|  | @@ -165,7 +165,7 @@
 | 
	
		
			
				|  |  |      <div v-show="currentTab2 == '3'">
 | 
	
		
			
				|  |  |        <div class="eldesign classtable" style="margin-top: 10px">
 | 
	
		
			
				|  |  |          <el-table
 | 
	
		
			
				|  |  | -          :data="TACSfenxitable"
 | 
	
		
			
				|  |  | +          :data="outParams"
 | 
	
		
			
				|  |  |            border
 | 
	
		
			
				|  |  |            style="width: 100%; "
 | 
	
		
			
				|  |  |            :header-cell-class-name="headerCellClassName"
 | 
	
	
		
			
				|  | @@ -184,8 +184,8 @@
 | 
	
		
			
				|  |  |            <el-table-column prop="flag" label="启用" width="100">
 | 
	
		
			
				|  |  |              <template v-slot="scope">
 | 
	
		
			
				|  |  |                <el-checkbox
 | 
	
		
			
				|  |  | -                :false-label="'-1'"
 | 
	
		
			
				|  |  | -                :true-label="'1'"
 | 
	
		
			
				|  |  | +                :false-label="0"
 | 
	
		
			
				|  |  | +                :true-label="1"
 | 
	
		
			
				|  |  |                  :label="false"
 | 
	
		
			
				|  |  |                  v-model="scope.row.flag"
 | 
	
		
			
				|  |  |                />
 | 
	
	
		
			
				|  | @@ -203,12 +203,18 @@ import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
 | 
	
		
			
				|  |  |  import { Edit, CaretBottom } from "@element-plus/icons-vue"
 | 
	
		
			
				|  |  |  import fileUploads from '../components/fileuploads.vue'
 | 
	
		
			
				|  |  |  import cloudChart from "../threejsView/index.vue" // 云图
 | 
	
		
			
				|  |  | +import { request, uploadFile } from "@/utils/request"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let fid = ref()
 | 
	
		
			
				|  |  |  let formLabelWidth1 = ref(170)
 | 
	
		
			
				|  |  |  let formLabelWidth120 = ref(120)
 | 
	
		
			
				|  |  |  let bdfData = ref()
 | 
	
		
			
				|  |  |  let currentTab2=ref(0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +let pid = ref();
 | 
	
		
			
				|  |  | +let wid = ref();
 | 
	
		
			
				|  |  | +let tacsid = ref();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  let tabslist2= ref([
 | 
	
		
			
				|  |  |    { id: '0', name: '网格文件' },
 | 
	
		
			
				|  |  |    { id: '1', name: '结构参数' },
 | 
	
	
		
			
				|  | @@ -223,83 +229,119 @@ const tacsfileSrc = new URL('@/assets/flowimg/ffdFileSave.png', import.meta.url)
 | 
	
		
			
				|  |  |  let TACSactiveNames = ref(['1','2']);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  let tacsvalue = ref({
 | 
	
		
			
				|  |  | -  objname:'CRM',
 | 
	
		
			
				|  |  | -  density:'2780.0',
 | 
	
		
			
				|  |  | -  ysml:'73.1e9',
 | 
	
		
			
				|  |  | -  ratio:'0.33',
 | 
	
		
			
				|  |  | -  stress:'262.0e6',
 | 
	
		
			
				|  |  | -  radio:'1',
 | 
	
		
			
				|  |  | -  absolute:'1e3',
 | 
	
		
			
				|  |  | -  relative:'1e3'
 | 
	
		
			
				|  |  | +  proname:'CRM',
 | 
	
		
			
				|  |  | +  rho:'2780.0',
 | 
	
		
			
				|  |  | +  e:'73.1e9',
 | 
	
		
			
				|  |  | +  nu:'0.33',
 | 
	
		
			
				|  |  | +  ys:'262.0e6',
 | 
	
		
			
				|  |  | +  useffd: 1,
 | 
	
		
			
				|  |  | +  l2convergence:'1e3',
 | 
	
		
			
				|  |  | +  l2convergencerel:'1e3'
 | 
	
		
			
				|  |  |  })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -let thcheckbox = ref('1')
 | 
	
		
			
				|  |  | +let writesolution = ref(1);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -let tacsFilename = ref('')
 | 
	
		
			
				|  |  | +let fname = ref('')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -let TACSlailiutable=ref([
 | 
	
		
			
				|  |  | +let inParams=ref([
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.995208',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.995208',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.992144',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.992144',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.988525',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.988525',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.984251',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.984251',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.979202',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.979202',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.973236',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.973236',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.966186',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.966186',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '0.957851',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '0.957851',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | -    data: '',
 | 
	
		
			
				|  |  | +    code:'thickness',
 | 
	
		
			
				|  |  | +    name: '厚度分布',
 | 
	
		
			
				|  |  | +    value: '',
 | 
	
		
			
				|  |  | +    flag: 1,
 | 
	
		
			
				|  |  |      con: ''
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |  ])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -let TACSfenxitable=ref([
 | 
	
		
			
				|  |  | +let outParams=ref([
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | +    code:'mass',
 | 
	
		
			
				|  |  |      name: '结构质量',
 | 
	
		
			
				|  |  |      value: 13972.2123,
 | 
	
		
			
				|  |  |      flag:'1'
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | +    code:'ks_vmfailure',
 | 
	
		
			
				|  |  |      name: 'KS聚合应力',
 | 
	
		
			
				|  |  |      value: 0.3337,
 | 
	
		
			
				|  |  |      flag:'1'
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    {
 | 
	
		
			
				|  |  | +    code:'maxdeform',
 | 
	
		
			
				|  |  |      name: '最大变形',
 | 
	
		
			
				|  |  |      value: 0.0,
 | 
	
		
			
				|  |  |      flag: '1'
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  |  ])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const selectTab2=(index)=>{
 | 
	
	
		
			
				|  | @@ -319,8 +361,156 @@ const headerCellClassName = ({ column }) => {
 | 
	
		
			
				|  |  |    return '';
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +const gettacs = (id,nowid) => {
 | 
	
		
			
				|  |  | +  pid.value = id;
 | 
	
		
			
				|  |  | +  if(nowid){
 | 
	
		
			
				|  |  | +    wid.value = nowid;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  // console.log('pid-1:',pid.value)
 | 
	
		
			
				|  |  | +  const params = {
 | 
	
		
			
				|  |  | +    transCode: "MDO0066",
 | 
	
		
			
				|  |  | +    pid: pid.value,
 | 
	
		
			
				|  |  | +    wid: wid.value
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  | +  request(params).then((res) => {
 | 
	
		
			
				|  |  | +    if (res.hasOwnProperty("tacsid")) {
 | 
	
		
			
				|  |  | +      gettacsAssign(res);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  .catch((err) => {
 | 
	
		
			
				|  |  | +      console.log('TACS初始化失败err:',err)
 | 
	
		
			
				|  |  | +      ElMessage.error('TACS初始化失败')
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const gettacsAssign = (data) => {
 | 
	
		
			
				|  |  | +  // console.log('getfsiAssign-data:', data);
 | 
	
		
			
				|  |  | +  pid.value = data.pid;
 | 
	
		
			
				|  |  | +  tacsid.value = data.tacsid;
 | 
	
		
			
				|  |  | +  fid.value = data.fid;
 | 
	
		
			
				|  |  | +  fname.value = data.fname;
 | 
	
		
			
				|  |  | +  tacsvalue.value.proname = data.proname;
 | 
	
		
			
				|  |  | +  tacsvalue.value.rho = data.rho;
 | 
	
		
			
				|  |  | +  tacsvalue.value.e = data.e;
 | 
	
		
			
				|  |  | +  tacsvalue.value.nu = data.nu;
 | 
	
		
			
				|  |  | +  tacsvalue.value.ys = data.ys;
 | 
	
		
			
				|  |  | +  tacsvalue.value.useffd = data.useffd;
 | 
	
		
			
				|  |  | +  tacsvalue.value.l2convergence = data.l2convergence;
 | 
	
		
			
				|  |  | +  tacsvalue.value.l2convergencerel = data.l2convergencerel;
 | 
	
		
			
				|  |  | +  writesolution.value = data.writesolution;
 | 
	
		
			
				|  |  | +  inParams.value = parseStringToArray(data.inParams);
 | 
	
		
			
				|  |  | +  outParams.value = data.outParams;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const convertToStringArray = (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 => {
 | 
	
		
			
				|  |  | +    // 获取每一行的 `code`, `name`, `value` 和 `flag`
 | 
	
		
			
				|  |  | +    const code = row.code || ' ';
 | 
	
		
			
				|  |  | +    const name = row.name || ' ';
 | 
	
		
			
				|  |  | +    const value = (row.value === null || row.value === undefined || row.value === '') ? ' ' : row.value;
 | 
	
		
			
				|  |  | +    const flag = (row.value === null || row.flag === undefined || row.flag === '') ? ' ' : row.flag;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // 将字段连接为一个以逗号分隔的字符串
 | 
	
		
			
				|  |  | +    return `${code},${name},${value},${flag}`;
 | 
	
		
			
				|  |  | +  }).join(';');  // 每行之间用分号分隔
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return result;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// "code,name,value#value#value,flag" 格式的字符串
 | 
	
		
			
				|  |  | +const convertToStringArray1 = (result, Data) => {
 | 
	
		
			
				|  |  | +  console.log('Data:', Data);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 安全检查 Data,确保它是一个数组
 | 
	
		
			
				|  |  | +  if (!Array.isArray(Data)) {
 | 
	
		
			
				|  |  | +    console.error('Data should be an array');
 | 
	
		
			
				|  |  | +    return result; // 返回原 result 或者根据需要返回其他默认值
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (Data.length === 0) {
 | 
	
		
			
				|  |  | +    return result; // 如果数组为空,直接返回原 result
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 获取第一行的 code, name 和 writesolution
 | 
	
		
			
				|  |  | +  const code = Data[0].code || ' ';
 | 
	
		
			
				|  |  | +  const name = Data[0].name || ' ';
 | 
	
		
			
				|  |  | +  const flag = writesolution.value !== undefined && writesolution.value !== null
 | 
	
		
			
				|  |  | +  ? writesolution.value
 | 
	
		
			
				|  |  | +  : ' ';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 收集所有行的 value,用 # 拼接
 | 
	
		
			
				|  |  | +  const values = Data.map(row => {
 | 
	
		
			
				|  |  | +    return (row.value === null || row.value === undefined || row.value === '') ? ' ' : row.value;
 | 
	
		
			
				|  |  | +  }).join('#');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  // 构建最终字符串
 | 
	
		
			
				|  |  | +  result = `${code},${name},${values},${flag}`;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  return result;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// 将 "code,name,value#value#value,flag" 格式的字符串转回数组格式
 | 
	
		
			
				|  |  | +const parseStringToArray = (inParamsArray) => {
 | 
	
		
			
				|  |  | +  if (!Array.isArray(inParamsArray)) return [];
 | 
	
		
			
				|  |  | +  
 | 
	
		
			
				|  |  | +  return inParamsArray.map(item => {
 | 
	
		
			
				|  |  | +    const values = item.value.split('#').map(v => v === ' ' ? '' : v);
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +    return values.map(value => ({
 | 
	
		
			
				|  |  | +      ...item,        // 保留原对象所有属性
 | 
	
		
			
				|  |  | +      value: value,   // 覆盖为单个值
 | 
	
		
			
				|  |  | +    }));
 | 
	
		
			
				|  |  | +  }).flat(); // 将二维数组展平
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const gettacssave = (id,nowid) => {
 | 
	
		
			
				|  |  | +  if(nowid){
 | 
	
		
			
				|  |  | +    wid.value = nowid
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  pid.value = id;
 | 
	
		
			
				|  |  | +  // console.log("pid:",pid.value);
 | 
	
		
			
				|  |  | +  const params = {
 | 
	
		
			
				|  |  | +    transCode: "MDO0067",
 | 
	
		
			
				|  |  | +    pid: pid.value,
 | 
	
		
			
				|  |  | +    wid: wid.value,
 | 
	
		
			
				|  |  | +    proname: tacsvalue.value.proname,
 | 
	
		
			
				|  |  | +    rho: tacsvalue.value.rho,
 | 
	
		
			
				|  |  | +    e: tacsvalue.value.e,
 | 
	
		
			
				|  |  | +    nu: tacsvalue.value.nu,
 | 
	
		
			
				|  |  | +    ys: tacsvalue.value.ys,
 | 
	
		
			
				|  |  | +    useffd: tacsvalue.value.useffd,
 | 
	
		
			
				|  |  | +    l2convergence: tacsvalue.value.l2convergence,
 | 
	
		
			
				|  |  | +    l2convergencerel: tacsvalue.value.l2convergencerel,
 | 
	
		
			
				|  |  | +    writesolution: writesolution.value,
 | 
	
		
			
				|  |  | +    fid: fid.value,
 | 
	
		
			
				|  |  | +    fname: fname.value,
 | 
	
		
			
				|  |  | +    inParams: convertToStringArray1([],inParams.value),
 | 
	
		
			
				|  |  | +    outParams: convertToStringArray([],outParams.value)
 | 
	
		
			
				|  |  | +  };
 | 
	
		
			
				|  |  | +  request(params).then((res) => {
 | 
	
		
			
				|  |  | +    ElMessage({
 | 
	
		
			
				|  |  | +        message: '保存成功',
 | 
	
		
			
				|  |  | +        type: 'success',
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +  })
 | 
	
		
			
				|  |  | +  .catch((err) => {
 | 
	
		
			
				|  |  | +      ElMessage.error('保存失败')
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +defineExpose({ gettacs, gettacsAssign, gettacssave })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  const handleFileUploadSuccess = (data) => {
 | 
	
		
			
				|  |  | -  tacsFilename.value = data.fname
 | 
	
		
			
				|  |  | +  fname.value = data.fname
 | 
	
		
			
				|  |  |    fid.value = data.bfid
 | 
	
		
			
				|  |  |    console.log("文件上传成功,bfid:", data.bfid, "fname:", data.fname)
 | 
	
		
			
				|  |  |    bdfData.value = {
 |