HCFD_OLD.vue 148 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638
  1. <template>
  2. <div ref="all_w">
  3. <transformtool ref="transform"></transformtool>
  4. <el-container style="height: 100vh">
  5. <el-header class="fixed-header">
  6. <el-menu class="headMenu_1" mode="horizontal">
  7. <div class="log">
  8. <el-image :src="adilog"></el-image>
  9. </div>
  10. <div class="log logtitle">
  11. <li>&nbsp;&nbsp;HCFDLab</li>
  12. </div>
  13. <el-submenu index="1" v-show="newload">
  14. <template slot="title">{{ $t("HCFD.file.file") }}</template>
  15. <div>
  16. <el-menu-item
  17. index="1-1"
  18. v-if="missType"
  19. @click="clickNew"
  20. >{{ $t("HCFD.file.new") }}</el-menu-item
  21. >
  22. <el-menu-item
  23. v-if="missType"
  24. index="1-2"
  25. @click="
  26. dialog.load_visiable = true;
  27. loadProjects();
  28. "
  29. >{{ $t("HCFD.file.load") }}</el-menu-item
  30. >
  31. <el-menu-item v-if="!missType" index="1-3" @click="dialog.upload_visiable = true"
  32. >upLoad</el-menu-item
  33. >
  34. </div>
  35. </el-submenu>
  36. <el-menu-item index="2" @click="showHeadMenu('geneal')">{{
  37. $t("HCFD.geneal.geneal")
  38. }}</el-menu-item>
  39. <el-menu-item index="3" @click="showHeadMenu('physics')">{{
  40. $t("HCFD.physics.physics")
  41. }}</el-menu-item>
  42. <el-menu-item index="4" @click="showHeadMenu('solution')">{{
  43. $t("HCFD.solution.solution")
  44. }}</el-menu-item>
  45. <el-menu-item index="5" @click="showHeadMenu('result')">{{
  46. $t("HCFD.results.results")
  47. }}</el-menu-item>
  48. <el-submenu index="6">
  49. <template slot="title">{{ $t("HCFD.tool.tool") }}</template>
  50. <el-menu-item index="6-1" @click="unitConversion">{{
  51. $t("HCFD.tool.unitConversion")
  52. }}</el-menu-item>
  53. <el-menu-item class="24" index="6-2" @click="yCalchange">{{
  54. $t("HCFD.tool.yCal")
  55. }}</el-menu-item>
  56. <el-menu-item index="6-3" @click="reyCalchange">{{
  57. $t("HCFD.tool.reyCal")
  58. }}</el-menu-item>
  59. <!-- <el-menu-item index="6-4" @click="atmoCalchange">{{
  60. $t("HCFD.tool.atmoCal")
  61. }}</el-menu-item> -->
  62. </el-submenu>
  63. <!-- <el-submenu index="7">
  64. <template slot="title">{{ $t("HCFD.help.help") }}</template>
  65. <el-menu-item index="7-1">{{ $t("HCFD.help.about") }}</el-menu-item>
  66. <el-menu-item index="7-2">{{
  67. $t("HCFD.help.theroy")
  68. }}</el-menu-item>
  69. <el-menu-item index="7-3">{{ $t("HCFD.help.user") }}</el-menu-item>
  70. <el-menu-item index="7-4">{{ $t("HCFD.help.appli") }}</el-menu-item>
  71. </el-submenu> -->
  72. </el-menu>
  73. </el-header>
  74. <div v-show="headMenu_2Show" class="headMenu_2" id="head2">
  75. <div v-show="gennealShow" class="lg_weiyi">
  76. <div class="el-padding">
  77. <el-row>
  78. <el-col :span="3">
  79. <li class="title">{{ $t("HCFD.geneal.mesh") }}</li>
  80. <div class="title_content_1">
  81. <el-button size="mini" type="success" @click="dialog.scale_visiable = true">
  82. <el-image :src="scaleimage"></el-image
  83. >{{ $t("HCFD.geneal.scale") }}
  84. </el-button>
  85. <el-button size="mini" type="success" @click="dialog.translation_visiable = true">
  86. <el-image :src="transformimage"></el-image
  87. >{{ $t("HCFD.geneal.translation") }}
  88. </el-button>
  89. <el-button size="mini" type="success" @click="dialog.rotation_visiable = true">
  90. <el-image :src="rotationimage"></el-image
  91. >{{ $t("HCFD.geneal.rotation") }}
  92. </el-button>
  93. </div>
  94. </el-col>
  95. <el-col :span="1">
  96. <div class="line"></div>
  97. </el-col>
  98. <el-col :span="3">
  99. <li class="title">{{ $t("HCFD.geneal.analysis") }}</li>
  100. <el-radio
  101. v-model="parameterObj.nmlParam.analysis_Type"
  102. label="Steady"
  103. >{{ $t("HCFD.geneal.steady") }}</el-radio
  104. >
  105. <el-radio
  106. v-model="parameterObj.nmlParam.analysis_Type"
  107. label="Unsteady"
  108. >{{ $t("HCFD.geneal.unsteady") }}</el-radio
  109. >
  110. </el-col>
  111. <el-col :span="1">
  112. <div class="line"></div>
  113. </el-col>
  114. <el-col :span="8">
  115. <li class="title" id="lg-title">
  116. {{ $t("HCFD.geneal.parallel") }}
  117. </li>
  118. <el-radio-group
  119. v-model="parameterObj.nmlParam.parallel_Optional"
  120. >
  121. <el-radio label="Serial">
  122. {{ $t("HCFD.geneal.serial") }}</el-radio
  123. >
  124. <el-radio label="MPI Parallel">{{
  125. $t("HCFD.geneal.mpi")
  126. }}</el-radio>
  127. </el-radio-group>
  128. <li
  129. class="disacent"
  130. style="padding: 6px 0 6px 3.125vw"
  131. v-if="
  132. parameterObj.nmlParam.parallel_Optional == 'MPI Parallel'
  133. "
  134. >
  135. <span>{{ $t("HCFD.geneal.number") }}</span>
  136. <el-input
  137. size="mini"
  138. style="width:20%"
  139. v-model="parameterObj.nmlParam.number_of_Processors"
  140. ></el-input>
  141. </li>
  142. </el-col>
  143. </el-row>
  144. </div>
  145. </div>
  146. <!-- 第二的一个导航条点击事件 -->
  147. <div v-show="physicsShow" class="lg-er">
  148. <div class="el-padding">
  149. <el-row>
  150. <el-col :span="4">
  151. <li class="title">{{ $t("HCFD.physics.gover") }}</li>
  152. <el-radio-group
  153. v-model="parameterObj.nmlParam.eqn_type"
  154. size="mini"
  155. >
  156. <el-radio label="cal_perf_compress">{{
  157. $t("HCFD.physics.compress")
  158. }}</el-radio>
  159. <el-radio label="cal_perf_incompress">{{
  160. $t("HCFD.physics.incompress")
  161. }}</el-radio>
  162. </el-radio-group>
  163. <!-- <table>
  164. <tr>
  165. <td>{{ $t("HCFD.physics.artifical") }}</td>
  166. <td>
  167. <el-input
  168. size="mini"
  169. v-model="parameterObj.nmlParam.artificial_compress"
  170. ></el-input>
  171. </td>
  172. </tr>
  173. </table> -->
  174. <li class="disflex">
  175. <span>{{ $t("HCFD.physics.artifical") }}</span>
  176. <el-input
  177. class='inpw75'
  178. size="mini"
  179. v-model="parameterObj.nmlParam.artificial_compress"
  180. ></el-input>
  181. </li>
  182. </el-col>
  183. <el-col :span="1">
  184. <div class="line"></div>
  185. </el-col>
  186. <el-col :span="2">
  187. <li class="title">{{ $t("HCFD.physics.viscous") }}</li>
  188. <el-radio-group
  189. v-model="parameterObj.nmlParam.viscous_terms"
  190. @change="viscouschange()"
  191. size="mini"
  192. >
  193. <el-radio-button label="inviscid">
  194. <el-image :src="inviscid"></el-image
  195. >{{ $t("HCFD.physics.inviscid") }}
  196. </el-radio-button>
  197. <el-radio-button
  198. @click.native="physicslaminar()"
  199. label="laminar"
  200. >
  201. <el-image :src="laminar"></el-image
  202. >{{ $t("HCFD.physics.laminar") }}
  203. </el-radio-button>
  204. <el-radio-button
  205. @click.native="physicsturbulent()"
  206. label="turbulent"
  207. >
  208. <el-image :src="turbulent"></el-image>
  209. {{ $t("HCFD.physics.turbulent") }}
  210. </el-radio-button>
  211. </el-radio-group>
  212. </el-col>
  213. <el-col :span="1">
  214. <div class="line"></div>
  215. </el-col>
  216. <el-col :span="3">
  217. <li class="title">{{ $t("HCFD.physics.boundary") }}</li>
  218. <el-select
  219. class="inpw100"
  220. size="mini"
  221. @change="boundaryChange"
  222. v-model="Physics.Boundary.bquery"
  223. placeholder="select boundary"
  224. >
  225. <el-option
  226. v-for="hcfdBoundary in parameterObj.hcfdBoundarys"
  227. :key="hcfdBoundary.id"
  228. :label="hcfdBoundary.name"
  229. :value="hcfdBoundary.id"
  230. >
  231. </el-option>
  232. </el-select>
  233. <el-select
  234. class="inpw100"
  235. size="mini"
  236. @change="conditionsChange"
  237. v-model="Physics.Boundary.cquery"
  238. placeholder="select Conditions"
  239. >
  240. <el-option
  241. v-for="Condition in Physics.Boundary.Conditions"
  242. :key="Condition.conditionsCode"
  243. :label="Condition.name"
  244. :value="Condition.conditionsCode"
  245. >
  246. </el-option>
  247. </el-select>
  248. </el-col>
  249. <el-col :span="1">
  250. <div class="line"></div>
  251. </el-col>
  252. <el-col :span="3">
  253. <li class="title">{{ $t("HCFD.physics.dynamic") }}</li>
  254. <el-radio
  255. v-model="parameterObj.nmlParam.dynamic_Mesh"
  256. label="on"
  257. >on</el-radio
  258. >
  259. <el-radio
  260. v-model="parameterObj.nmlParam.dynamic_Mesh"
  261. label="off"
  262. >off</el-radio
  263. >
  264. </el-col>
  265. <el-col :span="1">
  266. <div class="line"></div>
  267. </el-col>
  268. <el-col :span="3" style="position:relative">
  269. <li class="title">{{ $t("HCFD.physics.reference") }}</li>
  270. <li class="disflex">
  271. <span>{{ $t("HCFD.physics.machNum") }}</span>
  272. <el-input
  273. class="inpw50"
  274. size="mini"
  275. v-model="parameterObj.nmlParam.mach_number"
  276. ></el-input>
  277. </li>
  278. <li class="disflex">
  279. <span>{{ $t("HCFD.physics.reyNum") }}</span>
  280. <el-input
  281. class="inpw50"
  282. size="mini"
  283. v-model="parameterObj.nmlParam.reynolds_number"
  284. ></el-input>
  285. </li>
  286. <el-button
  287. size="mini"
  288. type="text"
  289. style="position:absolute;bottom:-15px;right:-10px"
  290. icon="el-icon-arrow-down"
  291. @click="dialog.reference_visiable = true"
  292. >more</el-button
  293. >
  294. </el-col>
  295. <el-col :span="1">
  296. <div class="line"></div>
  297. </el-col>
  298. <el-col :span="4">
  299. <li class="title">{{ $t("HCFD.physics.nonitertial") }}</li>
  300. <el-radio
  301. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  302. label="on"
  303. >on</el-radio
  304. >
  305. <el-radio
  306. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  307. label="off"
  308. >off</el-radio
  309. >
  310. </el-col>
  311. <!-- <el-col :span="1">
  312. <div class="line"></div>
  313. </el-col> -->
  314. </el-row>
  315. </div>
  316. </div>
  317. <div v-show="solutionShow" class="lg-san">
  318. <div class="el-padding">
  319. <el-row>
  320. <el-col :span="4" class="lg-bu">
  321. <li class="title">{{ $t("HCFD.solution.invis") }}</li>
  322. <el-button type="success" size="mini" @click="dialog.fluxrc_visiable = true">
  323. <el-image :src="fluxr"></el-image
  324. >{{ $t("HCFD.solution.fluxResCon") }}
  325. </el-button>
  326. <el-button type="success" size="mini" @click="dialog.fluxl_visiable = true">
  327. <el-image :src="fluxl"></el-image
  328. >{{ $t("HCFD.solution.flux") }}
  329. </el-button>
  330. <el-button type="success" size="mini" @click="dialog.fluxjc_visiable = true">
  331. <el-image :src="fluxj"></el-image
  332. >{{ $t("HCFD.solution.fluxJacCon") }}
  333. </el-button>
  334. <li class="disflex">
  335. <span>
  336. {{ $t("HCFD.solution.muscl") }}
  337. </span>
  338. <el-input
  339. class="inpw75"
  340. size="mini"
  341. v-model="parameterObj.nmlParam.schedule"
  342. ></el-input>
  343. </li>
  344. <li class="disflex">
  345. <span>
  346. {{ $t("HCFD.solution.firstOrderNum") }}
  347. </span>
  348. <el-input
  349. class="inpw75"
  350. size="mini"
  351. v-model="parameterObj.nmlParam.first_order_iterations"
  352. ></el-input>
  353. </li>
  354. </el-col>
  355. <el-col :span="1">
  356. <div class="line"></div>
  357. </el-col>
  358. <el-col :span="4">
  359. <li class="title">{{ $t("HCFD.solution.timeAdvance") }}</li>
  360. <el-button type="success" size="mini" @click="dialog.time_visiable = true">
  361. <el-image :src="times"></el-image
  362. >{{ $t("HCFD.solution.timeScheme") }}
  363. </el-button>
  364. <li class="disflex">
  365. <span class="marr30">
  366. {{ $t("HCFD.solution.pseudo") }}
  367. </span>
  368. <div class="disflex">
  369. <el-radio
  370. v-model="parameterObj.nmlParam.pseudo_time_stepping"
  371. label="off"
  372. >Off</el-radio
  373. >
  374. <el-radio
  375. v-model="parameterObj.nmlParam.pseudo_time_stepping"
  376. label="on"
  377. >On</el-radio
  378. >
  379. </div>
  380. </li>
  381. <li class="disflex">
  382. <span>
  383. {{ $t("HCFD.solution.timeStep") }}
  384. </span>
  385. <el-input
  386. class="inpw75"
  387. size="mini"
  388. v-model="parameterObj.nmlParam.time_step_nondim"
  389. ></el-input>
  390. </li>
  391. <li class="disflex">
  392. <span>
  393. {{ $t("HCFD.solution.subiterations") }}
  394. </span>
  395. <el-input
  396. class="inpw75"
  397. size="mini"
  398. v-model="parameterObj.nmlParam.subiterations"
  399. ></el-input>
  400. </li>
  401. <li class="disrs">
  402. <el-button
  403. size="mini"
  404. type="text"
  405. class="move"
  406. icon="el-icon-arrow-down"
  407. @click="dialog.timeasm_visiable = true"
  408. >more</el-button
  409. >
  410. </li>
  411. </el-col>
  412. <el-col :span="1">
  413. <div class="line"></div>
  414. </el-col>
  415. <el-col :span="4" class="lg-ss">
  416. <li class="title">{{ $t("HCFD.solution.linearSol") }}</li>
  417. <li class="disflex">
  418. <span>
  419. {{ $t("HCFD.solution.meanflow") }}
  420. </span>
  421. <el-input
  422. class="inpw75"
  423. size="mini"
  424. v-model="parameterObj.nmlParam.meanflow_sweeps"
  425. ></el-input>
  426. </li>
  427. <li class="disflex">
  428. <span>
  429. {{ $t("HCFD.solution.turbulence") }}
  430. </span>
  431. <el-input
  432. class="inpw75"
  433. size="mini"
  434. v-model="parameterObj.nmlParam.turbulence_sweeps"
  435. ></el-input>
  436. </li>
  437. <li>
  438. <span class="marr30">
  439. {{ $t("HCFD.solution.gcr") }}
  440. </span>
  441. <el-radio-group v-model="parameterObj.nmlParam.line_implicit">
  442. <el-radio label="off">Off</el-radio>
  443. <el-radio label="on">On</el-radio>
  444. </el-radio-group>
  445. </li>
  446. </el-col>
  447. <el-col :span="1">
  448. <div class="line"></div>
  449. </el-col>
  450. <el-col :span="3">
  451. <li class="title">{{ $t("HCFD.solution.initialization") }}</li>
  452. <el-radio-group v-model="initialization" size="mini">
  453. <el-radio label="freestreams">{{
  454. $t("HCFD.solution.freestreams")
  455. }}</el-radio>
  456. <el-radio label="specified">{{
  457. $t("HCFD.solution.specified")
  458. }}</el-radio>
  459. </el-radio-group>
  460. </el-col>
  461. <el-col :span="1">
  462. <div class="line"></div>
  463. </el-col>
  464. <el-col :span="2" style="position:relative">
  465. <li class="title">{{ $t("HCFD.solution.run") }}</li>
  466. <li>{{ $t("HCFD.solution.iterNum")}}</li>
  467. <li>
  468. <el-input
  469. size="mini"
  470. v-model="parameterObj.nmlParam.steps"
  471. ></el-input>
  472. </li>
  473. <li>{{ $t("HCFD.solution.stopToler")}}</li>
  474. <li>
  475. <el-input
  476. size="mini"
  477. v-model="parameterObj.nmlParam.stopping_tolerance"
  478. ></el-input>
  479. </li>
  480. <el-button
  481. type="text"
  482. size="mini"
  483. style="position:absolute;buttom:0;right:0"
  484. icon="el-icon-arrow-down"
  485. @click="dialog.runc_visiable = true"
  486. >more</el-button
  487. >
  488. </el-col>
  489. <el-col :span="1">
  490. <div class="line"></div>
  491. </el-col>
  492. <el-col :span="3">
  493. <li class="title">{{ $t("HCFD.solution.outCon") }}</li>
  494. <el-button
  495. size="mini"
  496. type="success"
  497. @click="dialog.boundaryo_visiable = true"
  498. >
  499. <el-image :src="boundary"></el-image
  500. >{{ $t("HCFD.solution.bounOut") }}
  501. </el-button>
  502. <el-button type="success" size="mini" @click="dialog.volumeo_visiable = true">
  503. <el-image :src="volume"> </el-image
  504. >{{ $t("HCFD.solution.volOut") }}
  505. </el-button>
  506. </el-col>
  507. <el-col :span="1">
  508. <div class="line"></div>
  509. </el-col>
  510. <el-col :span="2">
  511. <li class="title">{{ $t("HCFD.solution.advance") }}</li>
  512. <el-button type="success" size="mini" @click="dialog.specialp_visiable = true">
  513. <el-image :src="special"></el-image
  514. >{{ $t("HCFD.solution.specialPara") }}
  515. </el-button>
  516. <el-button type="success" size="mini" @click="dialog.swap_visiable = true">
  517. <el-image :src="swap"></el-image
  518. >{{ $t("HCFD.solution.swapYZ") }}
  519. </el-button>
  520. <div>
  521. <el-button
  522. size="mini"
  523. type="primary"
  524. v-show="runMonitor"
  525. @click="hcfdrun(true)"
  526. >
  527. <div class="disflex">
  528. <el-image :src="run" style="width:15px"></el-image>
  529. <span class="borun">Run</span>
  530. </div>
  531. </el-button>
  532. <el-button
  533. size="mini"
  534. type="primary"
  535. @click="showMonitor()"
  536. v-show="runMonitor"
  537. >Monitor</el-button
  538. >
  539. <el-button
  540. size="mini"
  541. type="primary"
  542. @click="showresource()"
  543. >资源选择</el-button
  544. >
  545. </div>
  546. </el-col>
  547. <!-- <el-col :span="0">
  548. <div class="line"></div> </el-col > -->
  549. </el-row>
  550. </div>
  551. </div>
  552. <div v-show="resultShow" class="lg-si">
  553. <div class="el-padding">
  554. <el-row>
  555. <el-col :span="9" class="lisin">
  556. <li class="title">Surface Grid</li>
  557. <div class="flexpad30">
  558. <div>
  559. <li>
  560. <span class='span100'>Steps</span>
  561. <el-select size="mini" v-model="bStep" placeholder="请选择">
  562. <el-option
  563. v-for="setep in boundaryStep"
  564. :key="setep"
  565. :label="setep"
  566. :value="setep"
  567. >
  568. </el-option>
  569. </el-select>
  570. </li>
  571. <li class="disflex">
  572. <div>
  573. <span class='span100'>Scalar Selection</span>
  574. <el-select size="mini" v-model="bScalar" placeholder="请选择">
  575. <el-option
  576. v-for="scalar in boundaryScalars"
  577. :key="scalar"
  578. :label="scalar"
  579. :value="scalar"
  580. >
  581. </el-option>
  582. </el-select>
  583. </div>
  584. </li>
  585. </div>
  586. <div>
  587. <li class="disflex lheig34">
  588. <span class="span100 marb5">Vector Selection</span>
  589. <el-checkbox checked>Velocity</el-checkbox>
  590. </li>
  591. <li class="disflex lheig34">
  592. <span class='span100 marb5' style="width:111px">Show Element</span>
  593. <el-checkbox-group v-model="belementCheckeds" style="display:flex">
  594. <el-checkbox
  595. label="Mesh"
  596. @change="Contourval('Mesh')"
  597. ></el-checkbox>
  598. <el-checkbox
  599. label="Contour"
  600. @change="Contourval('Contour')"
  601. ></el-checkbox>
  602. </el-checkbox-group>
  603. </li>
  604. </div>
  605. </div>
  606. <el-button
  607. size="mini"
  608. type="primary"
  609. style="margin:0 0 0 40%"
  610. @click="showSurface()"
  611. >Show Surface</el-button>
  612. </el-col>
  613. <el-col :span="1">
  614. <div class="line"></div>
  615. </el-col>
  616. <el-col :span="11" class="lg-si-right lisin">
  617. <li class="title">Volume Grid</li>
  618. <div class="flexpad30">
  619. <div>
  620. <li>
  621. <span class='span100'>Steps</span>
  622. <el-select size="mini" v-model="vStep" placeholder="请选择">
  623. <el-option
  624. v-for="setep in volumStep"
  625. :key="setep"
  626. :label="setep"
  627. :value="setep"
  628. >
  629. </el-option>
  630. </el-select>
  631. </li>
  632. <li class="disflex">
  633. <div>
  634. <span class='span100'>Scalar Selection</span>
  635. <el-select size="mini" v-model="vSalar" placeholder="请选择">
  636. <el-option
  637. v-for="scalar in volumScalars"
  638. :key="scalar"
  639. :label="scalar"
  640. :value="scalar"
  641. >
  642. </el-option>
  643. </el-select>
  644. </div>
  645. </li>
  646. </div>
  647. <div>
  648. <li class="disflex lheig34">
  649. <span class="span100 marb5">Vector Selection</span>
  650. <el-checkbox checked>Velocity</el-checkbox>
  651. </li>
  652. <li class="disflex lheig34">
  653. <span class="span100 marb5" style="width:111px">Show Element</span>
  654. <el-checkbox-group v-model="velementCheckeds" style="display:flex">
  655. <el-checkbox
  656. label="Mesh"
  657. @change="ContourvalVolume('Mesh')"
  658. ></el-checkbox>
  659. <el-checkbox
  660. label="Contour"
  661. @change="ContourvalVolume('Contour')"
  662. ></el-checkbox>
  663. </el-checkbox-group>
  664. </li>
  665. </div>
  666. </div>
  667. <el-button
  668. type="primary"
  669. size="mini"
  670. style="margin:0 0 0 34%"
  671. @click="showVolume()"
  672. >Show Volume</el-button
  673. >
  674. </el-col>
  675. </el-row>
  676. </div>
  677. </div>
  678. </div>
  679. <el-container>
  680. <el-aside ref="leftMenu_1" class="leftMenu_1_1">
  681. <li class="outline">{{ project.projectName }}</li>
  682. <el-tree :data="menuList" @node-click="handleNodeClick"> </el-tree>
  683. </el-aside>
  684. <!-- Task Page的弹框 -->
  685. <div class="lg-centent">
  686. <div class="lg-modl" v-show="TaskGenealshow">
  687. <div class="logs_title">
  688. Task Page
  689. <div class="x" @click="taskchangGeneal()">x</div>
  690. </div>
  691. <div class="el-padding Task-lg" :class="headMenu_2Show?'maxh290':'maxh100'">
  692. <el-row>
  693. <el-col>
  694. <li class="title">{{ $t("HCFD.geneal.mesh") }}</li>
  695. <div>
  696. <li class="discenter padding0">
  697. <el-button size="mini" type="success" @click="dialog.scale_visiable = true">
  698. <el-image :src="scaleimage"></el-image
  699. >{{ $t("HCFD.geneal.scale") }}
  700. </el-button>
  701. </li>
  702. <li class="discenter padding0">
  703. <el-button size="mini" type="success" @click="dialog.translation_visiable = true">
  704. <el-image :src="transformimage"></el-image
  705. >{{ $t("HCFD.geneal.translation") }}
  706. </el-button>
  707. </li>
  708. <li class="discenter padding0">
  709. <el-button size="mini" type="success" @click="dialog.rotation_visiable = true">
  710. <el-image :src="rotationimage"></el-image
  711. >{{ $t("HCFD.geneal.rotation") }}
  712. </el-button>
  713. </li>
  714. </div>
  715. </el-col>
  716. <el-col>
  717. <li class="title">{{ $t("HCFD.geneal.analysis") }}</li>
  718. <div class="pdingf10">
  719. <el-radio
  720. v-model="parameterObj.nmlParam.analysis_Type"
  721. label="Steady"
  722. >{{ $t("HCFD.geneal.steady") }}</el-radio
  723. >
  724. <el-radio
  725. v-model="parameterObj.nmlParam.analysis_Type"
  726. label="Unsteady"
  727. >{{ $t("HCFD.geneal.unsteady") }}</el-radio
  728. >
  729. </div>
  730. </el-col>
  731. <el-col>
  732. <li class="title">{{ $t("HCFD.geneal.parallel") }}</li>
  733. <el-radio-group
  734. v-model="parameterObj.nmlParam.parallel_Optional"
  735. class="pdingf10"
  736. >
  737. <el-radio label="Serial">
  738. {{ $t("HCFD.geneal.serial") }}</el-radio
  739. >
  740. <el-radio label="MPI Parallel">{{
  741. $t("HCFD.geneal.mpi")
  742. }}</el-radio>
  743. </el-radio-group>
  744. <li
  745. class="disacent pdingf10"
  746. v-if="
  747. parameterObj.nmlParam.parallel_Optional == 'MPI Parallel'
  748. "
  749. >
  750. <span class="disinblok" style="width:150px">{{ $t("HCFD.geneal.number") }}</span>
  751. <el-input
  752. size="mini"
  753. class="inpw35"
  754. v-model="parameterObj.nmlParam.number_of_Processors"
  755. ></el-input>
  756. </li>
  757. </el-col>
  758. </el-row>
  759. </div>
  760. </div>
  761. <!-- task第二个 -->
  762. <div class="lg-modl" v-show="TaskPhysicsshow">
  763. <div class="logs_title">
  764. Task Page
  765. <div class="x" @click="taskchangPhysics()">x</div>
  766. </div>
  767. <div class="el-padding Task-lg" :class="headMenu_2Show?'maxh290':'maxh100'">
  768. <el-row>
  769. <el-col>
  770. <li class="title">{{ $t("HCFD.physics.gover") }}</li>
  771. <el-radio-group
  772. v-model="parameterObj.nmlParam.eqn_type"
  773. size="mini"
  774. class="pdingf10"
  775. >
  776. <el-radio label="cal_perf_compress">{{
  777. $t("HCFD.physics.compress")
  778. }}</el-radio>
  779. <el-radio label="cal_perf_incompress">{{
  780. $t("HCFD.physics.incompress")
  781. }}</el-radio>
  782. </el-radio-group>
  783. <li class="disflex pdingf10">
  784. <span>{{ $t("HCFD.physics.artifical") }}</span>
  785. <el-input
  786. size="mini"
  787. style="width:25%"
  788. v-model="parameterObj.nmlParam.artificial_compress"
  789. ></el-input>
  790. </li>
  791. </el-col>
  792. <el-col>
  793. <li class="title">{{ $t("HCFD.physics.viscous") }}</li>
  794. <el-radio-group
  795. v-model="parameterObj.nmlParam.viscous_terms"
  796. @change.native="viscouschange()"
  797. size="mini"
  798. class="pdingf10"
  799. >
  800. <el-radio-button label="inviscid">
  801. <el-image :src="inviscid"></el-image
  802. >{{ $t("HCFD.physics.inviscid") }}
  803. </el-radio-button>
  804. <el-radio-button
  805. label="laminar"
  806. @click.native="physicslaminar()"
  807. >
  808. <el-image :src="laminar"></el-image
  809. >{{ $t("HCFD.physics.laminar") }}
  810. </el-radio-button>
  811. <el-radio-button
  812. label="turbulent"
  813. @click.native="physicsturbulent()"
  814. >
  815. <el-image :src="turbulent"></el-image>
  816. {{ $t("HCFD.physics.turbulent") }}
  817. </el-radio-button>
  818. </el-radio-group>
  819. </el-col>
  820. <el-col>
  821. <li class="title">{{ $t("HCFD.physics.boundary") }}</li>
  822. <div class="pdingf10">
  823. <el-select
  824. size="mini"
  825. @change="boundaryChange"
  826. v-model="Physics.Boundary.bquery"
  827. placeholder="select boundary"
  828. >
  829. <el-option
  830. v-for="hcfdBoundary in parameterObj.hcfdBoundarys"
  831. :key="hcfdBoundary.id"
  832. :label="hcfdBoundary.name"
  833. :value="hcfdBoundary.id"
  834. >
  835. </el-option>
  836. </el-select>
  837. <el-select
  838. size="mini"
  839. @change="conditionsChange"
  840. v-model="Physics.Boundary.cquery"
  841. placeholder="select Conditions"
  842. >
  843. <el-option
  844. v-for="Condition in Physics.Boundary.Conditions"
  845. :key="Condition.conditionsCode"
  846. :label="Condition.name"
  847. :value="Condition.conditionsCode"
  848. >
  849. </el-option>
  850. </el-select>
  851. </div>
  852. </el-col>
  853. <el-col>
  854. <li class="title">{{ $t("HCFD.physics.dynamic") }}</li>
  855. <div class="pdingf10">
  856. <el-radio
  857. v-model="parameterObj.nmlParam.dynamic_Mesh"
  858. label="on"
  859. >on</el-radio
  860. >
  861. <el-radio
  862. v-model="parameterObj.nmlParam.dynamic_Mesh"
  863. label="off"
  864. >off</el-radio
  865. >
  866. </div>
  867. </el-col>
  868. <el-col>
  869. <li class="title">{{ $t("HCFD.physics.reference") }}</li>
  870. <li class="disflex55 pdingf10">
  871. <span>{{ $t("HCFD.physics.machNum") }}</span>
  872. <el-input
  873. size="mini"
  874. v-model="parameterObj.nmlParam.mach_number"
  875. ></el-input>
  876. </li>
  877. <li class="disflex55 pdingf10">
  878. <span>{{ $t("HCFD.physics.reyNum") }}</span>
  879. <el-input
  880. size="mini"
  881. v-model="parameterObj.nmlParam.reynolds_number"
  882. ></el-input>
  883. </li>
  884. <li class="discenter">
  885. <el-button
  886. size="mini"
  887. type="success"
  888. icon="el-icon-arrow-down"
  889. @click="dialog.reference_visiable = true"
  890. >more</el-button
  891. >
  892. </li>
  893. </el-col>
  894. <el-col>
  895. <li class="title">{{ $t("HCFD.physics.nonitertial") }}</li>
  896. <div class="pdingf10">
  897. <el-radio
  898. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  899. label="on"
  900. >on</el-radio
  901. >
  902. <el-radio
  903. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  904. label="off"
  905. >off</el-radio
  906. >
  907. </div>
  908. </el-col>
  909. </el-row>
  910. </div>
  911. </div>
  912. <!-- 第三 -->
  913. <div class="lg-modl" v-show="TaskSolutionshow">
  914. <div class="logs_title">
  915. Task Page
  916. <div class="x" @click="taskchangSolution()">x</div>
  917. </div>
  918. <div class="el-padding Task-lg" :class="headMenu_2Show?'maxh290':'maxh100'">
  919. <el-row>
  920. <el-col class="lg-bu">
  921. <li class="title">{{ $t("HCFD.solution.invis") }}</li>
  922. <li class="discenter padding0">
  923. <el-button type="success" size="mini" @click="dialog.fluxrc_visiable = true">
  924. <el-image :src="fluxr"></el-image
  925. >{{ $t("HCFD.solution.fluxResCon") }}
  926. </el-button>
  927. </li>
  928. <li class="discenter padding0">
  929. <el-button type="success" size="mini" @click="dialog.fluxl_visiable = true">
  930. <el-image :src="fluxl"></el-image
  931. >{{ $t("HCFD.solution.flux") }}
  932. </el-button>
  933. </li>
  934. <li class="discenter padding0">
  935. <el-button type="success" size="mini" @click="dialog.fluxjc_visiable = true">
  936. <el-image :src="fluxj"></el-image
  937. >{{ $t("HCFD.solution.fluxJacCon") }}
  938. </el-button>
  939. </li>
  940. <li class="pdingf10">
  941. {{ $t("HCFD.solution.muscl") }}
  942. <el-input
  943. size="mini"
  944. v-model="parameterObj.nmlParam.schedule"
  945. ></el-input>
  946. </li>
  947. <li class="pdingf10">
  948. {{ $t("HCFD.solution.firstOrderNum") }}
  949. <el-input
  950. size="mini"
  951. v-model="parameterObj.nmlParam.first_order_iterations"
  952. ></el-input>
  953. </li>
  954. </el-col>
  955. <el-col>
  956. <li class="title">{{ $t("HCFD.solution.timeAdvance") }}</li>
  957. <li class="discenter">
  958. <el-button type="success" size="mini" @click="dialog.time_visiable = true">
  959. <el-image :src="times"></el-image
  960. >{{ $t("HCFD.solution.timeScheme") }}
  961. </el-button>
  962. </li>
  963. <li class="disflex pdingf10">
  964. <span>{{ $t("HCFD.solution.pseudo") }}</span>
  965. <div class="disflex" style="width:45%">
  966. <el-radio
  967. style="margin:0 20px 0 0"
  968. v-model="parameterObj.nmlParam.pseudo_time_stepping"
  969. label="off"
  970. >Off</el-radio
  971. >
  972. <el-radio
  973. v-model="parameterObj.nmlParam.pseudo_time_stepping"
  974. label="on"
  975. >On</el-radio
  976. >
  977. </div>
  978. </li>
  979. <li class="disflex55 pdingf10">
  980. <span>{{ $t("HCFD.solution.timeStep") }}</span>
  981. <el-input
  982. size="mini"
  983. v-model="parameterObj.nmlParam.time_step_nondim"
  984. ></el-input>
  985. </li>
  986. <li class="disflex55 pdingf10">
  987. <span>{{ $t("HCFD.solution.subiterations") }}</span>
  988. <el-input
  989. size="mini"
  990. v-model="parameterObj.nmlParam.subiterations"
  991. ></el-input>
  992. </li>
  993. <li class="discenter">
  994. <el-button
  995. size="mini"
  996. type="success"
  997. icon="el-icon-arrow-down"
  998. @click="dialog.timeasm_visiable = true"
  999. >more</el-button
  1000. >
  1001. </li>
  1002. </el-col>
  1003. <el-col class="lg-ss">
  1004. <li class="title">{{ $t("HCFD.solution.linearSol") }}</li>
  1005. <li class="disflex55 pdingf10">
  1006. <span>{{ $t("HCFD.solution.meanflow") }}</span>
  1007. <el-input
  1008. size="mini"
  1009. v-model="parameterObj.nmlParam.meanflow_sweeps"
  1010. ></el-input>
  1011. </li>
  1012. <li class="disflex55 pdingf10">
  1013. <span>{{ $t("HCFD.solution.turbulence") }}</span>
  1014. <el-input
  1015. size="mini"
  1016. v-model="parameterObj.nmlParam.turbulence_sweeps"
  1017. ></el-input>
  1018. </li>
  1019. <li class="disflex pdingf10">
  1020. <span>{{ $t("HCFD.solution.gcr") }}</span>
  1021. <el-radio-group
  1022. v-model="parameterObj.nmlParam.line_implicit"
  1023. class="disflex"
  1024. >
  1025. <el-radio label="off" style="margin:0 10px 0 0">Off</el-radio>
  1026. <el-radio label="on">On</el-radio>
  1027. </el-radio-group>
  1028. </li>
  1029. </el-col>
  1030. <el-col>
  1031. <li class="title">
  1032. {{ $t("HCFD.solution.initialization") }}
  1033. </li>
  1034. <el-radio-group v-model="initialization" size="mini" class="pdingf10">
  1035. <el-radio label="freestreams">{{
  1036. $t("HCFD.solution.freestreams")
  1037. }}</el-radio>
  1038. <el-radio label="specified">{{
  1039. $t("HCFD.solution.specified")
  1040. }}</el-radio>
  1041. </el-radio-group>
  1042. </el-col>
  1043. <el-col>
  1044. <li class="title">{{ $t("HCFD.solution.run") }}</li>
  1045. <li class="disflex55 pdingf10">
  1046. <span style="width:51%">{{ $t("HCFD.solution.iterNum")}}</span>
  1047. <el-input
  1048. size="mini"
  1049. v-model="parameterObj.nmlParam.steps"
  1050. ></el-input>
  1051. </li>
  1052. <li class="disflex55 pdingf10">
  1053. <span style="width:51%">{{ $t("HCFD.solution.stopToler")}}</span>
  1054. <el-input
  1055. size="mini"
  1056. v-model="parameterObj.nmlParam.stopping_tolerance"
  1057. ></el-input>
  1058. </li>
  1059. <li class="discenter">
  1060. <el-button
  1061. size="mini"
  1062. type="success"
  1063. icon="el-icon-arrow-down"
  1064. @click="dialog.runc_visiable = true"
  1065. >more</el-button
  1066. >
  1067. </li>
  1068. </el-col>
  1069. <el-col>
  1070. <li class="title">{{ $t("HCFD.solution.outCon") }}</li>
  1071. <li class="discenter padding0">
  1072. <el-button
  1073. size="mini"
  1074. type="success"
  1075. @click="dialog.boundaryo_visiable = true"
  1076. >
  1077. <el-image :src="boundary"></el-image
  1078. >{{ $t("HCFD.solution.bounOut") }}
  1079. </el-button></li>
  1080. <li class="discenter padding0">
  1081. <el-button
  1082. size="mini"
  1083. type="success"
  1084. @click="dialog.volumeo_visiable = true"
  1085. >
  1086. <el-image :src="volume"> </el-image
  1087. >{{ $t("HCFD.solution.volOut") }}
  1088. </el-button>
  1089. </li>
  1090. </el-col>
  1091. <el-col>
  1092. <li class="title">{{ $t("HCFD.solution.advance") }}</li>
  1093. <li class="discenter padding0">
  1094. <el-button
  1095. size="mini"
  1096. type="success"
  1097. @click="dialog.specialp_visiable = true"
  1098. >
  1099. <el-image :src="special"></el-image
  1100. >{{ $t("HCFD.solution.specialPara") }}
  1101. </el-button>
  1102. </li>
  1103. <li class="discenter padding0">
  1104. <el-button type="success" size="mini" @click="dialog.swap_visiable = true">
  1105. <el-image :src="swap"></el-image
  1106. >{{ $t("HCFD.solution.swapYZ") }}
  1107. </el-button>
  1108. </li>
  1109. <div class="discenter padding0">
  1110. <div>
  1111. <el-button
  1112. size="mini"
  1113. type="primary"
  1114. v-show="runMonitor"
  1115. @click="hcfdrun(true)"
  1116. >
  1117. <div class="disflex">
  1118. <el-image :src="run" style="width:15px"></el-image>
  1119. <span class="borun">Run</span>
  1120. </div>
  1121. </el-button>
  1122. <el-button
  1123. size="mini"
  1124. type="primary"
  1125. @click="showMonitor()"
  1126. v-show="runMonitor"
  1127. >Monitor</el-button
  1128. >
  1129. </div>
  1130. </div>
  1131. </el-col>
  1132. <!-- <el-col :span="0">
  1133. <div class="line"></div> </el-col > -->
  1134. </el-row>
  1135. </div>
  1136. </div>
  1137. <!-- 第四个 -->
  1138. <div class="lg-modl" v-show="TaskSurfaceshow">
  1139. <div class="logs_title">
  1140. Task Page
  1141. <div class="x" @click="taskchangSurface()">x</div>
  1142. </div>
  1143. <div class="el-padding Task-lg task-si" :class="headMenu_2Show?'maxh290':'maxh100'">
  1144. <el-row
  1145. ><el-col>
  1146. <li class="title">Surface Grid</li>
  1147. <li class="disflex55 pdingf10">
  1148. <span>Steps</span>
  1149. <el-select size="mini" v-model="bStep" placeholder="请选择">
  1150. <el-option
  1151. v-for="setep in boundaryStep"
  1152. :key="setep"
  1153. :label="setep"
  1154. :value="setep"
  1155. >
  1156. </el-option>
  1157. </el-select>
  1158. </li>
  1159. <li class="disflex55 pdingf10">
  1160. <span>Scalar Selection</span>
  1161. <el-select
  1162. size="mini"
  1163. v-model="bScalar"
  1164. placeholder="请选择"
  1165. >
  1166. <el-option
  1167. v-for="scalar in boundaryScalars"
  1168. :key="scalar"
  1169. :label="scalar"
  1170. :value="scalar"
  1171. >
  1172. </el-option>
  1173. </el-select>
  1174. </li>
  1175. <li class="disflex55 lheig34 pdingf10">
  1176. <span>Vector Selection</span>
  1177. <el-checkbox checked>Velocity</el-checkbox>
  1178. </li>
  1179. <li class="disflex55 lheig34 pdingf10">
  1180. <span>Show Element</span>
  1181. <el-checkbox-group v-model="belementCheckeds" class="discenter">
  1182. <el-checkbox
  1183. label="Mesh"
  1184. style="margin:0 8px 0 0"
  1185. @change="Contourval('Mesh')"
  1186. ></el-checkbox>
  1187. <el-checkbox
  1188. label="Contour"
  1189. @change="Contourval('Contour')"
  1190. ></el-checkbox>
  1191. </el-checkbox-group>
  1192. </li>
  1193. <li class="discenter">
  1194. <el-button
  1195. size="mini"
  1196. type="primary"
  1197. @click="showSurface()"
  1198. >Show Surface</el-button
  1199. >
  1200. </li>
  1201. </el-col>
  1202. </el-row>
  1203. </div>
  1204. </div>
  1205. <!-- 第五个 -->
  1206. <div class="lg-modl" v-show="TaskVolumeshow">
  1207. <div class="logs_title">
  1208. Task Page
  1209. <div class="x" @click="taskchangVolume()">x</div>
  1210. </div>
  1211. <div class="el-padding Task-lg task-si" :class="headMenu_2Show?'maxh290':'maxh100'">
  1212. <el-row>
  1213. <el-col class="lg-si-right">
  1214. <li class="title">Volume Grid</li>
  1215. <li class="disflex55 pdingf10">
  1216. <span>Steps</span>
  1217. <el-select size="mini" v-model="vStep" placeholder="请选择">
  1218. <el-option
  1219. v-for="setep in volumStep"
  1220. :key="setep"
  1221. :label="setep"
  1222. :value="setep"
  1223. >
  1224. </el-option>
  1225. </el-select>
  1226. </li>
  1227. <li class="disflex55 pdingf10">
  1228. <span>Scalar Selection</span>
  1229. <el-select
  1230. size="mini"
  1231. v-model="vSalar"
  1232. placeholder="请选择"
  1233. >
  1234. <el-option
  1235. v-for="scalar in volumScalars"
  1236. :key="scalar"
  1237. :label="scalar"
  1238. :value="scalar"
  1239. >
  1240. </el-option>
  1241. </el-select>
  1242. </li>
  1243. <li class="disflex55 lheig34 pdingf10">
  1244. <span>Vector Selection</span>
  1245. <el-checkbox checked>Velocity</el-checkbox>
  1246. </li>
  1247. <li class="disflex55 lheig34 pdingf10">
  1248. <span>Show Element</span>
  1249. <el-checkbox-group v-model="velementCheckeds" class="discenter">
  1250. <el-checkbox
  1251. label="Mesh"
  1252. style="margin:0 8px 0 0"
  1253. @change="ContourvalVolume('Mesh')"
  1254. ></el-checkbox>
  1255. <el-checkbox
  1256. label="Contour"
  1257. @change="ContourvalVolume('Contour')"
  1258. ></el-checkbox>
  1259. </el-checkbox-group>
  1260. </li>
  1261. <li class="discenter">
  1262. <el-button type="primary" size="mini" @click="showVolume()"
  1263. >Show Volume</el-button
  1264. >
  1265. </li>
  1266. </el-col>
  1267. </el-row>
  1268. </div>
  1269. </div>
  1270. </div>
  1271. <!-- Task Page的弹框的结束-->
  1272. <el-container class="beij-container">
  1273. <el-aside v-if="leftMenu_2Show" class="leftMenu_1_1">Aside</el-aside>
  1274. <el-container>
  1275. <el-main ref="main3d" :class="headMenu_2Show?'maxh400':'maxh221'">
  1276. <echartsHFCD ref="monitor" :name="project.projectName"></echartsHFCD>
  1277. <ugrid-load
  1278. ref="ugridLoad"
  1279. :renderer_hight="renderer_hight"
  1280. :renderer_width="renderer_width"
  1281. ></ugrid-load>
  1282. <volum-load
  1283. ref="volumLoad"
  1284. @showVolume="showVolume"
  1285. :renderer_hight="renderer_hight"
  1286. :renderer_width="renderer_width"
  1287. @setVolumScalars="setVolumScalars($event)"
  1288. ></volum-load>
  1289. <boundary-load
  1290. ref="boundaryLoad"
  1291. @showSurface="showSurface"
  1292. :bScalar="bScalar"
  1293. :contourLevel="contourLevel"
  1294. :renderer_hight="renderer_hight"
  1295. :renderer_width="renderer_width"
  1296. @setBoundaryScalars="setBoundaryScalars($event)"
  1297. ></boundary-load>
  1298. <!-- 颜色条 -->
  1299. <!-- <div class="colortiao"></div>
  1300. <vtkLoad ref="vtkLoad" :bScalar='bScalar' :contourLevel="contourLevel">
  1301. </vtkLoad> -->
  1302. </el-main>
  1303. <!-- <div class="x" @click="change">==</div> -->
  1304. <el-footer style="height: 160px" v-show="Consoleshow">
  1305. <div class="logs_title">
  1306. Console
  1307. <div class="x">x</div>
  1308. <div class="exloadbox" :style="{ visibility: exLoading}">
  1309. <span>正在求解中</span>
  1310. <i class="el-icon-loading"></i>
  1311. </div>
  1312. </div>
  1313. <div class="logs_console">
  1314. <textarea v-model="logs" style="width: 100%;height:120px">
  1315. "欢迎来到HCFD!"
  1316. </textarea>
  1317. </div>
  1318. </el-footer>
  1319. </el-container>
  1320. </el-container>
  1321. </el-container>
  1322. </el-container>
  1323. <el-dialog
  1324. :close-on-click-modal="false"
  1325. title="New"
  1326. :visible.sync="dialog.new_visiable"
  1327. class="dialog lg-dialog-2"
  1328. >
  1329. <el-form>
  1330. <el-form-item>
  1331. <span>Project Name</span>
  1332. <el-input v-model="project.projectName"></el-input>
  1333. <span>Project description</span>
  1334. <el-input v-model="project.projectDesc"></el-input>
  1335. </el-form-item>
  1336. <el-form-item label="File Type">
  1337. <el-radio disabled v-model="project.fileType" label="binary"
  1338. >Binary</el-radio
  1339. >
  1340. <el-radio v-model="project.fileType" label="ascii">ASCII</el-radio>
  1341. </el-form-item>
  1342. <vue-uploader
  1343. ref="ugrid"
  1344. :projectId="project.projectId"
  1345. :solverType="'hcfd'"
  1346. :accept="'.ugrid'"
  1347. :name="'Load Grid File'"
  1348. :upId="'2'"
  1349. ></vue-uploader>
  1350. <vue-uploader
  1351. ref="mapbc"
  1352. :projectId="project.projectId"
  1353. :solverType="'hcfd'"
  1354. :accept="'.mapbc'"
  1355. :name="'Load BC File'"
  1356. :upId="'1'"
  1357. ></vue-uploader>
  1358. </el-form>
  1359. <div slot="footer" class="dialog-footer">
  1360. <el-button type="info" @click="dialog.new_visiable = false">Cancel</el-button>
  1361. <el-button type="danger" @click="reUpload">Reupload</el-button>
  1362. <el-button type="warning" @click="saveProject('newProject')">Save</el-button>
  1363. <el-button type="primary" @click="ugridShow">OK</el-button>
  1364. </div>
  1365. </el-dialog>
  1366. <el-dialog
  1367. :close-on-click-modal="false"
  1368. title="Load"
  1369. :visible.sync="dialog.load_visiable"
  1370. width="45%"
  1371. class="dialog"
  1372. >
  1373. <el-form>
  1374. <el-table
  1375. v-loading="loading"
  1376. :data="projects"
  1377. border
  1378. height="250"
  1379. ref="projectsTable"
  1380. @selection-change="projectsSelectionChange"
  1381. @select="projectsSelectionSelect"
  1382. >
  1383. <el-table-column type="selection" />
  1384. <el-table-column property="projectId" label="Project ID" />
  1385. <el-table-column property="projectName" label="Project Name" />
  1386. <el-table-column property="createTime" label="Project Create Time" />
  1387. </el-table>
  1388. </el-form>
  1389. <div slot="footer" class="dialog-footer">
  1390. <el-button type="info" @click="dialog.load_visiable = false">Cancel</el-button>
  1391. <el-button type="primary" @click="selectProjectOK()">OK</el-button>
  1392. </div>
  1393. </el-dialog>
  1394. <el-dialog
  1395. :close-on-click-modal="false"
  1396. title="资源选择"
  1397. :visible.sync="dialog.ziyuan"
  1398. width="45%"
  1399. class="dialog"
  1400. >
  1401. <el-form>
  1402. <el-table
  1403. v-loading="loading"
  1404. :data="ziyprojects"
  1405. border
  1406. :row-key="getRowKeys"
  1407. height="250"
  1408. ref="multipleTable"
  1409. @selection-change="ziySelectionChange"
  1410. @select="ziySelectionSelect"
  1411. >
  1412. <el-table-column type="selection" label="选择" :reserve-selection="true"/>
  1413. <el-table-column property="id" label="ID" />
  1414. <el-table-column property="resIp" label="资源内网IP" />
  1415. <el-table-column property="resShortname" label="资源简称" />
  1416. </el-table>
  1417. </el-form>
  1418. <div class="pagination">
  1419. <Pagination
  1420. :pagination-config="paginationConfig"
  1421. @putPagination="getPagination"
  1422. ></Pagination>
  1423. </div>
  1424. <div slot="footer" class="dialog-footer">
  1425. <el-button type="info" @click="dialog.ziyuan = false">Cancel</el-button>
  1426. <el-button type="primary" @click='resourceOK()'>OK</el-button>
  1427. </div>
  1428. </el-dialog>
  1429. <el-dialog
  1430. title="Scale"
  1431. :visible.sync="dialog.scale_visiable"
  1432. :close-on-click-modal="false"
  1433. width="20%"
  1434. >
  1435. <el-form>
  1436. <div class="disflex">
  1437. <span class="sblock">Factor</span>
  1438. <el-input class="inpwidth" v-model="geneal.MeshTransform.Scale.Factor"></el-input>
  1439. </div>
  1440. </el-form>
  1441. <div slot="footer" class="dialog-footer">
  1442. <el-button type="info" @click="dialog.scale_visiable = false">Cancel</el-button>
  1443. <el-button type="primary" @click="dialog.scale_visiable = false"
  1444. >OK</el-button
  1445. >
  1446. </div>
  1447. </el-dialog>
  1448. <el-dialog
  1449. title="Translation"
  1450. :visible.sync="dialog.translation_visiable"
  1451. :close-on-click-modal="false"
  1452. width="511px"
  1453. >
  1454. <el-form class="div64">
  1455. <div>
  1456. <span>Distance</span>
  1457. <el-input
  1458. v-model="geneal.MeshTransform.Translation.Distance"
  1459. ></el-input>
  1460. </div>
  1461. <div>
  1462. <span>X-Component of Translation Unit Vector</span>
  1463. <el-input v-model="geneal.MeshTransform.Translation.X"></el-input>
  1464. </div>
  1465. <div>
  1466. <span>Y-Component of Translation Unit Vector&nbsp;&nbsp;&nbsp;</span>
  1467. <el-input v-model="geneal.MeshTransform.Translation.Y"></el-input>
  1468. </div>
  1469. <div>
  1470. <span>Z-Component of Translation Unit Vector&nbsp;&nbsp;&nbsp;</span>
  1471. <el-input v-model="geneal.MeshTransform.Translation.Z"></el-input>
  1472. </div>
  1473. </el-form>
  1474. <div slot="footer" class="dialog-footer">
  1475. <el-button type="info" @click="dialog.translation_visiable = false"
  1476. >Cancel</el-button
  1477. >
  1478. <el-button type="primary" @click="dialog.translation_visiable = false"
  1479. >OK</el-button
  1480. >
  1481. </div>
  1482. </el-dialog>
  1483. <el-dialog
  1484. :close-on-click-modal="false"
  1485. title="Rotation"
  1486. :visible.sync="dialog.rotation_visiable"
  1487. width="500px"
  1488. >
  1489. <el-form class="div64">
  1490. <div>
  1491. <span>Angle(deg)</span>
  1492. <el-input v-model="geneal.MeshTransform.Rotation.Angle"></el-input>
  1493. </div>
  1494. <div>
  1495. <span>X-Coordinate of Rotation Origin</span>
  1496. <el-input
  1497. class="lg-Rotation"
  1498. v-model="geneal.MeshTransform.Rotation.X"
  1499. ></el-input>
  1500. </div>
  1501. <div>
  1502. <span>Y-Coordinate of Rotation Origin</span>
  1503. <el-input
  1504. class="lg-Rotation"
  1505. v-model="geneal.MeshTransform.Rotation.Y"
  1506. ></el-input>
  1507. </div>
  1508. <div>
  1509. <span>Z-Coordinate of Rotation Origin</span>
  1510. <el-input
  1511. class="lg-Rotation"
  1512. v-model="geneal.MeshTransform.Rotation.Z"
  1513. ></el-input>
  1514. </div>
  1515. <div>
  1516. <span>X-Component of Rotation Axis Unit Vector</span>
  1517. <el-input
  1518. class="lg-Rotation2"
  1519. v-model="geneal.MeshTransform.Rotation.X1"
  1520. ></el-input>
  1521. </div>
  1522. <div>
  1523. <span>Y-Component of Rotation Axis Unit Vector</span>
  1524. <el-input
  1525. class="lg-Rotation2"
  1526. v-model="geneal.MeshTransform.Rotation.Y1"
  1527. ></el-input>
  1528. </div>
  1529. <div>
  1530. <span>Z-Component of Rotation Axis Unit Vector</span>
  1531. <el-input
  1532. class="lg-Rotation2"
  1533. v-model="geneal.MeshTransform.Rotation.Z1"
  1534. ></el-input>
  1535. </div>
  1536. </el-form>
  1537. <div slot="footer" class="dialog-footer">
  1538. <el-button type="info" @click="dialog.rotation_visiable = false">Cancel</el-button>
  1539. <el-button type="primary" @click="dialog.rotation_visiable = false"
  1540. >OK</el-button
  1541. >
  1542. </div>
  1543. </el-dialog>
  1544. <el-dialog
  1545. title="Upload File"
  1546. :visible.sync="dialog.upload_visiable"
  1547. :close-on-click-modal="false"
  1548. :close-on-press-escape="false"
  1549. :show-close="false"
  1550. width="535px"
  1551. center
  1552. >
  1553. <div>
  1554. <div>
  1555. <h4>upLoader File</h4>
  1556. <p>
  1557. <span
  1558. v-for="(item, i) in fileNames"
  1559. :key="i"
  1560. style="padding: 0 5px"
  1561. >{{ item }}</span
  1562. >
  1563. </p>
  1564. </div>
  1565. <vue-uploader
  1566. ref="ugrid"
  1567. :projectId="project.projectId"
  1568. :solverType="'hcfd'"
  1569. :accept="'.ugrid'"
  1570. :name="'Load Grid File'"
  1571. :upfileName="this.fileNames"
  1572. :upId="'2'"
  1573. ></vue-uploader>
  1574. <vue-uploader
  1575. ref="mapbc"
  1576. :projectId="project.projectId"
  1577. :solverType="'hcfd'"
  1578. :accept="'.mapbc'"
  1579. :name="'Load BC File'"
  1580. :upfileName="this.fileNames"
  1581. :upId="'1'"
  1582. ></vue-uploader>
  1583. </div>
  1584. <span slot="footer" class="dialog-footer">
  1585. <el-button @click="dialog.upload_visiable = false">Cancel</el-button>
  1586. <!-- <el-button @click="reUpload">Reupload</el-button> -->
  1587. <el-button type="info" @click="reUpload">Save</el-button>
  1588. <el-button type="primary" @click="ugridShow(), (dialog.upload_visiable = false)"
  1589. >OK</el-button
  1590. >
  1591. </span>
  1592. </el-dialog>
  1593. <el-dialog
  1594. :close-on-click-modal="false"
  1595. title="Laminar"
  1596. :visible.sync="dialog.laminar_visiable"
  1597. width="23%"
  1598. >
  1599. <el-form class="div64">
  1600. <div>
  1601. <span>Molecular Prandtl Number</span>
  1602. <el-input
  1603. v-model="parameterObj.nmlParam.prandtlnumber_molecular"
  1604. ></el-input>
  1605. </div>
  1606. </el-form>
  1607. <div slot="footer" class="dialog-footer">
  1608. <el-button type="info" @click="referencevisiable((dialog.laminar_visiable = false))"
  1609. >Cancel</el-button
  1610. >
  1611. <el-button type="primary" @click="dialog.laminar_visiable = false"
  1612. >OK</el-button
  1613. >
  1614. </div>
  1615. </el-dialog>
  1616. <el-dialog
  1617. class="dialog-block"
  1618. title="Turbulent"
  1619. :visible.sync="dialog.turbulent_visiable"
  1620. :close-on-click-modal="false"
  1621. >
  1622. <el-form>
  1623. <el-radio-group v-model="parameterObj.nmlParam.turb_model">
  1624. <el-radio :label="'sa'">SA</el-radio>
  1625. <el-radio :label="'menter-sst'">Menter-SST</el-radio>
  1626. <el-radio :label="'k-omega-sst'">k-omega-SST</el-radio>
  1627. <el-radio :label="'sa-des'">SA-DES</el-radio>
  1628. <el-radio :label="'k-omega-des'">k-omega-DES</el-radio>
  1629. <el-radio :label="'linear-k-epsilon'">Linear-k-epsilon</el-radio>
  1630. <el-radio :label="'abid-k-epsilon'">Abid-k-epsilon</el-radio>
  1631. <el-radio :label="'menter-sst-les'">Menter-SST-LES</el-radio>
  1632. <el-radio :label="'Wilcox-les'">Wilcox-LES</el-radio>
  1633. </el-radio-group>
  1634. <div class="disflex55">
  1635. <span>Molecular Prandtl Number</span>
  1636. <el-input
  1637. class="lg-Rotation"
  1638. v-model="parameterObj.nmlParam.prandtlnumber_molecular"
  1639. ></el-input>
  1640. </div>
  1641. <div class="disflex55">
  1642. <span>Turbulent Prandtl Number</span>
  1643. <el-input
  1644. class="lg-Rotation"
  1645. v-model="Physics.Turbulent.TurbulentPrandtlNumber"
  1646. ></el-input>
  1647. </div>
  1648. </el-form>
  1649. <div slot="footer" class="dialog-footer">
  1650. <el-button
  1651. type="info"
  1652. @click="referencevisiable((dialog.turbulent_visiable = false))"
  1653. >Cancel</el-button
  1654. >
  1655. <el-button type="primary" @click="dialog.turbulent_visiable = false"
  1656. >OK</el-button
  1657. >
  1658. </div>
  1659. </el-dialog>
  1660. <el-dialog
  1661. class="Conditions"
  1662. title="Reference Conditions"
  1663. :visible.sync="dialog.reference_visiable"
  1664. :close-on-click-modal="false"
  1665. width="500px"
  1666. >
  1667. <el-form class="lg-form">
  1668. <li>
  1669. <span>Mach Number</span>
  1670. <el-input v-model="parameterObj.nmlParam.mach_number"></el-input>
  1671. </li>
  1672. <li>
  1673. <span>Reynolds Number</span>
  1674. <el-input v-model="parameterObj.nmlParam.reynolds_number"></el-input>
  1675. </li>
  1676. <li>
  1677. <span>Temperature</span>
  1678. </li>
  1679. <li>
  1680. <el-radio-group v-model="parameterObj.nmlParam.temperature_units">
  1681. <el-radio :label="'Kelvin'">Kelvin</el-radio>
  1682. <el-radio :label="'Rankine'">Rankine</el-radio>
  1683. </el-radio-group>
  1684. <el-input v-model="parameterObj.nmlParam.temperature"></el-input>
  1685. </li>
  1686. <li>
  1687. <span>Angle of Attack (deg)</span>
  1688. <el-input v-model="parameterObj.nmlParam.angle_of_attack"></el-input>
  1689. </li>
  1690. <li>
  1691. <span>Angle of Yaw (deg) </span>
  1692. <el-input v-model="parameterObj.nmlParam.angle_of_yaw"></el-input>
  1693. </li>
  1694. <li>
  1695. <span>Reference Area </span>
  1696. <el-input v-model="parameterObj.nmlParam.area_reference"></el-input>
  1697. </li>
  1698. <li>
  1699. <span>Length In X About Moment of Y Axis</span>
  1700. <el-input v-model="parameterObj.nmlParam.x_moment_length"></el-input>
  1701. </li>
  1702. <li>
  1703. <span>Length In Y About Moment of X and Z Axis</span>
  1704. <el-input v-model="parameterObj.nmlParam.y_moment_length"></el-input>
  1705. </li>
  1706. <li>
  1707. <span>Location of Moment Center</span>
  1708. </li>
  1709. <li>
  1710. <span>X-Coordinate</span>
  1711. <el-input v-model="parameterObj.nmlParam.x_moment_center"></el-input>
  1712. </li>
  1713. <li>
  1714. <span>Y-Coordinate</span>
  1715. <el-input v-model="parameterObj.nmlParam.y_moment_center"></el-input>
  1716. </li>
  1717. <li>
  1718. <span>Z-Coordinate</span>
  1719. <el-input v-model="parameterObj.nmlParam.z_moment_center"></el-input>
  1720. </li>
  1721. </el-form>
  1722. <div slot="footer" class="dialog-footer">
  1723. <el-button
  1724. type="info"
  1725. @click="referencevisiable((dialog.reference_visiable = false))"
  1726. >Cancel</el-button
  1727. >
  1728. <el-button type="primary" @click="dialog.reference_visiable = false"
  1729. >OK</el-button
  1730. >
  1731. </div>
  1732. </el-dialog>
  1733. <el-dialog
  1734. class="lg-Solution"
  1735. title="Flux Residual Construction"
  1736. :visible.sync="dialog.fluxrc_visiable"
  1737. :close-on-click-modal="false"
  1738. >
  1739. <el-form>
  1740. <el-radio-group columns='2' v-model="parameterObj.nmlParam.flux_construction">
  1741. <el-radio :label="'roe'">Roe</el-radio>
  1742. <el-radio :label="'vanleer'">vanleer</el-radio>
  1743. <el-radio :label="'hllc'">HLLC</el-radio>
  1744. <el-radio :label="'aufs'">AUFS</el-radio>
  1745. <el-radio :label="'central_diss'">Central_Diss</el-radio>
  1746. <el-radio :label="'dlfss'">LDFSS</el-radio>
  1747. <el-radio :label="'stvd'">STVD</el-radio>
  1748. <el-radio :label="'stvd_modified'">STVD_modified</el-radio>
  1749. </el-radio-group>
  1750. </el-form>
  1751. <div slot="footer" class="dialog-footer">
  1752. <el-button type="info" @click="referencevisiable((dialog.fluxrc_visiable = false))"
  1753. >Cancel</el-button
  1754. >
  1755. <el-button type="primary" @click="dialog.fluxrc_visiable = false"
  1756. >OK</el-button
  1757. >
  1758. </div>
  1759. </el-dialog>
  1760. <el-dialog
  1761. title="Flux Limiter"
  1762. :visible.sync="dialog.fluxl_visiable"
  1763. class="lg-Solution"
  1764. :close-on-click-modal="false"
  1765. >
  1766. <el-form>
  1767. <el-radio-group
  1768. v-model="parameterObj.nmlParam.flux_limiter"
  1769. size="small"
  1770. >
  1771. <el-radio :label="'none'">none</el-radio>
  1772. <el-radio :label="'barth'">barth</el-radio>
  1773. <el-radio :label="'venkat'">venkat</el-radio>
  1774. <el-radio :label="'minmod'">minmod</el-radio>
  1775. <el-radio :label="'vanleer'">vanleer</el-radio>
  1776. <el-radio :label="'vanalbada'">vanalbada</el-radio>
  1777. <el-radio :label="'smooth'">smooth</el-radio>
  1778. <el-radio :label="'hminmod'">hminmod</el-radio>
  1779. <el-radio :label="'hvanleer'">hvanleer</el-radio>
  1780. <el-radio :label="'hvanalbada'">hvanalbada</el-radio>
  1781. <el-radio :label="'hsmooth'">hsmooth</el-radio>
  1782. <el-radio :label="'hvenkat'">hvenkat</el-radio>
  1783. </el-radio-group>
  1784. </el-form>
  1785. <div slot="footer" class="dialog-footer">
  1786. <el-button type="info" @click="referencevisiable((dialog.fluxl_visiable = false))"
  1787. >Cancel</el-button
  1788. >
  1789. <el-button type="primary" @click="dialog.fluxl_visiable = false"
  1790. >OK</el-button
  1791. >
  1792. </div>
  1793. </el-dialog>
  1794. <el-dialog
  1795. title="Flux Jacobian Construction"
  1796. :visible.sync="dialog.fluxjc_visiable"
  1797. class="lg-Solution"
  1798. :close-on-click-modal="false"
  1799. >
  1800. <el-form>
  1801. <el-radio-group
  1802. v-model="parameterObj.nmlParam.flux_construction_lhs"
  1803. size="small"
  1804. >
  1805. <el-radio :label="'roe'">Roe</el-radio><br />
  1806. <el-radio :label="'vanleer'">vanleer</el-radio><br />
  1807. <el-radio :label="'hllc'">HLLC</el-radio><br />
  1808. <el-radio :label="'aufs'">AUFS</el-radio><br />
  1809. <el-radio :label="'central-diss'">Central-Diss</el-radio><br />
  1810. <el-radio :label="'ldfss'">LDFSS</el-radio><br />
  1811. <el-radio :label="'stvd'">STVD</el-radio><br />
  1812. <el-radio :label="'stvd_modified'">STVD_modified</el-radio>
  1813. </el-radio-group>
  1814. </el-form>
  1815. <div slot="footer" class="dialog-footer">
  1816. <el-button type="info" @click="referencevisiable((dialog.fluxjc_visiable = false))"
  1817. >Cancel</el-button
  1818. >
  1819. <el-button type="primary" @click="dialog.fluxjc_visiable = false"
  1820. >OK</el-button
  1821. >
  1822. </div>
  1823. </el-dialog>
  1824. <el-dialog
  1825. title="Flux Jacobian Construction"
  1826. :visible.sync="dialog.flujc_visiable"
  1827. :close-on-click-modal="false"
  1828. >
  1829. <el-form>
  1830. <el-radio-group v-model="parameterObj.nmlParam.flux_limiter">
  1831. <el-radio :label="'roe'">Roe</el-radio>
  1832. <el-radio :label="'hllc'">HLLC</el-radio>
  1833. <el-radio :label="'aufs'">AUFS</el-radio>
  1834. <el-radio :label="'ldfss'">LDFSS</el-radio>
  1835. </el-radio-group>
  1836. </el-form>
  1837. <div slot="footer" class="dialog-footer">
  1838. <el-button type="info" @click="referencevisiable((dialog.flujc_visiable = false))"
  1839. >Cancel</el-button
  1840. >
  1841. <el-button type="primary" @click="dialog.flujc_visiable = false"
  1842. >OK</el-button
  1843. >
  1844. </div>
  1845. </el-dialog>
  1846. <el-dialog
  1847. title="Time Scheme"
  1848. :visible.sync="dialog.time_visiable"
  1849. class="lg-Solution"
  1850. :close-on-click-modal="false"
  1851. >
  1852. <el-form>
  1853. <el-radio-group v-model="parameterObj.nmlParam.time_accuracy">
  1854. <el-radio :label="'steady'">Steady</el-radio>
  1855. <el-radio :label="'1storder'">1storder</el-radio>
  1856. <el-radio :label="'2ndorder'">2ndorder</el-radio>
  1857. <el-radio :label="'2ndorderOPT'">2ndorderOPT</el-radio>
  1858. <el-radio :label="'3rdorder'">3rdorder</el-radio>
  1859. <el-radio :label="'4thorderMEBDF4'">4thorderMEBDF4</el-radio>
  1860. <el-radio :label="'4thorderESDIRK4'">4thorderESDIRK4</el-radio>
  1861. </el-radio-group>
  1862. </el-form>
  1863. <div slot="footer" class="dialog-footer">
  1864. <el-button type="info" @click="referencevisiable((dialog.time_visiable = false))"
  1865. >Cancel</el-button
  1866. >
  1867. <el-button type="primary" @click="dialog.time_visiable = false"
  1868. >OK</el-button
  1869. >
  1870. </div>
  1871. </el-dialog>
  1872. <el-dialog
  1873. title="Time Advanced Scheme"
  1874. :visible.sync="dialog.timeasm_visiable"
  1875. :close-on-click-modal="false"
  1876. >
  1877. <el-form class="lg-form">
  1878. <li class="lheig34" style="padding:5px 0">
  1879. <span>Pseudo Time Stepping</span>
  1880. <el-radio-group class="inpw35" style="display:flex" v-model="parameterObj.nmlParam.pseudo_time_stepping">
  1881. <el-radio :label="'on'">On</el-radio>
  1882. <el-radio :label="'off'">Off</el-radio>
  1883. </el-radio-group>
  1884. </li>
  1885. <li>
  1886. <span>Time Step Nondim</span>
  1887. <el-input v-model="parameterObj.nmlParam.time_step_nondim"></el-input>
  1888. </li>
  1889. <li>
  1890. <span>Subiterations</span>
  1891. <el-input v-model="parameterObj.nmlParam.subiterations"></el-input>
  1892. </li>
  1893. <li>
  1894. <span>Schedule Iteration For Ramped CFL</span>
  1895. <el-input
  1896. v-model="parameterObj.nmlParam.schedule_iteration[0]"
  1897. ></el-input>
  1898. <el-input
  1899. v-model="parameterObj.nmlParam.schedule_iteration[1]"
  1900. ></el-input>
  1901. </li>
  1902. <li>
  1903. <span>Schedule CFL</span>
  1904. <el-input v-model="parameterObj.nmlParam.schedule_cfl[0]"></el-input>
  1905. <el-input v-model="parameterObj.nmlParam.schedule_cfl[1]"></el-input>
  1906. </li>
  1907. <li>
  1908. <span>Schedule CFL Turb</span>
  1909. <el-input
  1910. v-model="parameterObj.nmlParam.schedule_cflturb[0]"
  1911. ></el-input>
  1912. <el-input
  1913. v-model="parameterObj.nmlParam.schedule_cflturb[1]"
  1914. ></el-input>
  1915. </li>
  1916. </el-form>
  1917. <div slot="footer" class="dialog-footer">
  1918. <el-button type="info" @click="timeasmvisiable">Cancel</el-button>
  1919. <el-button type="primary" @click="dialog.timeasm_visiable = false"
  1920. >OK</el-button
  1921. >
  1922. </div>
  1923. </el-dialog>
  1924. <el-dialog
  1925. title="Run Control"
  1926. :visible.sync="dialog.runc_visiable"
  1927. :close-on-click-modal="false"
  1928. >
  1929. <el-form class="lg-form">
  1930. <li>
  1931. Number of Iterations<el-input
  1932. v-model="parameterObj.nmlParam.steps"
  1933. ></el-input>
  1934. </li>
  1935. <li>
  1936. Stopping Tolerance<el-input
  1937. v-model="parameterObj.nmlParam.stopping_tolerance"
  1938. ></el-input>
  1939. </li>
  1940. <li>
  1941. Restart Write Freq<el-input
  1942. v-model="parameterObj.nmlParam.restart_write_freq"
  1943. ></el-input>
  1944. </li>
  1945. <li>
  1946. Jacobian Evaluate Freq<el-input
  1947. v-model="parameterObj.nmlParam.jacobian_eval_freq"
  1948. ></el-input>
  1949. </li>
  1950. <li class="lheig34" style="padding:5px 0">
  1951. Read Restart
  1952. <el-radio-group class="inpw35" v-model="parameterObj.nmlParam.restart_read">
  1953. <el-radio label="off">Off</el-radio>
  1954. <el-radio label="on">On</el-radio>
  1955. </el-radio-group>
  1956. </li>
  1957. </el-form>
  1958. <div slot="footer" class="dialog-footer">
  1959. <el-button type="info" @click="runcvisiable">Cancel</el-button>
  1960. <el-button type="primary" @click="dialog.runc_visiable = false"
  1961. >OK</el-button
  1962. >
  1963. </div>
  1964. </el-dialog>
  1965. <el-dialog
  1966. title="Boundary Output"
  1967. :visible.sync="dialog.boundaryo_visiable"
  1968. :close-on-click-modal="false"
  1969. class="Conditions lg-out-h"
  1970. >
  1971. <el-form>
  1972. <li class="disflex">
  1973. Output Freq<el-input
  1974. v-model="parameterObj.nmlParam.animation_freq"
  1975. class="inpw50"></el-input>
  1976. </li>
  1977. <li>Output Variables</li>
  1978. <el-checkbox
  1979. :indeterminate="Solution.boundaryout.isIndeterminate"
  1980. v-model="Solution.boundaryout.checkAll"
  1981. @change="solutionbCheckAllChange"
  1982. >All</el-checkbox
  1983. >
  1984. <div>
  1985. <el-checkbox
  1986. v-model="parameterObj.nmlParam.a_u">X-component of velocity</el-checkbox>
  1987. <el-checkbox
  1988. v-model="parameterObj.nmlParam.a_v"
  1989. >Y-component of velocity</el-checkbox>
  1990. <el-checkbox
  1991. v-model="parameterObj.nmlParam.a_w"
  1992. >Z-component of velocity</el-checkbox>
  1993. <el-checkbox
  1994. v-model="parameterObj.nmlParam.a_p"
  1995. >Press</el-checkbox>
  1996. <el-checkbox
  1997. v-model="parameterObj.nmlParam.a_cp"
  1998. >Press coefficient</el-checkbox>
  1999. <el-checkbox
  2000. v-model="parameterObj.nmlParam.a_mach"
  2001. >Mach Number</el-checkbox>
  2002. <el-checkbox
  2003. v-model="parameterObj.nmlParam.a_vort_mag"
  2004. >Vorticity magnitude</el-checkbox>
  2005. <el-checkbox
  2006. v-model="parameterObj.nmlParam.a_vort_x "
  2007. >X-component of vorticity</el-checkbox>
  2008. <el-checkbox
  2009. v-model="parameterObj.nmlParam.a_vort_y"
  2010. >Y-component of vorticity</el-checkbox>
  2011. <el-checkbox
  2012. v-model="parameterObj.nmlParam.a_vort_z "
  2013. >Z-component of vorticity</el-checkbox>
  2014. <el-checkbox
  2015. v-model="parameterObj.nmlParam.a_q_criterion"
  2016. >Q Criterion</el-checkbox>
  2017. </div>
  2018. <!-- </el-checkbox-group> -->
  2019. </el-form>
  2020. <div slot="footer" class="dialog-footer">
  2021. <el-button
  2022. type="info"
  2023. @click="referencevisiable((dialog.boundaryo_visiable = false))"
  2024. >Cancel</el-button
  2025. >
  2026. <el-button type="primary" @click="dialog.boundaryo_visiable = false"
  2027. >OK</el-button
  2028. >
  2029. </div>
  2030. </el-dialog>
  2031. <el-dialog
  2032. title="Volume Output"
  2033. :visible.sync="dialog.volumeo_visiable"
  2034. class="Conditions lg-out-h"
  2035. :close-on-click-modal="false"
  2036. >
  2037. <el-form>
  2038. <li class="disflex">
  2039. Output Freq<el-input
  2040. v-model="parameterObj.nmlParam.volume_animation_freq"
  2041. class="inpw50"></el-input>
  2042. </li>
  2043. <li>Output Variables</li>
  2044. <el-checkbox
  2045. :indeterminate="Solution.volumout.isIndeterminate"
  2046. v-model="Solution.volumout.checkAll"
  2047. @change="solutionvCheckAllChange"
  2048. >All</el-checkbox
  2049. >
  2050. <!-- <el-checkbox-group
  2051. v-model="Solution.volumout.checkeds"
  2052. @change="solutionvCheckedCitiesChange"
  2053. >
  2054. <el-checkbox
  2055. v-for="cell in Solution.volumout.lists"
  2056. :label="cell"
  2057. :key="cell"
  2058. >{{ cell }}</el-checkbox
  2059. >
  2060. </el-checkbox-group> -->
  2061. <div>
  2062. <el-checkbox
  2063. v-model="parameterObj.nmlParam.v_u">X-component of velocity</el-checkbox>
  2064. <el-checkbox
  2065. v-model="parameterObj.nmlParam.v_v "
  2066. >Y-component of velocity</el-checkbox>
  2067. <el-checkbox
  2068. v-model="parameterObj.nmlParam.v_w"
  2069. >Z-component of velocity</el-checkbox>
  2070. <el-checkbox
  2071. v-model="parameterObj.nmlParam.v_p "
  2072. >Press</el-checkbox>
  2073. <el-checkbox
  2074. v-model="parameterObj.nmlParam.v_cp"
  2075. >Press coefficient</el-checkbox>
  2076. <el-checkbox
  2077. v-model="parameterObj.nmlParam.v_mach"
  2078. >Mach Number</el-checkbox>
  2079. <el-checkbox
  2080. v-model="parameterObj.nmlParam.v_vort_mag"
  2081. >Vorticity magnitude</el-checkbox>
  2082. <el-checkbox
  2083. v-model="parameterObj.nmlParam.v_vort_x "
  2084. >X-component of vorticity</el-checkbox>
  2085. <el-checkbox
  2086. v-model="parameterObj.nmlParam.v_vort_y"
  2087. >Y-component of vorticity</el-checkbox>
  2088. <el-checkbox
  2089. v-model="parameterObj.nmlParam.v_vort_z "
  2090. >Z-component of vorticity</el-checkbox>
  2091. <el-checkbox
  2092. v-model="parameterObj.nmlParam.v_q_criterion"
  2093. >Q Criterion</el-checkbox>
  2094. </div>
  2095. </el-form>
  2096. <div slot="footer" class="dialog-footer">
  2097. <el-button type="info" @click="referencevisiable((dialog.volumeo_visiable = false))"
  2098. >Cancel</el-button
  2099. >
  2100. <el-button type="primary" @click="dialog.volumeo_visiable = false"
  2101. >OK</el-button
  2102. >
  2103. </div>
  2104. </el-dialog>
  2105. <el-dialog
  2106. class="lg-y-z"
  2107. title="Special Parameters"
  2108. :visible.sync="dialog.specialp_visiable"
  2109. :close-on-click-modal="false"
  2110. >
  2111. <el-form>
  2112. <el-radio-group v-model="parameterObj.nmlParam.large_angle_fix">
  2113. <el-radio label="off">Off</el-radio>
  2114. <el-radio label="on">On</el-radio>
  2115. </el-radio-group>
  2116. </el-form>
  2117. <div slot="footer" class="dialog-footer">
  2118. <el-button
  2119. type="info"
  2120. @click="referencevisiable((dialog.specialp_visiable = false))"
  2121. >Cancel</el-button
  2122. >
  2123. <el-button type="primary" @click="dialog.specialp_visiable = false"
  2124. >OK</el-button
  2125. >
  2126. </div>
  2127. </el-dialog>
  2128. <el-dialog
  2129. title="Swap Y-Z Axres"
  2130. :visible.sync="dialog.swap_visiable"
  2131. class="lg-y-z"
  2132. :close-on-click-modal="false"
  2133. >
  2134. <el-form>
  2135. <el-radio-group v-model="parameterObj.nmlParam.swap_yz_axes">
  2136. <el-radio label="false">Off</el-radio>
  2137. <el-radio label="true">On</el-radio>
  2138. </el-radio-group>
  2139. </el-form>
  2140. <div slot="footer" class="dialog-footer">
  2141. <el-button type="info" @click="referencevisiable((dialog.swap_visiable = false))"
  2142. >Cancel</el-button
  2143. >
  2144. <el-button type="primary" @click="dialog.swap_visiable = false"
  2145. >OK</el-button
  2146. >
  2147. </div>
  2148. </el-dialog>
  2149. <!-- 单位计算开始 -->
  2150. <!-- Y+ Calculator -->
  2151. <el-dialog
  2152. title="Y+值计算"
  2153. :visible.sync="Yvisiable"
  2154. :close-on-click-modal="false"
  2155. >
  2156. <el-form :model="form" class="gongju">
  2157. <!-- Freestream velocity流速度U∞ -->
  2158. <el-form-item label="自由流速度U∞(m/s):">
  2159. <el-input v-model="form.u_freestream" autocomplete="off"></el-input>
  2160. </el-form-item>
  2161. <!--Density 自由氣流密度ρ -->
  2162. <el-form-item label="自由氣流密度ρ(kg/m^3):">
  2163. <el-input v-model="form.rho" autocomplete="off"></el-input>
  2164. </el-form-item>
  2165. <!-- Characteristic length 特征长度L-->
  2166. <el-form-item label="特征长度L:(m):">
  2167. <el-input
  2168. v-model="form.L"
  2169. type="number"
  2170. autocomplete="off"
  2171. ></el-input>
  2172. </el-form-item>
  2173. <!-- Dynamic viscosity表流运动粘贴系数μ: -->
  2174. <el-form-item label="表流运动粘贴系数μ(Pa·s):">
  2175. <el-input v-model="form.mu" autocomplete="off"></el-input>
  2176. </el-form-item>
  2177. <!-- Desired Y+ value: -->
  2178. <el-form-item label="Y+:">
  2179. <el-input
  2180. v-model="form.y_plus_desired"
  2181. type="number"
  2182. autocomplete="off"
  2183. ></el-input>
  2184. </el-form-item>
  2185. <!-- Reynolds number -->
  2186. <h3 class="Rex">雷诺数:&nbsp;&nbsp;&nbsp;&nbsp;{{ form.Rex }}</h3>
  2187. <!-- Estimated wall distance: -->
  2188. <h3 class="Rex">估计墙距:&nbsp;&nbsp;&nbsp;&nbsp;{{ form.dtc }}</h3>
  2189. <el-form-item style="margin-left: 0">
  2190. <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
  2191. <el-button type="primary" @click="dialogbtny" style="margin:0 0 0 55px">计算</el-button>
  2192. </el-form-item>
  2193. </el-form>
  2194. </el-dialog>
  2195. <!-- r雷诺数计算 -->
  2196. <el-dialog
  2197. title="雷诺数计算"
  2198. :visible.sync="llsvisiable"
  2199. :close-on-click-modal="false"
  2200. >
  2201. <el-form :model="form" class="leiluoshu">
  2202. <el-form-item label="流速v(m/s):">
  2203. <el-input v-model="form.lls" autocomplete="off"></el-input>
  2204. </el-form-item>
  2205. <el-form-item label="密度ρ(kg/m^3)">
  2206. <el-input v-model="form.lmi" autocomplete="off"></el-input>
  2207. </el-form-item>
  2208. <el-form-item label="动力黏性系数η(Pa·s)">
  2209. <el-input v-model="form.ldlzxxs" autocomplete="off"></el-input>
  2210. </el-form-item>
  2211. <el-form-item label="特征长度(内径)d(m):">
  2212. <el-input v-model="form.lld" autocomplete="off"></el-input>
  2213. </el-form-item>
  2214. <el-form-item label="">
  2215. <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
  2216. <h3 class="Rex">雷诺数Re:{{ form.Re }}</h3>
  2217. <el-button type="primary" style="margin:0 0 0 60px" @click="leinsdialogbtny">计算</el-button>
  2218. </el-form-item>
  2219. </el-form>
  2220. </el-dialog>
  2221. <!-- 单位计算结束 -->
  2222. <filesload
  2223. ref="filesload"
  2224. :fileurls="fileurls"
  2225. @fileLoadeState="fileLoadeState($event)"
  2226. ></filesload>
  2227. <loading ref="loading" :loadObjs="loadObjs"></loading>
  2228. <hcfd-Calculator ref="Calculator"></hcfd-Calculator>
  2229. </div>
  2230. </template>
  2231. <script>
  2232. import adilog from "@/assets/hcfd_images/adilog.png";
  2233. import Pagination from '@/components/Pagination'
  2234. import scaleimage from "@/assets/hcfd_images/scaleimage.png";
  2235. import transformimage from "@/assets/hcfd_images/transformimage.png";
  2236. import rotationimage from "@/assets/hcfd_images/rotationimage.png";
  2237. import inviscid from "@/assets/hcfd_images/inviscid.png";
  2238. import laminar from "@/assets/hcfd_images/laminar.png";
  2239. import turbulent from "@/assets/hcfd_images/turbulent.png";
  2240. import times from "@/assets/hcfd_images/times.png";
  2241. import fluxr from "@/assets/hcfd_images/fluxr.png";
  2242. import fluxl from "@/assets/hcfd_images/fluxl.png";
  2243. import fluxj from "@/assets/hcfd_images/fluxj.png";
  2244. import boundary from "@/assets/hcfd_images/boundary.png";
  2245. import volume from "@/assets/hcfd_images/volume.png";
  2246. import special from "@/assets/hcfd_images/special.png";
  2247. import swap from "@/assets/hcfd_images/swap.png";
  2248. import run from "@/assets/hcfd_images/run.png";
  2249. import { Message, MessageBox } from "element-ui";
  2250. import store from "@/store";
  2251. import UgridLoad from "./loads/UgridLoad.vue";
  2252. import VolumLoad from "./loads/VolumLoad.vue";
  2253. import BoundaryLoad from "./loads/BoundaryLoad.vue";
  2254. import { request, uploadFile } from "@/utils/request";
  2255. import vueUploader from "./fileupload.vue";
  2256. import filesload from "./filesload.vue";
  2257. import { Caegw_ProUrl } from "@/settings"; // 引入settings.js
  2258. import loading from "./loading.vue";
  2259. import transformtool from "../common/transformtool.vue";
  2260. import echartsHFCD from "./echartsHFCD.vue";
  2261. import Calculator from "./hcfdCalculator.vue";
  2262. export default {
  2263. data() {
  2264. return {
  2265. ziyprojects:[],
  2266. paginationConfig: {
  2267. hideSinglePage: false,
  2268. page: 1,
  2269. size: 15,
  2270. sizeList: [10, 15, 30, 50],
  2271. layout: 'total, sizes, prev, pager, next, jumper',
  2272. total: 0,
  2273. },
  2274. getRowKeys(row) {
  2275. return row.id;
  2276. },
  2277. selsectid:[],
  2278. missType:true,
  2279. initialization: "",
  2280. upVisible: false,
  2281. Yvisiable: false,
  2282. llsvisiable: false,
  2283. newload: true,
  2284. runMonitor: true,
  2285. contourLevel: 3,
  2286. exLoading:"hidden",
  2287. form: {
  2288. u_freestream: "",
  2289. rho: "",
  2290. L: "",
  2291. mu: "",
  2292. y_plus_desired: "",
  2293. dtc: "",
  2294. md: "",
  2295. ls: "",
  2296. cd: "",
  2297. Rex: "",
  2298. Re: "",
  2299. lys: "",
  2300. lmi: "",
  2301. ldlzxxs: "",
  2302. lld: "",
  2303. Re: "",
  2304. dtc: "",
  2305. lls: "",
  2306. },
  2307. uploadlist: [
  2308. {
  2309. name: "mapbc",
  2310. percentage: 0,
  2311. },
  2312. {
  2313. name: "ugrid",
  2314. percentage: 0,
  2315. },
  2316. ],
  2317. ContourSurface: false,
  2318. adilog: adilog,
  2319. loading: loading,
  2320. scaleimage: scaleimage,
  2321. transformimage: transformimage,
  2322. rotationimage: rotationimage,
  2323. inviscid: inviscid,
  2324. laminar: laminar,
  2325. turbulent: turbulent,
  2326. times: times,
  2327. fluxr: fluxr,
  2328. fluxj: fluxj,
  2329. fluxl: fluxl,
  2330. boundary: boundary,
  2331. volume: volume,
  2332. special: special,
  2333. run: run,
  2334. swap: swap,
  2335. headMenu_2Show: false,
  2336. leftMenu_2Show: false,
  2337. gennealShow: false,
  2338. physicsShow: false,
  2339. solutionShow: false,
  2340. resultShow: false,
  2341. Consoleshow: true,
  2342. TaskGenealshow: false,
  2343. TaskPhysicsshow: false,
  2344. TaskSolutionshow: false,
  2345. TaskSurfaceshow: false,
  2346. TaskVolumeshow: false,
  2347. ugridUrl: "",
  2348. bload: null,
  2349. websock: null,
  2350. logs: "欢迎来到HCFD!",
  2351. islogload: true, //控制log请求(ture 发起 false 不发起)
  2352. outline: "OutLine",
  2353. fileNames: [],
  2354. belementCheckeds: ["Mesh"],
  2355. boundaryStep: [],
  2356. bStep: 100,
  2357. boundaryScalars: [],
  2358. bScalar: "p",
  2359. velementCheckeds: ["Mesh"],
  2360. vStep: 100,
  2361. volumStep: [],
  2362. volumScalars: [],
  2363. vSalar: "p",
  2364. isSolverEnd: false, //判断是否求解完成
  2365. solverState: "0", //求解状态(0-未求解 1-求解中 2-求解完成)
  2366. menuList: [
  2367. {
  2368. id: "1",
  2369. label: "Setup",
  2370. children: [
  2371. {
  2372. id: "2",
  2373. label: "General",
  2374. },
  2375. {
  2376. id: "3",
  2377. label: "Physics",
  2378. },
  2379. {
  2380. id: "4",
  2381. label: "Solution",
  2382. },
  2383. ],
  2384. },
  2385. {
  2386. id: "5",
  2387. label: "Results",
  2388. children: [
  2389. {
  2390. id: "6",
  2391. label: "Monitor",
  2392. },
  2393. {
  2394. id: "7",
  2395. label: "Surface Grid",
  2396. },
  2397. {
  2398. id: "8",
  2399. label: "Volume Grid",
  2400. },
  2401. {
  2402. id: "9",
  2403. label: "Ugrid",
  2404. },
  2405. ],
  2406. },
  2407. ],
  2408. dialog: {
  2409. //弹出框 控制
  2410. new_visiable: false,
  2411. load_visiable: false,
  2412. ziyuan:false,
  2413. upload_visiable: false,
  2414. scale_visiable: false,
  2415. translation_visiable: false,
  2416. rotation_visiable: false,
  2417. laminar_visiable: false,
  2418. turbulent_visiable: false,
  2419. reference_visiable: false,
  2420. fluxrc_visiable: false,
  2421. fluxl_visiable: false,
  2422. fluxjc_visiable: false,
  2423. time_visiable: false,
  2424. timeasm_visiable: false,
  2425. specified_visiable: false, //未完成
  2426. runc_visiable: false,
  2427. boundaryo_visiable: false,
  2428. volumeo_visiable: false,
  2429. specialp_visiable: false,
  2430. swap_visiable: false,
  2431. },
  2432. geneal: {
  2433. //数据存储
  2434. MeshTransform: {
  2435. Scale: {
  2436. Factor: 1,
  2437. },
  2438. Translation: {
  2439. Distance: 0,
  2440. X: 1,
  2441. Y: 0,
  2442. Z: 0,
  2443. },
  2444. Rotation: {
  2445. Angle: 0,
  2446. X: 0,
  2447. Y: 0,
  2448. Z: 0,
  2449. X1: 1,
  2450. Y1: 0,
  2451. Z1: 0,
  2452. },
  2453. },
  2454. },
  2455. Physics: {
  2456. Turbulent: {
  2457. TurbulentPrandtlNumber: 0.9,
  2458. },
  2459. Boundary: {
  2460. bquery: null, //hcfdBoundary 选中数据 id
  2461. hcfdBoundaryquery: null, //hcfdBoundary 选中数据
  2462. cquery: null,
  2463. /* 黎曼远场边界(Farfield) 5000
  2464. * 自由来流边界(Freestream)5050
  2465. * 无粘壁面(Inviscous Wall) 3000
  2466. * 粘性壁面(Viscous Wall)4000
  2467. * X-对称平面(X-symmetry Plane)6661
  2468. * Y-对称平面(Y-symmetry Plane ) 6662
  2469. * Z-对称平面Z-symmetry Plane) 6663
  2470. * 周期边界(Periodic) 6100*/
  2471. Conditions: [
  2472. { conditionsCode: 5000, name: "Farfield" },
  2473. { conditionsCode: 5050, name: "Freestream" },
  2474. { conditionsCode: 3000, name: "Inviscous Wall" },
  2475. { conditionsCode: 4000, name: "Viscous Wall" },
  2476. { conditionsCode: 6661, name: "X-symmetry Plane" },
  2477. { conditionsCode: 6662, name: "Y-symmetry Plane" },
  2478. { conditionsCode: 6663, name: "Z-symmetry Plane" },
  2479. { conditionsCode: 6100, name: "Periodic" },
  2480. ],
  2481. },
  2482. },
  2483. Solution: {
  2484. boundaryout: {
  2485. checkAll: false,
  2486. checkeds: [],
  2487. lists: [
  2488. "X-component of velocity",
  2489. "Y-component of velocity",
  2490. "Z-component of velocity",
  2491. "Press",
  2492. "Press coefficient",
  2493. "Mach Number",
  2494. "Vorticity magnitude",
  2495. "X-component of vorticity",
  2496. "Y-component of vorticity",
  2497. "Z-component of vorticity",
  2498. "Q Criterion",
  2499. ],
  2500. isIndeterminate: true,
  2501. },
  2502. volumout: {
  2503. checkAll: false,
  2504. checkeds: [],
  2505. lists: [
  2506. "X-component of velocity",
  2507. "Y-component of velocity",
  2508. "Z-component of velocity",
  2509. "Press",
  2510. "Press coefficient",
  2511. "Mach Number",
  2512. "Vorticity magnitude",
  2513. "X-component of vorticity",
  2514. "Y-component of vorticity",
  2515. "Z-component of vorticity",
  2516. "Q Criterion",
  2517. ],
  2518. isIndeterminate: true,
  2519. },
  2520. },
  2521. //state -1,0 ,1
  2522. //message
  2523. //type 1 一般 2 下载
  2524. loadObjs: [],
  2525. loadVVisiable: false,
  2526. loading: false,
  2527. fileurls: [],
  2528. project: {
  2529. projectId: "",
  2530. lesseeId:'',
  2531. projectName: "",
  2532. projectType: "hcfd",
  2533. projectDesc: "",
  2534. fileType: "ascii",
  2535. solverfiles: [],
  2536. solverVolumUrls: [],
  2537. solverBoundaryUrls: [],
  2538. loadfils: [],
  2539. converge: "",
  2540. uid: "",
  2541. },
  2542. projects: [],
  2543. parameterObjclone: [],
  2544. parameterObj: {
  2545. hcfdBoundarys: [
  2546. {
  2547. name: "WING1",
  2548. id: 1,
  2549. conditionsCode: 3000,
  2550. },
  2551. ],
  2552. nmlParam: {
  2553. a_vort_mag: "false",
  2554. case_title: "case_name",
  2555. angle_of_yaw: 0,
  2556. x_moment_center: 0,
  2557. eqn_type: "cal_perf_incompress",
  2558. schedule_cfl: [200, 200],
  2559. swap_yz_axes: "false",
  2560. v_vort_mag: "false",
  2561. pseudo_time_stepping: "on",
  2562. meanflow_sweeps: 15,
  2563. a_p: "true",
  2564. a_u: true,
  2565. a_w: "true",
  2566. a_v: "true",
  2567. dynamic_Mesh: "off",
  2568. jacobian_eval_freq: 10,
  2569. turb_model: "sa",
  2570. grid_format: "aflr3",
  2571. turbulence_sweeps: 10,
  2572. mach_number: 0.5,
  2573. y_moment_length: 1,
  2574. area_reference: 1,
  2575. flux_limiter: "none",
  2576. a_cp: "true",
  2577. viscous_terms : "inviscid",
  2578. volume_animation_freq: 100,
  2579. steps: 1500,
  2580. flux_construction_lhs: "roe",
  2581. stopping_tolerance: 1.0e-15,
  2582. prandtlnumber_molecular: 0.72,
  2583. restart_write_freq: 250,
  2584. v_vort_x: "false",
  2585. schedule_iteration: [1, 50],
  2586. v_vort_y: "false",
  2587. v_vort_z: "false",
  2588. line_implicit: "off",
  2589. temperature_units: "Rankine",
  2590. number_of_Processors: 2,
  2591. x_moment_length: 1,
  2592. time_accuracy: "steady",
  2593. angle_of_attack: 0,
  2594. subiterations: 0,
  2595. artificial_compress: 15,
  2596. a_q_criterion: "false",
  2597. schedule_cflturb: [50, 50],
  2598. schedule: 1,
  2599. first_order_iterations: 0,
  2600. restart_read: "off",
  2601. temperature: 491.4,
  2602. input_version: 2.2,
  2603. namelist_verbosity: "off",
  2604. ignore_euler_number: "false",
  2605. data_format: "ascii",
  2606. v_cp: "true",
  2607. time_step_nondim: 0,
  2608. a_mach: "true",
  2609. large_angle_fix: "off",
  2610. v_p: "true",
  2611. animation_freq: 100,
  2612. v_mach: "true",
  2613. project_rootname: "tf",
  2614. v_v: "true",
  2615. v_q_criterion: "false",
  2616. v_u: "true",
  2617. y_moment_center: 0,
  2618. v_w: true,
  2619. z_moment_center: 0,
  2620. parallel_Optional: "Serial",
  2621. analysis_Type: "Steady",
  2622. noninertial_Reference_Frame: "off",
  2623. flux_construction: "roe",
  2624. a_vort_z: "false",
  2625. a_vort_y: "false",
  2626. a_vort_x: "false",
  2627. reynolds_number: 1000000,
  2628. },
  2629. },
  2630. renderer_hight: 500,
  2631. renderer_width: 500,
  2632. showUgridflag: false, //ugrid 是否显示过
  2633. showSurfaceflag: false, //surface 是否显示过
  2634. showVolumeflage: false, //Volume 是否显示过
  2635. showMonitorflage: false, //Monitor是否显示过
  2636. };
  2637. },
  2638. mounted() {
  2639. // this.project.projectId=this.$route.query.projectId;//获取url 参数
  2640. this.init();
  2641. },
  2642. components: {
  2643. vueUploader,
  2644. filesload,
  2645. loading,
  2646. UgridLoad,
  2647. VolumLoad,
  2648. BoundaryLoad,
  2649. transformtool,
  2650. Pagination,
  2651. // vtkLoad,
  2652. echartsHFCD,
  2653. "hcfd-Calculator": Calculator,
  2654. },
  2655. // watch: {
  2656. // docData: {
  2657. // handler(newVal) {
  2658. // let arrboundaryout=[];
  2659. // arrboundaryout.push(this.parameterObj.nmlParam.a_u);
  2660. // arrboundaryout.push(this.parameterObj.nmlParam.a_v);
  2661. // arrboundaryout.push(this.parameterObj.nmlParam.a_w);
  2662. // arrboundaryout.push(this.parameterObj.nmlParam.a_p);
  2663. // arrboundaryout.push(this.parameterObj.nmlParam.a_cp);
  2664. // arrboundaryout.push(this.parameterObj.nmlParam.a_mach);
  2665. // arrboundaryout.push(this.parameterObj.nmlParam.a_vort_mag );
  2666. // arrboundaryout.push(this.parameterObj.nmlParam.a_vort_x);
  2667. // arrboundaryout.push(this.parameterObj.nmlParam.a_vort_y);
  2668. // arrboundaryout.push(this.parameterObj.nmlParam.a_vort_z);
  2669. // arrboundaryout.push(this.parameterObj.nmlParam.a_q_criterion);
  2670. // },
  2671. // deep: true,
  2672. //   immediate: false,
  2673. // }
  2674. // },
  2675. methods: {
  2676. //清除相关信息
  2677. clearAll() {
  2678. this.showUgridflag = false; //ugrid 是否显示过
  2679. this.showSurfaceflag = false; //surface 是否显示过
  2680. this.showVolumeflage = false; //Volume 是否显示过
  2681. this.showMonitorflage = false;
  2682. this.$refs.ugridLoad.clear();
  2683. this.$refs.volumLoad.clear();
  2684. this.$refs.boundaryLoad.clear();
  2685. this.$refs.ugridLoad.hiden();
  2686. this.$refs.volumLoad.hiden();
  2687. this.$refs.boundaryLoad.hiden();
  2688. this.islogload = true;
  2689. this.logs = "";
  2690. this.project = {
  2691. projectId: "",
  2692. projectName: "",
  2693. projectType: "hcfd",
  2694. projectDesc: "",
  2695. fileType: "ascii",
  2696. solverfiles: [],
  2697. solverVolumUrls: [],
  2698. solverBoundaryUrls: [],
  2699. loadfils: [],
  2700. converge: "",
  2701. };
  2702. },
  2703. init() {
  2704. this.project.projectId = this.$route.query.projectId; //获取url 参数
  2705. this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
  2706. // this.project.projectId = '86d0d4a3f85c40bea218936b6bad59ca';
  2707. // this.project.lesseeId = '1'; //获取url 参数
  2708. if (
  2709. this.project.projectId != undefined &&
  2710. this.project.projectId != null
  2711. ) {
  2712. this.selectProjectOK();
  2713. }
  2714. this.missType=true
  2715. // console.log( this.project.projectId);
  2716. this.changeRendererSize();
  2717. this.logtime()
  2718. },
  2719. logtime(){
  2720. let self = this;
  2721. let projectId = self.project.projectId;
  2722. if (projectId != null && projectId != "" && self.islogload) {
  2723. self.islogload = false;
  2724. let params = {
  2725. transCode: "A00112",
  2726. projectId: projectId,
  2727. page: 0,
  2728. count: 30,
  2729. };
  2730. request(params)
  2731. .then((res) => {
  2732. let rows = res.rows;
  2733. self.logs = ""; //只显示最新的数据
  2734. rows.forEach((row) => {
  2735. self.logs = row.log + "\n" + self.logs;
  2736. if (row.log.indexOf("Solver end") > 0) {
  2737. self.isSolverEnd = true;
  2738. }
  2739. });
  2740. self.islogload = true;
  2741. })
  2742. .catch((err) => {
  2743. self.islogload = true;
  2744. });
  2745. }
  2746. },
  2747. getlogs(){
  2748. var self = this;
  2749. let logtime=setInterval(getLog, 10000);
  2750. function getLog() {
  2751. let projectId = self.project.projectId;
  2752. if (projectId != null && projectId != "" && self.islogload) {
  2753. self.islogload = false;
  2754. let params = {
  2755. transCode: "A00112",
  2756. projectId: projectId,
  2757. page: 0,
  2758. count: 30,
  2759. };
  2760. request(params)
  2761. .then((res) => {
  2762. let rows = res.rows;
  2763. self.logs = ""; //只显示最新的数据
  2764. rows.forEach((row) => {
  2765. self.logs = row.log + "\n" + self.logs;
  2766. if (row.log.indexOf("Solver end") >= 0) {
  2767. // console.log(row.log)
  2768. self.exLoading='hidden';
  2769. clearInterval(logtime)
  2770. self.isSolverEnd = true;
  2771. }
  2772. });
  2773. self.islogload = true;
  2774. })
  2775. .catch((err) => {
  2776. self.islogload = true;
  2777. // self.exLoading='hidden';
  2778. clearInterval(logtime)
  2779. });
  2780. }
  2781. }
  2782. getLog();
  2783. },
  2784. setBoundaryScalars(scalars) {
  2785. this.boundaryScalars = scalars;
  2786. },
  2787. setVolumScalars(scalars) {
  2788. console.log(scalars)
  2789. this.volumScalars = scalars;
  2790. },
  2791. changeRendererSize() {
  2792. let allHight = this.$refs.all_w.offsetHeight;
  2793. let allwidth = this.$refs.all_w.offsetWidth;
  2794. this.$nextTick(() => {
  2795. if (!this.headMenu_2Show) {
  2796. this.renderer_hight = allHight - 61 - 149 - 13;
  2797. this.renderer_width = allwidth - 300;
  2798. this.$refs.transform.changeCssBig();
  2799. } else if (this.headMenu_2Show) {
  2800. this.renderer_hight = allHight - 61 - 207 - 149 - 6;
  2801. this.renderer_width = allwidth - 300;
  2802. this.$refs.transform.changeCssSmall();
  2803. }
  2804. });
  2805. },
  2806. change() {
  2807. this.Consoleshow = !this.Consoleshow;
  2808. },
  2809. // 工具栏的点击事件
  2810. yCalchange() {
  2811. this.Yvisiable = true;
  2812. },
  2813. reyCalchange() {
  2814. this.llsvisiable = true;
  2815. },
  2816. atmoCalchange() {},
  2817. // 弹框执行事件
  2818. referencevisiable() {
  2819. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  2820. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  2821. // this.dialog.scale_visiable = false;
  2822. },
  2823. // referencevisiable(){
  2824. // this.parameterObjclone=JSON.parse(sessionStorage.getItem('res'));
  2825. // this.parameterObj.nmlParam= this.parameterObjclone.nmlParam;
  2826. // this.dialog.reference_visiable = false;
  2827. // },
  2828. timeasmvisiable() {
  2829. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  2830. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  2831. this.dialog.timeasm_visiable = false;
  2832. },
  2833. runcvisiable() {
  2834. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  2835. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  2836. this.dialog.runc_visiable = false;
  2837. },
  2838. dialogbtny() {
  2839. let u_freestream = eval(this.form.u_freestream);
  2840. if (u_freestream <= 0.0) {
  2841. alert("Free stream velocity must be greater than zero");
  2842. return;
  2843. }
  2844. let rho = eval(this.form.rho);
  2845. if (rho <= 0.0) {
  2846. alert("Density must be greater than zero");
  2847. return;
  2848. }
  2849. let L = eval(this.form.L);
  2850. if (L <= 0.0) {
  2851. alert("Boundary layer reference length must be greater than zero");
  2852. return;
  2853. }
  2854. let mu = eval(this.form.mu);
  2855. if (mu <= 0.0) {
  2856. alert("Dynamic viscosity must be greater than zero");
  2857. return;
  2858. }
  2859. let y_plus_desired = eval(this.form.y_plus_desired);
  2860. if (y_plus_desired <= 0.0) {
  2861. alert("Desired y+ value must be greater than zero");
  2862. return;
  2863. }
  2864. let Re = (rho * u_freestream * L) / mu;
  2865. let C_f = 0.026 * Math.pow(Re, -(1.0 / 7.0));
  2866. C_f = 0.0576 * Math.pow(Re, -1.0 / 5.0);
  2867. C_f = 0.37 * Math.pow(Math.log(Re) / Math.log(10), -2.584);
  2868. C_f = Math.pow((2 * Math.log(Re)) / Math.log(10) - 0.65, -2.3);
  2869. let tau_w = C_f * 0.5 * rho * u_freestream * u_freestream;
  2870. let U_f = Math.sqrt(tau_w / rho);
  2871. let wall_distance_estimation = (y_plus_desired * mu) / (U_f * rho);
  2872. this.form.Rex = Re.toExponential(1);
  2873. this.form.dtc = wall_distance_estimation.toExponential(1);
  2874. },
  2875. leinsdialogbtny() {
  2876. this.form.Re =
  2877. (this.form.lmi * this.form.lls * this.form.lld) / this.form.ldlzxxs;
  2878. // console.log(this.form.Re);
  2879. },
  2880. unitConversion() {
  2881. this.$refs.Calculator.visiable = true;
  2882. },
  2883. taskchangGeneal() {
  2884. this.TaskGenealshow = false;
  2885. },
  2886. taskchangPhysics() {
  2887. this.TaskPhysicsshow = false;
  2888. },
  2889. taskchangSolution() {
  2890. this.TaskSolutionshow = false;
  2891. },
  2892. taskchangSurface() {
  2893. this.TaskSurfaceshow = false;
  2894. },
  2895. taskchangVolume() {
  2896. this.TaskVolumeshow = false;
  2897. },
  2898. // Contour
  2899. Contourval(val) {
  2900. switch (val) {
  2901. case "Mesh":
  2902. this.showSurface();
  2903. break;
  2904. case "Contour":
  2905. // this.$refs.boundaryLoad.divb=false;
  2906. this.showSurface();
  2907. }
  2908. },
  2909. ContourvalVolume(val) {
  2910. switch (val) {
  2911. case "Mesh":
  2912. this.showVolume();
  2913. break;
  2914. case "Contour":
  2915. this.showVolume();
  2916. }
  2917. },
  2918. physicslaminar() {
  2919. this.dialog.laminar_visiable = true;
  2920. },
  2921. physicsturbulent() {
  2922. this.dialog.turbulent_visiable = true;
  2923. },
  2924. viscouschange() {
  2925. if (this.parameterObj.nmlParam.viscous_terms == "laminar") {
  2926. this.dialog.laminar_visiable = true;
  2927. } else if (this.parameterObj.nmlParam.viscous_terms == "turbulent") {
  2928. this.dialog.turbulent_visiable = true;
  2929. }
  2930. },
  2931. showHeadMenu(emt) {
  2932. if (
  2933. (emt == "geneal" && this.gennealShow && this.headMenu_2Show) ||
  2934. (emt == "physics" && this.physicsShow && this.headMenu_2Show) ||
  2935. (emt == "solution" && this.solutionShow && this.headMenu_2Show) ||
  2936. (emt == "result" && this.resultShow && this.headMenu_2Show)
  2937. ) {
  2938. this.headMenu_2Show = false;
  2939. this.changeRendererSize();
  2940. return;
  2941. }
  2942. this.headMenu_2Show = true;
  2943. if (emt == "geneal") {
  2944. this.gennealShow = true;
  2945. this.physicsShow = false;
  2946. this.solutionShow = false;
  2947. this.resultShow = false;
  2948. }
  2949. if (emt == "physics") {
  2950. this.gennealShow = false;
  2951. this.physicsShow = true;
  2952. this.solutionShow = false;
  2953. this.resultShow = false;
  2954. }
  2955. if (emt == "solution") {
  2956. this.gennealShow = false;
  2957. this.physicsShow = false;
  2958. this.solutionShow = true;
  2959. this.resultShow = false;
  2960. }
  2961. if (emt == "result") {
  2962. this.gennealShow = false;
  2963. this.physicsShow = false;
  2964. this.solutionShow = false;
  2965. this.resultShow = true;
  2966. // console.log(this.$refs.boundaryLoad.container_show)
  2967. // console.log(this.$refs.volumLoad.container_show)
  2968. if (
  2969. this.$refs.boundaryLoad.container_show == false &&
  2970. this.$refs.volumLoad.container_show == false
  2971. ) {
  2972. this.showSurface()
  2973. this.showVolumers()
  2974. } else {
  2975. }
  2976. }
  2977. this.changeRendererSize();
  2978. },
  2979. showLeftMenu(emt) {
  2980. this.leftMenu_2Show = true;
  2981. },
  2982. uploadRequest1(params) {
  2983. let param = new FormData();
  2984. param.append("transCode", "A00102");
  2985. param.append("file", params.file);
  2986. param.append("projectId", this.project.projectId);
  2987. uploadFile(param)
  2988. .then((res) => {
  2989. // console.log(res);
  2990. // this.fileId = res.fileId
  2991. this.findParam();
  2992. this.getHCFDLoadFiles();
  2993. })
  2994. .catch((err) => {});
  2995. },
  2996. uploadRequest2(params) {
  2997. let param = new FormData();
  2998. param.append("transCode", "A00102");
  2999. param.append("file", params.file);
  3000. param.append("projectId", this.project.projectId);
  3001. uploadFile(param)
  3002. .then((res) => {
  3003. // console.log(res);
  3004. // this.fileId = res.fileId
  3005. this.findParam();
  3006. })
  3007. .catch((err) => {});
  3008. },
  3009. //获取上传文件
  3010. async getHCFDLoadFiles() {
  3011. let params = {
  3012. transCode: "A00110",
  3013. projectId: this.project.projectId,
  3014. };
  3015. await request(params)
  3016. .then((res) => {
  3017. this.project.loadfils = res.files;
  3018. this.fileNames = [];
  3019. res.files.forEach((url) => {
  3020. let names = url.filepath.split("/");
  3021. let name = names[names.length - 1];
  3022. this.fileNames.push(name);
  3023. });
  3024. })
  3025. .catch((err) => {});
  3026. },
  3027. //获取计算结果文件 并缓存
  3028. async gethcfdsolverfiles() {
  3029. let params = {
  3030. transCode: "A00109",
  3031. projectId: this.project.projectId,
  3032. };
  3033. await request(params)
  3034. .then((res) => {
  3035. this.project.solverfiles = res.files;
  3036. })
  3037. .catch((err) => {});
  3038. this.project.solverfiles.forEach((solverfile) => {
  3039. let url = solverfile.filepath;
  3040. if (
  3041. url.indexOf("volume_timestep") > 1 ||
  3042. url.indexOf("boundary_timestep") > 1 ||
  3043. url.indexOf("converge.dat") > 1
  3044. ) {
  3045. let names = url.split("/");
  3046. let name = names[names.length - 1];
  3047. let loadOj3 = {
  3048. type: 2,
  3049. filename: name,
  3050. percentage: 0,
  3051. };
  3052. this.loadObjs.push(loadOj3);
  3053. this.$refs.filesload.load(url);
  3054. }
  3055. if (url.indexOf("volume_timestep") > 1) {
  3056. this.project.solverVolumUrls.push(url);
  3057. }
  3058. if (url.indexOf("boundary_timestep") > 1) {
  3059. this.project.solverBoundaryUrls.push(url);
  3060. }
  3061. if (url.indexOf("converge.dat") > 1) {
  3062. this.project.converge = url;
  3063. }
  3064. });
  3065. this.project.solverVolumUrls.forEach((url) => {
  3066. let step = url.split("volume_timestep")[1].split(".da")[0];
  3067. this.bStep=step;
  3068. this.volumStep.push(step);
  3069. let newArr = [...new Set(this.volumStep)]; //去重
  3070. this.volumStep = newArr;
  3071. });
  3072. this.project.solverBoundaryUrls.forEach((url) => {
  3073. let step = url.split("boundary_timestep")[1].split(".da")[0];
  3074. this.vStep=step;
  3075. this.boundaryStep.push(step);
  3076. let newArr = [...new Set(this.boundaryStep)]; //去重
  3077. this.boundaryStep = newArr;
  3078. });
  3079. },
  3080. /**
  3081. * 更新配置 并求解
  3082. */
  3083. async hcfdrun() {
  3084. // this.clearAll();
  3085. this.showUgridflag = false; //ugrid 是否显示过
  3086. this.showSurfaceflag = false; //surface 是否显示过
  3087. this.showVolumeflage = false; //Volume 是否显示过
  3088. this.showMonitorflage = false;
  3089. this.$refs.ugridLoad.clear();
  3090. this.$refs.volumLoad.clear();
  3091. this.$refs.boundaryLoad.clear();
  3092. this.$refs.ugridLoad.hiden();
  3093. this.$refs.volumLoad.hiden();
  3094. this.$refs.boundaryLoad.hiden();
  3095. this.islogload = true;
  3096. // this.loadObjs = [];
  3097. // let loadOj1 = {
  3098. // type: 1,
  3099. // message: "参数更新",
  3100. // state: -1,
  3101. // };
  3102. // this.loadObjs.push(loadOj1);
  3103. // let loadOj2 = {
  3104. // type: 1,
  3105. // message: "求解",
  3106. // state: -1,
  3107. // };
  3108. // this.loadObjs.push(loadOj2);
  3109. await this.updateParam();
  3110. // loadOj1.state = 1;
  3111. if (this.solverState == "2") {
  3112. //上次求解完成
  3113. MessageBox.confirm(
  3114. "已完成计算,是否放弃上次计算结果,重新计算? 如果不放弃请自行下载上次结果文件!",
  3115. "提示",
  3116. {
  3117. confirmButtonText: "重新计算",
  3118. cancelButtonText: "取消",
  3119. type: "warning",
  3120. }
  3121. )
  3122. .then(() => {
  3123. MessageBox.close();
  3124. this.exLoading='visible';
  3125. this.isSolverEnd = false;
  3126. this.hcfdExe();
  3127. let _this = this;
  3128. let isStop = false;
  3129. setInterval(function () {
  3130. if (!isStop && _this.isSolverEnd) {
  3131. isStop = true;
  3132. // loadOj2.state = 1;
  3133. _this.showHeadMenu("result");
  3134. }
  3135. }, 500);
  3136. // let logUrl = window.location.protocol+"//"+window.location.host+"/"+Caegw_LogUrl;
  3137. // // console.log(logUrl);
  3138. // window.location.href=logUrl
  3139. })
  3140. .catch(() => {
  3141. Message.info("已取消!");
  3142. loadOj2.state = 1;
  3143. MessageBox.close();
  3144. });
  3145. } else {
  3146. this.exLoading='visible';
  3147. this.isSolverEnd = false;
  3148. this.hcfdExe();
  3149. let _this = this;
  3150. let isStop = false;
  3151. setInterval(function () {
  3152. if (!isStop && _this.isSolverEnd) {
  3153. isStop = true;
  3154. // loadOj2.state = 1;
  3155. // _this.gethcfdsolverfiles();
  3156. _this.showHeadMenu("result");
  3157. }
  3158. }, 500);
  3159. }
  3160. },
  3161. //求解
  3162. hcfdExe() {
  3163. var _this = this;
  3164. let params = {
  3165. transCode: "A00105",
  3166. projectId: this.project.projectId,
  3167. lesseeId:this.$store.getters.lesseeId,
  3168. userName:this.$store.getters.name
  3169. };
  3170. request(params)
  3171. .then((res) => {
  3172. // console.log("hcfdExe" + res);
  3173. this.getlogs()
  3174. })
  3175. .catch((err) => {
  3176. // console.log("hcfdExe" + err);
  3177. setTimeout(function () {
  3178. _this.$refs.loading.visiable = false;
  3179. }, 4000);
  3180. if (err.returnCode == "EB8100017") {
  3181. //资源未分配
  3182. // _this.loading=false;
  3183. //_this.$refs.loading.visiable=false
  3184. // console.log(1111);
  3185. MessageBox.confirm("你还未分配资源?", "提示", {
  3186. confirmButtonText: "分配资源",
  3187. cancelButtonText: "取消",
  3188. type: "warning",
  3189. })
  3190. .then(() => {
  3191. // const errUril = Caegw_ProUrl +"?projectId="+_this.project.projectId;
  3192. let errUril =
  3193. // window.location.protocol +
  3194. // "//" +
  3195. // window.location.host +
  3196. // "/" +
  3197. _this.$store.getters.proUrl +
  3198. "?projectId=" +
  3199. _this.project.projectId;
  3200. let params2 = {
  3201. transCode: "A00118",
  3202. lesseeId: _this.$store.getters.lesseeId
  3203. };
  3204. request(params2)
  3205. .then((res) => {
  3206. window.location.href =
  3207. errUril + "&authCode=" + res.authCode;
  3208. })
  3209. .catch((err) => {});
  3210. })
  3211. .catch(() => {
  3212. _this.$refs.loading.visiable = false;
  3213. Message({
  3214. type: "info",
  3215. message: "已取消",
  3216. });
  3217. });
  3218. }
  3219. });
  3220. },
  3221. async reUpload() {
  3222. this.$refs.mapbc.uploader.upload();
  3223. this.$refs.ugrid.uploader.upload();
  3224. },
  3225. async saveProject(formName) {
  3226. // this.$refs[formName].validate((valid) => {
  3227. // if (valid && this.files.length != 0) {
  3228. // }else{
  3229. // console.log(2222);
  3230. // }
  3231. // })
  3232. const params = {
  3233. transCode: "A00100",
  3234. projectName: this.project.projectName,
  3235. projectDesc: this.project.projectDesc,
  3236. parameterObj: null,
  3237. projectType: "hcfd",
  3238. fileType: this.project.fileType,
  3239. lesseeId: this.$store.getters.lesseeId
  3240. };
  3241. if (
  3242. params.projectName == "" ||
  3243. params.projectName == undefined ||
  3244. params.projectName == null
  3245. ) {
  3246. Message({
  3247. type: "error",
  3248. message: "项目名称不能为空",
  3249. });
  3250. } else if (
  3251. params.projectDesc == "" ||
  3252. params.projectDesc == undefined ||
  3253. params.projectDesc == null
  3254. ) {
  3255. Message({
  3256. type: "error",
  3257. message: "描述信息不能为空",
  3258. });
  3259. } else if (
  3260. this.$refs.mapbc.files.length == 0 ||
  3261. this.$refs.ugrid.files.length == 0
  3262. ) {
  3263. Message({
  3264. type: "error",
  3265. message: "项目文件不能为空",
  3266. });
  3267. } else {
  3268. await request(params)
  3269. .then((res) => {
  3270. this.clearAll();
  3271. // console.log(res);
  3272. this.project.projectId = res.projectId;
  3273. this.project.projectName=res.projectName;
  3274. this.project.projectDesc=res.projectDesc;
  3275. this.project.fileType=res.fileType;
  3276. })
  3277. .catch((err) => {
  3278. return;
  3279. });
  3280. await this.reUpload();
  3281. }
  3282. },
  3283. async ugridShow() {
  3284. if (
  3285. this.project.projectId == "" ||
  3286. this.project.projectId == undefined ||
  3287. this.project.projectId == null
  3288. ) {
  3289. Message({
  3290. type: "error",
  3291. message: "缺少文件,请检查修改",
  3292. });
  3293. } else {
  3294. this.dialog.new_visiable = false;
  3295. // await this.getHCFDLoadFiles();
  3296. this.loadObjs = [];
  3297. let loadOj1 = {
  3298. type: 1,
  3299. message: "获取参数",
  3300. state: -1,
  3301. };
  3302. this.loadObjs.push(loadOj1);
  3303. let loadOj2 = {
  3304. type: 1,
  3305. message: "获取上传文件URL",
  3306. state: -1,
  3307. };
  3308. this.loadObjs.push(loadOj2);
  3309. await this.findParam();
  3310. loadOj1.state = 1;
  3311. await this.getHCFDLoadFiles();
  3312. loadOj2.state = 1;
  3313. this.project.loadfils.forEach((url) => {
  3314. let names = url.filepath.split("/");
  3315. let name = names[names.length - 1];
  3316. let loadOj3 = {
  3317. type: 2,
  3318. filename: name,
  3319. percentage: 0,
  3320. };
  3321. this.loadObjs.push(loadOj3);
  3322. this.$refs.filesload.load(url.filepath);
  3323. this.$refs.filesload.load(url.filepath);
  3324. if (url.filepath.indexOf(".ugrid") > 0) {
  3325. this.ugridUrl = url.filepath;
  3326. }
  3327. });
  3328. this.$refs.ugridLoad.loadUgrid(this.ugridUrl, 1);
  3329. }
  3330. },
  3331. async findParam() {
  3332. let params = {
  3333. transCode: "A00107",
  3334. projectId: this.project.projectId,
  3335. };
  3336. // console.log(params);
  3337. await request(params)
  3338. .then((res) => {
  3339. // console.log("findParam:" + res);
  3340. this.project.projectName = res.projectName;
  3341. this.project.uid = res.uid;
  3342. let cjuserid = this.$route.query.cjuserid;
  3343. if(res.missionType==='3'||res.missionType==='4'){
  3344. this.missType=false
  3345. }else{
  3346. this.missType=true
  3347. }
  3348. // console.log("A00107:",res);
  3349. // console.log("cjuserid:",cjuserid);
  3350. // if(cjuserid&&cjuserid==this.project.uid){
  3351. // this.newload = true;
  3352. // this.runMonitor=true;
  3353. // }else{
  3354. // this.newload = false;
  3355. // this.runMonitor=false;
  3356. // }
  3357. console.log(this.parameterObj)
  3358. this.parameterObj = JSON.parse(res.parameterObj);
  3359. sessionStorage.setItem("res", res.parameterObj);
  3360. // this.parameterObjclone=JSON.parse(res.parameterObj);
  3361. // console.log(res);
  3362. })
  3363. .catch((err) => {});
  3364. },
  3365. //上传配置参数
  3366. async updateParam() {
  3367. delete this.parameterObj.nmlParam.initialization;
  3368. let params = {
  3369. transCode: "A00104",
  3370. parameterObj: JSON.stringify(this.parameterObj),
  3371. projectId: this.project.projectId,
  3372. lesseeId: this.$store.getters.lesseeId
  3373. };
  3374. console.log(this.parameterObj.nmlParam.a_u);
  3375. console.log(this.parameterObj);
  3376. await request(params)
  3377. .then((res) => {
  3378. // console.log("updateParam" + res);
  3379. // this.parameterObj = JSON.parse(res.parameterObj);
  3380. this.solverState = res.solverState;
  3381. })
  3382. .catch((err) => {});
  3383. },
  3384. loadProjects() {
  3385. let params = {
  3386. transCode: "A00101",
  3387. page: 1,
  3388. size: 1,
  3389. projectType: "hcfd",
  3390. lesseeId: this.$store.getters.lesseeId
  3391. };
  3392. this.loading = true;
  3393. request(params)
  3394. .then((res) => {
  3395. // console.log("项目:" + res.rows);
  3396. this.projects = res.rows;
  3397. this.loading = false;
  3398. })
  3399. .catch((err) => {});
  3400. },
  3401. projectsSelectionChange(val) {
  3402. this.clearAll();
  3403. if (val.length > 0) {
  3404. this.project.projectId = val[0].projectId;
  3405. this.project.projectName = val[0].projectName;
  3406. this.project.projectDesc = val[0].projectDesc;
  3407. }
  3408. },
  3409. projectsSelectionSelect(selection, row) {
  3410. if (selection.length <= 1) return;
  3411. this.$refs.projectsTable.clearSelection();
  3412. this.$refs.projectsTable.toggleRowSelection(row, true);
  3413. },
  3414. //load状态回调
  3415. fileLoadeState(files) {
  3416. files.forEach((file) => {
  3417. this.loadObjs.forEach((obj) => {
  3418. if (obj.type == 2) {
  3419. if (obj.filename === file.name) {
  3420. obj.percentage = file.percentage;
  3421. }
  3422. }
  3423. if (obj.type == 1) {
  3424. // obj.message=file.message;
  3425. }
  3426. });
  3427. });
  3428. },
  3429. // 选择项目
  3430. async selectProjectOK() {
  3431. this.dialog.load_visiable = false;
  3432. this.loadObjs = [];
  3433. let loadOj1 = {
  3434. type: 1,
  3435. message: "获取参数",
  3436. state: -1,
  3437. };
  3438. this.loadObjs.push(loadOj1);
  3439. let loadOj2 = {
  3440. type: 1,
  3441. message: "获取上传文件URL",
  3442. state: -1,
  3443. };
  3444. this.loadObjs.push(loadOj2);
  3445. //结束
  3446. await this.findParam();
  3447. loadOj1.state = 1;
  3448. await this.getHCFDLoadFiles();
  3449. loadOj2.state = 1;
  3450. this.project.loadfils.forEach((url) => {
  3451. let names = url.filepath.split("/");
  3452. let name = names[names.length - 1];
  3453. let loadOj3 = {
  3454. type: 2,
  3455. filename: name,
  3456. percentage: 0,
  3457. };
  3458. this.loadObjs.push(loadOj3);
  3459. this.$refs.filesload.load(url.filepath);
  3460. if (url.filepath.indexOf(".ugrid") > 0) {
  3461. this.ugridUrl = url.filepath;
  3462. }
  3463. });
  3464. this.showUgrid();
  3465. this.logtime()
  3466. },
  3467. boundaryChange(boundaryid) {
  3468. this.parameterObj.hcfdBoundarys.forEach((hcfdBoundary) => {
  3469. if (hcfdBoundary.id === boundaryid) {
  3470. this.Physics.hcfdBoundaryquery = hcfdBoundary;
  3471. this.Physics.Boundary.cquery = hcfdBoundary.conditionsCode;
  3472. return;
  3473. }
  3474. });
  3475. },
  3476. conditionsChange(conditionsCode) {
  3477. this.Physics.hcfdBoundaryquery.conditionsCode = conditionsCode;
  3478. },
  3479. // solutionbCheckAllChange(val) {
  3480. // this.Solution.boundaryout.checkeds = val
  3481. // ? this.Solution.boundaryout.lists
  3482. // : [];
  3483. // this.Solution.boundaryout.isIndeterminate = false;
  3484. // this.solutionbSetParam();
  3485. // },
  3486. solutionbCheckAllChange(val) {
  3487. if(val==true){
  3488. this.parameterObj.nmlParam.a_u = true;
  3489. this.parameterObj.nmlParam.a_v = true;
  3490. this.parameterObj.nmlParam.a_w = true;
  3491. this.parameterObj.nmlParam.a_p = true;
  3492. this.parameterObj.nmlParam.a_cp = true;
  3493. this.parameterObj.nmlParam.a_mach = true;
  3494. this.parameterObj.nmlParam.a_vort_mag = true;
  3495. this.parameterObj.nmlParam.a_vort_x = true;
  3496. this.parameterObj.nmlParam.a_vort_y = true;
  3497. this.parameterObj.nmlParam.a_vort_z = true;
  3498. this.parameterObj.nmlParam.a_q_criterion = true;
  3499. this.Solution.boundaryout.isIndeterminate = false;
  3500. //this.solutionbSetParam();
  3501. }else {
  3502. this.parameterObj.nmlParam.a_u = false;
  3503. this.parameterObj.nmlParam.a_v = false;
  3504. this.parameterObj.nmlParam.a_w = false;
  3505. this.parameterObj.nmlParam.a_p = false;
  3506. this.parameterObj.nmlParam.a_cp = false;
  3507. this.parameterObj.nmlParam.a_mach = false;
  3508. this.parameterObj.nmlParam.a_vort_mag = false;
  3509. this.parameterObj.nmlParam.a_vort_x = false;
  3510. this.parameterObj.nmlParam.a_vort_y = false;
  3511. this.parameterObj.nmlParam.a_vort_z = false;
  3512. this.parameterObj.nmlParam.a_q_criterion = false;
  3513. this.Solution.boundaryout.isIndeterminate = false;
  3514. }
  3515. },
  3516. solutionbCheckedCitiesChange(value) {
  3517. let checkedCount = value.length;
  3518. this.Solution.boundaryout.checkAll =
  3519. checkedCount === this.Solution.boundaryout.lists.length;
  3520. this.Solution.boundaryout.isIndeterminate =
  3521. checkedCount > 0 &&
  3522. checkedCount < this.Solution.boundaryout.lists.length;
  3523. this.solutionbSetParam();
  3524. },
  3525. solutionbSetParam() {
  3526. this.Solution.boundaryout.checkeds.forEach((cell) => {
  3527. switch (cell) {
  3528. case "X-component of velocity":
  3529. console.log( this.parameterObj.nmlParam.a_u);
  3530. this.parameterObj.nmlParam.a_u = true;
  3531. break;
  3532. case "Y-component of velocity":
  3533. this.parameterObj.nmlParam.a_v = true;
  3534. break;
  3535. case "Z-component of velocity":
  3536. this.parameterObj.nmlParam.a_w = true;
  3537. break;
  3538. case "Press":
  3539. this.parameterObj.nmlParam.a_p = true;
  3540. break;
  3541. case "Press coefficient":
  3542. this.parameterObj.nmlParam.a_cp = true;
  3543. break;
  3544. case "Mach Number":
  3545. this.parameterObj.nmlParam.a_mach = true;
  3546. break;
  3547. case "Vorticity magnitude":
  3548. this.parameterObj.nmlParam.a_vort_mag = true;
  3549. break;
  3550. case "X-component of vorticity":
  3551. this.parameterObj.nmlParam.a_vort_x = true;
  3552. break;
  3553. case "Y-component of vorticity":
  3554. this.parameterObj.nmlParam.a_vort_y = true;
  3555. break;
  3556. case "Z-component of vorticity":
  3557. this.parameterObj.nmlParam.a_vort_z = true;
  3558. break;
  3559. case "Q Criterion":
  3560. this.parameterObj.nmlParam.a_q_criterion = true;
  3561. break;
  3562. default:
  3563. break;
  3564. }
  3565. });
  3566. },
  3567. clickNew(){
  3568. this.project.projectName='';
  3569. this.dialog.new_visiable = true;
  3570. this.$refs.mapbc.$emit('childmethods');
  3571. this.$refs.ugrid.$emit('childmethods');
  3572. },
  3573. solutionvCheckAllChange(val) {
  3574. // this.Solution.volumout.checkeds = val ? this.Solution.volumout.lists : [];
  3575. // this.Solution.volumout.isIndeterminate = false;
  3576. // this.solutionbSetParam();
  3577. if(val==true){
  3578. this.parameterObj.nmlParam.v_u = true;
  3579. this.parameterObj.nmlParam.v_v = true;
  3580. this.parameterObj.nmlParam.v_w = true;
  3581. this.parameterObj.nmlParam.v_p = true;
  3582. this.parameterObj.nmlParam.v_cp = true;
  3583. this.parameterObj.nmlParam.v_mach = true;
  3584. this.parameterObj.nmlParam.v_vort_mag = true;
  3585. this.parameterObj.nmlParam.v_vort_x = true;
  3586. this.parameterObj.nmlParam.v_vort_y = true;
  3587. this.parameterObj.nmlParam.v_vort_z = true;
  3588. this.parameterObj.nmlParam.v_q_criterion = true;
  3589. }else{
  3590. this.parameterObj.nmlParam.v_u = false;
  3591. this.parameterObj.nmlParam.v_v = false;
  3592. this.parameterObj.nmlParam.v_w = false;
  3593. this.parameterObj.nmlParam.v_p = false;
  3594. this.parameterObj.nmlParam.v_cp = false;
  3595. this.parameterObj.nmlParam.v_mach = false;
  3596. this.parameterObj.nmlParam.v_vort_mag = false;
  3597. this.parameterObj.nmlParam.v_vort_x = false;
  3598. this.parameterObj.nmlParam.v_vort_y = false;
  3599. this.parameterObj.nmlParam.v_vort_z = false;
  3600. this.parameterObj.nmlParam.v_q_criterion = false;
  3601. this.Solution.volumout.isIndeterminate = false;
  3602. }
  3603. },
  3604. solutionvCheckedCitiesChange(value) {
  3605. let checkedCount = value.length;
  3606. console.log(value);
  3607. this.Solution.volumout.checkAll =
  3608. checkedCount === this.Solution.volumout.lists.length;
  3609. this.Solution.volumout.isIndeterminate =
  3610. checkedCount > 0 && checkedCount < this.Solution.volumout.lists.length;
  3611. this.solutionvSetParam();
  3612. },
  3613. solutionvSetParam() {
  3614. this.Solution.volumout.checkeds.forEach((cell) => {
  3615. switch (cell) {
  3616. case "X-component of velocity":
  3617. this.parameterObj.nmlParam.v_u = true;
  3618. break;
  3619. case "Y-component of velocity":
  3620. this.parameterObj.nmlParam.v_v = true;
  3621. break;
  3622. case "Z-component of velocity":
  3623. this.parameterObj.nmlParam.v_w = true;
  3624. break;
  3625. case "Press":
  3626. this.parameterObj.nmlParam.v_p = true;
  3627. break;
  3628. case "Press coefficient":
  3629. this.parameterObj.nmlParam.v_cp = true;
  3630. break;
  3631. case "Mach Number":
  3632. this.parameterObj.nmlParam.v_mach = true;
  3633. break;
  3634. case "Vorticity magnitude":
  3635. this.parameterObj.nmlParam.v_vort_mag = true;
  3636. break;
  3637. case "X-component of vorticity":
  3638. this.parameterObj.nmlParam.v_vort_x = true;
  3639. break;
  3640. case "Y-component of vorticity":
  3641. this.parameterObj.nmlParam.v_vort_y = true;
  3642. break;
  3643. case "Z-component of vorticity":
  3644. this.parameterObj.nmlParam.v_vort_z = true;
  3645. break;
  3646. case "Q Criterion":
  3647. this.parameterObj.nmlParam.v_q_criterion = true;
  3648. break;
  3649. default:
  3650. break;
  3651. }
  3652. });
  3653. },
  3654. //显示 UgridLoad
  3655. async showUgrid() {
  3656. console.log(this.showUgridflag);
  3657. this.$refs.volumLoad.hiden();
  3658. this.$refs.boundaryLoad.hiden();
  3659. this.$refs.monitor.hiden();
  3660. if (!this.showUgridflag) {
  3661. //是否显示过
  3662. this.$refs.ugridLoad.clear();
  3663. if (this.project.loadfils.length == 0) {
  3664. await this.getHCFDLoadFiles();
  3665. }
  3666. this.project.loadfils.forEach((url) => {
  3667. if (url.filepath.indexOf(".ugrid") > 0) {
  3668. this.ugridUrl = url.filepath;
  3669. }
  3670. });
  3671. this.$refs.ugridLoad.loadUgrid(this.ugridUrl, 1);
  3672. this.showUgridflag = true;
  3673. } else {
  3674. this.$refs.ugridLoad.nhiden();
  3675. }
  3676. },
  3677. // Task Page
  3678. handleNodeClick(data) {
  3679. let treeid = data.id;
  3680. if (treeid == "2") {
  3681. this.TaskGenealshow = true;
  3682. this.TaskPhysicsshow = false;
  3683. this.TaskSolutionshow = false;
  3684. this.TaskSurfaceshow = false;
  3685. this.TaskVolumeshow = false;
  3686. } else if (treeid == "3") {
  3687. this.TaskGenealshow = false;
  3688. this.TaskPhysicsshow = true;
  3689. this.TaskSolutionshow = false;
  3690. this.TaskSurfaceshow = false;
  3691. this.TaskVolumeshow = false;
  3692. } else if (treeid == "4") {
  3693. this.TaskGenealshow = false;
  3694. this.TaskPhysicsshow = false;
  3695. this.TaskSolutionshow = true;
  3696. this.TaskSurfaceshow = false;
  3697. this.TaskVolumeshow = false;
  3698. } else if (treeid == "7") {
  3699. this.TaskGenealshow = false;
  3700. this.TaskPhysicsshow = false;
  3701. this.TaskSolutionshow = false;
  3702. this.TaskSurfaceshow = true;
  3703. this.TaskVolumeshow = false;
  3704. } else if (treeid == "8") {
  3705. this.TaskGenealshow = false;
  3706. this.TaskPhysicsshow = false;
  3707. this.TaskSolutionshow = false;
  3708. this.TaskSurfaceshow = false;
  3709. this.TaskVolumeshow = true;
  3710. } else if (treeid == "6") {
  3711. this.showMonitor();
  3712. } else if (treeid == "9") {
  3713. this.showUgrid();
  3714. } else {
  3715. this.TaskGenealshow = false;
  3716. this.TaskPhysicsshow = false;
  3717. this.TaskSolutionshow = false;
  3718. this.TaskSurfaceshow = false;
  3719. this.TaskVolumeshow = false;
  3720. }
  3721. this.changeRendererSize();
  3722. },
  3723. //显示 Surface
  3724. async showSurface() {
  3725. let mesh = false;
  3726. let contour = false;
  3727. this.belementCheckeds.forEach((ele) => {
  3728. if ("Mesh" == ele) {
  3729. mesh = true;
  3730. } else if ("Contour" == ele) {
  3731. contour = true;
  3732. }
  3733. });
  3734. this.$refs.ugridLoad.hiden();
  3735. this.$refs.volumLoad.hiden();
  3736. this.$refs.monitor.hiden();
  3737. if (!this.showSurfaceflag) {
  3738. this.$refs.boundaryLoad.clear();
  3739. if (this.project.solverfiles.length == 0) {
  3740. await this.gethcfdsolverfiles();
  3741. }
  3742. let burl;
  3743. this.project.solverBoundaryUrls.forEach((url) => {
  3744. if (url.indexOf(this.bStep + ".dat") > 0) {
  3745. burl = url;
  3746. }
  3747. });
  3748. if (mesh) {
  3749. this.$refs.boundaryLoad.loadBoundary(burl, 1, this.bScalar);
  3750. }
  3751. if (contour) {
  3752. this.$refs.boundaryLoad.loadBoundary(burl, 2, this.bScalar);
  3753. }
  3754. this.showSurfaceflag = true;
  3755. } else {
  3756. this.$refs.boundaryLoad.clear();
  3757. this.$refs.boundaryLoad.nhiden();
  3758. if (mesh) {
  3759. this.$refs.boundaryLoad.mesh(this.bScalar);
  3760. }
  3761. if (contour) {
  3762. // console.log(222);
  3763. this.$refs.volumLoad.vdivb = false;
  3764. this.$refs.boundaryLoad.divb = true;
  3765. this.$refs.boundaryLoad.contour(this.bScalar);
  3766. }
  3767. }
  3768. },
  3769. //通过 volume 解析文件,不显示图像
  3770. async showVolumers() {
  3771. let mesh = false;
  3772. let contour = false;
  3773. this.velementCheckeds.forEach((ele) => {
  3774. if ("Mesh" == ele) {
  3775. mesh = true;
  3776. } else if ("Contour" == ele) {
  3777. contour = true;
  3778. }
  3779. });
  3780. if (!this.showVolumeflage) {
  3781. this.$refs.volumLoad.clear();
  3782. if (this.project.solverfiles.length == 0) {
  3783. await this.gethcfdsolverfiles();
  3784. }
  3785. let urls = [];
  3786. this.project.solverVolumUrls.forEach((url) => {
  3787. if (url.indexOf(this.bStep + ".dat") > 0) {
  3788. urls.push(url);
  3789. }
  3790. });
  3791. if (mesh) {
  3792. this.$refs.volumLoad.loadVolumHiden(urls, 1, this.vSalar);
  3793. }
  3794. if (contour) {
  3795. this.$refs.boundaryLoad.divb = false;
  3796. this.$refs.volumLoad.vdivb = true;
  3797. this.$refs.volumLoad.loadVolumHiden(urls, 2, this.vSalar);
  3798. }
  3799. } else {
  3800. this.$refs.volumLoad.clear();
  3801. this.$refs.volumLoad.nhiden();
  3802. if (mesh) {
  3803. this.$refs.volumLoad.mesh(this.vSalar);
  3804. }
  3805. if (contour) {
  3806. this.$refs.boundaryLoad.divb = false;
  3807. this.$refs.volumLoad.vdivb = true;
  3808. this.$refs.volumLoad.contour(this.vSalar);
  3809. }
  3810. }
  3811. },
  3812. async showVolume() {
  3813. let mesh = false;
  3814. let contour = false;
  3815. this.velementCheckeds.forEach((ele) => {
  3816. if ("Mesh" == ele) {
  3817. mesh = true;
  3818. } else if ("Contour" == ele) {
  3819. contour = true;
  3820. }
  3821. });
  3822. this.$refs.ugridLoad.hiden();
  3823. this.$refs.boundaryLoad.hiden();
  3824. this.$refs.monitor.hiden();
  3825. if (!this.showVolumeflage) {
  3826. this.$refs.volumLoad.clear();
  3827. if (this.project.solverfiles.length == 0) {
  3828. await this.gethcfdsolverfiles();
  3829. }
  3830. let urls = [];
  3831. this.project.solverVolumUrls.forEach((url) => {
  3832. if (url.indexOf(this.bStep + ".dat") > 0) {
  3833. urls.push(url);
  3834. }
  3835. });
  3836. if (mesh) {
  3837. this.$refs.volumLoad.loadVolum(urls, 1, this.vSalar);
  3838. }
  3839. if (contour) {
  3840. this.$refs.boundaryLoad.divb = false;
  3841. this.$refs.volumLoad.vdivb = true;
  3842. this.$refs.volumLoad.loadVolum(urls, 2, this.vSalar);
  3843. }
  3844. this.showVolumeflage = true;
  3845. } else {
  3846. this.$refs.volumLoad.clear();
  3847. this.$refs.volumLoad.nhiden();
  3848. if (mesh) {
  3849. this.$refs.volumLoad.mesh(this.vSalar);
  3850. }
  3851. if (contour) {
  3852. this.$refs.boundaryLoad.divb = false;
  3853. this.$refs.volumLoad.vdivb = true;
  3854. this.$refs.volumLoad.contour(this.vSalar);
  3855. }
  3856. }
  3857. },
  3858. async showMonitor() {
  3859. this.$refs.ugridLoad.hiden();
  3860. this.$refs.boundaryLoad.hiden();
  3861. this.$refs.volumLoad.hiden();
  3862. if (!this.showMonitorflage) {
  3863. if (this.project.converge == "") {
  3864. await this.gethcfdsolverfiles();
  3865. }
  3866. let convergeUrl = this.project.converge;
  3867. this.$refs.monitor.loadConverge(convergeUrl);
  3868. } else {
  3869. this.$refs.monitor.nhiden();
  3870. }
  3871. this.showMonitorflage = true;
  3872. },
  3873. large() {
  3874. this.$refs.ugridLoad.large();
  3875. this.$refs.boundaryLoad.large();
  3876. this.$refs.volumLoad.large();
  3877. },
  3878. small() {
  3879. this.$refs.ugridLoad.small();
  3880. this.$refs.boundaryLoad.small();
  3881. this.$refs.volumLoad.small();
  3882. },
  3883. positive(axis) {
  3884. this.$refs.ugridLoad.positive(axis);
  3885. this.$refs.boundaryLoad.positive(axis);
  3886. this.$refs.volumLoad.positive(axis);
  3887. },
  3888. negative(axis) {
  3889. this.$refs.ugridLoad.negative(axis);
  3890. this.$refs.boundaryLoad.negative(axis);
  3891. this.$refs.volumLoad.negative(axis);
  3892. },
  3893. // 资源选择代码
  3894. showresource(){
  3895. this.dialog.ziyuan=true;
  3896. this.getresource();
  3897. },
  3898. //获取资源代码
  3899. getresource(){
  3900. const loading = this.$loading({
  3901. lock: true,
  3902. text: 'Loading',
  3903. spinner: 'el-icon-loading',
  3904. background: 'rgba(0, 0, 0, 0.7)',
  3905. })
  3906. setTimeout(() => {
  3907. const params = {
  3908. transCode: 'HG00000',
  3909. page: this.paginationConfig.page,
  3910. count: this.paginationConfig.size,
  3911. lesseeId:this.$store.getters.lesseeId,
  3912. }
  3913. request(params)
  3914. .then((res) => {
  3915. loading.close()
  3916. this.ziyprojects = res.rows;
  3917. this.paginationConfig.total = res.total
  3918. this.resourcelook();
  3919. })
  3920. .catch((err) => {
  3921. loading.close()
  3922. })
  3923. }, 500)
  3924. },
  3925. getPagination(data) {
  3926. this.paginationConfig = data
  3927. this.getresource()
  3928. },
  3929. //选中
  3930. ziySelectionChange (val) {
  3931. let id= []
  3932. val.map((item)=> {
  3933. id.push(item.id)
  3934. })
  3935. this.selsectid= id.join(',')
  3936. },
  3937. ziySelectionSelect(selection, row) {
  3938. },
  3939. //保存
  3940. resourceOK(){
  3941. const params = {
  3942. transCode: 'HG00002',
  3943. otherId:this.project.projectId,
  3944. type:'1',
  3945. resourceIds:this.selsectid,
  3946. lesseeId:this.$store.getters.lesseeId,
  3947. }
  3948. request(params)
  3949. .then((res) => {
  3950. Message({
  3951. type: "success",
  3952. message: "保存成功",
  3953. });
  3954. this.dialog.ziyuan=false;
  3955. })
  3956. .catch((err) => {
  3957. })
  3958. },
  3959. // 查看已经中的
  3960. resourcelook(){
  3961. const params = {
  3962. transCode: 'HG00001',
  3963. otherId: this.project.projectId,
  3964. type:'1',
  3965. lesseeId:this.$store.getters.lesseeId,
  3966. }
  3967. request(params)
  3968. .then((res) => {
  3969. let rst=res.rows;
  3970. this.$refs.multipleTable.clearSelection();
  3971. if (rst.length > 0) {
  3972. for (var i = 0; i < rst.length; i++) {
  3973. for ( let j = 0 ; j < this.ziyprojects.length; j++ ){
  3974. if (this.ziyprojects[j].id === rst[i].resourceId) {
  3975. this.$refs.multipleTable.toggleRowSelection(this.ziyprojects[j],true);
  3976. }
  3977. }
  3978. }
  3979. }
  3980. })
  3981. .catch((err) => {
  3982. })
  3983. }
  3984. },
  3985. };
  3986. </script>
  3987. <style lang="scss">
  3988. @media screen and (max-width:1650px){
  3989. .headMenu_2 .el-col{
  3990. transform:scale(0.9);
  3991. transform-origin: 0 0;
  3992. }
  3993. .headMenu_2{
  3994. height: 175px !important;
  3995. }
  3996. }
  3997. @media screen and (max-width:1330px){
  3998. .headMenu_2 .el-col{
  3999. transform:scale(0.8);
  4000. transform-origin: 0 0;
  4001. }
  4002. .headMenu_2{
  4003. height: 150px !important;
  4004. }
  4005. .asideTag2,.asideTag {
  4006. transform:scale(0.7);
  4007. transform-origin: 0 0;
  4008. }
  4009. }
  4010. @media screen and (max-width:1160px){
  4011. .headMenu_2 .el-col{
  4012. transform:scale(0.7);
  4013. transform-origin: 0 0;
  4014. }
  4015. .asideTag2{
  4016. left: 91%;
  4017. }
  4018. .el-aside{
  4019. width:170px !important;
  4020. }
  4021. .headMenu_2{
  4022. height: 135px !important;
  4023. }
  4024. }
  4025. body {
  4026. font-size: 62.5%;
  4027. position: relative;
  4028. }
  4029. .el-padding {
  4030. padding: 5px 20px;
  4031. }
  4032. .headMenu_1 {
  4033. background: #232426;
  4034. }
  4035. .logtitle {
  4036. color: #fff;
  4037. }
  4038. .el-header {
  4039. padding: 0;
  4040. }
  4041. .logs_console {
  4042. overflow: hidden;
  4043. }
  4044. .el-menu {
  4045. padding-left: 13px;
  4046. }
  4047. .el-menu .el-menu-item:hover {
  4048. background-color: #bfc5cb;
  4049. color: #333333;
  4050. }
  4051. // .el-menu--horizontal>.el-submenu:focus .el-submenu__title, .el-menu--horizontal>.el-submenu:hover .el-submenu__title{
  4052. // color: #e4e4e4;
  4053. // }
  4054. .el-menu--horizontal > .el-menu-item {
  4055. color: #e4e4e4;
  4056. }
  4057. .el-menu--horizontal > .el-submenu.is-active .el-submenu__title {
  4058. color: #e4e4e4;
  4059. }
  4060. .el-menu--horizontal > .el-menu-item.is-active {
  4061. color: #e4e4e4;
  4062. }
  4063. .el-menu--horizontal > .el-submenu .el-submenu__title {
  4064. color: #e4e4e4;
  4065. font-size: 16px;
  4066. }
  4067. .el-menu--horizontal {
  4068. -webkit-box-pack: inherit;
  4069. justify-content: flex-start;
  4070. }
  4071. .logtitle li:nth-child(1) {
  4072. margin-right: 100px;
  4073. }
  4074. .el-menu-item {
  4075. font-size: 16px;
  4076. padding: 0 35px;
  4077. }
  4078. #head2 {
  4079. background-color: #f9f9f9;
  4080. }
  4081. #lg-title {
  4082. text-align: left;
  4083. padding: 6px 0px 6px 3.125vw;
  4084. }
  4085. .Task-lg {
  4086. width: 100%;
  4087. }
  4088. .el-col-1 {
  4089. width: 0; //重点修改了宽度
  4090. }
  4091. .title_content_1 {
  4092. padding-left: 2.96875vw;
  4093. }
  4094. .el-col-3 li {
  4095. padding: 6px 0;
  4096. }
  4097. .lg-er .el-col-3 li {
  4098. padding-top: 0;
  4099. }
  4100. .el-image {
  4101. padding-right: 4px;
  4102. }
  4103. .lg_weiyi .el-radio {
  4104. display: block;
  4105. padding: 6px 0 6px 3.125vw;
  4106. }
  4107. .el-dialog .el-input__inner {
  4108. height: 34px;
  4109. line-height: 34px;
  4110. }
  4111. .el-input--mini {
  4112. display: inline;
  4113. }
  4114. .lg-centent {
  4115. background-color: #f4f4f4;
  4116. }
  4117. .leiluoshu .el-form-item__content {
  4118. margin-left: 180px;
  4119. }
  4120. .lg-centent .el-row {
  4121. height: 100%;
  4122. }
  4123. .lg-modl {
  4124. width: 300px;
  4125. background: #f4f4f4;
  4126. }
  4127. .lg-centent .lg-modl .Task-lg {
  4128. // max-height: calc(100vh - 300px);
  4129. overflow-y: auto;
  4130. }
  4131. // .tasklg1{
  4132. // height: 100%;
  4133. // overflow-y: auto;
  4134. // }
  4135. // .tasklg2{
  4136. // height: calc(100%-225px);
  4137. // overflow-y: auto;
  4138. // }
  4139. .lg-san .el-col-3 li {
  4140. padding: 0;
  4141. }
  4142. .el-input--mini .el-input__inner {
  4143. width: 100%;
  4144. }
  4145. .el-radio__input.is-checked .el-radio__inner {
  4146. border-color: #333;
  4147. background: #333;
  4148. }
  4149. .beij-container {
  4150. width: 100%;
  4151. height: 100%;
  4152. background: linear-gradient(180deg, #ccd3e2 0%, rgba(255, 255, 255, 0) 100%);
  4153. }
  4154. .el-footer {
  4155. padding: 0;
  4156. height: 149px;
  4157. overflow-y: auto;
  4158. }
  4159. .el-input__inner {
  4160. height: 30px;
  4161. // text-align: center;
  4162. }
  4163. .el-input--mini {
  4164. display: inline;
  4165. }
  4166. .movieControlTitle {
  4167. font-weight: 700;
  4168. position: relative;
  4169. top: -8px;
  4170. background-color: #d7dce7;
  4171. padding: 0 10px;
  4172. font-size: 16px;
  4173. }
  4174. .el-main {
  4175. position: relative;
  4176. background-repeat: no-repeat;
  4177. }
  4178. .maxh221{
  4179. max-height: calc(100vh - 221px);
  4180. }
  4181. .maxh400{
  4182. max-height: calc(100vh - 410px);
  4183. }
  4184. body {
  4185. position: relative;
  4186. background-color: #eceef0;
  4187. }
  4188. .el-loading-mask {
  4189. background: none;
  4190. }
  4191. .el-tree {
  4192. background-color: #eceef0;
  4193. padding: 13px;
  4194. }
  4195. // 第二个点击事件
  4196. .lg-er .el-col {
  4197. padding: 0 12px;
  4198. }
  4199. .el-radio-button:first-child .el-radio-button__inner {
  4200. border-radius: 4px;
  4201. }
  4202. .el-radio-button:last-child .el-radio-button__inner {
  4203. border-radius: 4px;
  4204. }
  4205. .lg-er label {
  4206. padding: 5px 0;
  4207. }
  4208. .el-radio-button__inner {
  4209. border: none;
  4210. }
  4211. .lg-er label {
  4212. display: block;
  4213. }
  4214. .lg-form li {
  4215. display: flex;
  4216. align-items: center;
  4217. justify-content: space-between;
  4218. }
  4219. .lg-form>li>span{
  4220. display:inline-block;
  4221. width:65%
  4222. }
  4223. .lg-form>li>.el-input{
  4224. width:35%
  4225. }
  4226. .lg-form {
  4227. padding-bottom: 5px;
  4228. }
  4229. .lg-san .el-col {
  4230. padding: 5px 0.5vw;
  4231. }
  4232. .lg-san label {
  4233. padding: 10px 0;
  4234. }
  4235. #head2 .lg-san input {
  4236. margin: 3px 0px;
  4237. }
  4238. .lg-san .el-padding {
  4239. padding: 0 20px;
  4240. }
  4241. // #head2 input
  4242. .el-button + .el-button {
  4243. margin-left: 0;
  4244. }
  4245. .maxh100{
  4246. max-height: calc(100vh - 100px);
  4247. }
  4248. .maxh290{
  4249. max-height: calc(100vh - 290px);
  4250. }
  4251. .el-button{
  4252. margin-bottom: 2px;
  4253. }
  4254. .lg-si .el-input__inner {
  4255. padding: 0 0 0 0;
  4256. }
  4257. .lg-si-right {
  4258. padding-left: 30px;
  4259. }
  4260. .lg-button {
  4261. background-color: #4c4f54;
  4262. color: #fff;
  4263. border-radius: 10px;
  4264. }
  4265. .el-button--mini,
  4266. .el-button--mini.is-round {
  4267. padding: 5px 15px;
  4268. }
  4269. .lg-san {
  4270. height: 189px;
  4271. overflow: auto;
  4272. }
  4273. .lg-si li {
  4274. padding: 2px 0;
  4275. }
  4276. .el-dialog__body .el-input {
  4277. padding: 5px 0;
  4278. }
  4279. .el-dialog__body .el-form li:first {
  4280. padding: 10px 0;
  4281. }
  4282. .logs_title {
  4283. background: #bfc5cb;
  4284. padding: 10px;
  4285. font-size: 16px;
  4286. }
  4287. .el-col-4,
  4288. .el-col-3 {
  4289. position: relative;
  4290. }
  4291. .lg-more {
  4292. position: absolute;
  4293. right: 0;
  4294. bottom: 15px;
  4295. }
  4296. // 弹框
  4297. .lg-bg .el-dialog__header {
  4298. background: #efefef;
  4299. border-color: #82848a;
  4300. text-align: center;
  4301. font-weight: 600;
  4302. }
  4303. .dialog-block label {
  4304. display: block;
  4305. font-size: 20px;
  4306. }
  4307. .el-dialog__footer {
  4308. padding: 0px 20px 20px;
  4309. }
  4310. .dialog-block .el-dialog {
  4311. width: 23%;
  4312. }
  4313. .Conditions .el-dialog {
  4314. width: 26%;
  4315. }
  4316. .el-dialog__body {
  4317. padding: 20px 20px;
  4318. }
  4319. .el-dialog {
  4320. max-width: 600px;
  4321. min-width: 452px;
  4322. }
  4323. .lg-Solution .el-dialog {
  4324. width: 16%;
  4325. }
  4326. .lg-Solution label {
  4327. display: block;
  4328. padding: 5px 0;
  4329. }
  4330. .lg-out-h .el-checkbox {
  4331. width: 40%;
  4332. }
  4333. .showright {
  4334. float: right;
  4335. margin-right: 20px;
  4336. }
  4337. .Task-lg li {
  4338. padding: 5px 0;
  4339. }
  4340. .Task-lg .el-radio {
  4341. display: block;
  4342. padding: 3px 0;
  4343. }
  4344. .tack-btn .el-button {
  4345. padding: 8px 16px;
  4346. display: block;
  4347. }
  4348. .outline {
  4349. font-size: 20px;
  4350. padding: 10px 20px;
  4351. font-weight: 600;
  4352. }
  4353. .pagination {
  4354. margin-top: 10px;
  4355. }
  4356. .pagination .el-input{
  4357. padding: 0;
  4358. }
  4359. #head2 input {
  4360. padding-left: 5px;
  4361. }
  4362. .lg-modl .el-radio-button {
  4363. display: block;
  4364. padding: 5px 0;
  4365. }
  4366. .lg-modl .el-select {
  4367. display: block;
  4368. padding: 3px 0;
  4369. }
  4370. .lg-modl .lg-si-right {
  4371. padding: 0;
  4372. }
  4373. .lg-modl .task-si li label {
  4374. display: block;
  4375. }
  4376. .el-col-24 {
  4377. margin-bottom: 10px;
  4378. }
  4379. .x {
  4380. // display: inline-block;
  4381. cursor: default;
  4382. float: right;
  4383. }
  4384. .lg-y-z .el-dialog {
  4385. width: 16%;
  4386. }
  4387. .gongju .el-form-item__content {
  4388. margin-left: 185px;
  4389. }
  4390. .gongju .el-form-item {
  4391. margin-bottom: 0;
  4392. }
  4393. .exloadbox{
  4394. float: right;
  4395. margin-right: 100px;
  4396. }
  4397. // background: linear-gradient(180deg, #CCD3E2 0%, rgba(255, 255, 255, 0) 100%);
  4398. //lq结束
  4399. #head2 input {
  4400. margin: 3px 5px;
  4401. }
  4402. // #head2 button{
  4403. // margin: 3px 5px;
  4404. // // width: 50%;
  4405. // }
  4406. .contour .el-input-number__decrease,
  4407. .el-input-number__increase {
  4408. top: 5px;
  4409. width: 40px;
  4410. cursor: pointer;
  4411. font-size: 13px;
  4412. height: 28px;
  4413. line-height: 28px;
  4414. }
  4415. .line {
  4416. width: 0px;
  4417. height: 167px;
  4418. border: 1px solid #d4d3d1;
  4419. // background: #D4D3D1;
  4420. // box-shadow: 0px 1px 0px 0px #FFFFFF;
  4421. float: right;
  4422. }
  4423. .lg_weiyi .title {
  4424. text-align: center;
  4425. }
  4426. .title {
  4427. font-size: 0.8vw !important;
  4428. margin: 6px 0px !important;
  4429. font-weight: 600;
  4430. }
  4431. .headMenu_2 {
  4432. height: 189px;
  4433. overflow: hidden;
  4434. font-size: 12px;
  4435. width: 100%;
  4436. }
  4437. .headMenu_2 span{
  4438. font-size: 12px !important;
  4439. }
  4440. .headMenu_2 .el-input__inner{
  4441. padding:0 2px
  4442. }
  4443. .lisin>li{
  4444. display: flex;
  4445. align-items: center;
  4446. }
  4447. .lisin>li>span{
  4448. display: inline-block;
  4449. width:100px
  4450. }
  4451. .lisin>li>.el-input{
  4452. width:120px
  4453. }
  4454. .sblock{
  4455. display: inline-block;
  4456. width:40%
  4457. }
  4458. .disinblok{
  4459. display: inline-block;
  4460. }
  4461. .inpw50{
  4462. width:50%
  4463. }
  4464. .inpw100{
  4465. width:100%
  4466. }
  4467. .inpw35{
  4468. width:25%
  4469. }
  4470. .inpw75{
  4471. width:75px
  4472. }
  4473. .inpwidth{
  4474. flex:1
  4475. }
  4476. .lheig34{
  4477. line-height: 34px;
  4478. }
  4479. .pdingf10{
  4480. padding-left: 10px !important;
  4481. }
  4482. .move{
  4483. position: relative;
  4484. top: -8px;
  4485. right:-30px
  4486. }
  4487. .discenter{
  4488. display: flex;
  4489. justify-content: center;
  4490. }
  4491. .disrs{
  4492. display: flex;
  4493. flex-direction: row-reverse;
  4494. }
  4495. .padding0{
  4496. padding: 0 !important;
  4497. }
  4498. .marr30{
  4499. margin-right: 30px;
  4500. }
  4501. .marb5{
  4502. margin-bottom:5px
  4503. }
  4504. .disacent{
  4505. display: flex;
  4506. align-items: center;
  4507. }
  4508. .div64>div,
  4509. .disflex,
  4510. .disflex55{
  4511. display: flex;
  4512. align-items: center;
  4513. justify-content: space-between;
  4514. }
  4515. .div64>div>span{
  4516. display: inline-block;
  4517. width:65%
  4518. }
  4519. .span100{
  4520. display: inline-block;
  4521. width: 100px;
  4522. }
  4523. .div64>div>.el-input{
  4524. width: 35%;
  4525. }
  4526. .disflex55>span{
  4527. display: inline-block;
  4528. width:50%
  4529. }
  4530. .disflex55>.el-input{
  4531. width:50%
  4532. }
  4533. .el-dialog__header{
  4534. font-size: 16px;
  4535. font-weight: 700;
  4536. background: #ccc;
  4537. padding: 0 10px;
  4538. line-height: 45px;
  4539. }
  4540. .flexpad30{
  4541. display: flex;
  4542. }
  4543. .flexpad30>div{
  4544. padding-right: 30px;
  4545. }
  4546. </style>
  4547. <style lang="scss"
  4548. font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
  4549. </style>