|
|
@@ -1,36 +1,4507 @@
|
|
|
<template>
|
|
|
<div class="hcfdlab">
|
|
|
- <el-tabs :tab-position="tabPosition" v-model="activeName" type="card" @tab-click="handleClick">
|
|
|
- <el-tab-pane label="几何建模" name="one"><geometry></geometry></el-tab-pane>
|
|
|
- <el-tab-pane label="网格划分" name="two"> <meshindex></meshindex></el-tab-pane>
|
|
|
- <el-tab-pane label="通用设置" name="three"> 通用设置</el-tab-pane>
|
|
|
- <el-tab-pane label="物理模型" name="four">物理模型 </el-tab-pane>
|
|
|
- <el-tab-pane label="求解控制" name="five">求解控制</el-tab-pane>
|
|
|
- <el-tab-pane label="结果查看" name="six"> 结果查看 </el-tab-pane>
|
|
|
- <el-tab-pane label="工具箱" name="twelve">工具箱</el-tab-pane>
|
|
|
+ <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-tabs>
|
|
|
-</div>
|
|
|
+ <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="$t('HCFD.geneal.geneal')" name="two">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(itemcj,index) in twolist" :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="$t('HCFD.physics.physics')" name="three">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(item,index) in physicslist" :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>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in physicslist2" :key="'three2-'+ index" :class="{activeOrange:active=='three2-'+ index}" @click="clickgeometry($event,index,'three2-'+ 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 physicslist1" :key="'three1-'+ index" :class="{activeOrange:active=='three1-'+ index}" @click="clickgeometry($event,index,'three1-'+ 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="$t('HCFD.solution.solution')" name="four">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(item,index) in solutionlist" :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">
|
|
|
+ <svg class="icon" aria-hidden="true">
|
|
|
+ <use :xlink:href="`#${item.icon}`" />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in solutionlist1" :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">
|
|
|
+ <svg class="icon" aria-hidden="true">
|
|
|
+ <use :xlink:href="`#${item.icon}`" />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in solutionlist2" :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">
|
|
|
+ <svg class="icon" aria-hidden="true">
|
|
|
+ <use :xlink:href="`#${item.icon}`" />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in solutionlist3" :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">
|
|
|
+ <svg class="icon" aria-hidden="true">
|
|
|
+ <use :xlink:href="`#${item.icon}`" />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <span class="shu">|</span>
|
|
|
+ <div class="item1" v-for="(item,index) in solutionlist4" :key="'four4-'+ index" :class="{activeOrange:active=='four4-'+ index}" @click="clickgeometry($event,index,'four4-'+ index)">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="item.titlie" placement="bottom">
|
|
|
+ <svg class="icon" aria-hidden="true">
|
|
|
+ <use :xlink:href="`#${item.icon}`" />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <!-- 结果 -->
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane :label=" $t('HCFD.results.results')" name="five">
|
|
|
+ <div class="imgzong" v-if="lsolverState=='2'">
|
|
|
+ <div class="item1 " v-for="(item,index) in resultslist" :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">
|
|
|
+ <svg class="icon" aria-hidden="true">
|
|
|
+ <use :xlink:href="`#${item.icon}`" />
|
|
|
+ </svg>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <!-- 工具 -->
|
|
|
+ <el-tab-pane :label="$t('HCFD.tool.unitConversion')" name="six">
|
|
|
+ <div class="imgzong">
|
|
|
+ <div class="item1" v-for="(item,index) in unitlist " :key="'six-'+ index" :class="{activeOrange:active=='six-'+ index}" @click="clickgeometry($event,index,'six-'+ 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-tabs>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+<!-- 缩放 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='two-0'"
|
|
|
+ :visible.sync="dialog.scale_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="t1" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.geneal.scale')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form>
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2" >
|
|
|
+ <el-input v-model="mcnames" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型" :label-width="formLabelWidth2" >
|
|
|
+ <el-input value="suofang" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">相交/延长</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.factor')" :label-width="formLabelWidth2" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Scale.Factor" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.scale_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.scale_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 翻译 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='two-1'"
|
|
|
+ :visible.sync="dialog.translation_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="t2" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.geneal.translation')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form class="div64">
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2" >
|
|
|
+ <el-input v-model="mcnames" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型" :label-width="formLabelWidth2" >
|
|
|
+ <el-input value="PingYi" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ <div class="liitem">
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.distance')" :label-width="formLabelWidth7">
|
|
|
+ <el-input v-model="geneal.MeshTransform.Translation.Distance" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="liitem">
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.translationx')" :label-width="formLabelWidth7">
|
|
|
+ <el-input v-model="geneal.MeshTransform.Translation.X" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="liitem">
|
|
|
+ <el-form-item :label=" $t('HCFD.geneal.translationy')" :label-width="formLabelWidth7">
|
|
|
+ <el-input v-model="geneal.MeshTransform.Translation.Y" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="liitem">
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.translationz')" :label-width="formLabelWidth7">
|
|
|
+ <el-input v-model="geneal.MeshTransform.Translation.Z" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.translation_visiable = false"
|
|
|
+ > {{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.translation_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+<!-- 旋转 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='two-2'"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ :visible.sync="dialog.rotation_visiable"
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="t3" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.geneal.rotation')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form class="div64">
|
|
|
+ <el-form-item label="名称" :label-width="formLabelWidth2" >
|
|
|
+ <el-input v-model="mcnames" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="类型" :label-width="formLabelWidth2" >
|
|
|
+ <el-input value="xuanzuan" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.angle')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.Angle" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.rotationx')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.X" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.rotationy')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.Y" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.rotationz')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.Z" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.rotationx1')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.X1" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.rotationy1')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.Y1" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.rotationz1')" :label-width="formLabelWidth7" >
|
|
|
+ <el-input v-model="geneal.MeshTransform.Rotation.Z1" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.rotation_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
|
|
|
+ <el-button type="primary" @click="dialog.rotation_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}} </el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 分析类型 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :visible.sync="dialog.type_visiable "
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='two-3'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="t4" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.geneal.analysis')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form>
|
|
|
+ <div class="radio_text text_color liangf">
|
|
|
+ <div class="classfelx">
|
|
|
+ <el-tooltip class="item" effect="dark" content="分析类型" placement="bottom">
|
|
|
+ <el-radio
|
|
|
+ v-model="parameterObj.nmlParam.analysis_Type"
|
|
|
+ label="Steady"
|
|
|
+ >{{ $t("HCFD.geneal.steady") }}</el-radio
|
|
|
+ >
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <div class="classfelx">
|
|
|
+ <el-tooltip class="item" effect="dark" content="分析类型" placement="bottom">
|
|
|
+ <el-radio
|
|
|
+ v-model="parameterObj.nmlParam.analysis_Type"
|
|
|
+ label="Unsteady"
|
|
|
+ >{{ $t("HCFD.geneal.unsteady") }}</el-radio
|
|
|
+ >
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="referencevisiable((dialog.type_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.type_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 并行类型 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :visible.sync="dialog.parallel_visiable "
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='two-4'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="t5" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.geneal.parallel')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form>
|
|
|
+ <div class="radio_text text_color">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="parameterObj.nmlParam.parallel_Optional"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ <el-tooltip class="item" effect="dark" content="并行类型" placement="bottom">
|
|
|
+ <el-radio label="Serial">
|
|
|
+ {{ $t("HCFD.geneal.serial") }}</el-radio
|
|
|
+ >
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-tooltip class="item" effect="dark" content="并行类型" placement="bottom">
|
|
|
+ <el-radio label="MPI Parallel">{{
|
|
|
+ $t("HCFD.geneal.mpi")
|
|
|
+ }}</el-radio>
|
|
|
+ </el-tooltip>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-form-item :label="$t('HCFD.geneal.number')" :label-width="formLabelWidth2" v-if="
|
|
|
+ parameterObj.nmlParam.parallel_Optional == 'MPI Parallel'
|
|
|
+ ">
|
|
|
+ <el-input v-model="parameterObj.nmlParam.number_of_Processors" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="referencevisiable((dialog.parallel_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.parallel_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+<!-- 控制方程 -->
|
|
|
+ <el-dialog
|
|
|
+ v-if="active=='three-0'"
|
|
|
+ :visible.sync="dialog.equation_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="w1" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.physics.gover')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form>
|
|
|
+ <el-radio-group
|
|
|
+ v-model="parameterObj.nmlParam.eqn_type"
|
|
|
+ size="mini"
|
|
|
+ >
|
|
|
+ <el-radio label="cal_perf_compress" style="display: block; padding:15px 0;">{{
|
|
|
+ $t("HCFD.physics.compress")
|
|
|
+ }}</el-radio>
|
|
|
+ <el-radio label="cal_perf_incompress">{{
|
|
|
+ $t("HCFD.physics.incompress")
|
|
|
+ }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <div class="disflex text_color" v-if="parameterObj.nmlParam.eqn_type=='cal_perf_incompress'">
|
|
|
+ <span class="text_color formLabelWidth8">{{ $t("HCFD.physics.artifical") }}</span>
|
|
|
+ <el-input
|
|
|
+ class='inpw75'
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.artificial_compress"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog. equation_visiable = false"> {{ $t("HCFD.file.cancel")}} </el-button>
|
|
|
+ <el-button type="primary" @click="dialog.equation_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}} </el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 粘性模型 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :visible.sync="dialog.inviscid_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='three2-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ heigth="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="w2" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.physics.viscous')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form>
|
|
|
+ <div class="selecr">
|
|
|
+ <el-form-item label="模型类型" :label-width="formLabelWidth5">
|
|
|
+ <el-select v-model="parameterObj.nmlParam.viscous_terms" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in selectlist1"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ <div v-if="parameterObj.nmlParam.viscous_terms=='laminar'">
|
|
|
+ <el-form-item :label="$t('HCFD.physics.molecular')" :label-width="formLabelWidth5" >
|
|
|
+ <el-input v-model="parameterObj.nmlParam.prandtlnumber_molecular" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div v-if="parameterObj.nmlParam.viscous_terms=='turbulent'">
|
|
|
+ <el-form-item label="湍流模型" :label-width="formLabelWidth5">
|
|
|
+ <el-select v-model="parameterObj.nmlParam.turb_model" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="item in selectlist2"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.physics.Molecular')" :label-width="formLabelWidth5" >
|
|
|
+ <el-input v-model="parameterObj.nmlParam.prandtlnumber_molecular" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="$t('HCFD.physics.turbulents')" :label-width="formLabelWidth5" >
|
|
|
+ <el-input v-model="Physics.Turbulent.TurbulentPrandtlNumber" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="dialog.inviscid_visiable= false"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.inviscid_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 运动网格 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :title="$t('HCFD.physics.dynamic')"
|
|
|
+ :visible.sync="dialog.dynamic_visiable "
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='three2-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <div class="radio_text text_color">
|
|
|
+ <el-radio
|
|
|
+ v-model="parameterObj.nmlParam.dynamic_Mesh"
|
|
|
+ label="on"
|
|
|
+ >on</el-radio
|
|
|
+ >
|
|
|
+ <el-radio
|
|
|
+ v-model="parameterObj.nmlParam.dynamic_Mesh"
|
|
|
+ label="off"
|
|
|
+ >off</el-radio
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="dialog.dynamic_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.dynamic_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!--非惯性参考系 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :title="$t('HCFD.physics.nonitertial')"
|
|
|
+ :visible.sync="dialog.nonitertial_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='three1-2'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <div class="radio_text text_color">
|
|
|
+ <el-radio
|
|
|
+ v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
|
|
|
+ label="on"
|
|
|
+ >on</el-radio>
|
|
|
+ <el-radio
|
|
|
+ v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
|
|
|
+ label="off"
|
|
|
+ >off</el-radio
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="dialog.nonitertial_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.nonitertial_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 通量残差构造方法 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-Solution"
|
|
|
+ :title="$t('HCFD.solution.fluxResCon')"
|
|
|
+ :visible.sync="dialog.fluxrc_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form class="groupradio">
|
|
|
+ <el-radio-group columns='2' v-model="parameterObj.nmlParam.flux_construction">
|
|
|
+ <el-radio :label="'roe'">Roe</el-radio>
|
|
|
+ <el-radio :label="'vanleer'">vanleer</el-radio>
|
|
|
+ <el-radio :label="'hllc'">HLLC</el-radio>
|
|
|
+ <el-radio :label="'aufs'">AUFS</el-radio>
|
|
|
+ <el-radio :label="'central_diss'">Central_Diss</el-radio>
|
|
|
+ <el-radio :label="'dlfss'">LDFSS</el-radio>
|
|
|
+ <el-radio :label="'stvd'">STVD</el-radio>
|
|
|
+ <el-radio :label="'stvd_modified'">STVD_modified</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.fluxrc_visiable = false))"
|
|
|
+ > {{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.fluxrc_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 通量限制 -->
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.flux')"
|
|
|
+ :visible.sync="dialog.fluxl_visiable"
|
|
|
+ class="lg-Solution"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+
|
|
|
+ >
|
|
|
+ <el-form class="groupradio">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="parameterObj.nmlParam.flux_limiter"
|
|
|
+ size="small"
|
|
|
+ >
|
|
|
+ <el-radio :label="'none'">none</el-radio>
|
|
|
+ <el-radio :label="'barth'">barth</el-radio>
|
|
|
+ <el-radio :label="'venkat'">venkat</el-radio>
|
|
|
+ <el-radio :label="'minmod'">minmod</el-radio>
|
|
|
+ <el-radio :label="'vanleer'">vanleer</el-radio>
|
|
|
+ <el-radio :label="'vanalbada'">vanalbada</el-radio>
|
|
|
+ <el-radio :label="'smooth'">smooth</el-radio>
|
|
|
+ <el-radio :label="'hminmod'">hminmod</el-radio>
|
|
|
+ <el-radio :label="'hvanleer'">hvanleer</el-radio>
|
|
|
+ <el-radio :label="'hvanalbada'">hvanalbada</el-radio>
|
|
|
+ <el-radio :label="'hsmooth'">hsmooth</el-radio>
|
|
|
+ <el-radio :label="'hvenkat'">hvenkat</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.fluxl_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.fluxl_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.fluxJacCon')"
|
|
|
+ :visible.sync="dialog.fluxjc_visiable"
|
|
|
+ class="lg-Solution"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four-2'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form class="groupradio">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="parameterObj.nmlParam.flux_construction_lhs"
|
|
|
+ size="small"
|
|
|
+ >
|
|
|
+ <el-radio :label="'roe'">Roe</el-radio><br />
|
|
|
+ <el-radio :label="'vanleer'">vanleer</el-radio><br />
|
|
|
+ <el-radio :label="'hllc'">HLLC</el-radio><br />
|
|
|
+ <el-radio :label="'aufs'">AUFS</el-radio><br />
|
|
|
+ <el-radio :label="'central-diss'">Central-Diss</el-radio><br />
|
|
|
+ <el-radio :label="'ldfss'">LDFSS</el-radio><br />
|
|
|
+ <el-radio :label="'stvd'">STVD</el-radio><br />
|
|
|
+ <el-radio :label="'stvd_modified'">STVD_modified</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.fluxjc_visiable = false))"
|
|
|
+ > {{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.fluxjc_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}} </el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 无粘通量 -->
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.physics.inviscid') "
|
|
|
+ :visible.sync="dialog.fluxwz_visiable"
|
|
|
+ class="lg-Solution"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four-3'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form >
|
|
|
+ <!-- <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">
|
|
|
+ {{ $t("HCFD.solution.muscl") }}
|
|
|
+ </span>
|
|
|
+ <el-input
|
|
|
+ class="inpw75"
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.schedule"
|
|
|
+ ></el-input>
|
|
|
+ </li> -->
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">
|
|
|
+ {{ $t("HCFD.solution.firstOrderNum") }}
|
|
|
+ </span>
|
|
|
+ <el-input
|
|
|
+ class="inpw75"
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.first_order_iterations"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable(dialog.fluxwz_visiable = false)"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.fluxwz_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 时间格式 -->
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.timeScheme')"
|
|
|
+ :visible.sync="dialog.time_visiable"
|
|
|
+ class="lg-Solution"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four1-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form class="groupradio">
|
|
|
+ <el-radio-group v-model="parameterObj.nmlParam.time_accuracy">
|
|
|
+ <el-radio :label="'steady'">{{$t('HCFD.solution.steady')}}</el-radio>
|
|
|
+ <el-radio :label="'1storder'">{{$t('HCFD.solution.torde')}}</el-radio>
|
|
|
+ <el-radio :label="'2ndorder'">{{$t('HCFD.solution.ndorder')}}</el-radio>
|
|
|
+ <el-radio :label="'2ndorderOPT'">{{$t('HCFD.solution.ndorderOPT')}}</el-radio>
|
|
|
+ <el-radio :label="'3rdorder'">{{$t('HCFD.solution.rdorder')}}</el-radio>
|
|
|
+ <el-radio :label="'4thorderMEBDF4'">{{$t('HCFD.solution.thorderMEBDF')}}</el-radio>
|
|
|
+ <el-radio :label="'4thorderESDIRK4'">{{$t('HCFD.solution.thorderESDIRK')}}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.time_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.time_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 时间推进格式 -->
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.timeAdvance')"
|
|
|
+ :visible.sync="dialog.timeasm_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four1-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form class="lg-form">
|
|
|
+ <li class="lheig34 disflex liitem liangf" style="padding:5px 0">
|
|
|
+ <span class="formLabelWidth8">{{$t('HCFD.solution.stepping')}}</span>
|
|
|
+ <el-radio-group class="inpw35" style="display:flex" v-model="parameterObj.nmlParam.pseudo_time_stepping">
|
|
|
+ <el-radio :label="'on'">On</el-radio>
|
|
|
+ <el-radio :label="'off'">Off</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{$t('HCFD.solution.nondim')}}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.time_step_nondim"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{$t('HCFD.solution.subiterations')}}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.subiterations"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{$t('HCFD.solution.cfl')}}</span>
|
|
|
+ <el-input
|
|
|
+ v-model="parameterObj.nmlParam.schedule_iteration[0]"
|
|
|
+ ></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="parameterObj.nmlParam.schedule_iteration[1]"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{$t('HCFD.solution.Schedulecfl')}}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.schedule_cfl[0]"></el-input>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.schedule_cfl[1]"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{$t('HCFD.solution.cflturb')}}</span>
|
|
|
+ <el-input
|
|
|
+ v-model="parameterObj.nmlParam.schedule_cflturb[0]"
|
|
|
+ ></el-input>
|
|
|
+ <el-input
|
|
|
+ v-model="parameterObj.nmlParam.schedule_cflturb[1]"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="timeasmvisiable"> {{ $t("HCFD.file.cancel")}} </el-button>
|
|
|
+ <el-button type="primary" @click="dialog.timeasm_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}} </el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 边界条件 -->
|
|
|
+ <el-dialog
|
|
|
+ class="dialog-block"
|
|
|
+ :title="$t('HCFD.physics.boundary')"
|
|
|
+ :visible.sync="dialog.border_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='three1-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="250px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form class="groupradio">
|
|
|
+ <p class="text_color">边界条件</p>
|
|
|
+ <el-select
|
|
|
+ class="inpw100 juli"
|
|
|
+ size="mini"
|
|
|
+ @change="boundaryChange"
|
|
|
+ v-model="Physics.Boundary.bquery"
|
|
|
+ placeholder="select boundary"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="hcfdBoundary in parameterObj.hcfdBoundarys"
|
|
|
+ :key="hcfdBoundary.id"
|
|
|
+ :label="hcfdBoundary.name"
|
|
|
+ :value="hcfdBoundary.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select
|
|
|
+ class="inpw100 juli"
|
|
|
+ size="mini"
|
|
|
+ @change="conditionsChange"
|
|
|
+ v-model="Physics.Boundary.cquery"
|
|
|
+ placeholder="select Conditions"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="Condition in Physics.Boundary.Conditions"
|
|
|
+ :key="Condition.conditionsCode"
|
|
|
+ :label="Condition.name"
|
|
|
+ :value="Condition.conditionsCode"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="dialog.border_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.border_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}} </el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 参考条件 -->
|
|
|
+ <el-dialog
|
|
|
+ class="dialog-block"
|
|
|
+ :visible.sync="dialog.reference_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='three1-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color heightclass'
|
|
|
+ width="385px"
|
|
|
+ height="400px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="w5" fit="cover" />
|
|
|
+ <span class="text-color">{{$t('HCFD.physics.reference')}}</span>
|
|
|
+ </div>
|
|
|
+ <el-form class="groupradio">
|
|
|
+ <div class="line">
|
|
|
+ <div class="linetext">属性</div>
|
|
|
+ </div>
|
|
|
+ <li class="disflex liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.machNum") }}</span>
|
|
|
+ <el-input
|
|
|
+ class="inpw50"
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.mach_number"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.reyNum") }}</span>
|
|
|
+ <el-input
|
|
|
+ class="inpw50"
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.reynolds_number"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.temperature") }}</span>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <el-radio-group v-model="parameterObj.nmlParam.temperature_units" style=" width: 100%;">
|
|
|
+ <el-radio :label="'Kelvin'">{{ $t("HCFD.physics.kelvin") }}</el-radio>
|
|
|
+ <el-radio :label="'Rankine'">{{ $t("HCFD.physics.rankine") }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.temperature"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.attack") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.angle_of_attack"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.yaw") }} </span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.angle_of_yaw"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.area") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.area_reference"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.yaxis") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.x_moment_length"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.zaxis") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.y_moment_length"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.momentc") }}</span>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.xcoordinate") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.x_moment_center"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.ycoordinate") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.y_moment_center"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class=" liitem liangf">
|
|
|
+ <span class="formLabelWidth8">{{ $t("HCFD.physics.zcoordinate") }}</span>
|
|
|
+ <el-input v-model="parameterObj.nmlParam.z_moment_center"></el-input>
|
|
|
+ </li>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="dialog.reference_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.reference_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 线性方向 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-Solution"
|
|
|
+ :title=" $t('HCFD.solution.linearSol')"
|
|
|
+ :visible.sync="dialog.xian_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four2-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form >
|
|
|
+ <li class="disflex liitem liangf ">
|
|
|
+ <span class="formLabelWidth8">
|
|
|
+ {{ $t("HCFD.solution.meanflow") }}
|
|
|
+ </span>
|
|
|
+ <el-input
|
|
|
+ class="inpw75"
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.meanflow_sweeps"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf ">
|
|
|
+ <span class="formLabelWidth8">
|
|
|
+ {{ $t("HCFD.solution.turbulence") }}
|
|
|
+ </span>
|
|
|
+ <el-input
|
|
|
+ class="inpw75"
|
|
|
+ size="mini"
|
|
|
+ v-model="parameterObj.nmlParam.turbulence_sweeps"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem liangf ">
|
|
|
+ <span class="formLabelWidth5">
|
|
|
+ {{ $t("HCFD.solution.gcr") }}
|
|
|
+ </span>
|
|
|
+ <el-radio-group v-model="parameterObj.nmlParam.line_implicit">
|
|
|
+ <el-radio label="off">Off</el-radio>
|
|
|
+ <el-radio label="on">On</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </li>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.xian_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.xian_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}} </el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 初始化 -->
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :title="$t('HCFD.solution.initialization')"
|
|
|
+ :visible.sync="dialog.initialization_visiable "
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four2-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <div class="radio_text text_color" >
|
|
|
+ <el-radio-group v-model="initialization" size="mini">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="$t('HCFD.solution.initialization')" placement="bottom">
|
|
|
+
|
|
|
+ <el-radio label="freestreams">{{
|
|
|
+ $t("HCFD.solution.freestreams")
|
|
|
+ }}</el-radio>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip class="item" effect="dark" :content=" $t('HCFD.solution.initialization')" placement="bottom">
|
|
|
+ <el-radio label="specified">{{
|
|
|
+ $t("HCFD.solution.specified")
|
|
|
+ }}</el-radio>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="referencevisiable((dialog.initialization_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.initialization_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 运行控制Run Control -->
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.run')"
|
|
|
+ :visible.sync="dialog.runc_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four3-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form class="lg-form text_color">
|
|
|
+ <li>
|
|
|
+ {{ $t("HCFD.solution.iterNum")}}<el-input
|
|
|
+ v-model="parameterObj.nmlParam.steps"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ {{ $t("HCFD.solution.stopToler")}}<el-input
|
|
|
+ v-model="parameterObj.nmlParam.stopping_tolerance"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ {{ $t("HCFD.solution.writeFreq")}}<el-input
|
|
|
+ v-model="parameterObj.nmlParam.restart_write_freq"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li>
|
|
|
+ {{ $t("HCFD.solution.evaluate")}}<el-input
|
|
|
+ v-model="parameterObj.nmlParam.jacobian_eval_freq"
|
|
|
+ ></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="lheig34" style="padding:5px 0">
|
|
|
+ {{ $t("HCFD.solution.Restart")}}
|
|
|
+ <el-radio-group class="inpw35" v-model="parameterObj.nmlParam.restart_read">
|
|
|
+ <el-radio label="off">Off</el-radio>
|
|
|
+ <el-radio label="on">On</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </li>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="runcvisiable()"> {{ $t("HCFD.file.cancel")}} </el-button>
|
|
|
+ <el-button type="primary" @click="dialog.runc_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.bounOut')"
|
|
|
+ :visible.sync="dialog.boundaryo_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ class="Conditions lg-out-h"
|
|
|
+ v-if="active=='four3-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <li class="disflex">
|
|
|
+ <span class="formLabelWidth8"> {{ $t("HCFD.solution.outputfreq")}} </span>
|
|
|
+ <el-input
|
|
|
+ v-model="parameterObj.nmlParam.animation_freq"
|
|
|
+ class="inpw50"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="text_color">{{ $t("HCFD.solution.Variables")}}</li>
|
|
|
+ <el-checkbox
|
|
|
+ :indeterminate="Solution.boundaryout.isIndeterminate"
|
|
|
+ v-model="Solution.boundaryout.checkAll"
|
|
|
+ @change="solutionbCheckAllChange"
|
|
|
+ >{{ $t("HCFD.solution.all")}}</el-checkbox
|
|
|
+ >
|
|
|
+ <div class="displanblock">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_u">
|
|
|
+ {{ $t("HCFD.solution.Xcomponent")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_v"
|
|
|
+ >{{ $t("HCFD.solution.Ycomponent")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_w"
|
|
|
+ >{{ $t("HCFD.solution.Zcomponent")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_p"
|
|
|
+ >{{ $t("HCFD.solution.Press")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_cp"
|
|
|
+ >{{ $t("HCFD.solution.presscoefficient")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_mach"
|
|
|
+ >{{ $t("HCFD.solution.mnumber")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_vort_mag"
|
|
|
+ >{{ $t("HCFD.solution.magnitude")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_vort_x "
|
|
|
+ >{{ $t("HCFD.solution.Xvorticity")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_vort_y"
|
|
|
+ >{{ $t("HCFD.solution.Yvorticity")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_vort_z "
|
|
|
+ >{{ $t("HCFD.solution.Zvorticity")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.a_q_criterion"
|
|
|
+ >{{ $t("HCFD.solution.Criterion")}}</el-checkbox>
|
|
|
+ </div>
|
|
|
+ <!-- </el-checkbox-group> -->
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="referencevisiable(dialog.boundaryo_visiable = false)"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.boundaryo_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.solution.volOut')"
|
|
|
+ :visible.sync="dialog.volumeo_visiable"
|
|
|
+ class="Conditions lg-out-h"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four3-2'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <li class="disflex">
|
|
|
+ <span class="formLabelWidth8"> {{ $t("HCFD.solution.outputfreq")}}</span>
|
|
|
+ <el-input
|
|
|
+ v-model="parameterObj.nmlParam.volume_animation_freq"
|
|
|
+ class="inpw50"></el-input>
|
|
|
+ </li>
|
|
|
+ <li class="text_color">{{ $t("HCFD.solution.Variables")}}</li>
|
|
|
+ <el-checkbox
|
|
|
+ :indeterminate="Solution.volumout.isIndeterminate"
|
|
|
+ v-model="Solution.volumout.checkAll"
|
|
|
+ @change="solutionvCheckAllChange"
|
|
|
+ >{{ $t("HCFD.solution.all")}}</el-checkbox
|
|
|
+ >
|
|
|
+ <!-- <el-checkbox-group
|
|
|
+ v-model="Solution.volumout.checkeds"
|
|
|
+ @change="solutionvCheckedCitiesChange"
|
|
|
+ >
|
|
|
+ <el-checkbox
|
|
|
+ v-for="cell in Solution.volumout.lists"
|
|
|
+ :label="cell"
|
|
|
+ :key="cell"
|
|
|
+ >{{ cell }}</el-checkbox
|
|
|
+ >
|
|
|
+ </el-checkbox-group> -->
|
|
|
+ <div class="displanblock">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_u">{{ $t("HCFD.solution.Xcomponent")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_v "
|
|
|
+ >{{ $t("HCFD.solution.Ycomponent")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_w"
|
|
|
+ >{{ $t("HCFD.solution.Zcomponent")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_p "
|
|
|
+ >{{ $t("HCFD.solution.Press")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_cp"
|
|
|
+ >{{ $t("HCFD.solution.presscoefficient")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_mach"
|
|
|
+ >{{ $t("HCFD.solution.mnumber")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_vort_mag"
|
|
|
+ >{{ $t("HCFD.solution.magnitude")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_vort_x "
|
|
|
+ >{{ $t("HCFD.solution.Xvorticity")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_vort_y"
|
|
|
+ >{{ $t("HCFD.solution.Yvorticity")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_vort_z "
|
|
|
+ >{{ $t("HCFD.solution.Zvorticity")}}</el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="parameterObj.nmlParam.v_q_criterion"
|
|
|
+ >{{ $t("HCFD.solution.Criterion")}}</el-checkbox>
|
|
|
+ </div>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.volumeo_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.volumeo_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ class="lg-y-z"
|
|
|
+ :title="$t('HCFD.solution.specialPara')"
|
|
|
+ :visible.sync="dialog.specialp_visiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four4-0'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <el-radio-group v-model="parameterObj.nmlParam.large_angle_fix">
|
|
|
+ <el-radio label="off">Off</el-radio>
|
|
|
+ <el-radio label="on">On</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="referencevisiable((dialog.specialp_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.specialp_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="Swap Y-Z Axres"
|
|
|
+ :visible.sync="dialog.swap_visiable"
|
|
|
+ class="lg-y-z"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='four4-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <el-radio-group v-model="parameterObj.nmlParam.swap_yz_axes">
|
|
|
+ <el-radio label="false">Off</el-radio>
|
|
|
+ <el-radio label="true">On</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.swap_visiable = false))"
|
|
|
+ > {{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.swap_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 资源选择 -->
|
|
|
+ <el-dialog
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ :title="$t('HCFD.solution.Resource')"
|
|
|
+ :visible.sync="dialog.ziyuan"
|
|
|
+ width="45%"
|
|
|
+ class="dialog"
|
|
|
+ custom-class='dialog_color'
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <el-table
|
|
|
+
|
|
|
+ :data="ziyprojects"
|
|
|
+ border
|
|
|
+ :row-key="getRowKeys"
|
|
|
+ height="250"
|
|
|
+ row-class-name='table-color'
|
|
|
+ ref="multipleTable"
|
|
|
+ @selection-change="ziySelectionChange"
|
|
|
+ @select="ziySelectionSelect"
|
|
|
+ size="mini"
|
|
|
+ :fit="true"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" label="选择" :reserve-selection="true"/>
|
|
|
+ <el-table-column property="id" label="ID" />
|
|
|
+ <el-table-column property="resIp" label="资源内网IP" />
|
|
|
+ <el-table-column property="resShortname" label="资源简称" />
|
|
|
+ </el-table>
|
|
|
+ </el-form>
|
|
|
+ <div class="pagination">
|
|
|
+ <Pagination
|
|
|
+ :pagination-config="paginationConfig"
|
|
|
+ @putPagination="getPagination"
|
|
|
+ ></Pagination>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="dialog.ziyuan = false"> {{ $t("HCFD.file.cancel")}} </el-button>
|
|
|
+ <el-button type="primary" @click='resourceOK()'>{{ $t("HCFD.file.ok")}} </el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 求解表面 -->
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.results.Surfacegrid')"
|
|
|
+ :visible.sync="dialog.SurfaceGrid_visiable"
|
|
|
+ class="lg-y-z"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ :append-to-body="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='five-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <el-col>
|
|
|
+ <div class="flexpad30">
|
|
|
+ <div>
|
|
|
+ <li class="disflex liitem">
|
|
|
+ <span class='span100 formLabelWidth5'> {{ $t("HCFD.results.steps")}} </span>
|
|
|
+ <el-select size="mini" v-model="bStep" @change="bStepChange" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ label="请选择"
|
|
|
+ :value="0"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="setep in boundaryStep"
|
|
|
+ :key="setep"
|
|
|
+ :label="setep"
|
|
|
+ :value="setep"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem">
|
|
|
+ <span class='span100 formLabelWidth5'>{{ $t("HCFD.results.scalar")}} </span>
|
|
|
+ <el-select size="mini" v-model="bScalar" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="scalar in boundaryScalars"
|
|
|
+ :key="scalar"
|
|
|
+ :label="scalar"
|
|
|
+ :value="scalar"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ </li>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <li class="disflex lheig34 liitem">
|
|
|
+ <span class="span100 marb5 formLabelWidth5">{{ $t("HCFD.results.contour")}} </span>
|
|
|
+ <el-input-number v-model="Surfacenum" @change="SurfaceChange" :min="1" :max="10" label="描述文字"></el-input-number>
|
|
|
+ </li>
|
|
|
+ <li class="disflex lheig34 liitem">
|
|
|
+ <span class="span100 marb5 formLabelWidth5">{{ $t("HCFD.results.vector")}} </span>
|
|
|
+ <el-checkbox checked>Velocity</el-checkbox>
|
|
|
+ </li>
|
|
|
+ <li class="disflex lheig34 liitem">
|
|
|
+ <span class='span100 marb5 formLabelWidth5' >{{ $t("HCFD.results.show")}} </span>
|
|
|
+ <el-checkbox-group v-model="belementCheckeds" style="display:flex">
|
|
|
+ <el-checkbox label="Mesh" @change="Contourval('Mesh')"
|
|
|
+ ></el-checkbox>
|
|
|
+ <el-checkbox label="Contour" @change="Contourval('Contour')"
|
|
|
+ ></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </li>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="primary"
|
|
|
+ style="margin:30px 0 30px 40%"
|
|
|
+ @click="boundaryShow()"
|
|
|
+
|
|
|
+ > {{ $t("HCFD.results.Surface")}} </el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.SurfaceGrid_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}} </el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.SurfaceGrid_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ :title="$t('HCFD.results.volume')"
|
|
|
+ :visible.sync="dialog.VolumeGrid_visiable"
|
|
|
+ class="lg-y-z"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='five-2'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ >
|
|
|
+ <el-form>
|
|
|
+ <el-col class="lg-si-right lisin">
|
|
|
+ <div class="flexpad30">
|
|
|
+ <div>
|
|
|
+ <li class="disflex liitem ">
|
|
|
+ <span class='span100 formLabelWidth5'> {{ $t("HCFD.results.steps")}} </span>
|
|
|
+ <el-select size="mini" v-model="vStep" @change="vStepChange" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ label="请选择"
|
|
|
+ :value="0"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="setep in volumStep"
|
|
|
+ :key="setep"
|
|
|
+ :label="setep"
|
|
|
+ :value="setep"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </li>
|
|
|
+ <li class="disflex liitem">
|
|
|
+ <span class='span100 formLabelWidth5'> {{ $t("HCFD.results.scalar")}} </span>
|
|
|
+ <el-select size="mini" v-model="vSalar" placeholder="请选择">
|
|
|
+ <el-option
|
|
|
+ v-for="scalar in volumScalars"
|
|
|
+ :key="scalar"
|
|
|
+ :label="scalar"
|
|
|
+ :value="scalar"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ </li>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <li class="disflex lheig34 liitem">
|
|
|
+ <span class="span100 marb5 formLabelWidth5">{{ $t("HCFD.results.vector")}} </span>
|
|
|
+ <el-checkbox checked>Velocity</el-checkbox>
|
|
|
+ </li>
|
|
|
+ <li class="disflex lheig34 liitem">
|
|
|
+ <span class="span100 marb5 formLabelWidth5">{{ $t("HCFD.results.contour")}}</span>
|
|
|
+ <el-input-number v-model="Volumenum" @change="VolumenumChange" :min="1" :max="10" label="描述文字"></el-input-number>
|
|
|
+ </li>
|
|
|
+ <li class="disflex lheig34 liitem">
|
|
|
+ <span class="span100 marb5 formLabelWidth5">{{ $t("HCFD.results.show")}}</span>
|
|
|
+ <el-checkbox-group v-model="velementCheckeds" style="display:flex">
|
|
|
+ <el-checkbox
|
|
|
+ label="Mesh"
|
|
|
+ @change="ContourvalVolume('Mesh')"
|
|
|
+ ></el-checkbox>
|
|
|
+ <el-checkbox
|
|
|
+ label="Contour"
|
|
|
+ @change="ContourvalVolume('Contour')"
|
|
|
+ ></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </li>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ style="margin:30px 0 30px 40%"
|
|
|
+ @click="showVolume()"
|
|
|
+ >{{ $t("HCFD.results.ShowVolume")}}</el-button
|
|
|
+ >
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="info" @click="referencevisiable((dialog.VolumeGrid_visiable = false))"
|
|
|
+ >{{ $t("HCFD.file.cancel")}}</el-button
|
|
|
+ >
|
|
|
+ <el-button type="primary" @click="dialog.VolumeGrid_visiable = false"
|
|
|
+ >{{ $t("HCFD.file.ok")}}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 单位计算开始 -->
|
|
|
+ <el-dialog :visible.sync="visiable"
|
|
|
+ v-if="active=='six-0'"
|
|
|
+ :modal='false'
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="d1" fit="cover" />
|
|
|
+ <span class="text-color">单位换算</span>
|
|
|
+ </div>
|
|
|
+ <el-form :model="form1">
|
|
|
+ <el-form-item label="kelvin" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="form1.kelvins" type="number" autocomplete="off"></el-input>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="℃" :label-width="formLabelWidth1">
|
|
|
+ <el-input v-model="form1.ssd" type="number" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div>
|
|
|
+ <el-button @click="dialogbtnkew" style="margin:10px 0 0 65px" size="mini">摄氏度</el-button>
|
|
|
+ <el-button @click="dialogbtnssd" size="mini">开尔文</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+</el-dialog>
|
|
|
+ <!-- Y+ Calculator -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="Yvisiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ @close='activecleer()'
|
|
|
+ v-if="active=='six-1'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="d2" fit="cover" />
|
|
|
+ <span class="text-color">Y+值计算</span>
|
|
|
+ </div>
|
|
|
+ <el-form :model="form" class="gongju">
|
|
|
+ <!-- Freestream velocity流速度U∞ -->
|
|
|
+ <el-form-item label="自由流速度U∞(m/s):" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.u_freestream" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <!--Density 自由氣流密度ρ -->
|
|
|
+ <el-form-item label="自由氣流密度ρ(kg/m^3):" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.rho" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <!-- Characteristic length 特征长度L-->
|
|
|
+ <el-form-item label="特征长度L:(m):" :label-width="formLabelWidth3">
|
|
|
+ <el-input
|
|
|
+ v-model="form.L"
|
|
|
+ type="number"
|
|
|
+ autocomplete="off"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <!-- Dynamic viscosity表流运动粘贴系数μ: -->
|
|
|
+ <el-form-item label="表流运动粘贴系数μ(Pa·s):" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.mu" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- Desired Y+ value: -->
|
|
|
+ <el-form-item label="Y+:" :label-width="formLabelWidth3">
|
|
|
+ <el-input
|
|
|
+ v-model="form.y_plus_desired"
|
|
|
+ type="number"
|
|
|
+ autocomplete="off"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- Reynolds number -->
|
|
|
+ <h3 class="Rex">雷诺数: {{ form.Rex }}</h3>
|
|
|
+ <!-- Estimated wall distance: -->
|
|
|
+ <h3 class="Rex">估计墙距: {{ form.dtc }}</h3>
|
|
|
+ <el-form-item style="margin-left: 0">
|
|
|
+ <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
|
|
|
+
|
|
|
+ <el-button type="primary" @click="dialogbtny" style="margin:0 0 0 55px">计算</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- r雷诺数计算 -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="llsvisiable"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ v-if="active=='six-2'"
|
|
|
+ :modal='false'
|
|
|
+ custom-class='dialoglocation dialog_color'
|
|
|
+ width="385px"
|
|
|
+ :style="styX"
|
|
|
+ >
|
|
|
+ <div slot="title" class=dialog_header>
|
|
|
+ <el-image class="imge" :src="d3" fit="cover" />
|
|
|
+ <span class="text-color">雷诺数计算</span>
|
|
|
+ </div>
|
|
|
+ <el-form :model="form" class="leiluoshu">
|
|
|
+ <el-form-item label="流速v(m/s):" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.lls" autocomplete="off" ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="密度ρ(kg/m^3)" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.lmi" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="动力黏性系数η(Pa·s)" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.ldlzxxs" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="特征长度(内径)d(m):" :label-width="formLabelWidth3">
|
|
|
+ <el-input v-model="form.lld" autocomplete="off"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="">
|
|
|
+ <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
|
|
|
+ <h3 class="Rex">雷诺数Re:{{ form.Re }}</h3>
|
|
|
+ <el-button type="primary" style="margin:0 0 0 60px" @click="leinsdialogbtny">计算</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 组件 -->
|
|
|
+ <filesload
|
|
|
+ ref="filesload"
|
|
|
+ :fileurls="fileurls"
|
|
|
+ @fileLoadeState="fileLoadeState($event)"
|
|
|
+ ></filesload>
|
|
|
+ <loading ref="loading" :loadObjs="loadObjs"></loading>
|
|
|
+ <!-- <hcfd-Calculator ref="Calculator"></hcfd-Calculator> -->
|
|
|
+ </div>
|
|
|
</template>
|
|
|
<script>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
// 引入组件
|
|
|
import geometry from '../geometry/index.vue'
|
|
|
import meshindex from '../meshindex/index.vue'
|
|
|
+import t1 from '@/assets/icon/u9588.png'
|
|
|
+import t2 from '@/assets/icon/u9616.png'
|
|
|
+import t3 from '@/assets/icon/u9637.png'
|
|
|
+import t4 from '@/assets/icon/u212.png'
|
|
|
+import t5 from '@/assets/icon/u3284.png'
|
|
|
+import w1 from '@/assets/icon/u3250.png'
|
|
|
+import w2 from '@/assets/icon/u9700.png'
|
|
|
+import w3 from '@/assets/icon/u9872.png'
|
|
|
+import w4 from '@/assets/icon/u3877.png'
|
|
|
+import w5 from '@/assets/icon/u9823.png'
|
|
|
+import w6 from '@/assets/icon/u3742.png'
|
|
|
+import d1 from '@/assets/icon/u10148.png'
|
|
|
+import d2 from '@/assets/icon/u10152.png'
|
|
|
+import d3 from '@/assets/icon/u10156.png'
|
|
|
+import d4 from '@/assets/icon/u10160.png'
|
|
|
+
|
|
|
+import adilog from "@/assets/hcfd_images/adilog.png";
|
|
|
+import Pagination from '@/components/Pagination'
|
|
|
+import scaleimage from "@/assets/hcfd_images/scaleimage.png";
|
|
|
+import transformimage from "@/assets/hcfd_images/transformimage.png";
|
|
|
+import rotationimage from "@/assets/hcfd_images/rotationimage.png";
|
|
|
+import inviscid from "@/assets/hcfd_images/inviscid.png";
|
|
|
+import laminar from "@/assets/hcfd_images/laminar.png";
|
|
|
+import turbulent from "@/assets/hcfd_images/turbulent.png";
|
|
|
+import times from "@/assets/hcfd_images/times.png";
|
|
|
+import fluxr from "@/assets/hcfd_images/fluxr.png";
|
|
|
+import fluxl from "@/assets/hcfd_images/fluxl.png";
|
|
|
+import fluxj from "@/assets/hcfd_images/fluxj.png";
|
|
|
+import boundary from "@/assets/hcfd_images/boundary.png";
|
|
|
+import volume from "@/assets/hcfd_images/volume.png";
|
|
|
+import special from "@/assets/hcfd_images/special.png";
|
|
|
+import swap from "@/assets/hcfd_images/swap.png";
|
|
|
+import run from "@/assets/hcfd_images/run.png";
|
|
|
+import { Message, MessageBox } from "element-ui";
|
|
|
+import store from "@/store";
|
|
|
+import UgridLoad from "./loads/UgridLoad.vue";
|
|
|
+import VolumLoad from "./loads/VolumLoad.vue";
|
|
|
+import BoundaryLoad from "./loads/BoundaryLoad.vue";
|
|
|
+import { request, uploadFile } from "@/utils/request";
|
|
|
+import vueUploader from "./fileupload.vue";
|
|
|
+import filesload from "./filesload.vue";
|
|
|
+import { Caegw_ProUrl } from "@/settings"; // 引入settings.js
|
|
|
+import loading from "./loading.vue";
|
|
|
+import transformtool from "./loads/transformtool.vue";
|
|
|
+import echartsHFCD from "./echartsHFCD.vue";
|
|
|
+import TFileStream from "./TFileStream.vue";
|
|
|
+
|
|
|
export default {
|
|
|
- components:{geometry,meshindex},
|
|
|
+ components:{geometry,meshindex, vueUploader,
|
|
|
+ filesload,
|
|
|
+ loading,
|
|
|
+ UgridLoad,
|
|
|
+ VolumLoad,
|
|
|
+ BoundaryLoad,
|
|
|
+ transformtool,
|
|
|
+ Pagination,
|
|
|
+ // vtkLoad,
|
|
|
+ echartsHFCD,
|
|
|
+ TFileStream,},
|
|
|
+ // websocket,},
|
|
|
data() {
|
|
|
- return {
|
|
|
- tabPosition: 'top',
|
|
|
- activeName: 'one',
|
|
|
+ return {
|
|
|
+ mcnames:'apply1',
|
|
|
+ formLabelWidth: '60px',
|
|
|
+ formLabelWidth2:'73px',
|
|
|
+ formLabelWidth4:'37px',
|
|
|
+ formLabelWidth5:'100px',
|
|
|
+ formLabelWidth6:'120px',
|
|
|
+ formLabelWidth7:'170px',
|
|
|
+ switchvalue: '1',
|
|
|
+ styX:{
|
|
|
+ left:''
|
|
|
+ },
|
|
|
+ t1,
|
|
|
+ t2,
|
|
|
+ t3,
|
|
|
+ t4,
|
|
|
+ t5,
|
|
|
+ w1,
|
|
|
+ w2,
|
|
|
+ w3,
|
|
|
+ w4,
|
|
|
+ w5,
|
|
|
+ w6,
|
|
|
+ d1,
|
|
|
+ d2,
|
|
|
+ d3,
|
|
|
+ d4,
|
|
|
+ visibles:false,
|
|
|
+ restime:'',
|
|
|
+ numzhexian:'',
|
|
|
+ newlog:'',
|
|
|
+ luobj:{
|
|
|
+ projectName:'',
|
|
|
+ projectId:'',
|
|
|
+ projectDesc:'',
|
|
|
+ },
|
|
|
+ // current:0,
|
|
|
+ lsolverState:"",
|
|
|
+ footerShow:true,
|
|
|
+ bMesh:0,
|
|
|
+ bContour:1,
|
|
|
+ vMesh:0,
|
|
|
+ vContour:1,
|
|
|
+ name:"New",
|
|
|
+ xiugai:{},
|
|
|
+ Surfacenum: 3,
|
|
|
+ Volumenum:3,
|
|
|
+ clearobj:{
|
|
|
+ projectId:'',
|
|
|
+ fileType:'',
|
|
|
+ step:Number
|
|
|
+ },
|
|
|
+ servertype:'ugrid',
|
|
|
+ tstep:Number,
|
|
|
+ wstep:'0',
|
|
|
+ step:'0',
|
|
|
+ srsurl:'ugrid',
|
|
|
+ footerval:'on',
|
|
|
+ top:'50px',
|
|
|
+ formLabelWidth1:'70px',
|
|
|
+ formLabelWidth3:'180px',
|
|
|
+ visiable:false,
|
|
|
+ dialogFormVisible: false,
|
|
|
+ form1: {
|
|
|
+ ssd: '',
|
|
|
+ kelvins:'',
|
|
|
+ delivery: false,
|
|
|
+ type: [],
|
|
|
+ resource: '',
|
|
|
+ desc: ''
|
|
|
+ },
|
|
|
+ sum:"",
|
|
|
+ formLabelWidth: '120px',
|
|
|
+ adilog: adilog,
|
|
|
+ activeName: 'one',
|
|
|
+ tabPosition: 'bottom',
|
|
|
+ showtrue:true,
|
|
|
+ drawer: true,
|
|
|
+ direction: 'rtl',
|
|
|
+ twolist:[
|
|
|
+ { icon:t1, titlie:'缩放'},
|
|
|
+ {icon:t2, titlie:'平移'},
|
|
|
+ {icon:t3, titlie:'旋转'},
|
|
|
+ {icon:t4, titlie:'分析类型'},
|
|
|
+ {icon:t5, titlie:'并行类型'},
|
|
|
+ ],
|
|
|
+ physicslist:[
|
|
|
+ { icon:w1, titlie:'控制方程'},
|
|
|
+ ],
|
|
|
+ physicslist2:[
|
|
|
+ { icon:w2, titlie:'粘性模型'},
|
|
|
+ // {icon:"icon-d-glassware", titlie:'层流'},
|
|
|
+ // {icon:"icon-xunhuanbofang", titlie:'湍流'},
|
|
|
+ {icon:w3, titlie:'运动网格'},
|
|
|
+ ],
|
|
|
+ physicslist1:[
|
|
|
+ { icon:w4, titlie:'边界条件'},
|
|
|
+ { icon:w5, titlie:'参考条件'},
|
|
|
+ { icon:w6, titlie:'非惯性参考系'}
|
|
|
+ ],
|
|
|
+ solutionlist:[
|
|
|
+ { icon:"icon-chanpinleibie-02", titlie:'通量残差构造方法'},
|
|
|
+ { icon:"icon-xianzhixiaofeiling", titlie:'通量限制器'},
|
|
|
+ { icon:"icon-shengchenggouzaozhu", titlie:'通量雅可比构造方法'},
|
|
|
+ { icon:"icon-tijikongjian", titlie:'无粘通量方法'}
|
|
|
+
|
|
|
+ ],
|
|
|
+ solutionlist1:[
|
|
|
+ { icon:"icon-shijian4", titlie:'时间格式'},
|
|
|
+ { icon:"icon-a-jisuanjidiannaofenxishujuzoushiqushi", titlie:'时间推进'},
|
|
|
+ ],
|
|
|
+ solutionlist2:[
|
|
|
+ { icon:"icon-icon_duyoudemoshiyuleixing", titlie:'线性方程组求解参数'},
|
|
|
+ { icon:"icon-jiqunchushihua", titlie:'初始化'},
|
|
|
+ ],
|
|
|
+ solutionlist3:[
|
|
|
+ { icon:"icon-zhengzaiyunhangliebiao", titlie:'运行控制'},
|
|
|
+ { icon:"icon-3D", titlie:'边界输出'},
|
|
|
+ { icon:"icon-ziyuan1252", titlie:'体积输出'},
|
|
|
+ ],
|
|
|
+ solutionlist4:[
|
|
|
+ { icon:"icon-xitongcanshupeizhi", titlie:'Advanced Option_特殊的参数'},
|
|
|
+ { icon:"icon-icon", titlie:'Advanced Option_Swap Y-Z Axres'},
|
|
|
+ { icon:"icon-yunhang", titlie:'运行'},
|
|
|
+ { icon:"icon-quxiantu", titlie:'Monitor'},
|
|
|
+ { icon:"icon-tuxingtuxiangchuli", titlie:'资源选择'},
|
|
|
+ ],
|
|
|
+ resultslist:[
|
|
|
+ { icon:"icon-cankaowenjian", titlie:'下载求解结果'},
|
|
|
+ { icon:"icon-d-printer", titlie:'Surface Grid'},
|
|
|
+ { icon:"icon-3dtouchshangpinliebiao", titlie:'Volume Grid'},
|
|
|
+ ],
|
|
|
+ unitlist:[
|
|
|
+ { icon:d1, titlie:'单位换算'},
|
|
|
+ { icon:d2, titlie:'Y+计算器'},
|
|
|
+ { icon:d3, titlie:'雷诺数计算'},
|
|
|
+ ],
|
|
|
+ selectlist1:[
|
|
|
+ {value:'inviscid',name:'无粘'},
|
|
|
+ {value:'laminar',name:'层流'},
|
|
|
+ {value:'turbulent',name:'湍流'},
|
|
|
+ ],
|
|
|
+ selectlist2:[
|
|
|
+ {value:'sa',name:'SA'},
|
|
|
+ {value:'k-omega-sst',name:'Menter-SST'},
|
|
|
+ {value:'sa-des',name:'SA-DES'},
|
|
|
+ {value:'k-omega-des',name:'k-omega-DES'},
|
|
|
+ {value:'linear-k-epsilon',name:'Linear-k-epsilon'},
|
|
|
+ {value:'abid-k-epsilon',name:'Abid-k-epsilon'},
|
|
|
+ {value:'menter-sst-les',name:'Menter-SST-LES'},
|
|
|
+ {value:'Wilcox-les',name:'Wilcox-LES'},
|
|
|
+ ],
|
|
|
+ active:'',
|
|
|
+ //大对象
|
|
|
+ ziyprojects:[],
|
|
|
+ paginationConfig: {
|
|
|
+ hideSinglePage: false,
|
|
|
+ page: 1,
|
|
|
+ size: 15,
|
|
|
+ sizeList: [10, 15, 30, 50],
|
|
|
+ layout: 'total, sizes, prev, pager, next, jumper',
|
|
|
+ total: 0,
|
|
|
+ },
|
|
|
+ getRowKeys(row) {
|
|
|
+ return row.id;
|
|
|
+ },
|
|
|
+ selsectid:[],
|
|
|
+ missType:true,
|
|
|
+ initialization: "",
|
|
|
+ upVisible: false,
|
|
|
+ Yvisiable: false,
|
|
|
+ llsvisiable: false,
|
|
|
+ newload: true,
|
|
|
+ runMonitor: true,
|
|
|
+ contourLevel: 3,
|
|
|
+ exLoading:"hidden",
|
|
|
+
|
|
|
+ form: {
|
|
|
+ u_freestream: "",
|
|
|
+ rho: "",
|
|
|
+ L: "",
|
|
|
+ mu: "",
|
|
|
+ y_plus_desired: "",
|
|
|
+
|
|
|
+ dtc: "",
|
|
|
+ md: "",
|
|
|
+ ls: "",
|
|
|
+ cd: "",
|
|
|
+ Rex: "",
|
|
|
+ Re: "",
|
|
|
+ lys: "",
|
|
|
+ lmi: "",
|
|
|
+ ldlzxxs: "",
|
|
|
+ lld: "",
|
|
|
+ Re: "",
|
|
|
+ dtc: "",
|
|
|
+ lls: "",
|
|
|
+ },
|
|
|
+ uploadlist: [
|
|
|
+ {
|
|
|
+ name: "mapbc",
|
|
|
+ percentage: 0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "ugrid",
|
|
|
+ percentage: 0,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ ContourSurface: false,
|
|
|
+ adilog: adilog,
|
|
|
+ loading: loading,
|
|
|
+ scaleimage: scaleimage,
|
|
|
+ transformimage: transformimage,
|
|
|
+ rotationimage: rotationimage,
|
|
|
+ inviscid: inviscid,
|
|
|
+ laminar: laminar,
|
|
|
+ turbulent: turbulent,
|
|
|
+ times: times,
|
|
|
+ fluxr: fluxr,
|
|
|
+ fluxj: fluxj,
|
|
|
+ fluxl: fluxl,
|
|
|
+ boundary: boundary,
|
|
|
+ volume: volume,
|
|
|
+ special: special,
|
|
|
+ run: run,
|
|
|
+ swap: swap,
|
|
|
+ headMenu_2Show: false,
|
|
|
+ leftMenu_2Show: false,
|
|
|
+ gennealShow: false,
|
|
|
+ physicsShow: false,
|
|
|
+ solutionShow: false,
|
|
|
+ resultShow: false,
|
|
|
+ Consoleshow: true,
|
|
|
+ openshow:false,
|
|
|
+ TaskGenealshow: false,
|
|
|
+ TaskPhysicsshow: false,
|
|
|
+ TaskSolutionshow: false,
|
|
|
+ TaskSurfaceshow: false,
|
|
|
+ TaskVolumeshow: false,
|
|
|
+ ugridUrl: "",
|
|
|
+ bload: null,
|
|
|
+ websock: null,
|
|
|
+ logs: "欢迎来到HCFD",
|
|
|
+ islogload: true, //控制log请求(ture 发起 false 不发起)
|
|
|
+ outline: "OutLine",
|
|
|
+ fileNames: [],
|
|
|
+
|
|
|
+ belementCheckeds: ["Contour"],
|
|
|
+ boundaryStep: [],
|
|
|
+ bStep: 0,
|
|
|
+ boundaryScalars: [],
|
|
|
+ bScalar: "cp",
|
|
|
+
|
|
|
+ velementCheckeds: ["Contour"],
|
|
|
+ vStep: 0,
|
|
|
+ volumStep: [],
|
|
|
+ volumScalars: [],
|
|
|
+ vSalar: "p",
|
|
|
+
|
|
|
+ isSolverEnd: false, //判断是否求解完成
|
|
|
+ solverState: "0", //求解状态(0-未求解 1-求解中 2-求解完成)
|
|
|
+
|
|
|
+ menuList: [
|
|
|
+ {
|
|
|
+ id: "1",
|
|
|
+ label: "Setup",
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ id: "2",
|
|
|
+ label: "General",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "3",
|
|
|
+ label: "Physics",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "4",
|
|
|
+ label: "Solution",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "5",
|
|
|
+ label: "Results",
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ id: "6",
|
|
|
+ label: "Monitor",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "7",
|
|
|
+ label: "Surface Grid",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "8",
|
|
|
+ label: "Volume Grid",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "9",
|
|
|
+ label: "Ugrid",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ],
|
|
|
+
|
|
|
+ dialog: {
|
|
|
+ //弹出框 控制
|
|
|
+ new_visiable: false,
|
|
|
+ load_visiable: false,
|
|
|
+ ziyuan:false,
|
|
|
+ upload_visiable: false,
|
|
|
+ scale_visiable: false,
|
|
|
+ translation_visiable: false,
|
|
|
+ rotation_visiable: false,
|
|
|
+ type_visiable:false,
|
|
|
+ parallel_visiable:false,
|
|
|
+ equation_visiable:false,
|
|
|
+ inviscid_visiable:false,
|
|
|
+ laminar_visiable: false,
|
|
|
+ turbulent_visiable: false,
|
|
|
+ dynamic_visiable:false,
|
|
|
+ nonitertial_visiable:false,
|
|
|
+ border_visiable:false,
|
|
|
+ reference_visiable: false,
|
|
|
+ fluxrc_visiable: false,
|
|
|
+ fluxl_visiable: false,
|
|
|
+ fluxjc_visiable: false,
|
|
|
+ fluxwz_visiable:false,
|
|
|
+ time_visiable: false,
|
|
|
+ timeasm_visiable: false,
|
|
|
+ xian_visiable:false,
|
|
|
+ initialization_visiable:false,
|
|
|
+ specified_visiable: false, //未完成
|
|
|
+ runc_visiable: false,
|
|
|
+ boundaryo_visiable: false,
|
|
|
+ volumeo_visiable: false,
|
|
|
+ specialp_visiable: false,
|
|
|
+ swap_visiable: false,
|
|
|
+ SurfaceGrid_visiable:false,
|
|
|
+ VolumeGrid_visiable:false,
|
|
|
+ },
|
|
|
+ geneal: {
|
|
|
+ //数据存储
|
|
|
+ MeshTransform: {
|
|
|
+ Scale: {
|
|
|
+ Factor: 1,
|
|
|
+ },
|
|
|
+ Translation: {
|
|
|
+ Distance: 0,
|
|
|
+ X: 1,
|
|
|
+ Y: 0,
|
|
|
+ Z: 0,
|
|
|
+ },
|
|
|
+ Rotation: {
|
|
|
+ Angle: 0,
|
|
|
+ X: 0,
|
|
|
+ Y: 0,
|
|
|
+ Z: 0,
|
|
|
+ X1: 1,
|
|
|
+ Y1: 0,
|
|
|
+ Z1: 0,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ Physics: {
|
|
|
+ Turbulent: {
|
|
|
+ TurbulentPrandtlNumber: 0.9,
|
|
|
+ },
|
|
|
+ Boundary: {
|
|
|
+ bquery: null, //hcfdBoundary 选中数据 id
|
|
|
+ hcfdBoundaryquery: null, //hcfdBoundary 选中数据
|
|
|
+ cquery: null,
|
|
|
+ /* 黎曼远场边界(Farfield) 5000
|
|
|
+ * 自由来流边界(Freestream)5050
|
|
|
+ * 无粘壁面(Inviscous Wall) 3000
|
|
|
+ * 粘性壁面(Viscous Wall)4000
|
|
|
+ * X-对称平面(X-symmetry Plane)6661
|
|
|
+ * Y-对称平面(Y-symmetry Plane ) 6662
|
|
|
+ * Z-对称平面Z-symmetry Plane) 6663
|
|
|
+ * 周期边界(Periodic) 6100*/
|
|
|
+ Conditions: [
|
|
|
+ { conditionsCode: 5000, name: "Farfield" },
|
|
|
+ { conditionsCode: 5050, name: "Freestream" },
|
|
|
+ { conditionsCode: 3000, name: "Inviscous Wall" },
|
|
|
+ { conditionsCode: 4000, name: "Viscous Wall" },
|
|
|
+ { conditionsCode: 6661, name: "X-symmetry Plane" },
|
|
|
+ { conditionsCode: 6662, name: "Y-symmetry Plane" },
|
|
|
+ { conditionsCode: 6663, name: "Z-symmetry Plane" },
|
|
|
+ { conditionsCode: 6100, name: "Periodic" },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ },
|
|
|
+ Solution: {
|
|
|
+ boundaryout: {
|
|
|
+ checkAll: false,
|
|
|
+ checkeds: [],
|
|
|
+ lists: [
|
|
|
+ "X-component of velocity",
|
|
|
+ "Y-component of velocity",
|
|
|
+ "Z-component of velocity",
|
|
|
+ "Press",
|
|
|
+ "Press coefficient",
|
|
|
+ "Mach Number",
|
|
|
+ "Vorticity magnitude",
|
|
|
+ "X-component of vorticity",
|
|
|
+ "Y-component of vorticity",
|
|
|
+ "Z-component of vorticity",
|
|
|
+ "Q Criterion",
|
|
|
+ ],
|
|
|
+ isIndeterminate: true,
|
|
|
+ },
|
|
|
+ volumout: {
|
|
|
+ checkAll: false,
|
|
|
+ checkeds: [],
|
|
|
+ lists: [
|
|
|
+ "X-component of velocity",
|
|
|
+ "Y-component of velocity",
|
|
|
+ "Z-component of velocity",
|
|
|
+ "Press",
|
|
|
+ "Press coefficient",
|
|
|
+ "Mach Number",
|
|
|
+ "Vorticity magnitude",
|
|
|
+ "X-component of vorticity",
|
|
|
+ "Y-component of vorticity",
|
|
|
+ "Z-component of vorticity",
|
|
|
+ "Q Criterion",
|
|
|
+ ],
|
|
|
+ isIndeterminate: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ //state -1,0 ,1
|
|
|
+ //message
|
|
|
+ //type 1 一般 2 下载
|
|
|
+ loadObjs: [],
|
|
|
+ loadVVisiable: false,
|
|
|
+ loading: false,
|
|
|
+ fileurls: [],
|
|
|
+ project: {
|
|
|
+ projectId: "",
|
|
|
+ lesseeId:'',
|
|
|
+ projectName: "",
|
|
|
+ projectType: "hcfd",
|
|
|
+ projectDesc: "",
|
|
|
+ fileType: "ascii",
|
|
|
+ solverfiles: [],
|
|
|
+ solverVolumUrls: [],
|
|
|
+ solverBoundaryUrls: [],
|
|
|
+ loadfils: [],
|
|
|
+ converge: "",
|
|
|
+ uid: "",
|
|
|
+ },
|
|
|
+ projects: [],
|
|
|
+ parameterObjclone: [],
|
|
|
+ parameterObj: {
|
|
|
+ hcfdBoundarys: [
|
|
|
+ {
|
|
|
+ name: "WING1",
|
|
|
+ id: 1,
|
|
|
+ conditionsCode: 3000,
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ nmlParam: {
|
|
|
+ a_vort_mag: "false",
|
|
|
+ case_title: "case_name",
|
|
|
+ angle_of_yaw: 0,
|
|
|
+ x_moment_center: 0,
|
|
|
+ eqn_type: "cal_perf_incompress",
|
|
|
+ schedule_cfl: [200, 200],
|
|
|
+ swap_yz_axes: "false",
|
|
|
+ v_vort_mag: "false",
|
|
|
+ pseudo_time_stepping: "on",
|
|
|
+ meanflow_sweeps: 15,
|
|
|
+ a_p: "true",
|
|
|
+ a_u: true,
|
|
|
+ a_w: "true",
|
|
|
+ a_v: "true",
|
|
|
+ dynamic_Mesh: "off",
|
|
|
+ jacobian_eval_freq: 10,
|
|
|
+ turb_model: "sa",
|
|
|
+ grid_format: "aflr3",
|
|
|
+ turbulence_sweeps: 10,
|
|
|
+ mach_number: 0.5,
|
|
|
+ y_moment_length: 1,
|
|
|
+ area_reference: 1,
|
|
|
+ flux_limiter: "none",
|
|
|
+ a_cp: "true",
|
|
|
+ viscous_terms: "inviscid",
|
|
|
+ volume_animation_freq: 100,
|
|
|
+ steps: 1500,
|
|
|
+ flux_construction_lhs: "roe",
|
|
|
+ stopping_tolerance: 1.0e-15,
|
|
|
+ prandtlnumber_molecular: 0.72,
|
|
|
+ restart_write_freq: 250,
|
|
|
+ v_vort_x: "false",
|
|
|
+ schedule_iteration: [1, 50],
|
|
|
+ v_vort_y: "false",
|
|
|
+ v_vort_z: "false",
|
|
|
+ line_implicit: "off",
|
|
|
+ temperature_units: "Rankine",
|
|
|
+ number_of_Processors: 2,
|
|
|
+ x_moment_length: 1,
|
|
|
+ time_accuracy: "steady",
|
|
|
+ angle_of_attack: 0,
|
|
|
+ subiterations: 0,
|
|
|
+ artificial_compress: 15,
|
|
|
+ a_q_criterion: "false",
|
|
|
+ schedule_cflturb: [50, 50],
|
|
|
+ schedule: 1,
|
|
|
+ first_order_iterations: 0,
|
|
|
+ restart_read: "off",
|
|
|
+ temperature: 491.4,
|
|
|
+ input_version: 2.2,
|
|
|
+ namelist_verbosity: "off",
|
|
|
+ ignore_euler_number: "false",
|
|
|
+ data_format: "ascii",
|
|
|
+ v_cp: "true",
|
|
|
+ time_step_nondim: 0,
|
|
|
+ a_mach: "true",
|
|
|
+ large_angle_fix: "off",
|
|
|
+ v_p: "true",
|
|
|
+ animation_freq: 100,
|
|
|
+ v_mach: "true",
|
|
|
+ project_rootname: "tf",
|
|
|
+ v_v: "true",
|
|
|
+ v_q_criterion: "false",
|
|
|
+ v_u: "true",
|
|
|
+ y_moment_center: 0,
|
|
|
+ v_w: true,
|
|
|
+ z_moment_center: 0,
|
|
|
+ parallel_Optional: "Serial",
|
|
|
+ analysis_Type: "Steady",
|
|
|
+ noninertial_Reference_Frame: "off",
|
|
|
+ flux_construction: "roe",
|
|
|
+ a_vort_z: "false",
|
|
|
+ a_vort_y: "false",
|
|
|
+ a_vort_x: "false",
|
|
|
+ reynolds_number: 1000000,
|
|
|
+ },
|
|
|
+ },
|
|
|
+
|
|
|
+ renderer_hight: 500,
|
|
|
+ renderer_width: 500,
|
|
|
+ showUgridflag: false, //ugrid 是否显示过
|
|
|
+ showSurfaceflag: false, //surface 是否显示过
|
|
|
+ showVolumeflage: false, //Volume 是否显示过
|
|
|
+ showMonitorflage: false, //Monitor是否显示过
|
|
|
+ };
|
|
|
+},
|
|
|
+
|
|
|
+ created(){
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+
|
|
|
+ this.init();
|
|
|
+ },
|
|
|
+ destroyed() {
|
|
|
+ this.websock.close() //离开路由之后断开websocket连接
|
|
|
+ },
|
|
|
+methods:{
|
|
|
+ //清除相关信息
|
|
|
+
|
|
|
+ clearAll() {
|
|
|
+ this.showUgridflag = false; //ugrid 是否显示过
|
|
|
+ this.showSurfaceflag = false; //surface 是否显示过
|
|
|
+ this.showVolumeflage = false; //Volume 是否显示过
|
|
|
+ this.showMonitorflage = false;
|
|
|
+ this.islogload = true;
|
|
|
+
|
|
|
+ this.logs = "";
|
|
|
+ this.project = {
|
|
|
+ projectId: "",
|
|
|
+ projectName: "",
|
|
|
+ projectType: "hcfd",
|
|
|
+ projectDesc: "",
|
|
|
+ fileType: "ascii",
|
|
|
+ solverfiles: [],
|
|
|
+ solverVolumUrls: [],
|
|
|
+ solverBoundaryUrls: [],
|
|
|
+ loadfils: [],
|
|
|
+ converge: "",
|
|
|
+ };
|
|
|
+ },
|
|
|
+
|
|
|
+ handleClick(tab, event) {
|
|
|
+ if(this.activeName=='five'){
|
|
|
+ let params = {
|
|
|
+ transCode: "A00107",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ };
|
|
|
+ // console.log(params);clickgeometry
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ this.lsolverState=res.solverState;
|
|
|
+ } )
|
|
|
+ if(this.lsolverState=='2'){
|
|
|
+ this.resultdata();
|
|
|
+ }else{
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "求解未完成,请完成求解",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+
|
|
|
}
|
|
|
+ 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 'info1-0':
|
|
|
+ this.name="New"
|
|
|
+ this.clickNew();
|
|
|
+ break;
|
|
|
+ case 'info1-1':
|
|
|
+ this.loadProjects();
|
|
|
+ break;
|
|
|
+ case 'info1-2':
|
|
|
+ this.name="amend"
|
|
|
+ this.clickNew();
|
|
|
+ break;
|
|
|
+ case 'two-0':
|
|
|
+ this.dialog.scale_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'two-1':
|
|
|
+ this.dialog.translation_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'two-2':
|
|
|
+ this.dialog.rotation_visiable= true;
|
|
|
+ case 'two-3':
|
|
|
+ this.dialog.type_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'two-4':
|
|
|
+ this.dialog.parallel_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'three-0':
|
|
|
+ this.dialog.equation_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'three2-0':
|
|
|
+ this.dialog.inviscid_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'three2-1':
|
|
|
+ this.dialog.dynamic_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'three1-0':
|
|
|
+ this.dialog.border_visiable= true;
|
|
|
+ break;
|
|
|
+ case 'three1-1':
|
|
|
+ this.dialog.reference_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'three1-2':
|
|
|
+ this.dialog.nonitertial_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four-0':
|
|
|
+ this.dialog.fluxrc_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four-1':
|
|
|
+ this.dialog. fluxl_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four-2':
|
|
|
+ this.dialog.fluxjc_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four-3':
|
|
|
+ this.dialog.fluxwz_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four1-0':
|
|
|
+ this.dialog.time_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four1-1':
|
|
|
+ this.dialog.timeasm_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four2-0':
|
|
|
+ this.dialog.xian_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four2-1':
|
|
|
+ this.dialog.initialization_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four3-0':
|
|
|
+ this.dialog.runc_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four3-1':
|
|
|
+ this.dialog.boundaryo_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four3-2':
|
|
|
+ this.dialog.volumeo_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four4-0':
|
|
|
+ this.dialog.specialp_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four4-1':
|
|
|
+ this.dialog.swap_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'four4-2':
|
|
|
+ this.hcfdrun(true);
|
|
|
+ break;
|
|
|
+ case 'four4-3':
|
|
|
+ this.getbtnmonitor();
|
|
|
+ break;
|
|
|
+ case 'four4-4':
|
|
|
+ this.showresource();
|
|
|
+ break;
|
|
|
+ case 'five-0':
|
|
|
+ break;
|
|
|
+ case 'five-1':
|
|
|
+ this.dialog.SurfaceGrid_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'five-2':
|
|
|
+ this.dialog.VolumeGrid_visiable = true;
|
|
|
+ break;
|
|
|
+ case 'six-0':
|
|
|
+ this.visiable=true;
|
|
|
+ break;
|
|
|
+ case 'six-1':
|
|
|
+ this.Yvisiable= true;
|
|
|
+ break;
|
|
|
+ case 'six-2':
|
|
|
+ this.llsvisiable = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
},
|
|
|
- methods:{
|
|
|
+ //清除相关信息
|
|
|
+ clearAll() {
|
|
|
+ this.showUgridflag = false; //ugrid 是否显示过
|
|
|
+ this.showSurfaceflag = false; //surface 是否显示过
|
|
|
+ this.showVolumeflage = false; //Volume 是否显示过
|
|
|
+ this.showMonitorflage = false;
|
|
|
+
|
|
|
+ this.$refs.ugridLoad.clear();
|
|
|
+ this.$refs.volumLoad.clear();
|
|
|
+ this.$refs.boundaryLoad.clear();
|
|
|
+
|
|
|
+ this.$refs.ugridLoad.hiden();
|
|
|
+ this.$refs.volumLoad.hiden();
|
|
|
+ this.$refs.boundaryLoad.hiden();
|
|
|
+ this.islogload = true;
|
|
|
+
|
|
|
+ this.logs = "";
|
|
|
+ this.project = {
|
|
|
+ projectId: "",
|
|
|
+ projectName: "",
|
|
|
+ projectType: "hcfd",
|
|
|
+ projectDesc: "",
|
|
|
+ fileType: "ascii",
|
|
|
+ solverfiles: [],
|
|
|
+ solverVolumUrls: [],
|
|
|
+ solverBoundaryUrls: [],
|
|
|
+ loadfils: [],
|
|
|
+ converge: "",
|
|
|
+ };
|
|
|
+ },
|
|
|
+ init() {
|
|
|
+ // this.project.projectId ='81797100f859485e8aad9492a18904a7'
|
|
|
+ this.project.projectId = this.$route.query.projectId; //获取url 参数
|
|
|
+ this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
|
|
|
+ // this.project.projectId = '86d0d4a3f85c40bea218936b6bad59ca';
|
|
|
|
|
|
- handleClick(tab, event) {
|
|
|
+ if (
|
|
|
+ this.project.projectId != undefined &&
|
|
|
+ this.project.projectId != null
|
|
|
+ ) {
|
|
|
+ // this.selectProjectOK();
|
|
|
+ }
|
|
|
+ this.missType=true
|
|
|
+ // this.changeRendererSize();
|
|
|
+ },
|
|
|
+ logtime(){
|
|
|
+ let self = this;
|
|
|
+ let projectId = self.project.projectId;
|
|
|
+ if (projectId != null && projectId != "" && self.islogload) {
|
|
|
+ self.islogload = false;
|
|
|
+ let params = {
|
|
|
+ transCode: "A00112",
|
|
|
+ projectId: projectId,
|
|
|
+ page: 0,
|
|
|
+ count: 30,
|
|
|
+ };
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res)
|
|
|
+ let rows = res.rows;
|
|
|
+ self.logs = ""; //只显示最新的数据
|
|
|
+ rows.forEach((row) => {
|
|
|
+ self.logs = row.log + "\n" + self.logs;
|
|
|
+ if (row.log.indexOf("Solver end") > 0) {
|
|
|
+ self.isSolverEnd = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ self.islogload = true;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ self.islogload = true;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getlogs(){
|
|
|
+ var self = this;
|
|
|
+ let logtime=setInterval(getLog, 10000);
|
|
|
+ function getLog() {
|
|
|
+ let projectId = self.project.projectId;
|
|
|
+ if (projectId != null && projectId != "" && self.islogload) {
|
|
|
+ self.islogload = false;
|
|
|
+ let params = {
|
|
|
+ transCode: "A00112",
|
|
|
+ projectId: projectId,
|
|
|
+ page: 0,
|
|
|
+ count: 30,
|
|
|
+ };
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ let rows = res.rows;
|
|
|
+ console.log(rows);
|
|
|
+ self.logs = ""; //只显示最新的数据
|
|
|
+ rows.forEach((row) => {
|
|
|
+ self.logs = row.log + "\n" + self.logs;
|
|
|
+ if (row.log.indexOf("Solver end") >= 0) {
|
|
|
+ // console.log(row.log)
|
|
|
+ self.exLoading='hidden';
|
|
|
+ clearInterval(logtime)
|
|
|
+ self.isSolverEnd = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ self.islogload = true;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ self.islogload = true;
|
|
|
+ self.exLoading='hidden';
|
|
|
+ clearInterval(logtime)
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ getLog();
|
|
|
+ },
|
|
|
+ // setBoundaryScalars(scalars) {
|
|
|
+ // this.boundaryScalars = scalars;
|
|
|
+ // },
|
|
|
+ setVolumScalars(scalars) {
|
|
|
+ console.log(scalars)
|
|
|
+ this.volumScalars = scalars;
|
|
|
+ },
|
|
|
+ changeRendererSize() {
|
|
|
+ let allHight = this.$refs.all_w.offsetHeight;
|
|
|
+ let allwidth = this.$refs.all_w.offsetWidth;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (!this.headMenu_2Show) {
|
|
|
+ this.renderer_hight = allHight - 61 - 149 - 13;
|
|
|
+ this.renderer_width = allwidth - 300;
|
|
|
+ this.$refs.transform.changeCssBig();
|
|
|
+ } else if (this.headMenu_2Show) {
|
|
|
+ this.renderer_hight = allHight - 61 - 207 - 149 - 6;
|
|
|
+ this.renderer_width = allwidth - 300;
|
|
|
+ this.$refs.transform.changeCssSmall();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 工具栏的点击事件
|
|
|
+ yCalchange() {
|
|
|
+ this.Yvisiable = true;
|
|
|
+ },
|
|
|
+ reyCalchange() {
|
|
|
+ this.llsvisiable = true;
|
|
|
+ },
|
|
|
+ atmoCalchange() {},
|
|
|
+ // 弹框执行事件
|
|
|
+ // 弹框执行事件
|
|
|
+ referencevisiable() {
|
|
|
+ this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
|
|
|
+ this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
|
|
|
+ // this.dialog.scale_visiable = false;
|
|
|
+ },
|
|
|
+
|
|
|
+ timeasmvisiable() {
|
|
|
+ this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
|
|
|
+ this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
|
|
|
+ this.dialog.timeasm_visiable = false;
|
|
|
+ },
|
|
|
+ runcvisiable() {
|
|
|
+ this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
|
|
|
+ this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
|
|
|
+ this.dialog.runc_visiable = false;
|
|
|
+ },
|
|
|
+ // this.$emit("visiable",this.visiable);
|
|
|
+ dialogbtnkew(){
|
|
|
+ this.form1.ssd="";
|
|
|
+ var kelvins=parseFloat(this.form1.kelvins)
|
|
|
+ this.form1.ssd = this.accAdd(kelvins,273.15);
|
|
|
+ // this.form.ssd = Math.floor((parseInt(this.form.kelvins) * 100) / 100)-273.15
|
|
|
+ if( this.form1.ssd <0){
|
|
|
+ this.form1.ssd =0;
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ accAdd(arg1,arg2){
|
|
|
+ var r1,r2,m;
|
|
|
+ try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
|
|
|
+ try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
|
|
|
+ m=Math.pow(10,Math.max(r1,r2))
|
|
|
+ return (arg1*m-arg2*m)/m
|
|
|
+ },
|
|
|
+
|
|
|
+ dialogbtnssd(){
|
|
|
+ this.form1.kelvins="";
|
|
|
+ var ssd=parseFloat(this.form1.ssd)
|
|
|
+ this.form1.kelvins= this.accAdd(ssd ,-273.15);
|
|
|
+ //this.form.kelvins = Math.floor((parseInt(this.form.ssd) * 100) / 100) +273.15
|
|
|
+ },
|
|
|
+ dialogbtny() {
|
|
|
+ let u_freestream = eval(this.form.u_freestream);
|
|
|
+ if (u_freestream <= 0.0) {
|
|
|
+ alert("Free stream velocity must be greater than zero");
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
+ let rho = eval(this.form.rho);
|
|
|
+ if (rho <= 0.0) {
|
|
|
+ alert("Density must be greater than zero");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let L = eval(this.form.L);
|
|
|
+ if (L <= 0.0) {
|
|
|
+ alert("Boundary layer reference length must be greater than zero");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let mu = eval(this.form.mu);
|
|
|
+ if (mu <= 0.0) {
|
|
|
+ alert("Dynamic viscosity must be greater than zero");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let y_plus_desired = eval(this.form.y_plus_desired);
|
|
|
+ if (y_plus_desired <= 0.0) {
|
|
|
+ alert("Desired y+ value must be greater than zero");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let Re = (rho * u_freestream * L) / mu;
|
|
|
+ let C_f = 0.026 * Math.pow(Re, -(1.0 / 7.0));
|
|
|
+ C_f = 0.0576 * Math.pow(Re, -1.0 / 5.0);
|
|
|
+ C_f = 0.37 * Math.pow(Math.log(Re) / Math.log(10), -2.584);
|
|
|
+ C_f = Math.pow((2 * Math.log(Re)) / Math.log(10) - 0.65, -2.3);
|
|
|
+ let tau_w = C_f * 0.5 * rho * u_freestream * u_freestream;
|
|
|
+ let U_f = Math.sqrt(tau_w / rho);
|
|
|
+ let wall_distance_estimation = (y_plus_desired * mu) / (U_f * rho);
|
|
|
+ this.form.Rex = Re.toExponential(1);
|
|
|
+ this.form.dtc = wall_distance_estimation.toExponential(1);
|
|
|
+ },
|
|
|
+ leinsdialogbtny() {
|
|
|
+ this.form.Re =
|
|
|
+ (this.form.lmi * this.form.lls * this.form.lld) / this.form.ldlzxxs;
|
|
|
+ // console.log(this.form.Re);
|
|
|
+ },
|
|
|
+ unitConversion() {
|
|
|
+ this.$refs.Calculator.visiable = true;
|
|
|
+ },
|
|
|
+ taskchangGeneal() {
|
|
|
+ this.TaskGenealshow = false;
|
|
|
+ },
|
|
|
+ taskchangPhysics() {
|
|
|
+ this.TaskPhysicsshow = false;
|
|
|
+ },
|
|
|
+ taskchangSolution() {
|
|
|
+ this.TaskSolutionshow = false;
|
|
|
+ },
|
|
|
+ taskchangSurface() {
|
|
|
+ this.TaskSurfaceshow = false;
|
|
|
+ },
|
|
|
+ taskchangVolume() {
|
|
|
+ this.TaskVolumeshow = false;
|
|
|
+
|
|
|
+ },
|
|
|
+ // Contour
|
|
|
+ showLeftMenu(emt) {
|
|
|
+ this.leftMenu_2Show = true;
|
|
|
+ },
|
|
|
+ uploadRequest1(params) {
|
|
|
+ let param = new FormData();
|
|
|
+ param.append("transCode", "A00102");
|
|
|
+ param.append("file", params.file);
|
|
|
+ param.append("projectId", this.project.projectId);
|
|
|
+ uploadFile(param)
|
|
|
+ .then((res) => {
|
|
|
+ // console.log(res);
|
|
|
+ // this.fileId = res.fileId
|
|
|
+ this.findParam();
|
|
|
+ this.getHCFDLoadFiles();
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ uploadRequest2(params) {
|
|
|
+ let param = new FormData();
|
|
|
+ param.append("transCode", "A00102");
|
|
|
+ param.append("file", params.file);
|
|
|
+ param.append("projectId", this.project.projectId);
|
|
|
+ uploadFile(param)
|
|
|
+ .then((res) => {
|
|
|
+ // console.log(res);
|
|
|
+ // this.fileId = res.fileId
|
|
|
+ this.findParam();
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ //获取上传文件
|
|
|
+ async getHCFDLoadFiles() {
|
|
|
+ let params = {
|
|
|
+ transCode: "A00110",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ };
|
|
|
+ await request(params)
|
|
|
+ .then((res) => {
|
|
|
+ this.project.loadfils = res.files;
|
|
|
+ this.fileNames = [];
|
|
|
+ res.files.forEach((url) => {
|
|
|
+ let names = url.filepath.split("/");
|
|
|
+ let name = names[names.length - 1];
|
|
|
+ this.fileNames.push(name);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ //获取计算结果文件 并缓存
|
|
|
+ async gethcfdsolverfiles() {
|
|
|
+ let params = {
|
|
|
+ transCode: "A00109",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ };
|
|
|
+ await request(params)
|
|
|
+ .then((res) => {
|
|
|
+ this.project.solverfiles = res.files;
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ this.project.solverfiles.forEach((solverfile) => {
|
|
|
+ let url = solverfile.filepath;
|
|
|
+ if (
|
|
|
+ url.indexOf("volume_timestep") > 1 ||
|
|
|
+ url.indexOf("boundary_timestep") > 1 ||
|
|
|
+ url.indexOf("converge.dat") > 1
|
|
|
+ ) {
|
|
|
+ let names = url.split("/");
|
|
|
+ let name = names[names.length - 1];
|
|
|
+ let loadOj3 = {
|
|
|
+ type: 2,
|
|
|
+ filename: name,
|
|
|
+ percentage: 0,
|
|
|
+ };
|
|
|
+ this.loadObjs.push(loadOj3);
|
|
|
+ this.$refs.filesload.load(url);
|
|
|
+ }
|
|
|
+ if (url.indexOf("volume_timestep") > 1) {
|
|
|
+ this.project.solverVolumUrls.push(url);
|
|
|
}
|
|
|
+ if (url.indexOf("boundary_timestep") > 1) {
|
|
|
+ this.project.solverBoundaryUrls.push(url);
|
|
|
+ }
|
|
|
+ if (url.indexOf("converge.dat") > 1) {
|
|
|
+ this.project.converge = url;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.project.solverVolumUrls.forEach((url) => {
|
|
|
+ let step = url.split("volume_timestep")[1].split(".da")[0];
|
|
|
+ this.bStep=step;
|
|
|
+ this.volumStep.push(step);
|
|
|
+ let newArr = [...new Set(this.volumStep)]; //去重
|
|
|
+ this.volumStep = newArr;
|
|
|
+ });
|
|
|
+ this.project.solverBoundaryUrls.forEach((url) => {
|
|
|
+ let step = url.split("boundary_timestep")[1].split(".da")[0];
|
|
|
+ this.vStep=step;
|
|
|
+ this.boundaryStep.push(step);
|
|
|
+ let newArr = [...new Set(this.boundaryStep)]; //去重
|
|
|
+ this.boundaryStep = newArr;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 更新配置 并求解
|
|
|
+ */
|
|
|
+ //日志
|
|
|
+ getthislog(log){
|
|
|
+ this.newlog = log+"\n"+this.newlog;
|
|
|
+ this.logs=this.newlog;
|
|
|
+ if ( this.logs.indexOf("Solver end") >= 0) {
|
|
|
+ this.exLoading='hidden';
|
|
|
+ this.isSolverEnd = true;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 剩余时间
|
|
|
+ restimeyear(time){
|
|
|
+ this.restime=time;
|
|
|
+ },
|
|
|
+ //求解
|
|
|
+ hcfdExe() {
|
|
|
+ var _this = this;
|
|
|
+ let params = {
|
|
|
+ transCode: "A00105",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ lesseeId:this.$store.getters.lesseeId,
|
|
|
+ userName:this.$store.getters.name
|
|
|
+ };
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ // console.log("hcfdExe" + err);
|
|
|
+ setTimeout(function () {
|
|
|
+ _this.$refs.loading.visiable = false;
|
|
|
+ }, 4000);
|
|
|
+
|
|
|
+ if (err.returnCode == "EB8100017") {
|
|
|
+ //资源未分配
|
|
|
+
|
|
|
+ MessageBox.confirm("你还未分配资源?", "提示", {
|
|
|
+ confirmButtonText: "分配资源",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ // const errUril = Caegw_ProUrl +"?projectId="+_this.project.projectId;
|
|
|
+ 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(() => {
|
|
|
+ _this.$refs.loading.visiable = false;
|
|
|
+ Message({
|
|
|
+ type: "info",
|
|
|
+ message: "已取消",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async reUpload() {
|
|
|
+ this.$refs.mapbc.uploader.upload();
|
|
|
+ this.$refs.ugrid.uploader.upload();
|
|
|
+ },
|
|
|
+ async ugridShow() {
|
|
|
+ if (
|
|
|
+ this.project.projectId == "" ||
|
|
|
+ this.project.projectId == undefined ||
|
|
|
+ this.project.projectId == null
|
|
|
+ ) {
|
|
|
+ Message({
|
|
|
+ type: "error",
|
|
|
+ message: "缺少文件,请检查修改",
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.dialog.new_visiable = false;
|
|
|
+ this.tstep=0;
|
|
|
+ this.clearserver();
|
|
|
+ this.initWebSocket();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async findParam() {
|
|
|
+ let params = {
|
|
|
+ transCode: "A00107",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ };
|
|
|
+ // console.log(params);
|
|
|
+ await request(params)
|
|
|
+ .then((res) => {
|
|
|
+ // console.log("findParam:" + res);
|
|
|
+ this.project.projectName = res.projectName;
|
|
|
+ this.project.uid = res.uid;
|
|
|
+ let cjuserid = this.$route.query.cjuserid;
|
|
|
+ sessionStorage.setItem('projectName',res.projectName)
|
|
|
+ if(res.missionType==='3'||res.missionType==='4'){
|
|
|
+ this.missType=false
|
|
|
+ }else{
|
|
|
+ this.missType=true
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(this.parameterObj)
|
|
|
+ this.parameterObj = JSON.parse(res.parameterObj);
|
|
|
+ sessionStorage.setItem("res", res.parameterObj);
|
|
|
+ this.lsolverState=res.solverState;
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ //上传配置参数
|
|
|
+ async updateParam() {
|
|
|
+ delete this.parameterObj.nmlParam.initialization;
|
|
|
+ let params = {
|
|
|
+ transCode: "A00104",
|
|
|
+ parameterObj: JSON.stringify(this.parameterObj),
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ console.log(this.parameterObj.nmlParam.a_u);
|
|
|
+ console.log(this.parameterObj);
|
|
|
+ await request(params)
|
|
|
+ .then((res) => {
|
|
|
+ this.solverState = res.solverState;
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ loadProjects() {
|
|
|
+ this.dialog.load_visiable=true;
|
|
|
+ let params = {
|
|
|
+ transCode: "A00101",
|
|
|
+ page: 1,
|
|
|
+ size: 1,
|
|
|
+ projectType: "hcfd",
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ this.loading = true;
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ this.projects = res.rows;
|
|
|
+ this.loading = false;
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ projectsSelectionChange(val) {
|
|
|
+ this.clearAll();
|
|
|
+ if (val.length == 1) {
|
|
|
+
|
|
|
+ this.project.projectId = val[0].projectId;;
|
|
|
+ this.project.projectName =val[0].projectName;
|
|
|
+ this.project.projectDesc = val[0].projectDesc;
|
|
|
+
|
|
|
+ this.xiugai=val[0];
|
|
|
+ } else if (val.length > 1) {
|
|
|
+ this.project.projectId = val[1].projectId;;
|
|
|
+ this.project.projectName =val[1].projectName;
|
|
|
+ this.project.projectDesc = val[1].projectDesc;
|
|
|
+ this.xiugai=val[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ projectsSelectionSelect(selection, row) {
|
|
|
+ if (selection.length <= 1) return;
|
|
|
+ this.$refs.projectsTable.clearSelection();
|
|
|
+ this.$refs.projectsTable.toggleRowSelection(row, true);
|
|
|
+
|
|
|
+ },
|
|
|
+ //load状态回调
|
|
|
+ fileLoadeState(files) {
|
|
|
+ files.forEach((file) => {
|
|
|
+ this.loadObjs.forEach((obj) => {
|
|
|
+ if (obj.type == 2) {
|
|
|
+ if (obj.filename === file.name) {
|
|
|
+ obj.percentage = file.percentage;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (obj.type == 1) {
|
|
|
+ // obj.message=file.message;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 文件渲染websoket
|
|
|
+ initWebSocket(){ //初始化weosocket
|
|
|
+ this.newlog='';
|
|
|
+ const wsuri = "ws://192.168.0.44:8082/websocket?vdioId="+this.project.projectId+this.servertype+this.tstep;
|
|
|
+ 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.loadingopen()
|
|
|
+ let params = {
|
|
|
+ transCode: "VD0001",// 服务器渲染实例接口创建推流
|
|
|
+ projectId:this.project.projectId,
|
|
|
+ projectType: "hcfd",
|
|
|
+ fileType:this.servertype,
|
|
|
+ step:this.tstep,
|
|
|
+ flagDown:'1',
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ this.loading = true;
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log(err);
|
|
|
+ this.loadingend(this.loadingopen());
|
|
|
+
|
|
|
+ });
|
|
|
+ },
|
|
|
+ websocketonerror(){//连接建立失败重连
|
|
|
+ this.websock.close()
|
|
|
+ },
|
|
|
+ websocketonmessage(e){ //数据接收
|
|
|
+ try{
|
|
|
+ const redata = JSON.parse(e.data);
|
|
|
+ if(typeof redata==='object'&& redata){
|
|
|
+ const redata = JSON.parse(e.data);
|
|
|
+ if(redata.hasOwnProperty("data")){
|
|
|
+ }else{
|
|
|
+
|
|
|
+ this.newlog =this.newlog+"\n" +JSON.stringify(redata);
|
|
|
+ this.logs=this.newlog;
|
|
|
+ }
|
|
|
+ if(redata.data!=undefined){
|
|
|
+ this.$refs.monitor.hiden();
|
|
|
+ this.$refs.TFileStream.imgtupian=true;
|
|
|
+ this.$refs.TFileStream.fetchData(redata.data);
|
|
|
+ }
|
|
|
+ var state=redata.state;
|
|
|
+ if(state=='success'){
|
|
|
+ let params = { // 服务器 boundary 渲染
|
|
|
+ transCode: "VD0002",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ projectType: "hcfd",
|
|
|
+ fileType:this.servertype,
|
|
|
+ step:this.tstep,
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ this.loading = true;
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ }else if(state=='fail'){
|
|
|
+ Message({
|
|
|
+ type: "error",
|
|
|
+ message: "返回错误请重试",
|
|
|
+ });
|
|
|
+ this.loadingend(this.loadingopen());
|
|
|
+ }
|
|
|
}
|
|
|
+ return true;
|
|
|
+ }catch(error){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ websocketsend(Data){//数据发送
|
|
|
+ this.websock.send(Data);
|
|
|
+ },
|
|
|
+ websocketclose(e){ //关闭
|
|
|
+ Message({
|
|
|
+ type: "error",
|
|
|
+ message: "websock断开连接",
|
|
|
+ });
|
|
|
+
|
|
|
+ this.websock.close()
|
|
|
+ this.loadingend(this.loadingopen());
|
|
|
+ },
|
|
|
+ // 新建完成后的OK
|
|
|
+ async ugridShowOK(){
|
|
|
+ await this.findParam();
|
|
|
+ this.dialog.new_visiable = false;
|
|
|
+ this.servertype='ugrid'
|
|
|
+ this.tstep=0;
|
|
|
+ this.initWebSocket();
|
|
|
+ },
|
|
|
+ //调状态求解状态(0-未求解 1-求解中 2-求解完成)
|
|
|
+ getstatus(){
|
|
|
+ let params = {
|
|
|
+ transCode: "A00107",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ };
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ this.lsolverState=res.solverState;
|
|
|
+
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+ },
|
|
|
+ // 折线图按钮选择
|
|
|
+ getbtnmonitor(){
|
|
|
+ this.activecleer()
|
|
|
+ this.$refs.TFileStream.imgtupian=false;
|
|
|
+ this.getstatus()
|
|
|
+ if(this.lsolverState=='2'){
|
|
|
+ this.numzhexian='1'
|
|
|
+ }else{
|
|
|
+ this.numzhexian='';
|
|
|
+
|
|
|
+ }
|
|
|
+ this.$refs.monitor.nhiden();
|
|
|
+ this.$refs.monitor.getwebsocket();
|
|
|
+ },
|
|
|
+//开起loading
|
|
|
+loadingopen(){
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: 'Loading',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ });
|
|
|
+ return loading;
|
|
|
+},
|
|
|
+ // 关闭lodind
|
|
|
+loadingend(loading){
|
|
|
+ loading.close()
|
|
|
+
|
|
|
+},
|
|
|
+showboundary(){//表面加载
|
|
|
+
|
|
|
+if(this.lsolverState=='2'){
|
|
|
+ this.$refs.monitor.container_show=false;
|
|
|
+ this.clearserver();
|
|
|
+ this.servertype='boundary'
|
|
|
+ // this.project.projectId='81797100f859485e8aad9492a18904a7';
|
|
|
+ this.project.projectId= this.project.projectId;
|
|
|
+ this.tstep= this.bStep;
|
|
|
+ this.initWebSocket();
|
|
|
+ }else{
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请先求解",
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+},
|
|
|
+//anniu
|
|
|
+btnshowboundary(){
|
|
|
+ this.getstatus();
|
|
|
+ this.resultdata();
|
|
|
+ if(this.lsolverState=='2'){
|
|
|
+ this.active='five-1';
|
|
|
+ this.dialog.SurfaceGrid_visiable = true;
|
|
|
+ this.$refs.monitor.container_show=false;
|
|
|
+ }else{
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请先求解",
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+},
|
|
|
+btnVolumeshow(){
|
|
|
+ this.getstatus();
|
|
|
+ this.resultdata();
|
|
|
+ if(this.lsolverState=='2'){
|
|
|
+ this.active='five-2';
|
|
|
+ this.$refs.monitor.hiden();
|
|
|
+ this.dialog.VolumeGrid_visiable = true;
|
|
|
+ }else{
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请先求解",
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+},
|
|
|
+//表面 色条插值
|
|
|
+boundaryShow(){
|
|
|
+ if( this.project.projectId==''){
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请选择项目",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(this.bStep==0){
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请选择setp有效值",
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.loadingopen()
|
|
|
+this.boundaryval(this.bMesh,this.bContour,this.bStep,this.Surfacenum,this.bScalar,this.servertype);
|
|
|
+ }
|
|
|
+},
|
|
|
+ boundaryval(Mesh,Contour,Step,num,Scalar, servertype){
|
|
|
+ let params = {
|
|
|
+ transCode: "VDT0004",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ projectType: "hcfd",
|
|
|
+ fileType:servertype,
|
|
|
+ isMesh:Mesh,
|
|
|
+ isContour:Contour,
|
|
|
+ step:Step,
|
|
|
+ colorSize:num ,
|
|
|
+ tmp:Scalar,
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ console.log(params);
|
|
|
+ this.loading = true;
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+},
|
|
|
+
|
|
|
+ Contourval(val) {
|
|
|
+if(this.belementCheckeds.length==2){
|
|
|
+ this.bMesh=1;
|
|
|
+ this.bContour=1;
|
|
|
+ console.log(222)
|
|
|
+} else if(this.belementCheckeds.length==0){
|
|
|
+ this.bMesh=0;
|
|
|
+ this.bContour=0;
|
|
|
+}
|
|
|
+else{
|
|
|
+ this.belementCheckeds.forEach((ele) => {
|
|
|
+ if ("Mesh" == ele) {
|
|
|
+ this.bMesh=1;
|
|
|
+ this.bContour=0;
|
|
|
+ }
|
|
|
+ if ("Contour" == ele) {
|
|
|
+ this.bMesh=0;
|
|
|
+ this.bContour=1;
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
+
|
|
|
+ },
|
|
|
+ ContourvalVolume(val) {
|
|
|
+ if(this.velementCheckeds.length==2){
|
|
|
+ this.vMesh=1;
|
|
|
+ this.vContour=1;
|
|
|
+ console.log(222)
|
|
|
+} else if(this.velementCheckeds.length==0){
|
|
|
+ this.vMesh=0;
|
|
|
+ this.vContour=0;
|
|
|
+}
|
|
|
+else{
|
|
|
+ this.velementCheckeds.forEach((ele) => {
|
|
|
+ if ("Mesh" == ele) {
|
|
|
+ this.vMesh=1;
|
|
|
+ this.vContour=0;
|
|
|
+ }
|
|
|
+ if ("Contour" == ele) {
|
|
|
+ this.vMesh=0;
|
|
|
+ this.vContour=1;
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+ },
|
|
|
+ // 体积加载
|
|
|
+Volumeshow(){
|
|
|
+
|
|
|
+if(this.lsolverState=='2'){
|
|
|
+
|
|
|
+ this.$refs.monitor.hiden();
|
|
|
+ this.clearserver();
|
|
|
+ this.servertype='volume'
|
|
|
+ this.project.projectId= this.project.projectId;
|
|
|
+ this.tstep= this.vStep;
|
|
|
+ this.initWebSocket();
|
|
|
+ }else{
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请先求解",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+showVolume(){//体积加载
|
|
|
|
|
|
- </script>
|
|
|
+if(this.vStep==0){
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "setp为零没有,请选择有效值",
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.loadingopen()
|
|
|
+ this.boundaryval(this.vMesh,this.vContour,this.vStep,this.Volumenum,this.vSalar,this.servertype);
|
|
|
+}
|
|
|
+},
|
|
|
+//选择step
|
|
|
+bStepChange(val){
|
|
|
+ this.bStep=val;
|
|
|
+ if(this.bStep==0){
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请选择setp有效值",
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.showboundary();
|
|
|
+ }
|
|
|
+
|
|
|
+},
|
|
|
+//选择step
|
|
|
+vStepChange(val){
|
|
|
+ this.vStep=val;
|
|
|
+ if(val==0){
|
|
|
+ Message({
|
|
|
+ type: "warning",
|
|
|
+ message: "请选择setp有效值",
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+this.Volumeshow();
|
|
|
+}
|
|
|
+},
|
|
|
+// 表面加载
|
|
|
+SurfaceChange(value){// 选择色条个数
|
|
|
+ this.Surfacenum=value;
|
|
|
+
|
|
|
+},
|
|
|
+// 体积
|
|
|
+VolumenumChange(value){// 选择色条个数
|
|
|
+ this.Volumenum=value;
|
|
|
+
|
|
|
+},
|
|
|
+
|
|
|
+// 获取求解结果下拉数据
|
|
|
+resultdata(){
|
|
|
+ let params = {
|
|
|
+ transCode: "VDT0005",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ //projectId: '81797100f859485e8aad9492a18904a7',
|
|
|
+ projectType: "hcfd",
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ this.loading = true;
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ this.boundaryStep=(res.steps.split(" ")).map(Number);
|
|
|
+ let boundaryVars=res.boundaryVars.split(" ");
|
|
|
+ this.boundaryScalars=boundaryVars;
|
|
|
+ this.volumStep=(res.steps.split(" ")).map(Number);
|
|
|
+ this.volumScalars=res.volumeVars.split(" ");
|
|
|
+ console.log( this.boundaryStep);
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+},
|
|
|
+// 清除接口
|
|
|
+clearserver(){
|
|
|
+ if(this.servertype=='boundary'){
|
|
|
+ this.tstep=this.bStep;
|
|
|
+ }else if(this.servertype=='volume'){
|
|
|
+ this.tstep=this.vStep;
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ this.tstep=0;
|
|
|
+ }
|
|
|
+ console.log( this.project.projectId);
|
|
|
+ let params = {
|
|
|
+ transCode: "VD0003",
|
|
|
+ projectId: this.project.projectId,
|
|
|
+ projectType: "hcfd",
|
|
|
+ fileType:this.servertype,
|
|
|
+ step:this.tstep,
|
|
|
+ lesseeId: this.$store.getters.lesseeId
|
|
|
+ };
|
|
|
+ this.loading = true;
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ console.log(res);
|
|
|
+ })
|
|
|
+ .catch((err) => {});
|
|
|
+},
|
|
|
+ boundaryChange(boundaryid) {
|
|
|
+ this.parameterObj.hcfdBoundarys.forEach((hcfdBoundary) => {
|
|
|
+ if (hcfdBoundary.id === boundaryid) {
|
|
|
+ this.Physics.hcfdBoundaryquery = hcfdBoundary;
|
|
|
+ this.Physics.Boundary.cquery = hcfdBoundary.conditionsCode;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ conditionsChange(conditionsCode) {
|
|
|
+ this.Physics.hcfdBoundaryquery.conditionsCode = conditionsCode;
|
|
|
+ },
|
|
|
+
|
|
|
+ solutionbCheckAllChange(val) {
|
|
|
+if(val==true){
|
|
|
+ this.parameterObj.nmlParam.a_u = true;
|
|
|
+ this.parameterObj.nmlParam.a_v = true;
|
|
|
+ this.parameterObj.nmlParam.a_w = true;
|
|
|
+ this.parameterObj.nmlParam.a_p = true;
|
|
|
+ this.parameterObj.nmlParam.a_cp = true;
|
|
|
+ this.parameterObj.nmlParam.a_mach = true;
|
|
|
+ this.parameterObj.nmlParam.a_vort_mag = true;
|
|
|
+ this.parameterObj.nmlParam.a_vort_x = true;
|
|
|
+ this.parameterObj.nmlParam.a_vort_y = true;
|
|
|
+ this.parameterObj.nmlParam.a_vort_z = true;
|
|
|
+ this.parameterObj.nmlParam.a_q_criterion = true;
|
|
|
+ this.Solution.boundaryout.isIndeterminate = false;
|
|
|
+ //this.solutionbSetParam();
|
|
|
+}else {
|
|
|
+
|
|
|
+ this.parameterObj.nmlParam.a_u = false;
|
|
|
+ this.parameterObj.nmlParam.a_v = false;
|
|
|
+ this.parameterObj.nmlParam.a_w = false;
|
|
|
+ this.parameterObj.nmlParam.a_p = false;
|
|
|
+ this.parameterObj.nmlParam.a_cp = false;
|
|
|
+ this.parameterObj.nmlParam.a_mach = false;
|
|
|
+ this.parameterObj.nmlParam.a_vort_mag = false;
|
|
|
+ this.parameterObj.nmlParam.a_vort_x = false;
|
|
|
+ this.parameterObj.nmlParam.a_vort_y = false;
|
|
|
+ this.parameterObj.nmlParam.a_vort_z = false;
|
|
|
+ this.parameterObj.nmlParam.a_q_criterion = false;
|
|
|
+ this.Solution.boundaryout.isIndeterminate = false;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ solutionbCheckedCitiesChange(value) {
|
|
|
+ let checkedCount = value.length;
|
|
|
+ this.Solution.boundaryout.checkAll =
|
|
|
+ checkedCount === this.Solution.boundaryout.lists.length;
|
|
|
+ this.Solution.boundaryout.isIndeterminate =
|
|
|
+ checkedCount > 0 &&
|
|
|
+ checkedCount < this.Solution.boundaryout.lists.length;
|
|
|
+ this.solutionbSetParam();
|
|
|
+ },
|
|
|
+ solutionbSetParam() {
|
|
|
+ this.Solution.boundaryout.checkeds.forEach((cell) => {
|
|
|
+ switch (cell) {
|
|
|
+ case "X-component of velocity":
|
|
|
+ console.log( this.parameterObj.nmlParam.a_u);
|
|
|
+ this.parameterObj.nmlParam.a_u = true;
|
|
|
+ break;
|
|
|
+ case "Y-component of velocity":
|
|
|
+ this.parameterObj.nmlParam.a_v = true;
|
|
|
+ break;
|
|
|
+ case "Z-component of velocity":
|
|
|
+ this.parameterObj.nmlParam.a_w = true;
|
|
|
+ break;
|
|
|
+ case "Press":
|
|
|
+ this.parameterObj.nmlParam.a_p = true;
|
|
|
+ break;
|
|
|
+ case "Press coefficient":
|
|
|
+ this.parameterObj.nmlParam.a_cp = true;
|
|
|
+ break;
|
|
|
+ case "Mach Number":
|
|
|
+ this.parameterObj.nmlParam.a_mach = true;
|
|
|
+ break;
|
|
|
+ case "Vorticity magnitude":
|
|
|
+ this.parameterObj.nmlParam.a_vort_mag = true;
|
|
|
+ break;
|
|
|
+ case "X-component of vorticity":
|
|
|
+ this.parameterObj.nmlParam.a_vort_x = true;
|
|
|
+ break;
|
|
|
+ case "Y-component of vorticity":
|
|
|
+ this.parameterObj.nmlParam.a_vort_y = true;
|
|
|
+ break;
|
|
|
+ case "Z-component of vorticity":
|
|
|
+ this.parameterObj.nmlParam.a_vort_z = true;
|
|
|
+ break;
|
|
|
+ case "Q Criterion":
|
|
|
+ this.parameterObj.nmlParam.a_q_criterion = true;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ clickNew(){
|
|
|
+ if(this.name=='amend'){
|
|
|
+ let rse=this.xiugai;
|
|
|
+ console.log(rse.projectId);
|
|
|
+ if( rse.projectId ==""|| rse.projectId ==undefined){
|
|
|
+ Message({
|
|
|
+ type: "info",
|
|
|
+ message: "请选择你要修改的项目",
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.project.projectId = rse.projectId;
|
|
|
+ this.project.projectName = rse.projectName;
|
|
|
+ this.project.projectDesc = rse.projectDesc;
|
|
|
+ this.dialog.new_visiable = true;
|
|
|
+}
|
|
|
+
|
|
|
+ }else{
|
|
|
+ this.project.projectId = '';
|
|
|
+ this.project.projectName ='';
|
|
|
+ this.project.projectDesc = '';
|
|
|
+ this.dialog.new_visiable = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ solutionvCheckAllChange(val) {
|
|
|
+ // this.Solution.volumout.checkeds = val ? this.Solution.volumout.lists : [];
|
|
|
+ // this.Solution.volumout.isIndeterminate = false;
|
|
|
+ // this.solutionbSetParam();
|
|
|
+ if(val==true){
|
|
|
+ this.parameterObj.nmlParam.v_u = true;
|
|
|
+ this.parameterObj.nmlParam.v_v = true;
|
|
|
+ this.parameterObj.nmlParam.v_w = true;
|
|
|
+ this.parameterObj.nmlParam.v_p = true;
|
|
|
+ this.parameterObj.nmlParam.v_cp = true;
|
|
|
+ this.parameterObj.nmlParam.v_mach = true;
|
|
|
+ this.parameterObj.nmlParam.v_vort_mag = true;
|
|
|
+ this.parameterObj.nmlParam.v_vort_x = true;
|
|
|
+ this.parameterObj.nmlParam.v_vort_y = true;
|
|
|
+ this.parameterObj.nmlParam.v_vort_z = true;
|
|
|
+ this.parameterObj.nmlParam.v_q_criterion = true;
|
|
|
+}else{
|
|
|
+ this.parameterObj.nmlParam.v_u = false;
|
|
|
+ this.parameterObj.nmlParam.v_v = false;
|
|
|
+ this.parameterObj.nmlParam.v_w = false;
|
|
|
+ this.parameterObj.nmlParam.v_p = false;
|
|
|
+ this.parameterObj.nmlParam.v_cp = false;
|
|
|
+ this.parameterObj.nmlParam.v_mach = false;
|
|
|
+ this.parameterObj.nmlParam.v_vort_mag = false;
|
|
|
+ this.parameterObj.nmlParam.v_vort_x = false;
|
|
|
+ this.parameterObj.nmlParam.v_vort_y = false;
|
|
|
+ this.parameterObj.nmlParam.v_vort_z = false;
|
|
|
+ this.parameterObj.nmlParam.v_q_criterion = false;
|
|
|
+ this.Solution.volumout.isIndeterminate = false;
|
|
|
+}
|
|
|
+ },
|
|
|
+ solutionvCheckedCitiesChange(value) {
|
|
|
+ let checkedCount = value.length;
|
|
|
+ console.log(value);
|
|
|
+ this.Solution.volumout.checkAll =
|
|
|
+ checkedCount === this.Solution.volumout.lists.length;
|
|
|
+ this.Solution.volumout.isIndeterminate =
|
|
|
+ checkedCount > 0 && checkedCount < this.Solution.volumout.lists.length;
|
|
|
+ this.solutionvSetParam();
|
|
|
+ },
|
|
|
+ solutionvSetParam() {
|
|
|
+ this.Solution.volumout.checkeds.forEach((cell) => {
|
|
|
+ switch (cell) {
|
|
|
+ case "X-component of velocity":
|
|
|
+ this.parameterObj.nmlParam.v_u = true;
|
|
|
+ break;
|
|
|
+ case "Y-component of velocity":
|
|
|
+ this.parameterObj.nmlParam.v_v = true;
|
|
|
+ break;
|
|
|
+ case "Z-component of velocity":
|
|
|
+ this.parameterObj.nmlParam.v_w = true;
|
|
|
+ break;
|
|
|
+ case "Press":
|
|
|
+ this.parameterObj.nmlParam.v_p = true;
|
|
|
+ break;
|
|
|
+ case "Press coefficient":
|
|
|
+ this.parameterObj.nmlParam.v_cp = true;
|
|
|
+ break;
|
|
|
+ case "Mach Number":
|
|
|
+ this.parameterObj.nmlParam.v_mach = true;
|
|
|
+ break;
|
|
|
+ case "Vorticity magnitude":
|
|
|
+ this.parameterObj.nmlParam.v_vort_mag = true;
|
|
|
+ break;
|
|
|
+ case "X-component of vorticity":
|
|
|
+ this.parameterObj.nmlParam.v_vort_x = true;
|
|
|
+ break;
|
|
|
+ case "Y-component of vorticity":
|
|
|
+ this.parameterObj.nmlParam.v_vort_y = true;
|
|
|
+ break;
|
|
|
+ case "Z-component of vorticity":
|
|
|
+ this.parameterObj.nmlParam.v_vort_z = true;
|
|
|
+ break;
|
|
|
+ case "Q Criterion":
|
|
|
+ this.parameterObj.nmlParam.v_q_criterion = true;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //显示 UgridLoad
|
|
|
+ async showUgrid() {
|
|
|
+ console.log(this.showUgridflag);
|
|
|
+ this.$refs.volumLoad.hiden();
|
|
|
+ this.$refs.boundaryLoad.hiden();
|
|
|
+ this.$refs.monitor.hiden();
|
|
|
+ if (!this.showUgridflag) {
|
|
|
+ //是否显示过
|
|
|
+ this.$refs.ugridLoad.clear();
|
|
|
+ if (this.project.loadfils.length == 0) {
|
|
|
+ await this.getHCFDLoadFiles();
|
|
|
+ }
|
|
|
+ this.project.loadfils.forEach((url) => {
|
|
|
+ if (url.filepath.indexOf(".ugrid") > 0) {
|
|
|
+ this.ugridUrl = url.filepath;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ this.$refs.ugridLoad.loadUgrid(this.ugridUrl, 1);
|
|
|
+ this.showUgridflag = true;
|
|
|
+ } else {
|
|
|
+ this.$refs.ugridLoad.nhiden();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //显示 Surface
|
|
|
+ async showSurface() {
|
|
|
+ let mesh = false;
|
|
|
+ let contour = false;
|
|
|
+ this.belementCheckeds.forEach((ele) => {
|
|
|
+ if ("Mesh" == ele) {
|
|
|
+ mesh = true;
|
|
|
+ } else if ("Contour" == ele) {
|
|
|
+ contour = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.$refs.ugridLoad.hiden();
|
|
|
+ this.$refs.volumLoad.hiden();
|
|
|
+ this.$refs.monitor.hiden();
|
|
|
+ if (!this.showSurfaceflag) {
|
|
|
+ this.$refs.boundaryLoad.clear();
|
|
|
+ if (this.project.solverfiles.length == 0) {
|
|
|
+ await this.gethcfdsolverfiles();
|
|
|
+ }
|
|
|
+ let burl;
|
|
|
+
|
|
|
+ this.project.solverBoundaryUrls.forEach((url) => {
|
|
|
+ if (url.indexOf(this.bStep + ".dat") > 0) {
|
|
|
+ burl = url;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (mesh) {
|
|
|
+ this.$refs.boundaryLoad.loadBoundary(burl, 1, this.bScalar);
|
|
|
+ }
|
|
|
+ if (contour) {
|
|
|
+ this.$refs.boundaryLoad.loadBoundary(burl, 2, this.bScalar);
|
|
|
+ }
|
|
|
+ this.showSurfaceflag = true;
|
|
|
+ } else {
|
|
|
+ this.$refs.boundaryLoad.clear();
|
|
|
+ this.$refs.boundaryLoad.nhiden();
|
|
|
+ if (mesh) {
|
|
|
+ this.$refs.boundaryLoad.mesh(this.bScalar);
|
|
|
+ }
|
|
|
+ if (contour) {
|
|
|
+ // console.log(222);
|
|
|
+ this.$refs.volumLoad.vdivb = false;
|
|
|
+ this.$refs.boundaryLoad.divb = true;
|
|
|
+ this.$refs.boundaryLoad.contour(this.bScalar);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ //通过 volume 解析文件,不显示图像
|
|
|
+ async showVolumers() {
|
|
|
+ let mesh = false;
|
|
|
+ let contour = false;
|
|
|
+ this.velementCheckeds.forEach((ele) => {
|
|
|
+ if ("Mesh" == ele) {
|
|
|
+ mesh = true;
|
|
|
+ } else if ("Contour" == ele) {
|
|
|
+ contour = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (!this.showVolumeflage) {
|
|
|
+ this.$refs.volumLoad.clear();
|
|
|
+ if (this.project.solverfiles.length == 0) {
|
|
|
+ await this.gethcfdsolverfiles();
|
|
|
+ }
|
|
|
+ let urls = [];
|
|
|
+ this.project.solverVolumUrls.forEach((url) => {
|
|
|
+ if (url.indexOf(this.bStep + ".dat") > 0) {
|
|
|
+ urls.push(url);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (mesh) {
|
|
|
+ this.$refs.volumLoad.loadVolumHiden(urls, 1, this.vSalar);
|
|
|
+ }
|
|
|
+ if (contour) {
|
|
|
+ this.$refs.boundaryLoad.divb = false;
|
|
|
+ this.$refs.volumLoad.vdivb = true;
|
|
|
+ this.$refs.volumLoad.loadVolumHiden(urls, 2, this.vSalar);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.$refs.volumLoad.clear();
|
|
|
+ this.$refs.volumLoad.nhiden();
|
|
|
+ if (mesh) {
|
|
|
+ this.$refs.volumLoad.mesh(this.vSalar);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (contour) {
|
|
|
+ this.$refs.boundaryLoad.divb = false;
|
|
|
+ this.$refs.volumLoad.vdivb = true;
|
|
|
+ this.$refs.volumLoad.contour(this.vSalar);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ async showMonitor() {
|
|
|
+ if (!this.showMonitorflage) {
|
|
|
+ let convergeUrl = this.project.converge;
|
|
|
+ this.$refs.monitor.loadConverge("http://192.168.0.43:6868/8525e93c277749e7a54dde92fc31405d/tf/test/data_out/converge.dat");
|
|
|
+ } else {
|
|
|
+ this.$refs.monitor.nhiden();
|
|
|
+ }
|
|
|
+ this.showMonitorflage = true;
|
|
|
+ },
|
|
|
+ large() {
|
|
|
+ this.$refs.ugridLoad.large();
|
|
|
+ this.$refs.boundaryLoad.large();
|
|
|
+ this.$refs.volumLoad.large();
|
|
|
+ },
|
|
|
+ small() {
|
|
|
+ this.$refs.ugridLoad.small();
|
|
|
+ this.$refs.boundaryLoad.small();
|
|
|
+ this.$refs.volumLoad.small();
|
|
|
+ },
|
|
|
+ positive(axis) {
|
|
|
+ this.$refs.ugridLoad.positive(axis);
|
|
|
+ this.$refs.boundaryLoad.positive(axis);
|
|
|
+ this.$refs.volumLoad.positive(axis);
|
|
|
+ },
|
|
|
+ negative(axis) {
|
|
|
+ this.$refs.ugridLoad.negative(axis);
|
|
|
+ this.$refs.boundaryLoad.negative(axis);
|
|
|
+ this.$refs.volumLoad.negative(axis);
|
|
|
+ },
|
|
|
+ // 资源选择代码
|
|
|
+ showresource(){
|
|
|
+ this.dialog.ziyuan=true;
|
|
|
+ this.getresource();
|
|
|
+ },
|
|
|
+ //获取资源代码
|
|
|
+ getresource(){
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: 'Loading',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)',
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ const params = {
|
|
|
+ transCode: 'HG00000',
|
|
|
+ page: this.paginationConfig.page,
|
|
|
+ count: this.paginationConfig.size,
|
|
|
+ lesseeId:this.$store.getters.lesseeId,
|
|
|
+
|
|
|
+ }
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+
|
|
|
+ loading.close()
|
|
|
+ this.ziyprojects = res.rows;
|
|
|
+ this.paginationConfig.total = res.total
|
|
|
+ this.resourcelook();
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ }, 500)
|
|
|
+ },
|
|
|
+ getPagination(data) {
|
|
|
+ this.paginationConfig = data
|
|
|
+ this.getresource()
|
|
|
+ },
|
|
|
+ //选中
|
|
|
+ ziySelectionChange (val) {
|
|
|
+
|
|
|
+ let id= []
|
|
|
+ val.map((item)=> {
|
|
|
+ id.push(item.id)
|
|
|
+ })
|
|
|
+ this.selsectid= id.join(',')
|
|
|
+ },
|
|
|
+ ziySelectionSelect(selection, row) {
|
|
|
+ },
|
|
|
+ // 日志的文本框
|
|
|
+ footerShows(evt) {
|
|
|
+ if(evt=='claer'){
|
|
|
+ this.logs='';
|
|
|
+
|
|
|
+ }else{
|
|
|
+ this.footerShow=!this.footerShow
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ //保存
|
|
|
+ resourceOK(){
|
|
|
+
|
|
|
+ const params = {
|
|
|
+ transCode: 'HG00002',
|
|
|
+ otherId:this.project.projectId,
|
|
|
+ type:'1',
|
|
|
+ resourceIds:this.selsectid,
|
|
|
+ lesseeId:this.$store.getters.lesseeId,
|
|
|
+ }
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ Message({
|
|
|
+ type: "success",
|
|
|
+ message: "保存成功",
|
|
|
+ });
|
|
|
+ this.dialog.ziyuan=false;
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 查看已经中的
|
|
|
+ resourcelook(){
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: 'Loading',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)',
|
|
|
+ })
|
|
|
+ const params = {
|
|
|
+ transCode: 'HG00001',
|
|
|
+ otherId: this.project.projectId,
|
|
|
+ type:'1',
|
|
|
+ lesseeId:this.$store.getters.lesseeId,
|
|
|
+ }
|
|
|
+ request(params)
|
|
|
+ .then((res) => {
|
|
|
+ loading.close()
|
|
|
+ let rst=res.rows;
|
|
|
+ console.log(res)
|
|
|
+ this.$refs.multipleTable.clearSelection();
|
|
|
+ if (rst.length > 0) {
|
|
|
+
|
|
|
+ for (var i = 0; i < rst.length; i++) {
|
|
|
+ for ( let j = 0 ; j < this.ziyprojects.length; j++ ){
|
|
|
+ if (this.ziyprojects[j].id === rst[i].resourceId) {
|
|
|
+ this.$refs.multipleTable.toggleRowSelection(this.ziyprojects[j],true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ consolog.log(2222)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ loading.close()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ closeOff(val){
|
|
|
+ if(val=='on'){
|
|
|
+ this.Consoleshow=true;
|
|
|
+ this.openshow=false;
|
|
|
+
|
|
|
+ }else{
|
|
|
+ console.log(val);
|
|
|
+ this.Consoleshow=false;
|
|
|
+ this.openshow=true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="scss" >
|
|
|
+@import '@/styles/variables.scss';
|
|
|
+@import '@/styles/mixin.scss';
|
|
|
+.hcfdlab{
|
|
|
+.el-input__inner{
|
|
|
+ line-height: 30px;
|
|
|
+ height: 30px;
|
|
|
+}
|
|
|
+}
|
|
|
+html,body{
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+.el-tabs__content{
|
|
|
+ padding: 0 5px;
|
|
|
+}
|
|
|
+.content{
|
|
|
+ display: flex;
|
|
|
+ height: 100%;
|
|
|
+ position: relative;
|
|
|
+ .left{
|
|
|
+ width: 200px;
|
|
|
+ height: 100%;
|
|
|
+ flex-direction: column;
|
|
|
+ padding: 15px;
|
|
|
+ position: relative;
|
|
|
+ height: 88vh;
|
|
|
+ // box-shadow: 2px 0 15px 0 rgb(232, 232, 232);
|
|
|
+ // -webkit-box-shadow: 2px 0 15px 0 rgb(232, 232, 232);
|
|
|
+ // -moz-box-shadow: 2px 0 15px 0 rgb(232, 232, 232);
|
|
|
+
|
|
|
+ }
|
|
|
+ .part-panel-collapse-handle {
|
|
|
+ position: absolute;
|
|
|
+ // right: -56px;
|
|
|
+ left: -38px;
|
|
|
+ top: 44%;
|
|
|
+ width: 94px;
|
|
|
+ height: 0;
|
|
|
+ cursor: pointer;
|
|
|
+ text-align: center;
|
|
|
+ border-width: 0 20px 18px;
|
|
|
+ line-height: 18px;
|
|
|
+ border-style: none solid solid;
|
|
|
+ transform: rotateZ(
|
|
|
+90deg);
|
|
|
+ font-size: 19px;
|
|
|
+}
|
|
|
+.lbg_color3 i:before{
|
|
|
+ transform: rotateZ(
|
|
|
+0);
|
|
|
+}
|
|
|
+ .right{
|
|
|
+ flex: 1;
|
|
|
+ height: 100%;
|
|
|
+ height: 88vh;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ }
|
|
|
+.imgcontent img{
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+ .slide-fade-enter-active {
|
|
|
+ transition: all .3s ease;
|
|
|
+}
|
|
|
+}
|
|
|
+.tablist{
|
|
|
+ border-bottom:1px solid #999;
|
|
|
+ padding: 3px 0;
|
|
|
+}
|
|
|
+.tablist .tabitem{
|
|
|
+ color: #b6b6b6;
|
|
|
+ font-size: 16px;
|
|
|
+ padding-right: 5px;
|
|
|
+ cursor: pointer;
|
|
|
+ &.current{
|
|
|
+ color: #Fff ;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.imgzong{
|
|
|
+ display: flex;
|
|
|
+ padding-top: 4px;
|
|
|
+ flex-wrap:wrap;
|
|
|
+ .el-image{
|
|
|
+ width: 24px;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.imgzong .item1{
|
|
|
+ padding-right: 4px;
|
|
|
+ padding: 4px 4px ;
|
|
|
+
|
|
|
+}
|
|
|
+.shu{
|
|
|
+ padding: 4px 10px;
|
|
|
+ color: #666;
|
|
|
+
|
|
|
+}
|
|
|
+.el-tabs__item{
|
|
|
+ color:#b6b6b6;
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+.textlab{
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-top: -28px;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style>
|
|
|
+.el-input-number__decrease, .el-input-number__increase{
|
|
|
+ position: absolute;
|
|
|
+ z-index: 1;
|
|
|
+ top: 4px;
|
|
|
+ width: 31px;
|
|
|
+ height: 30px;
|
|
|
+ text-align: center;
|
|
|
+ background: #F5F7FA;
|
|
|
+ color: #606266;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 13px;
|
|
|
+}
|
|
|
+.el-tabs--bottom .el-tabs__header.is-bottom{
|
|
|
+ margin: 0;
|
|
|
+}
|
|
|
+.el-tabs__header{
|
|
|
+ margin: 0;
|
|
|
+}
|
|
|
+.imgcontent{
|
|
|
+ padding: 0 15px;
|
|
|
+ }
|
|
|
+ .el-tabs__item{
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ padding: 0 8px;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ .item1 .el-image{
|
|
|
+ width: 24px;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+.el-tabs--border-card{
|
|
|
+ background-color: none;
|
|
|
+}
|
|
|
+.baoshi{
|
|
|
+ margin-top: 4px;
|
|
|
+ color: #b6b6b6;
|
|
|
+}
|
|
|
+
|
|
|
+.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{
|
|
|
+ background-color: #757070;
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.el-dialog__header{
|
|
|
+ padding: 15px 20px 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.textselsect{
|
|
|
+ position: absolute;
|
|
|
+ z-index: 9;
|
|
|
+ bottom: 1px;
|
|
|
+ right: 7px;
|
|
|
+ z-index: 9;
|
|
|
+}
|
|
|
+ .dialoglocation{
|
|
|
+ position: absolute;
|
|
|
+ top: -15vh;
|
|
|
+ left: 10px;
|
|
|
+ }
|
|
|
+ .el-dialog__wrapper{
|
|
|
+ top: 15vh;
|
|
|
+ }
|
|
|
+</style>
|
|
|
+// 样式大全
|
|
|
+<style lang="scss" scoped>
|
|
|
+.diyi i{
|
|
|
+ font-size: 14px;
|
|
|
+ color: #C0C4CC;
|
|
|
+}
|
|
|
+
|
|
|
+.tupian{
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+ .red{
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+ .dialog_header{
|
|
|
+ align-items: center;
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+.juli{
|
|
|
+ margin-top: 15px;
|
|
|
+ width: 100%
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|
|
|
+<style lang="scss">
|
|
|
+@import '@/styles/variables.scss';
|
|
|
+@import '@/styles/mixin.scss';
|
|
|
+.heigeinput
|
|
|
+{
|
|
|
+ .el-form-item{
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+}
|
|
|
+.el-dialog__body{
|
|
|
+ padding: 10px 20px 10px 20px;
|
|
|
+}
|
|
|
+.line{
|
|
|
+ width: 100%;
|
|
|
+ height: 1px;
|
|
|
+ background-color: #999;
|
|
|
+ position: relative;
|
|
|
+ margin: 30px 0;
|
|
|
+ .linetext{
|
|
|
+ position: absolute;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ background-color: #ffff;
|
|
|
+ padding: 5px;
|
|
|
+ font-size: 12px;
|
|
|
+ top: -10px;
|
|
|
+ font-weight: 700;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+.ulist ul{
|
|
|
+ display: flex;
|
|
|
+ margin: 0;
|
|
|
+ padding: 0;
|
|
|
+ li{
|
|
|
+ flex: 1;
|
|
|
+ border: 1px solid #666;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+.liitem{
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+.inputwithd .el-input__inner{
|
|
|
+ width: 74px;
|
|
|
+}
|
|
|
+.inputtext .el-input{
|
|
|
+ margin-top: 5px;
|
|
|
+}
|
|
|
+.dancentent{
|
|
|
+ display: flex;
|
|
|
+ justify-content:center;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+ .titleinput .el-input{
|
|
|
+ width: 100px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .itemlist{
|
|
|
+ display: flex;
|
|
|
+
|
|
|
+ }
|
|
|
+ .listbtn{
|
|
|
+ display: flex;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ .anniu{
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ .el-checkbox{
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .anniu{
|
|
|
+ padding: 5px 28px;
|
|
|
+ font-size: 12px;
|
|
|
+ margin: 0;
|
|
|
+
|
|
|
+ }
|
|
|
+ .titleinput{
|
|
|
+ .el-row{
|
|
|
+ padding-left: 10px;
|
|
|
+ }
|
|
|
+ .el-button{
|
|
|
+ padding: 5px 28px;
|
|
|
+ font-size: 12px;
|
|
|
+ }
|
|
|
+ .el-button+.el-button{
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-dialog__wrapper{
|
|
|
+ z-index: 2300;
|
|
|
+ }
|
|
|
+ .tiele{
|
|
|
+ width: 324px;
|
|
|
+ background-color: #fff;
|
|
|
+ position: fixed;
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ z-index: 2049;
|
|
|
+ padding: 20px;
|
|
|
+ .heder{
|
|
|
+ width: 100%;
|
|
|
+ height: 40px;
|
|
|
+ line-height: 40px;
|
|
|
+ font-size: 14px;
|
|
|
+ padding: 0 20px;
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
+ }
|
|
|
+ .tiele_content{
|
|
|
+ padding: 20px 20px;
|
|
|
+ .el-checkbox{
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p{
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ .el-form-item{
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ .btntext{
|
|
|
+ text-align: center;
|
|
|
+ background-color: #757070;
|
|
|
+ color:#d5d5d5 ;
|
|
|
+ font-size: 12px;
|
|
|
+ padding: 4px 0;
|
|
|
+ margin: 5px 0;
|
|
|
+ border-radius: 5px;
|
|
|
+ }
|
|
|
+ .btnyiban{
|
|
|
+ width: 50%;
|
|
|
+ background-color: #757070;
|
|
|
+ color:#d5d5d5 ;
|
|
|
+ }
|
|
|
+ .fangxiang .el-row{
|
|
|
+ display: flex;
|
|
|
+ padding-bottom: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .input3{
|
|
|
+ display: flex;
|
|
|
+ flex-wrap:nowrap;
|
|
|
+ justify-content: space-around;
|
|
|
+ padding-bottom: 5px;
|
|
|
+
|
|
|
+ .el-input{
|
|
|
+ width: 30%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+.yiinpu .el-form-item__content{
|
|
|
+display:flex;
|
|
|
+.el-input{
|
|
|
+ margin-right: 5px;
|
|
|
+}
|
|
|
+}
|
|
|
+
|
|
|
+ .saninput{
|
|
|
+ display: flex;
|
|
|
+ flex-wrap:nowrap;
|
|
|
+ justify-content: space-around;
|
|
|
+ .el-input{
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ .el-form-item__label{
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // select样式
|
|
|
+ .selecr{
|
|
|
+ font-size: 12px;
|
|
|
+ .el-select{
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ .btnringth{
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ .juli .el-input__inner{
|
|
|
+ margin-bottom: 5px;
|
|
|
+ width:100%;
|
|
|
+ }
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+ /deep/.toolbar-part-detail{
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+/deep/ .el-form-item__label{
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 30px;
|
|
|
+}
|
|
|
+/deep/.el-form-item__content{
|
|
|
+ line-height: 30px;
|
|
|
+ font-size: 12px;
|
|
|
+}
|
|
|
+.el-form-item{
|
|
|
+ margin-bottom: 5px;
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.femFooter {
|
|
|
+ height: 135px !important;
|
|
|
+ padding: 0;
|
|
|
+ position: relative;
|
|
|
+}
|
|
|
+.footerTitle {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 5px 20px;
|
|
|
+ font-size: 20px;
|
|
|
+ height: 30px !important;
|
|
|
+ background-color: #bbb;
|
|
|
+}
|
|
|
+.footerTitle div {
|
|
|
+
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-around;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.footerTitle p {
|
|
|
+ margin: 0;
|
|
|
+}
|
|
|
+.footerTitle span {
|
|
|
+ padding: 5px 10px;
|
|
|
+ cursor: default;
|
|
|
+}
|
|
|
+
|
|
|
+ /deep/.footerText .el-textarea__inner{
|
|
|
+ width: 100%;
|
|
|
+ height: 135px !important;
|
|
|
+ border: 0;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #333;
|
|
|
+ padding: 2px;
|
|
|
+}
|
|
|
+
|
|
|
+ .radio_text{
|
|
|
+ line-height: 28px;
|
|
|
+ .el-radio__label{
|
|
|
+ color: #d5d5d5;
|
|
|
+ }
|
|
|
+ .disacent{
|
|
|
+ padding: 6px 0 6px 3.125vw;
|
|
|
+ font-size:12px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.el-table th, .el-table tr{
|
|
|
+ background-color: #535353;
|
|
|
+}
|
|
|
+.beij-container {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ background: linear-gradient(180deg, #ccd3e2 0%, rgba(255, 255, 255, 0) 100%);
|
|
|
+}
|
|
|
+.el-footer {
|
|
|
+ padding: 0;
|
|
|
+ height: 149px;
|
|
|
+ overflow-y: auto;
|
|
|
+}
|
|
|
+
|
|
|
+.logs_title {
|
|
|
+ background: #bfc5cb;
|
|
|
+ padding: 10px;
|
|
|
+ font-size: 16px;
|
|
|
+}
|
|
|
+.x {
|
|
|
+ cursor: default;
|
|
|
+ float: right;
|
|
|
+}
|
|
|
+.exloadbox {
|
|
|
+ float: right;
|
|
|
+ margin-right: 100px;
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+.maxh221{
|
|
|
+ max-height: calc(100vh - 10px);
|
|
|
+}
|
|
|
+.maxh400{
|
|
|
+ max-height: calc(100vh - 410px);
|
|
|
+}
|
|
|
+body {
|
|
|
+ position: relative;
|
|
|
+ background-color: #eceef0;
|
|
|
+
|
|
|
+}
|
|
|
+.el-loading-mask {
|
|
|
+ background: none;
|
|
|
+}
|
|
|
+.sblock{
|
|
|
+ width: 100px;
|
|
|
+ display: inline-block;
|
|
|
+}
|
|
|
+.groupradio .el-radio{
|
|
|
+ display: block;
|
|
|
+ padding: 5px;
|
|
|
+
|
|
|
+}
|
|
|
+.radiogroup{
|
|
|
+ display:flex;
|
|
|
+}
|
|
|
+.radiogroup label{
|
|
|
+ flex: 1;
|
|
|
+}
|
|
|
+/deep/ .radiogroup .el-radio-button--mini .el-radio-button__inner{
|
|
|
+ border-radius: 5px;
|
|
|
+}
|
|
|
+/deep/ .radiogroup .el-radio-button:last-child .el-radio-button__inner{
|
|
|
+ border-radius: 4px ;
|
|
|
+}
|
|
|
+/deep/ .heightclass{
|
|
|
+ height: 450px;
|
|
|
+ overflow-y: auto;
|
|
|
+
|
|
|
+}
|
|
|
+/deep/ .heightclass .el-dialog__header{
|
|
|
+ position: fixed;
|
|
|
+ z-index: 99;
|
|
|
+ width: 385px;
|
|
|
+}
|
|
|
+/deep/ .heightclass .el-dialog__body{
|
|
|
+ margin-top: 60px;
|
|
|
+}
|
|
|
+.displanblock .el-checkbox{
|
|
|
+display: block;
|
|
|
+}
|
|
|
+.outline{
|
|
|
+ margin-left: 50px;
|
|
|
+ font-size: 20px;
|
|
|
+}
|
|
|
+/deep/.el-dialog__wrapper{
|
|
|
+ pointer-events:none;
|
|
|
+}
|
|
|
+/deep/.el-dialog{
|
|
|
+ pointer-events:auto;
|
|
|
+}
|
|
|
+/deep/ .asideTag2{
|
|
|
+ left: auto;
|
|
|
+ right: 10px;
|
|
|
+ top: 21px;
|
|
|
+ ul{
|
|
|
+ display: flex;
|
|
|
+ li{
|
|
|
+
|
|
|
+ margin-left: 4px;
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+ .asideTag{
|
|
|
+
|
|
|
+ top: 30px;
|
|
|
+}
|
|
|
+/deep/ .asideTag ul{
|
|
|
+ display: flex;
|
|
|
+ li{
|
|
|
+ margin-left: 4px;
|
|
|
+ width: 28px;
|
|
|
+ height: 28px;
|
|
|
+ }
|
|
|
+}
|
|
|
+@media screen and (max-width:1330px){
|
|
|
+ .headMenu_2 .el-col{
|
|
|
+ transform:scale(0.8);
|
|
|
+ transform-origin: 0 0;
|
|
|
+ }
|
|
|
+ .headMenu_2{
|
|
|
+ height: 150px !important;
|
|
|
+ }
|
|
|
+ .asideTag2,.asideTag {
|
|
|
+ transform:scale(0.7);
|
|
|
+ transform-origin: 0 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+@media screen and (max-width:1160px){
|
|
|
+ .headMenu_2 .el-col{
|
|
|
+ transform:scale(0.7);
|
|
|
+ transform-origin: 0 0;
|
|
|
+ }
|
|
|
+ .asideTag2{
|
|
|
+ left: 91%;
|
|
|
+ }
|
|
|
+ .el-aside{
|
|
|
+ width:170px !important;
|
|
|
+ }
|
|
|
+ .headMenu_2{
|
|
|
+ height: 135px !important;
|
|
|
+ }
|
|
|
+}
|
|
|
+.text{
|
|
|
+ color: #fff;
|
|
|
+ font-size:14px;
|
|
|
+ margin: 0;
|
|
|
+}
|
|
|
+.y{
|
|
|
+ width:100%;
|
|
|
+ height:100%;
|
|
|
+ background-image: url('../../../assets/3d_images/y.png') center 100%;
|
|
|
+}
|
|
|
+.y2{
|
|
|
+ background-image: url('../../../assets/3d_images/y2.png');
|
|
|
+}
|
|
|
+body{
|
|
|
+ font-family:'微软雅黑'
|
|
|
+}
|
|
|
+.imge{
|
|
|
+width:25px;
|
|
|
+}
|
|
|
+.classfelx{
|
|
|
+ flex:1;
|
|
|
+}
|
|
|
+.liitem .formLabelWidth8{
|
|
|
+ width: 343px;
|
|
|
+}
|
|
|
+</style>
|