index.vue 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. <template>
  2. <div class="scal">
  3. <div class="toolbar-part-detail lbg_color1 ">
  4. <!-- <div class="toolbar-content"> -->
  5. <!-- <div class="imgcontent">
  6. </div> -->
  7. <div v-if="value2=='HCFDLab'">
  8. <hcfd ref="hcfd" :objopp="objopp" ></hcfd>
  9. </div>
  10. <div v-else-if="value2=='FEMLab(结构力学)'||value2=='FEMLab(结构力学)版本2'">
  11. <fem ref="fem" :femnum="femnum" ></fem>
  12. </div>
  13. <!-- <div v-else-if="value2=='FEMLab2.0'">
  14. <fem ref="fem" ></fem>
  15. </div> -->
  16. <div class="adi" v-else>
  17. <el-tabs :tab-position="tabPosition" v-model="activeName" type="card" @tab-click="handleClick">
  18. <el-tab-pane label="几何建模" name="one"><geometry></geometry></el-tab-pane>
  19. <el-tab-pane label="网格划分" name="two"> <meshindex></meshindex></el-tab-pane>
  20. <el-tab-pane label="几何与单元属性" name="three"> <Geometryandclass></Geometryandclass></el-tab-pane>
  21. <el-tab-pane label="材料属性" name="four"> <Materials></Materials></el-tab-pane>
  22. <el-tab-pane label="接触与连接" name="five"><touch></touch></el-tab-pane>
  23. <el-tab-pane label="初始条件" name="six"> <initial></initial></el-tab-pane>
  24. <el-tab-pane label="边界条件" name="seven"> <boundary></boundary></el-tab-pane>
  25. <el-tab-pane label="网格自适应" name="eight"> <Meshauto></Meshauto> </el-tab-pane>
  26. <el-tab-pane label="载荷工况" name="nine"> <loadcase></loadcase></el-tab-pane>
  27. <el-tab-pane label="作业任务" name="ten"> <zuoye></zuoye></el-tab-pane>
  28. <el-tab-pane label="结果查看" name="eleven"> <result></result></el-tab-pane>
  29. <el-tab-pane label="工具箱" name="twelve"><toolindex></toolindex></el-tab-pane>
  30. <el-tab-pane label="操作" name="thirteen"><caozuo ></caozuo></el-tab-pane>
  31. </el-tabs>
  32. </div>
  33. <div class="textselsect">
  34. <el-select v-model="value0" placeholder="请选择">
  35. <el-option
  36. v-for="item in options0"
  37. :key="item.value"
  38. :label="item.label"
  39. :value="item.value">
  40. </el-option>
  41. </el-select>
  42. <el-select v-model="value2" placeholder="请选择" @change="solverchange">
  43. <el-option
  44. v-for="item in options2"
  45. :key="item.value"
  46. :label="item.label"
  47. :value="item.value">
  48. </el-option>
  49. </el-select>
  50. </div>
  51. </div>
  52. <div class="content">
  53. <transition name="slide-fade">
  54. <div class="left lbg_color3" v-show="showtrue" style="padding:0;">
  55. <el-tabs v-model="activeName1" type="card" @tab-click="handleClick">
  56. <el-tab-pane label="模型导航" name="first">
  57. <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
  58. </el-tab-pane>
  59. <el-tab-pane label="动态菜单" name="second">
  60. <div class="dongtia dialog_color selecr">
  61. <el-form>
  62. <el-form-item >
  63. <el-select v-model="zjhval" placeholder="请选择">
  64. <el-option
  65. v-for="item in zjhlist"
  66. :key="item.value"
  67. :label="item.label"
  68. :value="item.value"
  69. >
  70. </el-option>
  71. </el-select>
  72. </el-form-item>
  73. <el-form-item>
  74. <el-select v-model="zjhval1" placeholder="请选择">
  75. <el-option
  76. v-for="item in zjhlist1"
  77. :key="item.value"
  78. :label="item.label"
  79. :value="item.value"
  80. >
  81. </el-option>
  82. </el-select>
  83. </el-form-item>
  84. <div >
  85. <el-input placeholder="请输入内容" v-model="input3" class="input-with-select">
  86. <el-button slot="append" icon="el-icon-search"></el-button>
  87. </el-input>
  88. </div>
  89. </el-form>
  90. </div>
  91. </el-tab-pane>
  92. </el-tabs>
  93. </div>
  94. </transition>
  95. <div class="right lbg_color2">
  96. <h1>我是主题
  97. </h1>
  98. <div class="part-panel-collapse-handle lbg_color3" @click="showtrue=!showtrue">
  99. <i class="el-icon-arrow-left"></i>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. </template>
  105. <script>
  106. // 引入组件
  107. import { request, getImage } from '@/utils/request'
  108. import geometry from './geometry/index.vue'
  109. import meshindex from './meshindex/index.vue'
  110. import Geometryandclass from './Geometryandclass/index.vue'
  111. import Materials from './Materials/index.vue'
  112. import touch from './touch/index.vue'
  113. import initial from './initial/index.vue'
  114. import boundary from './boundary/index.vue'
  115. import Meshauto from './Meshauto/index.vue'
  116. import loadcase from './loadcase/index.vue'
  117. import zuoye from './zuoye/index.vue'
  118. import result from './result/index.vue'
  119. import toolindex from './tool/index.vue'
  120. import caozuo from './caozuo/index.vue'
  121. import hcfd from './HCFDLab/index.vue'
  122. import fem from './FEMLab/fem.vue'
  123. export default {
  124. components:{geometry,meshindex,Geometryandclass,Materials,touch,initial,boundary,Meshauto,loadcase,zuoye,result,caozuo,toolindex,hcfd,fem},
  125. data() {
  126. return {
  127. data: [{
  128. label: '几何(33)',
  129. children: [{
  130. label: '几何点(17)',
  131. children: [{
  132. label: '三级 1-1-1'
  133. }]
  134. },
  135. {
  136. label: '曲线(17)',
  137. children: [{
  138. label: '三级 1-1-1'
  139. }]
  140. },
  141. ]
  142. }, {
  143. label: '网格(20)',
  144. children: [{
  145. label: '节点',
  146. }, {
  147. label: '表格',
  148. }]
  149. }, {
  150. label: '材料',
  151. },
  152. {
  153. label: '接触体',
  154. },
  155. {
  156. label: '接触关系',
  157. },
  158. ],
  159. defaultProps: {
  160. children: 'children',
  161. label: 'label'
  162. },
  163. // current:0,
  164. pid:'',
  165. activeName: 'one',
  166. activeName1:'first',
  167. objopp:'',
  168. femnum:'',
  169. tab:[
  170. {index:0,name:"几何建模"},
  171. {index:1,name:"网格划分"},
  172. {index:2,name:"几何与单元属性"},
  173. {index:3,name:"材料属性"},
  174. {index:4,name:"接触与连接"},
  175. {index:5,name:"初始条件"},
  176. {index:6,name:" 边界条件"},
  177. {index:7,name:"网格自适应"},
  178. {index:8,name:"载荷工况"},
  179. {index:9,name:"作业任务"},
  180. {index:10,name:"结果查看"},
  181. {index:11,name:" 工具箱"},
  182. ],
  183. tabPosition: 'top',
  184. showtrue:true,
  185. drawer: true,
  186. direction: 'rtl',
  187. options:[
  188. {value: '0',label: 'FEMLab(结构力学)'},
  189. { value: '1',label: 'MPMLab(结构力学)'},
  190. { value: '3',label: 'Bladesign(结构力学)'},
  191. {value: '4',label: 'Marc(结构力学)'},
  192. { value: '5',label: 'Abaqus(结构力学)'},
  193. { value: '6',label: 'Natran(结构力学)'},
  194. { value: '7', label: 'ANSYS-FLUENT(结构力学)'},
  195. {value: '8',label: 'STAR_CCM(流体力学)'},
  196. {value: '9', label: 'Pointwise(流体力学)' },
  197. {value: '10',label: 'ANSYS_ICEMCFD(流体力学)' }
  198. ],
  199. options1:[
  200. {value: '0',label: '结构分析'},
  201. { value: '1',label: '传热分析'},
  202. {value: '2',label: '热/电耦合'},
  203. { value: '3',label: '电/热耦合'},
  204. {value: '4',label: '电/热/力耦合'},
  205. { value: '5',label: '静电场分析'},
  206. {value: '6',label: '静电场/结构耦合'},
  207. { value: '7',label: '压力分析'},
  208. {value: '8',label: '热/压力'},
  209. { value: '9',label: '声场分析'},
  210. {value: '10',label: '声场/结构耦合'},
  211. { value: '11',label: '静磁场分析'},
  212. {value: '12',label: '静磁/热'},
  213. { value: '13',label: '静磁/结构'},
  214. {value: '14',label: '电磁场分析'},
  215. { value: '15',label: '电磁/热'},
  216. {value: '16',label: '电磁/热/结构'},
  217. { value: '17',label: '流体分析'},
  218. {value: '18',label: '流体/传热'},
  219. { value: '19',label: '流固耦合分析'},
  220. {value: '20',label: '流体/传热/结构耦合分析'},
  221. { value: '21',label: '轴承分析'},
  222. {value: '22',label: '扩散分析'},
  223. { value: '23',label: '扩散/热分析'},
  224. {value: '24',label: '扩散结构分析'},
  225. { value: '25',label: '土壤分析'},
  226. ],
  227. value1:'0',
  228. options0:[
  229. {value: 'ADI.SimWork',label: 'ADI.SimWork'},
  230. ],
  231. value0:'ADI.SimWork',
  232. options2:[
  233. {value: 'HCFDLab',label: 'HCFDLab'},
  234. { value: 'FEMLab(结构力学)',label: 'FEMLab(结构力学)'},
  235. { value: 'FEMLab(结构力学)版本2',label: 'FEMLab(结构力学)版本2'},
  236. { value: 'adi',label: 'adi'},
  237. ],
  238. value2:'HCFDLab',
  239. zjhlist:[
  240. {value: '0',label: '全部'},
  241. { value: '1',label: '表格'},
  242. { value: '2',label: '几何特征'},
  243. { value: '3',label: '材料'},
  244. {value: '4',label: '接触体'},
  245. { value: '5',label: '接触关系'},
  246. { value: '6',label: '接触表'},
  247. { value: '7',label: '焊接路径'},
  248. { value: '8',label: '焊缝'},
  249. { value: '9',label: '初始条件'},
  250. {value: '10',label: '边界条件'},
  251. { value: '11',label: '分工情况'},
  252. { value: '12',label: '分析任务'},
  253. { value: '13',label: '集合'}
  254. ],
  255. zjhval:'0',
  256. zjhlist1:[
  257. {value: '0',label: '全部'},
  258. { value: '1',label: '表格1'},
  259. { value: '2',label: '表格2'},
  260. ],
  261. zjhval1:'0',
  262. input3:"",
  263. }
  264. },
  265. mounted(){
  266. this.init();
  267. },
  268. methods:{
  269. handleNodeClick(data) {
  270. console.log(data);
  271. },
  272. hide(){
  273. this.showtrue=!this.showtrue;
  274. },
  275. handleClick(tab, event) {
  276. },
  277. init(){
  278. this.pid=this.$route.query.pid;
  279. console.log(this.pid);
  280. },
  281. //项目求解查询
  282. pojectquery(){
  283. },
  284. solverchange(val){
  285. console.log(val)
  286. this.femnum=val;
  287. const params = {
  288. transCode: 'C00003',
  289. pid:this.pid,
  290. company:this.value0,
  291. solverModel:this.value2
  292. }
  293. request(params)
  294. .then((res) => {
  295. this.objopp=res.parameterObj;
  296. if(val=='HCFDLab'){
  297. this.$nextTick(()=>{
  298. this.$refs.hcfd.hcfdchange(this.objopp,res.solverConfigid);
  299. })
  300. }else if(val=='FEMLab(结构力学)'){
  301. this.$nextTick(()=>{
  302. this.$refs.fem.femchange(res.parameterObj,res.solverConfigid);
  303. })
  304. }else{
  305. }
  306. })
  307. .catch((err) => {
  308. })
  309. }
  310. }
  311. }
  312. </script>
  313. <style lang="scss">
  314. @import '@/styles/variables.scss';
  315. @import '@/styles/mixin.scss';
  316. .scal{
  317. .toolbar-part-detail{
  318. // background-color: #757070;
  319. .toolbar-content{
  320. padding: 5px;
  321. border-top:1px solid #999;
  322. // border-bottom:1px solid #999;
  323. .imgcontent{
  324. display: flex;
  325. .item{
  326. padding-right: 5px;
  327. }
  328. }
  329. }
  330. }
  331. html,body{
  332. width: 100%;
  333. height: 100%;
  334. }
  335. .el-tabs__content{
  336. padding: 0 5px;
  337. }
  338. .content{
  339. display: flex;
  340. height: 100%;
  341. position: relative;
  342. .left{
  343. width: 200px;
  344. height: 100%;
  345. flex-direction: column;
  346. padding: 15px;
  347. position: relative;
  348. height: 88vh;
  349. z-index: 10;
  350. }
  351. .part-panel-collapse-handle {
  352. position: absolute;
  353. // right: -56px;
  354. left: -38px;
  355. top: 44%;
  356. width: 94px;
  357. height: 0;
  358. cursor: pointer;
  359. text-align: center;
  360. border-width: 0 20px 18px;
  361. line-height: 18px;
  362. border-style: none solid solid;
  363. transform: rotateZ(
  364. 90deg);
  365. font-size: 19px;
  366. }
  367. .lbg_color3 i:before{
  368. transform: rotateZ(
  369. 0);
  370. }
  371. .right{
  372. padding: 15px;
  373. flex: 1;
  374. // height: 100%;
  375. position: relative;
  376. }
  377. .imgcontent img{
  378. font-size: 16px;
  379. }
  380. .slide-fade-enter-active {
  381. transition: all .3s ease;
  382. }
  383. }
  384. .tablist{
  385. border-bottom:1px solid #999;
  386. padding: 3px 0;
  387. }
  388. .tablist .tabitem{
  389. color: #b6b6b6;
  390. font-size: 16px;
  391. padding-right: 5px;
  392. cursor: pointer;
  393. &.current{
  394. color: #Fff ;
  395. }
  396. }
  397. .el-tabs--bottom .el-tabs__header.is-bottom{
  398. margin: 0;
  399. }
  400. .el-tabs__header{
  401. margin: 0;
  402. }
  403. .imgcontent{
  404. padding: 0 15px;
  405. }
  406. .el-tabs__item{
  407. height: 30px;
  408. line-height: 30px;
  409. padding: 0 8px;
  410. font-size: 12px;
  411. }
  412. // .imgzong{
  413. // display: flex;
  414. // padding-top: 4px;
  415. // flex-wrap:wrap;
  416. // .el-image{
  417. // width: 30px;
  418. // }
  419. // }
  420. .imgzong .item1{
  421. padding-right: 4px;
  422. padding: 4px 4px ;
  423. }
  424. .shu{
  425. padding: 4px 10px;
  426. color: #666;
  427. }
  428. .el-tabs__item{
  429. height: 30px;
  430. line-height: 30px;
  431. padding: 0 6px;
  432. color:#b6b6b6;
  433. font-size:15px;
  434. }
  435. }
  436. </style>
  437. <style>
  438. .item1 .el-image{
  439. width: 30px;
  440. cursor: pointer;
  441. }
  442. .el-tabs--border-card{
  443. background-color: none;
  444. }
  445. .baoshi{
  446. margin-top: 4px;
  447. color: #b6b6b6;
  448. }
  449. .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{
  450. background-color: #757070;
  451. }
  452. .el-tabs--card>.el-tabs__header .el-tabs__item.is-active{
  453. border-top:1px solid #757070;
  454. border-bottom:none;
  455. border-top: 1px solid transparent;
  456. }
  457. .el-dialog__header{
  458. padding: 15px 20px 10px;
  459. background: #757070;
  460. color: #fff
  461. }
  462. .el-button--primary{
  463. background: #757070;
  464. border-color: #757070;
  465. }
  466. .textselsect{
  467. position: absolute;
  468. z-index: 9;
  469. top: 4px;
  470. right: 7px;
  471. z-index: 9;
  472. height: 30px;
  473. }
  474. .dialoglocation{
  475. position: absolute;
  476. top: -15vh;
  477. }
  478. .el-dialog__wrapper{
  479. top: 15vh;
  480. }
  481. .el-tree,.dongtia{
  482. background: none;
  483. color: #b6b6b6;
  484. margin-top: 15px;
  485. }
  486. </style>
  487. <style lang="scss" scoped>
  488. /deep/.toolbar-part-detail{
  489. position: relative;
  490. }
  491. .el-form-item{
  492. margin-bottom: 5px;
  493. }
  494. /deep/.left .el-tabs__item{
  495. padding: 0 19.4px !important;
  496. // box-shadow: 0 8px 0 0 #479a48,0 10px 5px 0 rgba(0,0,0,0.5);
  497. box-shadow: 0 10px 5px 0 rgba(0,0,0,0.2);
  498. }
  499. /deep/.left .is-scrollable {
  500. padding:0;
  501. }
  502. </style>