index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923
  1. <template>
  2. <div class="scal">
  3. <div class="toolbar-part-detail lbg_color1 el-tag--primary">
  4. <!-- <div class="toolbar-content"> -->
  5. <!-- <div class="imgcontent">
  6. </div> -->
  7. <div v-if="value2=='HCFDLab'">
  8. <hcfd ref="hcfd" :objopp="objopp" :pid="pid" @fun="fun()" :elodingfalse="elodingfalse" @exlodingfalse="exlodingfalse" :femnum="femnum"></hcfd>
  9. </div>
  10. <div v-else-if="value2=='FEMLab(结构力学)'||value2=='FEMLab(结构力学)版本2'">
  11. <fem ref="fem" :femnum="femnum" :logs='logs' :pid="pid"></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 el-menu" 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 class="leftsearch">
  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. <!-- <div class="part-panel-collapse-handle lbg_color3 el-tag--primary " @click="showtrue=!showtrue">
  97. <i class="el-icon-arrow-down"></i>
  98. </div> -->
  99. <el-container class="beij-container">
  100. <el-container>
  101. <el-main ref="main3d" :class="headMenu_2Show?'maxh400':'maxh221'" style="padding:0">
  102. <tool1 @startimg="startimg"></tool1>
  103. <!-- 加载折线图 -->
  104. <echartsHFCD ref="monitor" v-if="femnum=='HCFDLab'" @getthislog='getthislog' @restimeyear='restimeyear' :projectId='pid' :nmlsteps="Number(numsteps)"></echartsHFCD>
  105. <!-- 加载图片 -->
  106. <TFileStream :projectId='pid' ref="TFileStream" ></TFileStream>
  107. </el-main>
  108. <div class="footerTitle el-tag--primary">
  109. <div>{{ $t("FEM.other.console") }}
  110. <p class="restime" v-show="elodingfalse" style=" margin-left: 50px; font-size:14px">剩余时长:{{restime}}</p>
  111. </div>
  112. <div>
  113. <li class="exloadbox" v-show="elodingfalse" >
  114. <span>正在求解中</span>
  115. <i class="el-icon-loading"></i>
  116. </li>
  117. <li>
  118. <span @click="footerShows('claer')">清空</span>
  119. </li>
  120. <li>
  121. <span @click="footerShows('foot')">&#9650;&#9660;</span>
  122. </li>
  123. </div>
  124. </div>
  125. <el-footer class="femFooter" v-if="footerShow">
  126. <div class="footerTextBox">
  127. <el-input
  128. class="footerText"
  129. type="textarea"
  130. v-model="logs"
  131. ></el-input>
  132. </div>
  133. </el-footer>
  134. </el-container>
  135. </el-container>
  136. </div>
  137. </div>
  138. </div>
  139. </template>
  140. <script>
  141. //图片引入
  142. import tl1 from '@/assets/icon/axislegend.png'
  143. import tl2 from '@/assets/icon/zoomtowindow.png'
  144. import tl3 from '@/assets/icon/defaultmousecontrol.png'
  145. import tl4 from '@/assets/icon/u3884.png'
  146. import tl5 from '@/assets/icon/16.png'
  147. import tl6 from '@/assets/icon/pan.png'
  148. import tl7 from '@/assets/icon/u3871.png'
  149. import tl8 from '@/assets/icon/u3879.png'
  150. import tl9 from '@/assets/icon/u9872.png'
  151. import tl10 from '@/assets/icon/view_front.png'
  152. import tl11 from '@/assets/icon/view_back.png'
  153. import tl12 from '@/assets/icon/view_top.png'
  154. import tl13 from '@/assets/icon/view_bottom.png'
  155. import tl14 from '@/assets/icon/view_left.png'
  156. import tl15 from '@/assets/icon/view_right.png'
  157. import tl16 from '@/assets/icon/view_isometric.png'
  158. // 引入组件
  159. import { request, getImage } from '@/utils/request'
  160. import geometry from './geometry/index.vue'
  161. import meshindex from './meshindex/index.vue'
  162. import Geometryandclass from './Geometryandclass/index.vue'
  163. import Materials from './Materials/index.vue'
  164. import touch from './touch/index.vue'
  165. import initial from './initial/index.vue'
  166. import boundary from './boundary/index.vue'
  167. import Meshauto from './Meshauto/index.vue'
  168. import loadcase from './loadcase/index.vue'
  169. import zuoye from './zuoye/index.vue'
  170. import result from './result/index.vue'
  171. import toolindex from './tool/index.vue'
  172. import caozuo from './caozuo/index.vue'
  173. import hcfd from './HCFDLab/index.vue'
  174. import fem from './FEMLab/fem.vue'
  175. import echartsHFCD from "./HCFDLab/echartsHFCD.vue";
  176. import { number } from 'echarts/lib/export'
  177. import TFileStream from "./compoents/TFileStreamhcfd.vue";
  178. import tool1 from "./compoents/tool1.vue";
  179. export default {
  180. components:{geometry,meshindex,Geometryandclass,Materials,touch,initial,boundary,Meshauto,loadcase,zuoye,echartsHFCD,result,caozuo,toolindex,hcfd,fem,TFileStream,tool1},
  181. data() {
  182. return {
  183. tl1,tl2,tl3,tl4,tl5,tl6,tl7,tl8,tl9,tl10,
  184. tl11,tl12,tl13,tl14,tl15,tl16,
  185. active:'',
  186. restime:'',
  187. footerShow:true,
  188. headMenu_2Show:false,
  189. elodingfalse:false,
  190. numsteps:'',
  191. logs: "欢迎来到adi平台",
  192. newlog:'',
  193. toollist:[
  194. { icon:tl1, titlie:'坐标轴'},
  195. { icon:tl2, titlie:'缩放'},
  196. ],
  197. toollist2:[
  198. { icon:tl3, titlie:'默认鼠标控制'},
  199. { icon:tl4, titlie:'缩小到窗口'},
  200. { icon:tl5, titlie:'轨道'},
  201. { icon:tl6, titlie:'pan'},
  202. { icon:tl7, titlie:'zoom'},
  203. ],
  204. toollist3:[
  205. { icon:tl8, titlie:'点击选择'},
  206. { icon:tl9, titlie:'点击选择窗口'},
  207. ],
  208. toollist4:[
  209. { icon:tl10, titlie:'前'},
  210. { icon:tl11, titlie:'后'},
  211. { icon:tl12, titlie:'上'},
  212. { icon:tl13, titlie:'底'},
  213. { icon:tl14, titlie:'左'},
  214. { icon:tl15, titlie:'右'},
  215. { icon:tl16, titlie:'等角'},
  216. ],
  217. data: [{
  218. label: '几何(33)',
  219. children: [{
  220. label: '几何点(17)',
  221. children: [{
  222. label: '三级 1-1-1'
  223. }]
  224. },
  225. {
  226. label: '曲线(17)',
  227. children: [{
  228. label: '三级 1-1-1'
  229. }]
  230. },
  231. ]
  232. }, {
  233. label: '网格(20)',
  234. children: [{
  235. label: '节点',
  236. }, {
  237. label: '表格',
  238. }]
  239. }, {
  240. label: '材料',
  241. },
  242. {
  243. label: '接触体',
  244. },
  245. {
  246. label: '接触关系',
  247. },
  248. ],
  249. defaultProps: {
  250. children: 'children',
  251. label: 'label'
  252. },
  253. // current:0,
  254. pid:'',
  255. solverConfigid:'',
  256. activeName: 'one',
  257. activeName1:'first',
  258. objopp:'',
  259. femnum:'',
  260. tab:[
  261. {index:0,name:"几何建模"},
  262. {index:1,name:"网格划分"},
  263. {index:2,name:"几何与单元属性"},
  264. {index:3,name:"材料属性"},
  265. {index:4,name:"接触与连接"},
  266. {index:5,name:"初始条件"},
  267. {index:6,name:" 边界条件"},
  268. {index:7,name:"网格自适应"},
  269. {index:8,name:"载荷工况"},
  270. {index:9,name:"作业任务"},
  271. {index:10,name:"结果查看"},
  272. {index:11,name:" 工具箱"},
  273. ],
  274. tabPosition: 'top',
  275. showtrue:true,
  276. drawer: true,
  277. direction: 'rtl',
  278. options:[
  279. {value: '0',label: 'FEMLab(结构力学)'},
  280. { value: '1',label: 'MPMLab(结构力学)'},
  281. { value: '3',label: 'Bladesign(结构力学)'},
  282. {value: '4',label: 'Marc(结构力学)'},
  283. { value: '5',label: 'Abaqus(结构力学)'},
  284. { value: '6',label: 'Natran(结构力学)'},
  285. { value: '7', label: 'ANSYS-FLUENT(结构力学)'},
  286. {value: '8',label: 'STAR_CCM(流体力学)'},
  287. {value: '9', label: 'Pointwise(流体力学)' },
  288. {value: '10',label: 'ANSYS_ICEMCFD(流体力学)' }
  289. ],
  290. options1:[
  291. {value: '0',label: '结构分析'},
  292. { value: '1',label: '传热分析'},
  293. {value: '2',label: '热/电耦合'},
  294. { value: '3',label: '电/热耦合'},
  295. {value: '4',label: '电/热/力耦合'},
  296. { value: '5',label: '静电场分析'},
  297. {value: '6',label: '静电场/结构耦合'},
  298. { value: '7',label: '压力分析'},
  299. {value: '8',label: '热/压力'},
  300. { value: '9',label: '声场分析'},
  301. {value: '10',label: '声场/结构耦合'},
  302. { value: '11',label: '静磁场分析'},
  303. {value: '12',label: '静磁/热'},
  304. { value: '13',label: '静磁/结构'},
  305. {value: '14',label: '电磁场分析'},
  306. { value: '15',label: '电磁/热'},
  307. {value: '16',label: '电磁/热/结构'},
  308. { value: '17',label: '流体分析'},
  309. {value: '18',label: '流体/传热'},
  310. { value: '19',label: '流固耦合分析'},
  311. {value: '20',label: '流体/传热/结构耦合分析'},
  312. { value: '21',label: '轴承分析'},
  313. {value: '22',label: '扩散分析'},
  314. { value: '23',label: '扩散/热分析'},
  315. {value: '24',label: '扩散结构分析'},
  316. { value: '25',label: '土壤分析'},
  317. ],
  318. value1:'0',
  319. options0:[
  320. {value: 'ADI.SimWork',label: 'ADI.SimWork'},
  321. ],
  322. value0:'ADI.SimWork',
  323. options2:[
  324. {value: 'HCFDLab',label: 'HCFDLab'},
  325. { value: 'FEMLab(结构力学)',label: 'FEMLab(结构力学)'},
  326. { value: 'FEMLab(结构力学)版本2',label: 'FEMLab(结构力学)版本2'},
  327. { value: 'adi',label: 'adi'},
  328. ],
  329. value2:'HCFDLab',
  330. zjhlist:[
  331. {value: '0',label: '全部'},
  332. { value: '1',label: '表格'},
  333. { value: '2',label: '几何特征'},
  334. { value: '3',label: '材料'},
  335. {value: '4',label: '接触体'},
  336. { value: '5',label: '接触关系'},
  337. { value: '6',label: '接触表'},
  338. { value: '7',label: '焊接路径'},
  339. { value: '8',label: '焊缝'},
  340. { value: '9',label: '初始条件'},
  341. {value: '10',label: '边界条件'},
  342. { value: '11',label: '分工情况'},
  343. { value: '12',label: '分析任务'},
  344. { value: '13',label: '集合'}
  345. ],
  346. zjhval:'0',
  347. zjhlist1:[
  348. {value: '0',label: '全部'},
  349. { value: '1',label: '表格1'},
  350. { value: '2',label: '表格2'},
  351. ],
  352. zjhval1:'0',
  353. input3:"",
  354. }
  355. },
  356. created(){
  357. this.pid=this.$route.query.pid;
  358. this.init();
  359. },
  360. mounted(){
  361. let curcolor = this.$store.state.themecolor;
  362. this.classH2 = 'custome-' + curcolor;
  363. },
  364. methods:{
  365. meshclick(e,index,key){
  366. let that=this;
  367. that.active=key;
  368. console.log(key);
  369. switch(key){
  370. case 'tl1-0':
  371. break;
  372. case 'tl1-1':
  373. break;
  374. case 'tl2-0':
  375. break;
  376. case 'tl2-1':
  377. break;
  378. case 'tl2-2':
  379. break;
  380. case 'tl2-3':
  381. break;
  382. case 'tl2-4':
  383. break;
  384. case'tl3-0':
  385. break;
  386. case'tl3-1':
  387. break;
  388. case'tl4-0':
  389. break;
  390. case'tl4-1':
  391. break;
  392. case'tl4-2':
  393. break;
  394. case'tl4-3':
  395. break;
  396. case'tl4-4':
  397. break;
  398. case'tl4-5':
  399. break;
  400. case'tl4-6':
  401. break;
  402. }
  403. },
  404. exlodingfalse(res){
  405. this.elodingfalse=res;
  406. },
  407. handleNodeClick(data) {
  408. console.log(data);
  409. },
  410. hide(){
  411. this.showtrue=!this.showtrue;
  412. },
  413. handleClick(tab, event) {
  414. },
  415. init(){
  416. this.pid=this.$route.query.pid;
  417. // this.pid='31f117acb7e74232a3267b091391eab2';
  418. this.solverchange('HCFDLab');
  419. },
  420. //项目求解查询
  421. pojectquery(){
  422. },
  423. solverchange(val){
  424. console.log(val)
  425. let that=this;
  426. this.femnum=val;
  427. const params = {
  428. transCode: 'C00003',
  429. pid:this.pid,
  430. company:this.value0,
  431. solverModel:this.value2
  432. }
  433. sessionStorage.setItem('params',JSON.stringify(params))
  434. request(params)
  435. .then((res) => {
  436. this.objopp=res.parameterObj;
  437. if(val=='HCFDLab'){
  438. this.$nextTick(()=>{
  439. this.$refs.hcfd.hcfdchange(this.objopp,res.solverConfigid);
  440. this.solverConfigid=res.solverConfigid;
  441. let data= JSON.parse(this.objopp);
  442. this.startimg("init",'loaddata');
  443. this.numsteps=data.nmlParam.steps;
  444. console.log(this.numsteps);
  445. })
  446. }else if(val=='FEMLab(结构力学)'){
  447. this.$nextTick(()=>{
  448. // this.$refs.fem.femchange(res.parameterObj,res.solverConfigid);
  449. this.$refs.fem.femchange(res.parameterObj,'abc6db6cb2c0482eb7964df6fea02c70');
  450. })
  451. }else{
  452. }
  453. })
  454. .catch((err) => {
  455. })
  456. },
  457. // 调用求解过程日志
  458. fun(){
  459. this.$refs.monitor.getwebsocket();
  460. this.$refs.monitor.container_show=true;
  461. this.$refs.TFileStream.imgtupian=false;
  462. },
  463. // 日志的文本框
  464. footerShows(evt) {
  465. if(evt=='claer'){
  466. this.logs='';
  467. }else{
  468. this.footerShow=!this.footerShow
  469. }
  470. },
  471. //日志
  472. getthislog(log){
  473. this.newlog = log+"\n"+this.newlog;
  474. this.logs=this.newlog;
  475. if ( this.logs.indexOf("newSolver end") >= 0) {
  476. this.elodingfalse=false;
  477. this.isSolverEnd = true;
  478. }
  479. },
  480. // 剩余时间
  481. restimeyear(time){
  482. this.restime=time;
  483. },
  484. //开起loading
  485. loadingopen(){
  486. const loading = this.$loading({
  487. lock: true,
  488. text: 'Loading',
  489. spinner: 'el-icon-loading',
  490. background: 'rgba(0, 0, 0, 0.7)'
  491. });
  492. return loading;
  493. },
  494. // 关闭lodind
  495. loadingend(loading){
  496. loading.close()
  497. },
  498. // 文件渲染之前的动作
  499. startimg(action,action2){
  500. console.log(111)
  501. let params = {
  502. transCode: "AFT001",// 服务器渲染实例接口创建推流
  503. pid:this.pid,
  504. solverConfigId: this.solverConfigid,
  505. action:action,
  506. paramJson:"",
  507. };
  508. this.loading = true;
  509. request(params)
  510. .then((res) => {
  511. console.log(res);
  512. this.startimgloaddata(action2)
  513. })
  514. .catch((err) => {
  515. });
  516. },
  517. startimgloaddata(action){
  518. let that=this;
  519. let params = {
  520. transCode: "AFT001",// 服务器渲染实例接口创建推流
  521. pid:this.pid,
  522. solverConfigId: this.solverConfigid,
  523. action:action,
  524. paramJson:"",
  525. };
  526. this.loading = true;
  527. request(params)
  528. .then((res) => {
  529. console.log(res);
  530. that.initWebSocket();
  531. })
  532. .catch((err) => {
  533. });
  534. },
  535. // // 文件渲染websoket
  536. initWebSocket(){ //初始化weosocket
  537. const wsuri = "ws://192.168.0.43:8087//websocket?projectId="+this.pid;
  538. this.websock = new WebSocket(wsuri);
  539. this.websock.onmessage = this.websocketonmessage;
  540. this.websock.onopen = this.websocketonopen;
  541. this.websock.onerror = this.websocketonerror;
  542. this.websock.onclose = this.websocketclose;
  543. },
  544. websocketonopen(e){ //连接建立之后执行send方法发送数据
  545. },
  546. websocketonerror(){//连接建立失败重连
  547. this.websock.close()
  548. },
  549. websocketonmessage(e){ //数据接收
  550. // this.loadingopen();
  551. console.log(e);
  552. try{
  553. const redata = JSON.parse(e.data);
  554. // if(redata.hasOwnProperty("data")){
  555. // }else{
  556. // // this.newlog =this.newlog+"\n" +JSON.stringify(redata);
  557. // // this.logs=this.newlog;
  558. // }
  559. // if(redata.data!=undefined){
  560. // this.$refs.monitor.hiden();
  561. this.$refs.monitor.container_show=false;
  562. this.$refs.TFileStream.imgtupian=true;
  563. this.$refs.TFileStream.fetchData(redata);
  564. // }
  565. return true;
  566. }catch(error){
  567. return false;
  568. }
  569. },
  570. websocketsend(Data){//数据发送
  571. this.websock.send(Data);
  572. },
  573. websocketclose(e){ //关闭
  574. Message({
  575. type: "error",
  576. message: "websock断开连接",
  577. });
  578. },
  579. }
  580. }
  581. </script>
  582. <style lang="scss">
  583. @import '@/styles/variables.scss';
  584. @import '@/styles/mixin.scss';
  585. .scal{
  586. .toolbar-part-detail{
  587. // background-color: #757070;
  588. .toolbar-content{
  589. padding: 5px;
  590. border-top:1px solid #999;
  591. // border-bottom:1px solid #999;
  592. .imgcontent{
  593. display: flex;
  594. .item{
  595. padding-right: 5px;
  596. }
  597. }
  598. }
  599. }
  600. .toolmain{
  601. width: 100%;
  602. height:32px;
  603. overflow: hidden;
  604. }
  605. html,body{
  606. width: 100%;
  607. height: 100%;
  608. }
  609. .el-tabs__content{
  610. padding: 0 5px;
  611. }
  612. .content{
  613. display: flex;
  614. height: 100%;
  615. position: relative;
  616. .left{
  617. width: 200px;
  618. height: 100%;
  619. flex-direction: column;
  620. padding: 15px;
  621. position: relative;
  622. height: 88vh;
  623. z-index: 10;
  624. }
  625. .part-panel-collapse-handle {
  626. position: absolute;
  627. // right: -56px;
  628. left: -38px;
  629. top: 44%;
  630. width: 94px;
  631. height: 0;
  632. cursor: pointer;
  633. text-align: center;
  634. border-width: 0 20px 18px;
  635. line-height: 18px;
  636. border-style: none solid solid;
  637. transform: rotateZ(
  638. 90deg);
  639. font-size: 19px;
  640. }
  641. .lbg_color3 i:before{
  642. transform: rotateZ(
  643. 0);
  644. }
  645. .right{
  646. padding:0;
  647. flex: 1;
  648. // height: 100%;
  649. position: relative;
  650. }
  651. .imgcontent img{
  652. font-size: 16px;
  653. }
  654. .slide-fade-enter-active {
  655. transition: all .3s ease;
  656. }
  657. }
  658. .tablist{
  659. border-bottom:1px solid #999;
  660. padding: 3px 0;
  661. }
  662. .tablist .tabitem{
  663. color: #b6b6b6;
  664. font-size: 16px;
  665. padding-right: 5px;
  666. cursor: pointer;
  667. &.current{
  668. color: #Fff ;
  669. }
  670. }
  671. .el-tabs--bottom .el-tabs__header.is-bottom{
  672. margin: 0;
  673. }
  674. .el-tabs__header{
  675. margin: 0;
  676. }
  677. .imgcontent{
  678. padding: 0 15px;
  679. }
  680. .el-tabs__item{
  681. height: 30px;
  682. line-height: 30px;
  683. padding: 0 8px;
  684. font-size: 12px;
  685. }
  686. // .imgzong{
  687. // display: flex;
  688. // padding-top: 4px;
  689. // flex-wrap:wrap;
  690. // .el-image{
  691. // width: 30px;
  692. // }
  693. // }
  694. .toolmain .imgzong .item1{
  695. padding-right: 4px;
  696. padding: 0px 4px ;
  697. }
  698. .imgzong .item1{
  699. padding-right: 4px;
  700. padding: 4px 4px ;
  701. }
  702. .shu{
  703. padding: 4px 10px;
  704. color: #666;
  705. }
  706. .el-tabs__item{
  707. height: 30px;
  708. line-height: 30px;
  709. padding: 0 6px;
  710. color:#b6b6b6;
  711. font-size:15px;
  712. }
  713. }
  714. .maxh221{
  715. max-height: calc(100vh - 76px);
  716. }
  717. .maxh400{
  718. max-height: calc(100vh - 410px);
  719. }
  720. .beij-container {
  721. width: 100%;
  722. height: 100%;
  723. // background: linear-gradient(180deg, #ccd3e2 0%, rgba(255, 255, 255, 0) 100%);
  724. }
  725. .el-footer {
  726. padding: 0;
  727. height: 149px;
  728. overflow-y: auto;
  729. }
  730. .footerTitle {
  731. display: flex;
  732. justify-content: space-between;
  733. padding: 5px 20px;
  734. font-size: 20px;
  735. height: 30px !important;
  736. }
  737. .footerTitle div {
  738. display: flex;
  739. justify-content: space-around;
  740. align-items: center;
  741. }
  742. .footerTitle p {
  743. margin: 0;
  744. }
  745. .footerTitle span {
  746. padding: 5px 10px;
  747. cursor: default;
  748. }
  749. .femFooter{
  750. height: 135px !important;
  751. padding: 0;
  752. position: relative;
  753. }
  754. .footerText .el-textarea__inner{
  755. width: 100%;
  756. height: 135px !important;
  757. border: 0;
  758. font-size: 12px;
  759. color: #333;
  760. padding: 2px;
  761. }
  762. </style>
  763. <style>
  764. .item1 .el-image{
  765. width: 30px;
  766. cursor: pointer;
  767. }
  768. .el-tabs--border-card{
  769. background-color: none;
  770. }
  771. .baoshi{
  772. margin-top: 4px;
  773. color: #b6b6b6;
  774. }
  775. .el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{
  776. background-color: #757070;
  777. }
  778. .el-tabs--card>.el-tabs__header .el-tabs__item.is-active{
  779. border-top:1px solid #757070;
  780. border-bottom:none;
  781. border-top: 1px solid transparent;
  782. }
  783. .part-panel-collapse-handle {
  784. border-color: transparent transparent #6f6f6f;
  785. }
  786. .el-dialog__header{
  787. padding: 15px 20px 10px;
  788. background: #757070;
  789. color: #fff
  790. }
  791. .el-button--primary{
  792. background: #757070;
  793. border-color: #757070;
  794. }
  795. .textselsect{
  796. position: absolute;
  797. z-index: 9;
  798. top: 0;
  799. right: 7px;
  800. z-index: 9;
  801. height: 30px;
  802. overflow: hidden;
  803. }
  804. .dialoglocation{
  805. position: absolute;
  806. top: -15vh;
  807. }
  808. .el-dialog__wrapper{
  809. top: 15vh;
  810. }
  811. .el-tree,.dongtia{
  812. background: none;
  813. color: #b6b6b6;
  814. margin-top: 15px;
  815. }
  816. .itemimg1{
  817. padding: 4px;
  818. }
  819. .itemimg1 .item1 .el-image{
  820. width: 20px;
  821. height: 20px;
  822. }
  823. </style>
  824. <style lang="scss" scoped>
  825. /deep/.toolbar-part-detail{
  826. position: relative;
  827. }
  828. .el-form-item{
  829. margin-bottom: 5px;
  830. }
  831. /deep/.left .el-tabs__item{
  832. padding: 0 19.4px !important;
  833. // box-shadow: 0 8px 0 0 #479a48,0 10px 5px 0 rgba(0,0,0,0.5);
  834. box-shadow: 0 10px 5px 0 rgba(0,0,0,0.2);
  835. }
  836. /deep/.left .is-scrollable {
  837. padding:0;
  838. }
  839. /deep/ .left .el-tabs__nav-next,.left .el-tabs__nav-prev{
  840. display: none;
  841. }
  842. /deep/ .left .el-tabs__nav-prev{
  843. display: none;
  844. }
  845. // /deep/ .el-radio+.el-radio{
  846. // margin: 0;
  847. // }
  848. // /deep/ .el-checkbox+.el-checkbox{
  849. // margin: 0;
  850. // }
  851. /deep/.leftsearch .el-button {
  852. background-color: #fff;
  853. }
  854. </style>