|
@@ -0,0 +1,1923 @@
|
|
|
+<template>
|
|
|
+<div class="leading fem">
|
|
|
+ <div class="scal">
|
|
|
+ <div class="toolbar-part-detail lbg_color1 ">
|
|
|
+ <!-- 工具栏 -->
|
|
|
+ <!-- <transformtool ref="transform" :servertype="servertype" :projectId='project.projectId' :wstep='wstep' :bStep='bStep' :vStep='vStep'></transformtool> -->
|
|
|
+ <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
|
|
|
+
|
|
|
+ <el-tab-pane label="几何建模" name="one"><geometry></geometry></el-tab-pane>
|
|
|
+ <el-tab-pane label="网格划分" name="twos"> <meshindex></meshindex></el-tab-pane>
|
|
|
+ <!-- 集合定义 -->
|
|
|
+ <el-tab-pane label="集合定义" name="two">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(itemcj,index) in jihlist" :key="'two-'+ index" :class="{activeOrange:active=='two-'+ index}" @click="clickgeometry($event,index,'two-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="itemcj.titlie" placement="bottom">
|
|
|
+ <el-image :src="itemcj.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <!-- 属性设置 -->
|
|
|
+ <el-tab-pane label="属性设置" name="three">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(item,index) in shxlist" :key="'three-'+ index" :class="{activeOrange:active=='three-'+ index}" @click="clickgeometry($event,index,'three-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <!-- 载荷边界 -->
|
|
|
+ <el-tab-pane label="载荷边界" name="four">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(item,index) in zhlist" :key="'four-'+ index" :class="{activeOrange:active=='four-'+ index}" @click="clickgeometry($event,index,'four-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in zhlist2" :key="'four1-'+ index" :class="{activeOrange:active=='four1-'+ index}" @click="clickgeometry($event,index,'four1-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in zhlist3" :key="'four2-'+ index" :class="{activeOrange:active=='four2-'+ index}" @click="clickgeometry($event,index,'four2-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in zhlist4" :key="'four3-'+ index" :class="{activeOrange:active=='four3-'+ index}" @click="clickgeometry($event,index,'four3-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <!-- 求解控制 -->
|
|
|
+ <el-tab-pane label="求解控制" name="five">
|
|
|
+ <div class="imgzong" v-if="femnum=='FEMLab(结构力学)'">
|
|
|
+ <div class="item1" v-for="(item,index) in fexkz" :key="'five-'+ index" :class="{activeOrange:active=='five-'+ index}" @click="clickgeometry($event,index,'five-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div v-if="bxval=='0'">
|
|
|
+ <div class="item1" v-for="(item,index) in fexkz2" :key="'five2-'+ index" :class="{activeOrange:active=='five2-'+ index}" @click="clickgeometry($event,index,'five2-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="bxval=='1'">
|
|
|
+ <div class="item1" v-for="(item,index) in fexkz3" :key="'five3-'+ index" :class="{activeOrange:active=='five3-'+ index}" @click="clickgeometry($event,index,'five3-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="bxval=='2'">
|
|
|
+ <div class="item1" v-for="(item,index) in fexkz4" :key="'five4-'+ index" :class="{activeOrange:active=='five4-'+ index}" @click="clickgeometry($event,index,'five4-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="bxval=='3'">
|
|
|
+ <div class="item1" v-for="(item,index) in fexkz5" :key="'five5-'+ index" :class="{activeOrange:active=='five5-'+ index}" @click="clickgeometry($event,index,'five5-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="imgzong" v-if="femnum=='FEMLab(结构力学)版本2'">
|
|
|
+ <div class="item1" v-for="(item,index) in fexkz6" :key="'five11-'+ index" :class="{activeOrange:active=='five11-'+ index}" @click="clickgeometry($event,index,'five11-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <el-image :src="item.icon" fit="cover" />
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="结果查看" name="six"> <result></result></el-tab-pane>
|
|
|
+ <el-tab-pane label="工具箱" name="seven"><toolindex></toolindex></el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 弹出框 创建集合-->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='two-0'"
|
|
|
+ :visible.sync="dialog.create_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="c1" fit="cover" />
|
|
|
+ <span class="text-color">创建集合</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="集合类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="jhval" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jhlist"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">点集合</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="集合名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="btnaniu">
|
|
|
+ <el-button plain class="cj">创建</el-button>
|
|
|
+ <el-button plain class="cj">清除</el-button>
|
|
|
+ <el-button plain class="cj">编辑</el-button>
|
|
|
+ <el-button plain class="cj">保存</el-button>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="集合列表" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="jhval2" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jhlist2"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.create_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.create_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 单元属性-->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='three-0'"
|
|
|
+ :visible.sync="dialog.attribute_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx" fit="cover" />
|
|
|
+ <span class="text-color">单元属性</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="单元类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="jhval3" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jhlist3"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="单元阶次" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="jhval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jhlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.attribute_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.attribute_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 材料属性 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='three-1'"
|
|
|
+ :visible.sync="dialog.materials_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx2" fit="cover" />
|
|
|
+ <span class="text-color">材料属性</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="密度" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-checkbox v-model="checked">温度相关</el-checkbox>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">弹性</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="弹性模量" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="泊松比" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">塑性</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="屈服应力" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="泊松比" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">热</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="热到率" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="比热" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="热扩散系数" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="零温" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.materials_visiable= false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.materials_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 截面属性-->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='three-2'"
|
|
|
+ :visible.sync="dialog.cross_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx3" fit="cover" />
|
|
|
+ <span class="text-color">截面属性</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div v-if="femval!='2'">
|
|
|
+ <el-form-item label="截面名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="板壳厚度" :label-width="formLabelWidth2" v-if="femval=='1'">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="材料" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval2" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist2"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="区域" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval3" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist3"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.cross_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.cross_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 位移约束力 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four-0'"
|
|
|
+ :visible.sync="dialog.Offset_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx4" fit="cover" />
|
|
|
+ <span class="text-color">位移约束力</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.leixing" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="单元类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.Offset_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.Offset_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 集中力 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four-2'"
|
|
|
+ :visible.sync="dialog.singleforce_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx6" fit="cover" />
|
|
|
+ <span class="text-color">集中力</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="单元类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval5" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist5"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="CF1" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="CF2" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="CF3" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.singleforce_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.singleforce_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+<!-- 温度约束 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four-4'"
|
|
|
+ :visible.sync="dialog.jdtemp_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx8" fit="cover" />
|
|
|
+ <span class="text-color">温度约束</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="区域" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="温度值" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.jdtemp_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.jdtemp_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+<!-- 单元类压力 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four1-2'"
|
|
|
+ :visible.sync="dialog.dybar_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx11" fit="cover" />
|
|
|
+ <span class="text-color">压力</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="区域" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="载荷值" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.dybar_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.dybar_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+<!-- 单元类重力 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four1-5'"
|
|
|
+ :visible.sync="dialog.dygravity_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx14" fit="cover" />
|
|
|
+ <span class="text-color">重力</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="区域" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="重力加速度" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="X向分量" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="Y向分量" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="Z向分量" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.dygravity_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.dygravity_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 初始条件的温度 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four2-1'"
|
|
|
+ :visible.sync="dialog.cstjtemp_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx8" fit="cover" />
|
|
|
+ <span class="text-color">温度</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="区域" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="温度值" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.cstjtemp_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.cstjtemp_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 初始条件——速度 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four2-2'"
|
|
|
+ :visible.sync="dialog.cstjspeed_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx17" fit="cover" />
|
|
|
+ <span class="text-color">速度</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="区域" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="速度值" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="X方向" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="Y方向" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="Z方向" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.cstjspeed_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.cstjspeed_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 接触属性 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four3-1'"
|
|
|
+ :visible.sync="dialog.properties_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx22" fit="cover" />
|
|
|
+ <span class="text-color">接触属性</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="表面行为" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.xingwei" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="摩擦系数" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.xishu" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.properties_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.properties_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 接触对 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='four3-2'"
|
|
|
+ :visible.sync="dialog.contactpair_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx23" fit="cover" />
|
|
|
+ <span class="text-color">接触对</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="表面相互作用" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval11" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist11"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval12" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist12"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="从面" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="主面" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="femval4" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in femlist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="接触调整" :label-width="formLabelWidth2">
|
|
|
+ <el-radio-group v-model="form.radio">
|
|
|
+ <el-radio :label="0">是</el-radio>
|
|
|
+ <el-radio :label="1">否</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.contactpair_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.contactpair_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 求解控制 -->
|
|
|
+ <!-- 分析类型 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five-0'"
|
|
|
+ :visible.sync="dialog.cae_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx2" fit="cover" />
|
|
|
+ <span class="text-color">分析类型</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="分析类型" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="bxval" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in bxlist"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.cae_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.cae_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 并行分析 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five-1'"
|
|
|
+ :visible.sync="dialog.parallel_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx10" fit="cover" />
|
|
|
+ <span class="text-color">并行分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="并行分析" :label-width="formLabelWidth2">
|
|
|
+ <el-select @change="changest" v-model="bxval1" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in bxlist1"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.parallel_visiable = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.parallel_visiable = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 静力分析 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five2-0'"
|
|
|
+ :visible.sync="dialog.statical_analysis"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx24" fit="cover" />
|
|
|
+ <span class="text-color">静力分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="算法控制" :label-width="formLabelWidth5">
|
|
|
+ <el-select @change="changest" v-model="parameterObj.solver.value" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jlialist1"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="非线性开关" :label-width="formLabelWidth5">
|
|
|
+ <el-radio-group v-model="parameterObj.nlgeom.value">
|
|
|
+ <el-radio label="0">开</el-radio>
|
|
|
+ <el-radio label="1">关</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">输出控制</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-checkbox v-model="parameterObj.dump_stiff.value" true-label="true" false-label="false">刚度矩阵</el-checkbox>
|
|
|
+ <el-checkbox v-model="parameterObj.strain_o.value" true-label="true" false-label="false">节点应变</el-checkbox>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.statical_analysis = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="femRun(); dialog.statical_analysis = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 模态分析 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five3-0'"
|
|
|
+ :visible.sync="dialog.model_analysis"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx25" fit="cover" />
|
|
|
+ <span class="text-color">模态分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="特征值求解方法" :label-width="formLabelWidth6">
|
|
|
+ <el-select @change="changest" v-model="jliaval2" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jlialist2"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="特征值个数" :label-width="formLabelWidth6">
|
|
|
+ <el-input v-model="parameterObj.num_eigv.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="质量耦合开关" :label-width="formLabelWidth6">
|
|
|
+ <el-radio-group v-model="parameterObj.coupled.value">
|
|
|
+ <el-radio label="0">开</el-radio>
|
|
|
+ <el-radio label="1">关</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">输出控制</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-checkbox v-model="parameterObj.dump_stiff.value" true-label="true" false-label="false">刚度矩阵</el-checkbox>
|
|
|
+ <el-checkbox v-model="parameterObj.dump_mass.value" true-label="true" false-label="false" >节点应变</el-checkbox>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.model_analysis = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="femparam(); dialog.model_analysis = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 传热分析 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five4-0'"
|
|
|
+ :visible.sync="dialog.heat_analysis"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx26" fit="cover" />
|
|
|
+ <span class="text-color">传热分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.heat_analysis = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.heat_analysis = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 瞬态响应分析 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five5-0'"
|
|
|
+ :visible.sync="dialog.transient_analysis"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx27" fit="cover" />
|
|
|
+ <span class="text-color">瞬态响应分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="求解方法" :label-width="formLabelWidth5">
|
|
|
+ <el-select @change="changest" v-model="jliaval3" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jlialist3"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="输入δβN" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="parameterObj.betad.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+<el-form-item label="输入αN" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="parameterObj.alphad.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">分析步控制</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="总时间" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="parameterObj.num_steps.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="时间步增量" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="parameterObj.dt_str.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="写出频率" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="parameterObj.freq.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="写出格式" :label-width="formLabelWidth5">
|
|
|
+ <el-select @change="changest" v-model="parameterObj.sort.value" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in jlialist4"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">输出控制</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="结果文件名称" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="parameterObj.result_file.value" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-checkbox v-model="parameterObj.dump_stiff.value" true-label="true" false-label="false">刚度矩阵</el-checkbox>
|
|
|
+ <el-checkbox v-model="parameterObj.strain_o.value" true-label="true" false-label="false">节点应变</el-checkbox>
|
|
|
+ <el-checkbox v-model="parameterObj.dump_mass.value" true-label="true" false-label="false">质量矩阵</el-checkbox>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.transient_analysis = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="femparam();dialog.transient_analysis = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 创建分析 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='five11-0'"
|
|
|
+ :visible.sync="dialog.create_analysis"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="dialog"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="shx28" fit="cover" />
|
|
|
+ <span class="text-color">创建分析</span>
|
|
|
+ </div>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="分析名称" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="非线性开关" :label-width="formLabelWidth5">
|
|
|
+ <el-radio-group v-model="form.radio">
|
|
|
+ <el-radio :label="0">开</el-radio>
|
|
|
+ <el-radio :label="1">关</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="分析类型" :label-width="formLabelWidth5">
|
|
|
+ <el-select @change="changest" v-model="cjaval" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in cjalist"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div v-if="cjaval=='0'" >
|
|
|
+ <el-form-item label="增量步" :label-width="formLabelWidth5">
|
|
|
+ <el-select @change="changest" v-model="cjaval2" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in cjalist2"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div v-if="cjaval2=='1'||cjaval2=='2'">
|
|
|
+ <el-form-item label="时间周期" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="初始时间增量" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div v-if="cjaval2=='1'">
|
|
|
+ <el-form-item label="最小时间增量" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最大时间增量" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-if="cjaval=='1'">
|
|
|
+ <el-form-item label="特征数值" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-checkbox v-model="checked">频率输出</el-checkbox>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="显示开关" :label-width="formLabelWidth5" v-if="cjaval=='5'">
|
|
|
+ <el-radio-group v-model="form.radio">
|
|
|
+ <el-radio :label="0">开</el-radio>
|
|
|
+ <el-radio :label="1">关</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="Steady State" :label-width="formLabelWidth5" v-if="cjaval=='6'">
|
|
|
+ <el-radio-group v-model="form.radio">
|
|
|
+ <el-radio :label="0">开</el-radio>
|
|
|
+ <el-radio :label="1">关</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <div v-if="cjaval=='5'||cjaval=='6'">
|
|
|
+ <el-form-item label="初始时间增量" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="时间周期" :label-width="formLabelWidth5">
|
|
|
+ <el-input v-model="form.name" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer ">
|
|
|
+ <el-button type="info" @click="dialog.create_analysis = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.create_analysis = false"
|
|
|
+ >确定</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import { request, uploadFile } from "@/utils/request";
|
|
|
+import { Message, MessageBox } from "element-ui";
|
|
|
+import geometry from '../geometry/index.vue'
|
|
|
+import meshindex from '../meshindex/index.vue'
|
|
|
+import result from '../result/index.vue'
|
|
|
+import toolindex from '../tool/index.vue'
|
|
|
+import c1 from '@/assets/icon/u9667.png'
|
|
|
+import shx from '@/assets/icon/u9689.png'
|
|
|
+import shx2 from '@/assets/icon/u9690.png'
|
|
|
+import shx3 from '@/assets/icon/u9694.png'
|
|
|
+
|
|
|
+import shx4 from '@/assets/icon/u3085.png'
|
|
|
+import shx5 from '@/assets/icon/u9840.png'
|
|
|
+import shx6 from '@/assets/icon/u9811.png'
|
|
|
+import shx7 from '@/assets/icon/u9847.png'
|
|
|
+import shx8 from '@/assets/icon/u9843.png'
|
|
|
+
|
|
|
+import shx9 from '@/assets/icon/u9838.png'
|
|
|
+import shx10 from '@/assets/icon/u9820.png'
|
|
|
+import shx11 from '@/assets/icon/u9846.png'
|
|
|
+import shx12 from '@/assets/icon/u9848.png'
|
|
|
+import shx13 from '@/assets/icon/u9843.png'
|
|
|
+import shx14 from '@/assets/icon/u9921.png'
|
|
|
+
|
|
|
+import shx15 from '@/assets/icon/u9838.png'
|
|
|
+import shx16 from '@/assets/icon/u9843.png'
|
|
|
+import shx17 from '@/assets/icon/u9840.png'
|
|
|
+import shx19 from '@/assets/icon/u9849.png'
|
|
|
+import shx20 from '@/assets/icon/u9842.png'
|
|
|
+
|
|
|
+import shx21 from '@/assets/icon/u9850.png'
|
|
|
+import shx22 from '@/assets/icon/u9852.png'
|
|
|
+import shx23 from '@/assets/icon/u9851.png'
|
|
|
+import shx24 from '@/assets/icon/u10014.png'
|
|
|
+import shx25 from '@/assets/icon/u10040.png'
|
|
|
+import shx26 from '@/assets/icon/u100682.png'
|
|
|
+import shx27 from '@/assets/icon/u10082.png'
|
|
|
+import shx28 from '@/assets/icon/u19971.png'
|
|
|
+
|
|
|
+
|
|
|
+export default {
|
|
|
+ components:{geometry,meshindex,result,toolindex},
|
|
|
+ props:{
|
|
|
+ femnum:String,
|
|
|
+ Logs:String,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ checked:false,
|
|
|
+ c1,shx,shx2,shx3,
|
|
|
+ shx4,
|
|
|
+ shx5,
|
|
|
+ shx6,
|
|
|
+ shx7,
|
|
|
+ shx8,
|
|
|
+ shx9,
|
|
|
+ shx10,
|
|
|
+ shx11,
|
|
|
+ shx12,
|
|
|
+ shx13,
|
|
|
+ shx14,
|
|
|
+ shx15,
|
|
|
+ shx16,
|
|
|
+ shx17,
|
|
|
+ shx19,
|
|
|
+ shx20,
|
|
|
+ shx21,
|
|
|
+ shx22,
|
|
|
+ shx23,
|
|
|
+ shx24,
|
|
|
+ shx25,
|
|
|
+ shx26,
|
|
|
+ shx27,
|
|
|
+ shx28,
|
|
|
+ activeName: 'one',
|
|
|
+ active:'',
|
|
|
+ styX:{
|
|
|
+ left:''
|
|
|
+ },
|
|
|
+ fempid:'',
|
|
|
+ project: {
|
|
|
+ projectId: "",
|
|
|
+ lesseeId:'',
|
|
|
+
|
|
|
+ },
|
|
|
+ femsolverConfigid:'',
|
|
|
+ parameterObj: {
|
|
|
+ alphad: {key: 'alphad', order: '2', value: '0.0'},
|
|
|
+ bet_newmark: {key: 'bet_newmark', order: '2', value: null},
|
|
|
+ betad: {key: 'betad', order: '2', value: ''},
|
|
|
+ coupled: {key: 'coupled', order: '1', value: '0'},
|
|
|
+ dt_str: {key: 'dt_str', order: '2', value: '0.0'},
|
|
|
+ dump_mass: {key: 'dump_mass', order: '1', value: 'true'},
|
|
|
+ dump_stiff: {key: 'dump_stiff', order: '1', value: 'true'},
|
|
|
+ eigenv: {key: 'eigenv', order: '3', value: 'false'},
|
|
|
+ eigv_method: {key: 'eigv_method', order: '1', value: null},
|
|
|
+ f_static: {key: 'static', order: '3', value: 'false'},
|
|
|
+ f_transient: {key: 'transient', order: '1', value: ''},
|
|
|
+ freq: {key: 'freq', order: '1', value: ''},
|
|
|
+ gam_newmark: {key: 'gam_newmark', order: '2', value: null},
|
|
|
+ mesh_inp: {key: 'mesh_inp', order: '3', value: null},
|
|
|
+ nlgeom: {key: 'nlgeom', order: '1', value: ''},
|
|
|
+ num_eigv: {key: 'num_eigv', order: '1', value: null},
|
|
|
+ num_steps: {key: 'num_steps', order: '1', value: ''},
|
|
|
+ result_file: {key: 'result_file', order: '3', value: null},
|
|
|
+ sid: {key: 'SID', order: '1', value: ''},
|
|
|
+ solver: {key: 'solver', order: '1', value: ''},
|
|
|
+ sort: {key: 'sort', order: '1', value: ''},
|
|
|
+ strain_o: {key: 'strain_o', order: '1', value: 'false'},
|
|
|
+ // solution: {
|
|
|
+ // f_static: "true",
|
|
|
+ // solver: "",
|
|
|
+ // eigenv: "false",
|
|
|
+ // num_eigv: "",
|
|
|
+ // nlgeom: "",
|
|
|
+ // eigv_method: "",
|
|
|
+ // f_transient: "",
|
|
|
+ // alphad: "",
|
|
|
+ // betad: "",
|
|
|
+ // gam_newmark: "",
|
|
|
+ // bet_newmark: "",
|
|
|
+ // sid: "",
|
|
|
+ // num_steps: "",
|
|
|
+ // dt_str: "",
|
|
|
+ // freq: "",
|
|
|
+ // sort: "",
|
|
|
+ // },
|
|
|
+ // static: {
|
|
|
+ // dump_stiff: false,
|
|
|
+ // strain_o: false,
|
|
|
+ // },
|
|
|
+ // modes: {
|
|
|
+ // coupled: "",
|
|
|
+ // dump_stiff: false,
|
|
|
+ // dump_mass: false,
|
|
|
+ // },
|
|
|
+ // transient: {
|
|
|
+ // coupled: "",
|
|
|
+ // dump_stiff: false,
|
|
|
+ // dump_mass: false,
|
|
|
+ // strain_o: false,
|
|
|
+ // },
|
|
|
+ // results: {
|
|
|
+ // loadResults: 2,
|
|
|
+ // scalar: "Displacement-magnitude",
|
|
|
+ // transiation: true,
|
|
|
+ // showElement: [],
|
|
|
+ // },
|
|
|
+ },
|
|
|
+ formLabelWidth: '60px',
|
|
|
+ formLabelWidth2:'73px',
|
|
|
+ formLabelWidth4:'37px',
|
|
|
+ formLabelWidth5:'100px',
|
|
|
+ formLabelWidth6:'120px',
|
|
|
+ formLabelWidth7:'170px',
|
|
|
+
|
|
|
+ form: {
|
|
|
+ name: '',
|
|
|
+ region: '',
|
|
|
+ date1: '',
|
|
|
+ date2: '',
|
|
|
+ delivery: false,
|
|
|
+ type: [],
|
|
|
+ resource: '',
|
|
|
+ desc: '',
|
|
|
+ leixing:'gu ding yue shu',
|
|
|
+ xishu:'0.1',
|
|
|
+ xingwei:"硬接触",
|
|
|
+ radio:'0'
|
|
|
+
|
|
|
+ },
|
|
|
+ dialog:{
|
|
|
+ create_visiable:false,
|
|
|
+ attribute_visiable:false,
|
|
|
+ materials_visiable:false,
|
|
|
+ cross_visiable:false,
|
|
|
+ Offset_visiable:false,
|
|
|
+ singleforce_visiable:false,
|
|
|
+ jdtemp_visiable:false,
|
|
|
+ dybar_visiable:false,
|
|
|
+ dygravity_visiable:false,
|
|
|
+ cstjtemp_visiable:false,
|
|
|
+ cstjspeed_visiable:false,
|
|
|
+ properties_visiable:false,
|
|
|
+ contactpair_visiable:false,
|
|
|
+ cae_visiable:false,
|
|
|
+ parallel_visiable:false,
|
|
|
+ statical_analysis:false,
|
|
|
+ model_analysis:false,
|
|
|
+ heat_analysis:false,
|
|
|
+ transient_analysis:false,
|
|
|
+ create_analysis:false,
|
|
|
+
|
|
|
+ },
|
|
|
+ jihlist:[
|
|
|
+ { icon:c1, titlie:'创建集合'},
|
|
|
+ ],
|
|
|
+ shxlist:[
|
|
|
+ { icon:shx, titlie:'单元属性'},
|
|
|
+ { icon:shx2, titlie:'材料属性'},
|
|
|
+ { icon:shx3, titlie:'截面属性'},
|
|
|
+ ],
|
|
|
+ zhlist:[
|
|
|
+ { icon:shx4, titlie:'节点类-位移约束力'},
|
|
|
+ { icon:shx5, titlie:'节点类-速度'},
|
|
|
+ { icon:shx6, titlie:'节点类-集中力'},
|
|
|
+ { icon:shx7, titlie:'节点类-加速度'},
|
|
|
+ { icon:shx8, titlie:'节点类-温度约束'},
|
|
|
+ ],
|
|
|
+ zhlist2:[
|
|
|
+ { icon:shx9, titlie:'单元类-位移'},
|
|
|
+ { icon:shx10, titlie:'单元类-惯性力'},
|
|
|
+ { icon:shx11, titlie:'单元类-压力'},
|
|
|
+ { icon:shx12, titlie:'单元类-均布力'},
|
|
|
+ { icon:shx13, titlie:'单元类-温度'},
|
|
|
+ { icon:shx14, titlie:'单元类-重力'},
|
|
|
+ ],
|
|
|
+ zhlist3:[
|
|
|
+ { icon:shx15, titlie:'初始条件-位移'},
|
|
|
+ { icon:shx16, titlie:'初始条件-温度'},
|
|
|
+ { icon:shx17, titlie:'初始条件-速度'},
|
|
|
+ { icon:shx19, titlie:'初始条件-塑性应变'},
|
|
|
+ { icon:shx20, titlie:'初始条件-应力'},
|
|
|
+ ],
|
|
|
+ zhlist4:[
|
|
|
+ { icon:shx21, titlie:'接触体-变形体'},
|
|
|
+ { icon:shx22, titlie:'接触体-接触属性'},
|
|
|
+ { icon:shx23, titlie:'接触体-接触对'},
|
|
|
+ ],
|
|
|
+ fexkz:[
|
|
|
+ { icon:shx2, titlie:'分析类型'},
|
|
|
+ { icon:shx10, titlie:'并行类型'},
|
|
|
+ ],
|
|
|
+ fexkz2:[
|
|
|
+ { icon:shx24, titlie:'静力分析'},
|
|
|
+ ],
|
|
|
+ fexkz3:[
|
|
|
+ { icon:shx25, titlie:'模态分析'},
|
|
|
+ ],
|
|
|
+ fexkz4:[
|
|
|
+ { icon:shx26, titlie:'传热分析'},
|
|
|
+ ],
|
|
|
+ fexkz5:[
|
|
|
+ { icon:shx27, titlie:'瞬态响应分析'},
|
|
|
+ ],
|
|
|
+ fexkz6:[
|
|
|
+ { icon:shx28, titlie:'创建分析'},
|
|
|
+ ],
|
|
|
+ jhlist:[
|
|
|
+ {value:'0',name:'节点集合'},
|
|
|
+ {value:'1',name:'单元集合'},
|
|
|
+ {value:'2',name:'表面集合'},
|
|
|
+ ],
|
|
|
+ jhval:'0',
|
|
|
+ jhlist2:[
|
|
|
+ {value:'0',name:'集合1'},
|
|
|
+ {value:'1',name:'集合2'},
|
|
|
+ ],
|
|
|
+ jhval2:'0',
|
|
|
+ jhlist3:[
|
|
|
+ {value:'0',name:'显示分析单元'},
|
|
|
+ {value:'1',name:'隐式分新单元'},
|
|
|
+ {value:'2',name:'传热单元'},
|
|
|
+ ],
|
|
|
+ jhval3:'0',
|
|
|
+ jhlist4:[
|
|
|
+ {value:'0',name:'一阶'},
|
|
|
+ {value:'1',name:'二阶'},
|
|
|
+ ],
|
|
|
+ jhval4:'0',
|
|
|
+ femlist:[
|
|
|
+ {value:'0',name:'实体截面'},
|
|
|
+ {value:'1',name:'板壳截面'},
|
|
|
+ {value:'2',name:'梁截面'},
|
|
|
+ ],
|
|
|
+ femval:'0',
|
|
|
+ femlist2:[
|
|
|
+ {value:'0',name:'选择已定义的材料'},
|
|
|
+
|
|
|
+ ],
|
|
|
+ femval2:'0',
|
|
|
+ femlist3:[
|
|
|
+ {value:'0',name:'选择单元几何名称'},
|
|
|
+ ],
|
|
|
+ femval3:'0',
|
|
|
+ femlist4:[
|
|
|
+ {value:'0',name:'(选择已定义的节点集合)'},
|
|
|
+ ],
|
|
|
+ femval4:'0',
|
|
|
+ femlist5:[
|
|
|
+ {value:'0',name:'(拾取节点,显示节点编号)'},
|
|
|
+ {value:'1',name:'(选择已定义的节点集合)'},
|
|
|
+ ],
|
|
|
+ femval5:'0',
|
|
|
+ femlist11:[
|
|
|
+ {value:'0',name:'(选择接触属性名称)'},
|
|
|
+ ],
|
|
|
+ femval11:'0',
|
|
|
+ femlist12:[
|
|
|
+ {value:'0',name:'(面-面)'},
|
|
|
+ {value:'1',name:'(节点-面)'},
|
|
|
+ ],
|
|
|
+ femval12:'0',
|
|
|
+ bxlist:[
|
|
|
+ {value:'0',name:'静力分析'},
|
|
|
+ {value:'1',name:'模态分析'},
|
|
|
+ {value:'2',name:'传热分析'},
|
|
|
+ {value:'3',name:'瞬态响应分析'},
|
|
|
+ ],
|
|
|
+ bxval:'0',
|
|
|
+ bxlist1:[
|
|
|
+ {value:'0',name:'串行'},
|
|
|
+ {value:'1',name:'MPI并行'},
|
|
|
+ ],
|
|
|
+ bxval1:'0',
|
|
|
+ jlialist1:[
|
|
|
+ {value:'0',name:'MUMPS直接求解法'},
|
|
|
+ {value:'1',name:'PCG迭代求解法'},
|
|
|
+ {value:'2',name:'I DI直接求解法'},
|
|
|
+ ],
|
|
|
+ jliaval1:'0',
|
|
|
+ jlialist2:[
|
|
|
+ {value:'0',name:'Inverse iteration'},
|
|
|
+ {value:'1',name:'Lanczos'},
|
|
|
+ ],
|
|
|
+ jliaval2:'0',
|
|
|
+ jlialist3:[
|
|
|
+ {value:'0',name:'Newmark'},
|
|
|
+ {value:'1',name:'HHT'},
|
|
|
+ {value:'2',name:'Direct'},
|
|
|
+ ],
|
|
|
+ jliaval3:'0',
|
|
|
+ jlialist4:[
|
|
|
+ {value:'0',name:'1'},
|
|
|
+ {value:'1',name:'2'},
|
|
|
+ ],
|
|
|
+ jliaval4:'0',
|
|
|
+ cjalist:[
|
|
|
+ {value:'0',name:'静力分析'},
|
|
|
+ {value:'1',name:'模态分析'},
|
|
|
+ {value:'2',name:'解响分析'},
|
|
|
+ {value:'3',name:'响应分析'},
|
|
|
+ {value:'4',name:'随机振动分析'},
|
|
|
+ {value:'5',name:'瞬态响应分析'},
|
|
|
+ {value:'6',name:'热传导分析'},
|
|
|
+ {value:'7',name:'热-固耦合分析'},
|
|
|
+ ],
|
|
|
+ cjaval:'0',
|
|
|
+ cjalist2:[
|
|
|
+ {value:'0',name:'默认'},
|
|
|
+ {value:'1',name:'自动'},
|
|
|
+ {value:'2',name:'直接'},
|
|
|
+
|
|
|
+ ],
|
|
|
+ cjaval2:'0'
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted(){
|
|
|
+this.init();
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ init() {
|
|
|
+ //this.project.projectId = this.pid; //获取url 参数
|
|
|
+ this.pid='342e86b234af41a0bca0b9adeef0120d'
|
|
|
+ this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
|
|
|
+ },
|
|
|
+ //数据加载参数配置obj
|
|
|
+ femchange(obj,solverConfigid){
|
|
|
+ this.parameterObj = JSON.parse(obj);//JSON.parse(obj);
|
|
|
+ console.log( this.parameterObj);
|
|
|
+ sessionStorage.setItem("res", obj);
|
|
|
+ this.femsolverConfigid=solverConfigid;
|
|
|
+ },
|
|
|
+ async femRun() {
|
|
|
+ //更新参数,求解,抓取日志
|
|
|
+ await this.femparam();
|
|
|
+ await this.femExe();
|
|
|
+ // this.getLogs();
|
|
|
+ },
|
|
|
+ //更新参数配置
|
|
|
+femparam(){
|
|
|
+ console.log(this.parameterObj)
|
|
|
+ const params = {
|
|
|
+ transCode: 'C00004',
|
|
|
+ solverConfigid:this.femsolverConfigid,
|
|
|
+ parameterObj: JSON.stringify(this.parameterObj),
|
|
|
+ }
|
|
|
+
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ Message({
|
|
|
+ type: "success",
|
|
|
+ message: "参数上传,成功",
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ })
|
|
|
+},
|
|
|
+//fem求解
|
|
|
+ async femExe() {
|
|
|
+ //求解
|
|
|
+ var _this = this;
|
|
|
+ let params = {
|
|
|
+ transCode: "C00005",
|
|
|
+ solverConfigId:this.femsolverConfigid,
|
|
|
+ };
|
|
|
+ request(params)
|
|
|
+ .then((res) => {this.getwebsocket()})
|
|
|
+ .catch((err) => {
|
|
|
+ this.runShow='hidden'
|
|
|
+ if (err.returnCode == "EB8100017") {
|
|
|
+ //资源未分配
|
|
|
+ MessageBox.confirm("你还未分配资源?", "提示", {
|
|
|
+ confirmButtonText: "分配资源",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ let errUril =
|
|
|
+ // window.location.protocol +
|
|
|
+ // "//" +
|
|
|
+ // window.location.host +
|
|
|
+ // "/" +
|
|
|
+ _this.$store.getters.proUrl +
|
|
|
+ "?projectId=" +
|
|
|
+ _this.project.projectId;
|
|
|
+ let params2 = {
|
|
|
+ transCode: "A00118",
|
|
|
+ lesseeId:_this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ request(params2)
|
|
|
+ .then((res) => {
|
|
|
+ window.location.href =
|
|
|
+ errUril + "&authCode=" + res.authCode;
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ Message({
|
|
|
+ type: "info",
|
|
|
+ message: "已取消",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //
|
|
|
+ changest(){
|
|
|
+
|
|
|
+ },
|
|
|
+ handleClick(tab, event) {
|
|
|
+ this.activecleer();
|
|
|
+ },
|
|
|
+ activecleer(){
|
|
|
+ this.active=11;
|
|
|
+ },
|
|
|
+ //模块选择
|
|
|
+ clickgeometry(e,index,key){
|
|
|
+var e=e||window.Event
|
|
|
+this.styX.left=e.clientX+'px';
|
|
|
+ this.active=key;
|
|
|
+ console.log(key)
|
|
|
+ switch(key){
|
|
|
+ case 'two-0':
|
|
|
+ this.dialog.create_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'three-0':
|
|
|
+ this.dialog.attribute_visiable =true;
|
|
|
+ break;
|
|
|
+ case 'three-1':
|
|
|
+ this.dialog.materials_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'three-2':
|
|
|
+ this.dialog.cross_visiable =true;
|
|
|
+ break;
|
|
|
+ case 'four-0':
|
|
|
+ this.dialog.Offset_visiable =true;
|
|
|
+ break;
|
|
|
+ case 'four-2':
|
|
|
+ this.dialog.singleforce_visiable =true;
|
|
|
+ break;
|
|
|
+ case 'four-4':
|
|
|
+ this.dialog.jdtemp_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'four1-2':
|
|
|
+ this.dialog.dybar_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'four1-5':
|
|
|
+ this.dialog.dygravity_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'four2-1':
|
|
|
+ this.dialog.cstjtemp_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'four2-2':
|
|
|
+ this.dialog.cstjspeed_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'four3-1':
|
|
|
+ this.dialog.properties_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'four3-2':
|
|
|
+ this.dialog.contactpair_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'five-0':
|
|
|
+ this.dialog.cae_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'five-1':
|
|
|
+ this.dialog.parallel_visiable=true;
|
|
|
+ break;
|
|
|
+ case 'five2-0':
|
|
|
+ this.dialog.statical_analysis=true;
|
|
|
+ break;
|
|
|
+ case 'five3-0':
|
|
|
+ this.dialog.model_analysis=true;
|
|
|
+ break;
|
|
|
+ case 'five4-0':
|
|
|
+ this.dialog.heat_analysis=true;
|
|
|
+ break;
|
|
|
+ case 'five5-0':
|
|
|
+ this.dialog.transient_analysis=true;
|
|
|
+ break;
|
|
|
+ case 'five11-0':
|
|
|
+ this.dialog.create_analysis=true;
|
|
|
+ break;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ //求解日志
|
|
|
+ async getLogs() {
|
|
|
+ //打印日志
|
|
|
+ var self = this;
|
|
|
+ console.log(self.pid);
|
|
|
+ function getLog() {
|
|
|
+ let params = {
|
|
|
+ transCode: "C00006",
|
|
|
+ pid:self.pid
|
|
|
+ };
|
|
|
+ console.log(params);
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(11111);
|
|
|
+ console.log(res);
|
|
|
+ console.log(22222)
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ getLog();
|
|
|
+ },
|
|
|
+
|
|
|
+ // 时间换算
|
|
|
+ timedata(d1, d2,s1){
|
|
|
+ console.log(this.nmlsteps);
|
|
|
+ var date1 = new Date(d1); //开始时间
|
|
|
+ var date2 = new Date(d2); //结束时间
|
|
|
+ var cydata=(date2.getTime() - new Date(date1).getTime())/s1*(Number(this.nmlsteps)-s1);
|
|
|
+ //var Milliseconds = date2.getTime() - new Date(date1).getTime(); //时间差的毫秒数
|
|
|
+
|
|
|
+ var Milliseconds = cydata;
|
|
|
+ //计算出相差天数
|
|
|
+ var days = Math.floor(Milliseconds / (24 * 3600 * 1000))
|
|
|
+ //计算出小时数
|
|
|
+ var leave1 = Milliseconds % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
|
|
|
+ var hours = Math.floor(leave1 / (3600 * 1000))
|
|
|
+ //计算相差分钟数
|
|
|
+ var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
|
|
|
+ var minutes = Math.floor(leave2 / (60 * 1000))
|
|
|
+ //计算相差秒数
|
|
|
+ var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
|
|
|
+
|
|
|
+ var seconds = Math.round(leave3 / 1000)
|
|
|
+ var ResultJson = {
|
|
|
+ days: {
|
|
|
+ days: days >= 0 ? days : days + 1,
|
|
|
+ hours: hours >= 0 ? hours: hours + 1,
|
|
|
+ minutes: minutes >= 0 ? minutes : minutes + 1,
|
|
|
+ seconds: seconds >= 0 ? seconds: seconds + 1
|
|
|
+ },
|
|
|
+ Milliseconds: Milliseconds
|
|
|
+ };
|
|
|
+ //console.log(ResultJson)
|
|
|
+ let year=ResultJson.days.days+'天'+ this.p(ResultJson.days.hours)+':'+ this.p(ResultJson.days.minutes)+':'+ this.p(ResultJson.days.seconds)
|
|
|
+ this.$emit('restimeyear',year);
|
|
|
+ return year;
|
|
|
+
|
|
|
+ },
|
|
|
+ p(s) {
|
|
|
+ return s < 10 ? '0' + s: s;
|
|
|
+ },
|
|
|
+ // 获取求解日志
|
|
|
+ //获取历史数据每一条
|
|
|
+ historydata(){
|
|
|
+ let params = {
|
|
|
+ transCode: "C00007",
|
|
|
+ pid: this.pid,
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+
|
|
|
+ };
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // websocket
|
|
|
+ getwebsocket() {
|
|
|
+ // 初始化weosocket
|
|
|
+ this.numlist=[];
|
|
|
+ const wsuri = "ws://192.168.0.43:8031/websocket?projectId="+this.pid;
|
|
|
+ this.websock = new WebSocket(wsuri);
|
|
|
+ this.websock.onmessage = this.websocketonmessage;
|
|
|
+ this.websock.onopen = this.websocketonopen;
|
|
|
+ this.websock.onerror = this.websocketonerror;
|
|
|
+ this.websock.onclose = this.websocketclose;
|
|
|
+
|
|
|
+ },
|
|
|
+ websocketonopen(e) {
|
|
|
+
|
|
|
+ //连接建立之后执行send方法发送数据this.newlog();
|
|
|
+ // if(this.lsolverState=='1'||this.numzhexian=='1'){
|
|
|
+ this.getLogs();
|
|
|
+ this.historydata()
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ websocketonerror() {
|
|
|
+ //连接建立失败重连
|
|
|
+ this.websock.close();
|
|
|
+ },
|
|
|
+ websocketonmessage(e) {
|
|
|
+ console.log(e);
|
|
|
+ //数据接收
|
|
|
+ try{
|
|
|
+ const redata = JSON.parse(e.data);
|
|
|
+ console.log(redata);
|
|
|
+ if(typeof redata==='object'&& redata){
|
|
|
+ if(redata.type == "log"){
|
|
|
+ // this.$emit('getthislog',redata.stats+redata.value);
|
|
|
+ }
|
|
|
+ if (redata.type == "iter") {
|
|
|
+
|
|
|
+ // this.convergeDateLoad(redata.value);
|
|
|
+ //获取运行多少步了
|
|
|
+ const lines = redata.value;
|
|
|
+ var patiter = /^ iter /;
|
|
|
+ if (patiter.exec(lines) !== null) {
|
|
|
+ const onelines = kgReplace(lines.trim()).split(" ")
|
|
|
+ .map((str) => str.trim());
|
|
|
+ this.s1= onelines.slice(1,2).map((str) => Number(str));
|
|
|
+ console.log(this.s1);
|
|
|
+
|
|
|
+ }
|
|
|
+ this.timedata(redata.startTime,redata.time,this.s1[0]);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch(error){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ websocketsend(Data) {
|
|
|
+ //数据发送
|
|
|
+ this.websock.send(Data);
|
|
|
+ },
|
|
|
+ websocketclose(e) {
|
|
|
+ //关闭
|
|
|
+ Message({
|
|
|
+ type: "error",
|
|
|
+ message: "websock断开连接",
|
|
|
+ });
|
|
|
+
|
|
|
+ this.websock.close();
|
|
|
+
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+
|
|
|
+.leading .el-input__inner{
|
|
|
+height: 30px;
|
|
|
+line-height: 30px;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import '@/styles/variables.scss';
|
|
|
+@import '@/styles/mixin.scss';
|
|
|
+.btnaniu{
|
|
|
+ text-align: right;
|
|
|
+}
|
|
|
+.cj{
|
|
|
+ height: 20px;
|
|
|
+ line-height: 0px;
|
|
|
+ font-size: 12px;
|
|
|
+ padding: 10px 13px;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|