|
@@ -1395,11 +1395,9 @@
|
|
|
<el-checkbox-group v-model="velementCheckeds" style="display:flex">
|
|
|
<el-checkbox
|
|
|
label="Horizontal"
|
|
|
- @change="ContourvalVolume('Mesh')"
|
|
|
></el-checkbox>
|
|
|
<el-checkbox
|
|
|
label="Velocity"
|
|
|
- @change="ContourvalVolume('Contour')"
|
|
|
></el-checkbox>
|
|
|
</el-checkbox-group>
|
|
|
</div>
|
|
@@ -1639,7 +1637,7 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<!--Slice片 -->
|
|
|
- <el-dialog :visible.sync="dialog.Slice_Surface"
|
|
|
+ <el-dialog :visible.sync="dialog.Slice_Surface"
|
|
|
v-if="active=='six3-1'"
|
|
|
:modal='false'
|
|
|
:close-on-click-modal="false"
|
|
@@ -1655,19 +1653,19 @@
|
|
|
<el-form :model="form">
|
|
|
<div class="heigeinput">
|
|
|
<div class="listbtn">
|
|
|
- <el-button plain class="anniu" @click="femaddTab(editableTabsValue) ">添加</el-button>
|
|
|
- <el-button plain class="anniu" @tab-remove="femremoveTab">updata</el-button>
|
|
|
- <el-button plain class="anniu" @click="femremoveclear(editableTabsValue)">清除</el-button>
|
|
|
+ <el-button plain class="anniu" @click="addTab(editableTabsValue) ">添加</el-button>
|
|
|
+ <el-button plain class="anniu" @click="updata()">updata</el-button>
|
|
|
+ <el-button plain class="anniu" @click="removeclear(editableTabsValue)">清除</el-button>
|
|
|
</div>
|
|
|
- <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="femremoveTab" @tab-click="femhandletabclick" >
|
|
|
+ <el-tabs v-model="editableTabsValue" type="card" closable @tab-remove="removeTab" @tab-click="handletabclick" >
|
|
|
<el-tab-pane
|
|
|
- v-for="item in editableTabs"
|
|
|
- :key="item.name"
|
|
|
- :label="item.title"
|
|
|
- :name="item.name"
|
|
|
+ v-for="(ruleForm1,key) in editableTabs"
|
|
|
+ :key="key"
|
|
|
+ :label="ruleForm1.index"
|
|
|
+ :name="ruleForm1.index"
|
|
|
>
|
|
|
<!-- {{item.content}}:is=item.content -->
|
|
|
- <Addtabs ref="addtab" :ruleForm="item.ruleForm"></Addtabs>
|
|
|
+ <Addtabs ref="addtabs" :variableNamearr1="variableNamearr" :ruleForm="ruleForm1"></Addtabs>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
|
|
@@ -1686,7 +1684,7 @@
|
|
|
>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
-<!-- Stream -->
|
|
|
+<!-- Stream流线 -->
|
|
|
<el-dialog :visible.sync="dialog.Stream_Surface"
|
|
|
v-if="active=='six3-2'"
|
|
|
:modal='false'
|
|
@@ -1698,23 +1696,23 @@
|
|
|
>
|
|
|
<div slot="title" class=dialog_header>
|
|
|
<el-image class="imge" :src="p16" fit="cover" />
|
|
|
- <span class="text-color">Stream</span>
|
|
|
+ <span class="text-color">流线</span>
|
|
|
</div>
|
|
|
<el-form :model="form">
|
|
|
<div class="heigeinput">
|
|
|
<div class='selecttype'>
|
|
|
- <span class="texttype">Stream</span>
|
|
|
+ <span class="texttype">流线</span>
|
|
|
<div class='selecttype'>
|
|
|
<span class="texttype">矢量</span>
|
|
|
<div class="selecr">
|
|
|
<el-form-item label="u" :label-width="formLabelWidth4">
|
|
|
<el-select
|
|
|
size="mini"
|
|
|
- v-model="vectorobj.dataU"
|
|
|
+ v-model="streamobj.dataU"
|
|
|
placeholder="select boundary"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="scalar in vectorobj.dataUarr"
|
|
|
+ v-for="scalar in streamobj.dataUarr"
|
|
|
:key="scalar"
|
|
|
:label="scalar"
|
|
|
:value="scalar"
|
|
@@ -1725,11 +1723,11 @@
|
|
|
<el-form-item label="v" :label-width="formLabelWidth4">
|
|
|
<el-select
|
|
|
size="mini"
|
|
|
- v-model="vectorobj.dataV"
|
|
|
+ v-model="streamobj.dataV"
|
|
|
placeholder="select boundary"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="scalar in vectorobj.dataVarr"
|
|
|
+ v-for="scalar in streamobj.dataVarr"
|
|
|
:key="scalar"
|
|
|
:label="scalar"
|
|
|
:value="scalar"
|
|
@@ -1740,11 +1738,11 @@
|
|
|
<el-form-item label="w" :label-width="formLabelWidth4">
|
|
|
<el-select
|
|
|
size="mini"
|
|
|
- v-model="vectorobj.dataW"
|
|
|
+ v-model="streamobj.dataW"
|
|
|
placeholder="select boundary"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="scalar in vectorobj.dataWarr"
|
|
|
+ v-for="scalar in streamobj.dataWarr"
|
|
|
:key="scalar"
|
|
|
:label="scalar"
|
|
|
:value="scalar"
|
|
@@ -1754,7 +1752,7 @@
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
<div class="listbtn">
|
|
|
- <el-button plain class="anniu">创建</el-button>
|
|
|
+ <el-button plain class="anniu" @click="CreateStream()">创建</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class='selecttype'>
|
|
@@ -1770,11 +1768,11 @@
|
|
|
<el-form-item label="方向" :label-width="formLabelWidth5">
|
|
|
<el-select
|
|
|
size="mini"
|
|
|
- v-model="vectorobj.dataU"
|
|
|
+ v-model="streamres.direction"
|
|
|
placeholder="select boundary"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="scalar in vectorobj.dataUarr"
|
|
|
+ v-for="scalar in directionlist"
|
|
|
:key="scalar"
|
|
|
:label="scalar"
|
|
|
:value="scalar"
|
|
@@ -1788,11 +1786,11 @@
|
|
|
<el-form-item label="StreamStyle" :label-width="formLabelWidth5">
|
|
|
<el-select
|
|
|
size="mini"
|
|
|
- v-model="vectorobj.dataU"
|
|
|
+ v-model="streamres.streamstyle"
|
|
|
placeholder="select boundary"
|
|
|
>
|
|
|
<el-option
|
|
|
- v-for="scalar in vectorobj.dataUarr"
|
|
|
+ v-for="scalar in streamstylelist"
|
|
|
:key="scalar"
|
|
|
:label="scalar"
|
|
|
:value="scalar"
|
|
@@ -1804,21 +1802,21 @@
|
|
|
<div class="linetext"> intergration</div>
|
|
|
</div>
|
|
|
<el-form-item label="InitialStep" :label-width="formLabelWidth6" >
|
|
|
- <el-input value="PingYi" autocomplete="off"></el-input>
|
|
|
+ <el-input v-model="streamres.initialstep" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="MaxPropagation" :label-width="formLabelWidth6" >
|
|
|
- <el-input value="PingYi" autocomplete="off"></el-input>
|
|
|
+ <el-input v-model="streamres.maxpropagation" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="MinimumStep" :label-width="formLabelWidth6" >
|
|
|
- <el-input value="PingYi" autocomplete="off"></el-input>
|
|
|
+ <el-input v-model="streamres.minimumstep" autocomplete="off"></el-input>
|
|
|
</el-form-item>
|
|
|
<div class="radio_text text_color liangf">
|
|
|
<div class="classfelx" style="text-align: center;">
|
|
|
- <el-checkbox v-model="colorobj.showHideState" label="show"></el-checkbox>
|
|
|
+ <el-checkbox v-model="streamres.showstate" label="show"></el-checkbox>
|
|
|
|
|
|
</div>
|
|
|
<div class="classfelx">
|
|
|
- <el-checkbox v-model="colorobj.showHideState" label="tool"></el-checkbox>
|
|
|
+ <el-checkbox v-model="streamres.toolstate" label="tool"></el-checkbox>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
@@ -1831,7 +1829,7 @@
|
|
|
<el-button @click="dialog.Stream_Surface= false"
|
|
|
>{{ $t("HCFD.file.cancel")}}</el-button
|
|
|
>
|
|
|
- <el-button type="primary" @click="dialog.Stream_Surface= false"
|
|
|
+ <el-button type="primary" @click="streamOK();dialog.Stream_Surface= false"
|
|
|
>{{ $t("HCFD.file.ok")}}</el-button
|
|
|
>
|
|
|
|
|
@@ -2024,14 +2022,33 @@ export default {
|
|
|
v:'r',
|
|
|
w:'r',
|
|
|
},
|
|
|
- streamparae:'',
|
|
|
- vectorobj:{
|
|
|
+ streamobj:{
|
|
|
dataU:'r',
|
|
|
dataV:'r',
|
|
|
dataW:'r',
|
|
|
dataUarr:[],
|
|
|
dataVarr:[],
|
|
|
dataWarr:[],
|
|
|
+ },
|
|
|
+ directionlist:['Both','Forward','Backward'],
|
|
|
+ streamstylelist:['Line','Ribbon','Tube'],
|
|
|
+ streamres:{
|
|
|
+ direction:"Both",
|
|
|
+ streamstyle:"Line",
|
|
|
+ initialstep:0.2,
|
|
|
+ maxpropagation:1.2,
|
|
|
+ minimumstep:0.3,
|
|
|
+ showstate:true,
|
|
|
+ toolstate:true,
|
|
|
+ },
|
|
|
+ streamparae:'',
|
|
|
+ vectorobj:{
|
|
|
+ dataU:'Displacement-magnitude',
|
|
|
+ dataV:'Displacement-magnitude',
|
|
|
+ dataW:'Displacement-magnitude',
|
|
|
+ dataUarr:[],
|
|
|
+ dataVarr:[],
|
|
|
+ dataWarr:[],
|
|
|
scaleFactor:''
|
|
|
},
|
|
|
// 颜色选择
|
|
@@ -2055,10 +2072,13 @@ export default {
|
|
|
'hsla(209, 100%, 56%, 0.73)',
|
|
|
'#c7158577'
|
|
|
],
|
|
|
- editableTabsValue: '1',
|
|
|
+ target:'',
|
|
|
+ editableTabsValue: '1',
|
|
|
editableTabs: [],
|
|
|
tabIndex: 0,
|
|
|
-
|
|
|
+ variableNamearr:[],
|
|
|
+
|
|
|
+ value1: 0,
|
|
|
loadObjs: [],
|
|
|
lesseeId:'',
|
|
|
disOK:true,
|
|
@@ -2236,7 +2256,7 @@ export default {
|
|
|
displaylist2:[
|
|
|
{ icon:p14, titlie:'实体表面'},
|
|
|
{ icon:p15, titlie:'切片'},
|
|
|
- { icon:p16, titlie:'Stream'},
|
|
|
+ { icon:p16, titlie:'流线'},
|
|
|
],
|
|
|
animationlist:[
|
|
|
{ icon:p17, titlie:'动画'},
|
|
@@ -2621,12 +2641,16 @@ if(ress==undefined){
|
|
|
//矢量数据
|
|
|
vectordata(){
|
|
|
let vectorparam= JSON.parse(sessionStorage.getItem("vectorparam"));
|
|
|
+ console.log(vectorparam);
|
|
|
let datau=vectorparam.dataU;
|
|
|
let datav=vectorparam.dataV;
|
|
|
let dataw=vectorparam.dataW;
|
|
|
this.vectorobj.dataUarr=datau.split(",");
|
|
|
this.vectorobj.dataVarr=datav.split(",");
|
|
|
this.vectorobj.dataWarr=dataw.split(",");
|
|
|
+ // this.vectorobj.dataU=this.vectorobj.dataUarr[0]
|
|
|
+ // this.vectorobj.dataV=this.vectorobj.dataVarr[0]
|
|
|
+ // this.vectorobj.dataW=this.vectorobj.dataWarr[0]
|
|
|
this.vectorobj.scaleFactor=vectorparam.scaleFactor;
|
|
|
|
|
|
},
|
|
@@ -2637,9 +2661,144 @@ vectorOK(){
|
|
|
this.vector.w=this.vectorobj.dataW,
|
|
|
this.bStepok("VectorDisplay",'')
|
|
|
},
|
|
|
+//add的参数
|
|
|
+ // 添加div
|
|
|
+ addTab(targetName) {
|
|
|
+ setTimeout(function(){
|
|
|
+
|
|
|
+
|
|
|
+ this.femaddparam();
|
|
|
+ this.target= targetName;
|
|
|
+ let newTabName = ++this.tabIndex + '';
|
|
|
+ this.bStepok("SliceDisplayAdd",newTabName)
|
|
|
+ this.editableTabs.push({
|
|
|
+ index:newTabName,
|
|
|
+ type:"line",
|
|
|
+ variableName:'r',
|
|
|
+ level:'',
|
|
|
+ normal_x:'',
|
|
|
+ normal_y :'',
|
|
|
+ normal_z:'',
|
|
|
+ position_x:'1',
|
|
|
+ position_y:'',
|
|
|
+ position_z:'',
|
|
|
+ scalar_value_state:false,
|
|
|
+ solid_state:true,
|
|
|
+ sectional_plane_state:true,
|
|
|
+ sectional_contour_state:true,
|
|
|
+ areaRange:"",
|
|
|
+ });
|
|
|
+
|
|
|
+ this.editableTabsValue = newTabName;
|
|
|
+ console.log( this.editableTabs);
|
|
|
+ },300)
|
|
|
+ },
|
|
|
+femaddparam(){
|
|
|
+ console.log(333444);
|
|
|
+ let dataslicedisplay=JSON.parse(sessionStorage.getItem("dataslicedisplay"));
|
|
|
+ let data=JSON.parse(dataslicedisplay);
|
|
|
+ let that=this;
|
|
|
+ that.variableNamearr=data.variableName.split(",");
|
|
|
+ let arr=this.editableTabs;
|
|
|
+ console.log(arr);
|
|
|
+
|
|
|
+ that.$nextTick(()=>{
|
|
|
+ for(var i = 0; i < arr.length; i++){
|
|
|
+ arr[i].position_x=data.position_x;
|
|
|
+ arr[i].position_y=data.position_y;
|
|
|
+ arr[i].position_z=data.position_z;
|
|
|
+ arr[i].areaRange=data.areaRange;
|
|
|
+ that.$refs.addtabs[i].getarrs(this.variableNamearr);
|
|
|
+ that.$refs.addtabs[i].range.xrange=data.xrange;
|
|
|
+ that.$refs.addtabs[i].range.yrange=data.yrange;
|
|
|
+ that.$refs.addtabs[i].range.zrange=data.zrange;
|
|
|
+ }
|
|
|
+ })
|
|
|
+},
|
|
|
+ updata(){
|
|
|
+ this.bStepok("SliceDisplayUpdate",'');
|
|
|
+ this.updataparam();
|
|
|
+
|
|
|
+ },
|
|
|
+ //updata的参数
|
|
|
+updataparam(){
|
|
|
+ console.log(1122333);
|
|
|
+ let updateparam=JSON.parse(sessionStorage.getItem("updateparam"));
|
|
|
+ let edarr=this.editableTabs;
|
|
|
+ let updatadata=JSON.parse(updateparam);
|
|
|
+ let updatarr=updatadata.update_param;
|
|
|
+
|
|
|
+ console.log(updatarr);
|
|
|
+ for(var i = 0; i < edarr.length; i++){
|
|
|
+ for(var j = 0; j < updatarr.length; j++){
|
|
|
+ edarr[i].normal_x=updatarr[j].normal_x;
|
|
|
+ edarr[i].normal_y=updatarr[j].normal_y;
|
|
|
+ edarr[i].normal_z=updatarr[j].normal_z;
|
|
|
+ edarr[i].position_x=updatarr[j].position_x;
|
|
|
+ edarr[i].position_y=updatarr[j].position_y;
|
|
|
+ edarr[i].position_z=updatarr[j].position_z;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+},
|
|
|
+
|
|
|
+ // 参数的编辑
|
|
|
+
|
|
|
+ //删除新增的tab
|
|
|
+ removeclear(val){
|
|
|
+
|
|
|
+ let tabs = this.editableTabs;
|
|
|
+ let activeName = this.editableTabsValue;
|
|
|
+ if (activeName === val) {
|
|
|
+ tabs.forEach((tab, index) => {
|
|
|
+ if (tab.index === val) {
|
|
|
+ let nextTab = tabs[index + 1] || tabs[index - 1];
|
|
|
+ if (nextTab) {
|
|
|
+ activeName =nextTab.index;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.editableTabsValue = activeName;
|
|
|
+ this.editableTabs = tabs.filter(tab => tab.index !== val);
|
|
|
+ this.bStepok("SliceDisplayDel",val);
|
|
|
+
|
|
|
+ },
|
|
|
+ removeTab(targetName) {
|
|
|
+ console.log(targetName);
|
|
|
+ let tabs = this.editableTabs;
|
|
|
+ let activeName = this.editableTabsValue;
|
|
|
+ if (activeName === targetName) {
|
|
|
+ tabs.forEach((tab, index) => {
|
|
|
+ if (tab.index === targetName) {
|
|
|
+ let nextTab = tabs[index + 1] || tabs[index - 1];
|
|
|
+ if (nextTab) {
|
|
|
+ activeName = nextTab.index;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ this.editableTabsValue = activeName;
|
|
|
+ this.editableTabs = tabs.filter(tab => tab.index !== targetName);
|
|
|
+ this.bStepok("SliceDisplayDel",targetName);
|
|
|
+
|
|
|
+ },
|
|
|
+ liceOK(){
|
|
|
+ let paramJson=JSON.stringify(this.editableTabs)
|
|
|
+ this.paramJson=paramJson;
|
|
|
+ this.bStepok("SliceDisplayApply",'');
|
|
|
+ this.dialog.Slice_Surface= false;
|
|
|
+
|
|
|
+},
|
|
|
+ handletabclick(el){
|
|
|
+ console.log(el);
|
|
|
+
|
|
|
+ },
|
|
|
//stream 数据
|
|
|
streamdata(data){
|
|
|
- console.log(data);
|
|
|
let streamparam= JSON.parse(data);
|
|
|
let datau=streamparam.dataU;
|
|
|
let datav=streamparam.dataV;
|
|
@@ -2691,6 +2850,14 @@ bmScalarschange(val){
|
|
|
this.strnumchange(this.outlineobj.nameTypes);
|
|
|
|
|
|
},
|
|
|
+//接口返回的颜色
|
|
|
+colorval(val){
|
|
|
+ let colorval=JSON.parse(val);
|
|
|
+ this.colorobj.R=parseInt(Number(colorval.r));
|
|
|
+ this.colorobj.G=parseInt(Number(colorval.g));
|
|
|
+ this.colorobj.B=parseInt(Number(colorval.b));
|
|
|
+ this.colorobj.transparency=Number(colorval.transparency)
|
|
|
+},
|
|
|
//实体的颜色的控制
|
|
|
colorchange(val){
|
|
|
if(this.lineColor!=null){
|
|
@@ -2821,12 +2988,15 @@ this.styX.left=e.clientX+'px';
|
|
|
this.dialog.contour_visiable=true;
|
|
|
break;
|
|
|
case 'six2-1':
|
|
|
+ this.outlinedata();
|
|
|
this.dialog.Line_visiable=true;
|
|
|
break;
|
|
|
case 'six2-2':
|
|
|
+ this.vectordata();
|
|
|
this.dialog.Vector_visiable=true;
|
|
|
break;
|
|
|
case 'six3-0':
|
|
|
+ //this.colorval();
|
|
|
this.dialog.Solid_Surface=true;
|
|
|
break;
|
|
|
case 'six3-1':
|
|
@@ -2849,77 +3019,7 @@ this.styX.left=e.clientX+'px';
|
|
|
femupload(){
|
|
|
this.$parent.startimg("init",'loaddata');
|
|
|
},
|
|
|
- // 添加div
|
|
|
- femaddTab(targetName) {
|
|
|
- this.target= targetName;
|
|
|
- console.log(targetName);
|
|
|
- let newTabName = ++this.tabIndex + '';
|
|
|
- this.editableTabs.push({
|
|
|
- title:newTabName,
|
|
|
- name: newTabName,
|
|
|
- // content:Addtabs,
|
|
|
- ruleForm:{
|
|
|
- fw:'1',
|
|
|
- slicecheck:'Solid',
|
|
|
- sx:'',
|
|
|
- sy:'',
|
|
|
- sx:'',
|
|
|
- rx:'',
|
|
|
- yx:'',
|
|
|
- zx:'',
|
|
|
- con:'0',
|
|
|
- colorlevel:'Sectionalplane',
|
|
|
- secheck:'',
|
|
|
- },
|
|
|
-
|
|
|
- });
|
|
|
- this.editableTabsValue = newTabName;
|
|
|
- console.log( this.editableTabs);
|
|
|
-
|
|
|
- },
|
|
|
- //删除新增的tab
|
|
|
- femremoveclear(val){
|
|
|
- console.log(val)
|
|
|
- let tabs = this.editableTabs;
|
|
|
- let activeName = this.editableTabsValue;
|
|
|
- if (activeName === val) {
|
|
|
- tabs.forEach((tab, index) => {
|
|
|
- if (tab.name === val) {
|
|
|
- let nextTab = tabs[index + 1] || tabs[index - 1];
|
|
|
- if (nextTab) {
|
|
|
- activeName = nextTab.name;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- this.editableTabsValue = activeName;
|
|
|
- this.editableTabs = tabs.filter(tab => tab.name !== val);
|
|
|
-
|
|
|
- },
|
|
|
- femremoveTab(targetName) {
|
|
|
-
|
|
|
- console.log(targetName);
|
|
|
- let tabs = this.editableTabs;
|
|
|
- let activeName = this.editableTabsValue;
|
|
|
- if (activeName === targetName) {
|
|
|
- tabs.forEach((tab, index) => {
|
|
|
- if (tab.name === targetName) {
|
|
|
- let nextTab = tabs[index + 1] || tabs[index - 1];
|
|
|
- if (nextTab) {
|
|
|
- activeName = nextTab.name;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- this.editableTabsValue = activeName;
|
|
|
- this.editableTabs = tabs.filter(tab => tab.name !== targetName);
|
|
|
-
|
|
|
- },
|
|
|
- femhandletabclick(el){
|
|
|
- console.log(el);
|
|
|
-
|
|
|
- },
|
|
|
+
|
|
|
//求解日志
|
|
|
async getLogs() {
|
|
|
//打印日志
|