index.vue 241 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358
  1. <template>
  2. <div class="hcfdlab">
  3. <div class="scal">
  4. <div class="toolbar-part-detail lbg_color1 ">
  5. <!-- 工具栏 -->
  6. <!-- <transformtool ref="transform" :servertype="servertype" :projectId='project.projectId' :wstep='wstep' :bStep='bStep' :vStep='vStep'></transformtool> -->
  7. <el-tabs
  8. v-model="activeName"
  9. type="card"
  10. @tab-click="handleClick"
  11. class="tabsel"
  12. >
  13. <!-- <el-tab-pane label="几何建模" name="one"><geometry></geometry></el-tab-pane> -->
  14. <!-- 几何导入 -->
  15. <el-tab-pane
  16. label="几何导入"
  17. name="one"
  18. >
  19. <div class="imgzong">
  20. <div
  21. class="listitem lbg_color3 bkcolor3"
  22. v-for="(item,index) in geometrylist"
  23. :key="'one0-'+ index"
  24. :class="{activeOrange:active=='one0-'+ index}"
  25. @click="clickgeometry($event,index,'one0-'+ index)"
  26. >
  27. <div class="item2 ">
  28. <el-image
  29. :src="item.icon"
  30. fit="cover"
  31. />
  32. <span>{{item.titlie}}</span>
  33. </div>
  34. </div>
  35. </div>
  36. </el-tab-pane>
  37. <!-- 网格划分 -->
  38. <el-tab-pane
  39. label="网格划分"
  40. name="twos"
  41. >
  42. <div class="imgzong">
  43. <div
  44. class="listitem lbg_color3 bkcolor3"
  45. v-for="(item,index) in meshlist"
  46. :key="'one-'+ index"
  47. :class="{activeOrange:active=='one-'+ index}"
  48. @click="clickgeometry($event,index,'one-'+ index)"
  49. >
  50. <div class="item2 ">
  51. <el-image
  52. :src="item.icon"
  53. fit="cover"
  54. />
  55. <span>{{item.titlie}}</span>
  56. </div>
  57. </div>
  58. </div>
  59. </el-tab-pane>
  60. <!-- 通用设置 -->
  61. <el-tab-pane
  62. :label="$t('HCFD.geneal.geneal')"
  63. name="two"
  64. >
  65. <div class="imgzong">
  66. <div class="listitem lbg_color3 bkcolor3">
  67. <div
  68. class="item1"
  69. v-for="(itemcj,index) in twolist"
  70. :key="'two-'+ index"
  71. :class="{activeOrange:active=='two-'+ index}"
  72. @click="clickgeometry($event,index,'two-'+ index)"
  73. >
  74. <el-image
  75. :src="itemcj.icon"
  76. fit="cover"
  77. />
  78. <span>{{itemcj.titlie}}</span>
  79. </div>
  80. </div>
  81. <!--分析类型 -->
  82. <div class="listitem lbg_color3 radiocontent bkcolor3">
  83. <div class="item1">
  84. <el-form>
  85. <div class="radio_text text_color">
  86. <div class="classfelx">
  87. <el-tooltip
  88. class="item"
  89. effect="dark"
  90. content="分析类型"
  91. placement="bottom"
  92. >
  93. <el-radio
  94. v-model="parameterObj.nmlParam.analysis_Type"
  95. label="Steady"
  96. >{{ $t("HCFD.geneal.steady") }}</el-radio>
  97. </el-tooltip>
  98. </div>
  99. <div class="classfelx">
  100. <el-tooltip
  101. class="item"
  102. effect="dark"
  103. content="分析类型"
  104. placement="bottom"
  105. >
  106. <el-radio
  107. v-model="parameterObj.nmlParam.analysis_Type"
  108. label="Unsteady"
  109. >{{ $t("HCFD.geneal.unsteady") }}</el-radio>
  110. </el-tooltip>
  111. </div>
  112. </div>
  113. </el-form>
  114. </div>
  115. </div>
  116. <!-- 并行类型 -->
  117. <div class="listitem lbg_color3 radiocontent bkcolor3">
  118. <div class="item1">
  119. <el-form>
  120. <div class="radio_text text_color">
  121. <el-radio-group
  122. v-model="parameterObj.nmlParam.parallel_Optional"
  123. @input="leixingchange($event)"
  124. >
  125. <div>
  126. <el-tooltip
  127. class="item"
  128. effect="dark"
  129. content="并行类型"
  130. placement="bottom"
  131. >
  132. <el-radio label="Serial">
  133. {{ $t("HCFD.geneal.serial") }}</el-radio>
  134. </el-tooltip>
  135. </div>
  136. <div>
  137. <el-tooltip
  138. class="item"
  139. effect="dark"
  140. content="并行类型"
  141. placement="bottom"
  142. >
  143. <el-radio label="MPI Parallel">{{
  144. $t("HCFD.geneal.mpi")
  145. }}</el-radio>
  146. </el-tooltip>
  147. </div>
  148. </el-radio-group>
  149. </div>
  150. </el-form>
  151. </div>
  152. </div>
  153. </div>
  154. </el-tab-pane>
  155. <!-- 物理模型 -->
  156. <el-tab-pane
  157. :label="$t('HCFD.physics.physics')"
  158. name="three"
  159. >
  160. <div class="imgzong">
  161. <div
  162. class="listitem lbg_color3 bkcolor3"
  163. v-for="(item,index) in physicslist"
  164. :key="'three-'+ index"
  165. :class="{activeOrange:active=='three-'+ index}"
  166. @click="clickgeometry($event,index,'three-'+ index)"
  167. >
  168. <div class="item2 ">
  169. <el-image
  170. :src="item.icon"
  171. fit="cover"
  172. />
  173. <span>{{item.titlie}}</span>
  174. </div>
  175. </div>
  176. <div class="listitem lbg_color3 bkcolor3">
  177. <div
  178. class="item1"
  179. v-for="(item,index) in physicslist2"
  180. :key="'three2-'+ index"
  181. :class="{activeOrange:active=='three2-'+ index}"
  182. @click="clickgeometry($event,index,'three2-'+ index)"
  183. >
  184. <el-image
  185. :src="item.icon"
  186. fit="cover"
  187. />
  188. <span>{{item.titlie}}</span>
  189. </div>
  190. </div>
  191. <div class="listitem lbg_color3 bkcolor3">
  192. <div
  193. class="item1"
  194. v-for="(item,index) in physicslist1"
  195. :key="'three1-'+ index"
  196. :class="{activeOrange:active=='three1-'+ index}"
  197. @click="clickgeometry($event,index,'three1-'+ index)"
  198. >
  199. <el-image
  200. :src="item.icon"
  201. fit="cover"
  202. />
  203. <span>{{item.titlie}}</span>
  204. </div>
  205. </div>
  206. </div>
  207. </el-tab-pane>
  208. <!-- 求解控制 -->
  209. <el-tab-pane
  210. :label="$t('HCFD.solution.solution')"
  211. name="four"
  212. >
  213. <div class="imgzong">
  214. <div
  215. class="listitem lbg_color3 bkcolor3"
  216. v-for="(item,index) in solutionlist"
  217. :key="'four-'+ index"
  218. :class="{activeOrange:active=='four-'+ index}"
  219. @click="clickgeometry($event,index,'four-'+ index)"
  220. >
  221. <div class="item2 ">
  222. <el-image
  223. :src="item.icon"
  224. fit="cover"
  225. />
  226. <span>{{item.titlie}}</span>
  227. </div>
  228. </div>
  229. <div
  230. class="listitem lbg_color3 bkcolor3 imgsolution"
  231. v-for="(item,index) in solutionlist2"
  232. :key="'four2-'+ index"
  233. :class="{activeOrange:active=='four2-'+ index}"
  234. @click="clickgeometry($event,index,'four2-'+ index)"
  235. >
  236. <div class="item2 ">
  237. <div class="itemimg">
  238. <el-image
  239. :src="item.icon"
  240. fit="cover"
  241. />
  242. </div>
  243. <span>{{item.titlie}}</span>
  244. </div>
  245. </div>
  246. <div
  247. class="listitem lbg_color3 bkcolor3 imgsolution"
  248. v-for="(item,index) in solutionlist21"
  249. :key="'four2-1'+ index"
  250. :class="{activeOrange:active=='four2-1'+ index}"
  251. @click="clickgeometry($event,index,'four2-1'+ index)"
  252. >
  253. <div class="item2 ">
  254. <el-image
  255. :src="item.icon"
  256. fit="cover"
  257. />
  258. <span>{{item.titlie}}</span>
  259. </div>
  260. </div>
  261. <div class="listitem lbg_color3 bkcolor3">
  262. <div
  263. class="item1"
  264. v-for="(item,index) in solutionlist3"
  265. :key="'four3-'+ index"
  266. :class="{activeOrange:active=='four3-'+ index}"
  267. @click="clickgeometry($event,index,'four3-'+ index)"
  268. >
  269. <el-image
  270. :src="item.icon"
  271. fit="cover"
  272. />
  273. <span>{{item.titlie}}</span>
  274. </div>
  275. </div>
  276. <div
  277. class="listitem lbg_color3 bkcolor3 imgsolution"
  278. v-for="(item,index) in runlist"
  279. :key="'four41'+ index"
  280. :class="{activeOrange:active=='four41'+ index}"
  281. @click="clickgeometry($event,index,'four41'+ index)"
  282. >
  283. <div class="item2 ">
  284. <el-image
  285. :src="item.icon"
  286. fit="cover"
  287. />
  288. <span>{{item.titlie}}</span>
  289. </div>
  290. </div>
  291. </div>
  292. </el-tab-pane>
  293. <!-- 结果显示 -->
  294. <el-tab-pane
  295. :label=" $t('HCFD.results.results')"
  296. name="five"
  297. >
  298. <div
  299. class="imgzong"
  300. v-if="lsolverState=='2'"
  301. >
  302. <div class="listitem lbg_color3 bkcolor3">
  303. <div
  304. class="item1 "
  305. v-for="(item,index) in resultslist"
  306. :key="'five-'+ index"
  307. :class="{activeOrange:active=='five-'+ index}"
  308. @click="clickgeometry($event,index,'five-'+ index)"
  309. >
  310. <el-image
  311. :src="item.icon"
  312. fit="cover"
  313. />
  314. <span>{{item.titlie}}</span>
  315. </div>
  316. </div>
  317. <!-- <div class="listitem lbg_color3 bkcolor3" style=" display: flex" >
  318. <div>
  319. <div class="item1 " v-for="(item,index) in plotslsit" :key="'five1-'+ index" :class="{activeOrange:active=='five1-'+ index}" @click="clickgeometry($event,index,'five1-'+ index)" >
  320. <el-image :src="item.icon" fit="cover" />
  321. <span >{{item.titlie}}</span>
  322. </div>
  323. </div>
  324. <div>
  325. <div class="item1 " v-for="(item,index) in plotslsit1" :key="'five2-'+ index" :class="{activeOrange:active=='five2-'+ index}" @click="clickgeometry($event,index,'five2-'+ index)" >
  326. <el-image :src="item.icon" fit="cover" />
  327. <span >{{item.titlie}}</span>
  328. </div>
  329. </div>
  330. <div>
  331. <div class="item1 " v-for="(item,index) in plotslsit2" :key="'five3-'+ index" :class="{activeOrange:active=='five3-'+ index}" @click="clickgeometry($event,index,'five3-'+ index)" >
  332. <el-image :src="item.icon" fit="cover" />
  333. <span >{{item.titlie}}</span>
  334. </div>
  335. </div>
  336. </div> -->
  337. <!-- <div class="listitem lbg_color3 bkcolor3" >
  338. <div class="item1 " v-for="(item,index) in samplelist" :key="'five4-'+ index" :class="{activeOrange:active=='five4-'+ index}" @click="clickgeometry($event,index,'five4-'+ index)" >
  339. <el-image :src="item.icon" fit="cover" />
  340. <span >{{item.titlie}}</span>
  341. </div>
  342. </div> -->
  343. <!-- <div class="listitem lbg_color3 bkcolor3" style=" display: flex" >
  344. <div>
  345. <div class="item1 " v-for="(item,index) in generatelist" :key="'five5-'+ index" :class="{activeOrange:active=='five5-'+ index}" @click="clickgeometry($event,index,'five5-'+ index)" >
  346. <el-image :src="item.icon" fit="cover" />
  347. <span >{{item.titlie}}</span>
  348. </div>
  349. </div>
  350. <div>
  351. <div class="item1 " v-for="(item,index) in generatelist2" :key="'five6-'+ index" :class="{activeOrange:active=='five6-'+ index}" @click="clickgeometry($event,index,'five6-'+ index)" >
  352. <el-image :src="item.icon" fit="cover" />
  353. <span >{{item.titlie}}</span>
  354. </div>
  355. </div>
  356. </div> -->
  357. <div
  358. class="listitem lbg_color3 bkcolor3"
  359. style=" display: flex"
  360. >
  361. <div>
  362. <div
  363. class="item1 "
  364. v-for="(item,index) in displaylist"
  365. :key="'five7-'+ index"
  366. :class="{activeOrange:active=='five7-'+ index}"
  367. @click="clickgeometry($event,index,'five7-'+ index)"
  368. >
  369. <el-image
  370. :src="item.icon"
  371. fit="cover"
  372. />
  373. <span>{{item.titlie}}</span>
  374. </div>
  375. </div>
  376. <div>
  377. <div
  378. class="item1 "
  379. v-for="(item,index) in displaylist2"
  380. :key="'five8-'+ index"
  381. :class="{activeOrange:active=='five8-'+ index}"
  382. @click="clickgeometry($event,index,'five8-'+ index)"
  383. >
  384. <el-image
  385. :src="item.icon"
  386. fit="cover"
  387. />
  388. <span>{{item.titlie}}</span>
  389. </div>
  390. </div>
  391. </div>
  392. <!-- <div class="listitem lbg_color3 bkcolor3" >
  393. <div class="item1 " v-for="(item,index) in animationlist" :key="'five9-'+ index" :class="{activeOrange:active=='five9-'+ index}" @click="clickgeometry($event,index,'five9-'+ index)" >
  394. <el-image :src="item.icon" fit="cover" />
  395. <span >{{item.titlie}}</span>
  396. </div>
  397. </div> -->
  398. <div
  399. class="listitem lbg_color3 bkcolor3"
  400. v-for="(item,index) in animationlist"
  401. :key="'five9-'+ index"
  402. :class="{activeOrange:active=='five9-'+ index}"
  403. @click="clickgeometry($event,index,'five9-'+ index)"
  404. >
  405. <div class="item2 ">
  406. <el-image
  407. :src="item.icon"
  408. fit="cover"
  409. />
  410. <span>{{item.titlie}}</span>
  411. </div>
  412. </div>
  413. <div
  414. class="listitem lbg_color3 bkcolor3 imgsolution"
  415. v-for="(item,index) in solutionlist22"
  416. :key="'four44-'+ index"
  417. :class="{activeOrange:active=='four44-'+ index}"
  418. @click="clickgeometry($event,index,'four44-'+ index)"
  419. >
  420. <div class="item2 ">
  421. <el-image
  422. :src="item.icon"
  423. fit="cover"
  424. />
  425. <span>{{item.titlie}}</span>
  426. </div>
  427. </div>
  428. <!-- <div class="listitem lbg_color3 bkcolor3" >
  429. <div class="item1 " v-for="(item,index) in Cuelist" :key="'five9-'+ index" :class="{activeOrange:active=='five10-'+ index}" @click="clickgeometry($event,index,'five10-'+ index)" >
  430. <el-image :src="item.icon" fit="cover" />
  431. <span >{{item.titlie}}</span>
  432. </div>
  433. </div> -->
  434. </div>
  435. </el-tab-pane>
  436. <!-- 工具 -->
  437. <el-tab-pane
  438. :label="$t('HCFD.tool.unitConversion')"
  439. name="six"
  440. >
  441. <div class="imgzong">
  442. <div
  443. class="listitem lbg_color3 bkcolor3"
  444. v-for="(item,index) in unitlist"
  445. :key="'six-'+ index"
  446. :class="{activeOrange:active=='six-'+ index}"
  447. @click="clickgeometry($event,index,'six-'+ index)"
  448. >
  449. <div class="item2 ">
  450. <el-image
  451. :src="item.icon"
  452. fit="cover"
  453. />
  454. <span>{{item.titlie}}</span>
  455. </div>
  456. </div>
  457. </div>
  458. <!-- <div class="imgzong">
  459. <div
  460. class="item1"
  461. v-for="(item,index) in unitlist "
  462. :key="'six-'+ index"
  463. :class="{activeOrange:active=='six-'+ index}"
  464. @click="clickgeometry($event,index,'six-'+ index)"
  465. >
  466. <el-tooltip
  467. class="item"
  468. effect="dark"
  469. :content="item.titlie"
  470. placement="bottom"
  471. >
  472. <el-image
  473. :src="item.icon"
  474. fit="cover"
  475. />
  476. </el-tooltip>
  477. </div>
  478. </div> -->
  479. </el-tab-pane>
  480. </el-tabs>
  481. </div>
  482. </div>
  483. <!-- 几何导入 -->
  484. <el-dialog
  485. v-if="active=='one0-0'"
  486. :visible.sync="dialog.geometry_upload"
  487. :close-on-click-modal="false"
  488. @close='activecleer()'
  489. class="dialog"
  490. :modal='false'
  491. custom-class='dialoglocation dialog_color'
  492. width="385px"
  493. v-draggable
  494. v-draggleft='[styX.left]'
  495. >
  496. <div
  497. slot="title"
  498. class=dialog_header
  499. >
  500. <el-image
  501. class="imge"
  502. :src="p22"
  503. fit="cover"
  504. />
  505. <span class="text-color">几何导入</span>
  506. </div>
  507. <el-form>
  508. <vue-uploader
  509. ref="geometryugrid"
  510. :projectId="project.projectId"
  511. :solverType="'hcfd'"
  512. :accept="'.igs,.stp,.sat,.sab,.x_t,.x_b,.iges,.step,.stp,.stl'"
  513. :name="'Load File'"
  514. :upId="'3'"
  515. ></vue-uploader>
  516. </el-form>
  517. <div
  518. slot="footer"
  519. class="dialog-footer"
  520. >
  521. <el-button @click="dialog.geometry_upload = false">{{ $t("HCFD.file.cancel")}}</el-button>
  522. <el-button
  523. type="primary"
  524. @click="geometryup();dialog.geometry_upload = false"
  525. >{{ $t("HCFD.file.ok")}}</el-button>
  526. </div>
  527. </el-dialog>
  528. <!-- 文件上传 -->
  529. <el-dialog
  530. v-if="active=='one-0'"
  531. :visible.sync="dialog.upload_visiable"
  532. :close-on-click-modal="false"
  533. @close='activecleer()'
  534. class="dialog"
  535. :modal='false'
  536. custom-class='dialoglocation dialog_color'
  537. width="385px"
  538. v-draggable
  539. v-draggleft='[styX.left]'
  540. >
  541. <div
  542. slot="title"
  543. class=dialog_header
  544. >
  545. <el-image
  546. class="imge"
  547. :src="q4"
  548. fit="cover"
  549. />
  550. <span class="text-color">文件上传</span>
  551. </div>
  552. <el-form>
  553. <el-form-item label="File Type">
  554. <el-radio
  555. disabled
  556. v-model="project.fileType"
  557. label="binary"
  558. >{{ $t("HCFD.file.binary") }}</el-radio>
  559. <el-radio
  560. v-model="project.fileType"
  561. label="ascii"
  562. >{{ $t("HCFD.file.ascii")}}</el-radio>
  563. </el-form-item>
  564. <vue-uploader
  565. ref="ugrid"
  566. :projectId="project.projectId"
  567. :solverType="'hcfd'"
  568. :accept="'.ugrid'"
  569. :name="'Load Grid File'"
  570. :upId="'2'"
  571. ></vue-uploader>
  572. </el-form>
  573. <div
  574. slot="footer"
  575. class="dialog-footer"
  576. >
  577. <el-button @click="dialog.upload_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
  578. <el-button
  579. type="primary"
  580. @click="runugrid();dialog.upload_visiable = false"
  581. >{{ $t("HCFD.file.ok")}}</el-button>
  582. </div>
  583. </el-dialog>
  584. <!-- 网格自动划分 -->
  585. <el-dialog
  586. v-if="active=='one-2'"
  587. :visible.sync="dialog.mesh_generation"
  588. :close-on-click-modal="false"
  589. @close='activecleer()'
  590. class="dialog"
  591. :modal='false'
  592. custom-class='dialoglocation dialog_color'
  593. width="385px"
  594. v-draggable
  595. v-draggleft='[styX.left]'
  596. >
  597. <div
  598. slot="title"
  599. class=dialog_header
  600. >
  601. <el-image
  602. class="imge"
  603. :src="p21"
  604. fit="cover"
  605. />
  606. <span class="text-color">网格自动划分</span>
  607. </div>
  608. <div class="selecr">
  609. <el-form>
  610. <el-form-item
  611. label="格式选择"
  612. :label-width="formLabelWidth5"
  613. >
  614. <el-select
  615. v-model="objmesh.strResultFormat"
  616. placeholder="请选择"
  617. >
  618. <el-option
  619. v-for="item in strResultFormatlist"
  620. :key="item.value"
  621. :label="item.name"
  622. :value="item.value"
  623. >
  624. </el-option>
  625. </el-select>
  626. </el-form-item>
  627. <el-form-item
  628. label="划分类型"
  629. :label-width="formLabelWidth5"
  630. >
  631. <el-select
  632. v-model="meshval"
  633. placeholder="请选择"
  634. @change="Partitiontype"
  635. >
  636. <el-option
  637. v-for="item in meshvallist"
  638. :key="item.value"
  639. :label="item.name"
  640. :value="item.value"
  641. >
  642. </el-option>
  643. </el-select>
  644. </el-form-item>
  645. <div v-if="meshval=='0'">
  646. <div class="radio_text text_color liangf">
  647. <div class="classfelx" style="text-align: center;">
  648. <el-radio
  649. v-model="meshface"
  650. label="物理尺寸模型"
  651. >物理尺寸模型</el-radio>
  652. </div>
  653. <div class="classfelx">
  654. <el-radio
  655. v-model="meshface"
  656. label="几何尺寸模型"
  657. >几何尺寸模型</el-radio
  658. >
  659. </div>
  660. </div>
  661. <el-form-item
  662. label="面网格类型"
  663. :label-width="formLabelWidth5"
  664. >
  665. <el-select
  666. v-model="objmesh.surfParam.surfStyle"
  667. placeholder="请选择"
  668. >
  669. <el-option
  670. v-for="item in meshvallist1"
  671. :key="item.value"
  672. :label="item.name"
  673. :value="item.value"
  674. >
  675. </el-option>
  676. </el-select>
  677. </el-form-item>
  678. <el-form-item
  679. label="模式类型"
  680. :label-width="formLabelWidth5"
  681. >
  682. <el-select
  683. v-model="patternval"
  684. placeholder="请选择"
  685. >
  686. <el-option
  687. v-for="item in patternlist"
  688. :key="item.value"
  689. :label="item.name"
  690. :value="item.value"
  691. >
  692. </el-option>
  693. </el-select>
  694. </el-form-item>
  695. <div class="radio_text text_color liangf" v-if="patternval=='1'" style="display:none">
  696. <div class="classfelx" style="text-align: center;">
  697. <el-checkbox
  698. v-model="setface"
  699. label="on"
  700. >面设置大小</el-checkbox >
  701. </div>
  702. <div class="classfelx">
  703. <el-checkbox
  704. v-model="meshbrim"
  705. label="off"
  706. >边设置大小</el-checkbox
  707. >
  708. </div>
  709. </div>
  710. <div class='selecttype' v-if="setface==true">
  711. <span class="meshcalss"> <el-checkbox v-model="facecheckbox" label="局部面Id设置大小" @change="facechange"></el-checkbox></span>
  712. <div class="listbtn">
  713. <el-button plain class="anniu">添加</el-button>
  714. <el-button plain class="anniu">删除</el-button>
  715. <el-button plain class="anniu">插入</el-button>
  716. </div>
  717. <el-form>
  718. <el-table
  719. :data="meshtableData"
  720. style="width: 100%"
  721. border
  722. >
  723. <el-table-column
  724. type="index"
  725. width="50">
  726. </el-table-column>
  727. <el-table-column align="center" label="ID">
  728. <!-- //slot-scope="scope" -->
  729. <template slot-scope="scope" >
  730. <el-input v-model="scope.id" autocomplete="off"></el-input>
  731. </template>
  732. </el-table-column>
  733. <el-table-column align="center" label="大小">
  734. <template slot-scope="scope">
  735. <el-input v-model="scope.da" autocomplete="off"></el-input>
  736. </template>
  737. </el-table-column>
  738. </el-table>
  739. </el-form>
  740. </div>
  741. <div class='selecttype' v-if="meshbrim==true">
  742. <span class="meshcalss"> <el-checkbox v-model="facecheckbox" label="局部边Id设置大小" @change="facechange"></el-checkbox></span>
  743. <div class="listbtn">
  744. <el-button plain class="anniu">添加</el-button>
  745. <el-button plain class="anniu">删除</el-button>
  746. <el-button plain class="anniu">插入</el-button>
  747. </div>
  748. </div>
  749. <el-form-item label="最大尺寸" :label-width="formLabelWidth5">
  750. <el-input v-model="objmesh.surfParam.max_size" autocomplete="off"></el-input>
  751. </el-form-item>
  752. <el-form-item label="最小尺寸" :label-width="formLabelWidth5">
  753. <el-input v-model="objmesh.surfParam.min_size" autocomplete="off"></el-input>
  754. </el-form-item>
  755. <el-form-item label="相邻网格边比率" :label-width="formLabelWidth5">
  756. <el-input v-model="form.name" autocomplete="off"></el-input>
  757. </el-form-item>
  758. <el-form-item label="全局几何大小" :label-width="formLabelWidth5">
  759. <el-input v-model="objmesh.surfParam.global_physical_size" autocomplete="off"></el-input>
  760. </el-form-item>
  761. <div v-if="meshface=='几何尺寸模型'">
  762. <el-form-item label="弦误差" :label-width="formLabelWidth5">
  763. <el-input v-model="objmesh.surfParam1.chordal_error" autocomplete="off"></el-input>
  764. </el-form-item>
  765. <el-form-item label="逼近角度" :label-width="formLabelWidth5">
  766. <el-input v-model="objmesh.surfParam1.geometric_approximation_angle" autocomplete="off"></el-input>
  767. </el-form-item>
  768. </div>
  769. <div class='selecttype'>
  770. <span class="meshcalss">优化设置选择</span>
  771. <!-- <el-checkbox-group @change="checksetchange"> -->
  772. <el-checkbox v-model="objmesh.surfParam2.correct_surface_intersections" true-label="yes" false-label="no" @change="checksetchange" label="纠正表面相交"></el-checkbox>
  773. <el-checkbox v-model="objmesh.surfParam2.optimisation" true-label="yes" false-label="no" label="优化网络" :disabled='disabledset'></el-checkbox>
  774. <el-checkbox v-model="objmesh.surfParam2.remove_duplicate_cad_faces" true-label="yes" false-label="no" label="移除重复CAD面"></el-checkbox>
  775. <!-- </el-checkbox-group> -->
  776. <el-form-item
  777. label="单元阶数选择:"
  778. :label-width="formLabelWidth5"
  779. >
  780. <el-select
  781. v-model="objmesh.surfParam2.element_order"
  782. placeholder="请选择"
  783. >
  784. <el-option
  785. v-for="item in elsementlist"
  786. :key="item.value"
  787. :label="item.name"
  788. :value="item.value"
  789. >
  790. </el-option>
  791. </el-select>
  792. </el-form-item>
  793. <el-form-item label="雅可比数值:" :label-width="formLabelWidth5">
  794. <el-input v-model="objmesh.surfParam2.scaled_jacobian_threshold_value" autocomplete="off"></el-input>
  795. </el-form-item>
  796. </div>
  797. <div class='selecttype'>
  798. <span class="meshcalss"> <el-checkbox v-model="facecheckbox" label="面网格生成后的优化设置选择" @change="facechange"></el-checkbox></span>
  799. <div class="jieguo">
  800. <div class="jiegleft">
  801. <div class="radio_text text_color liangf" style="line-height: 160px;">
  802. <div class="classfelx" style="text-align: center;">
  803. <el-radio
  804. v-model="cleanerParam1.use_default_settings_for"
  805. label="structure"
  806. :disabled="disabledface"
  807. >结构</el-radio>
  808. </div>
  809. <div class="classfelx">
  810. <el-radio
  811. v-model="cleanerParam1.use_default_settings_for"
  812. label="fluid"
  813. :disabled="disabledface"
  814. >流体</el-radio
  815. >
  816. </div>
  817. </div>
  818. </div>
  819. <div class="jiegright">
  820. <div class='selecttype' v-if="cleanerParam1.use_default_settings_for=='structure'">
  821. <span class="meshcalss "> <el-checkbox :disabled="disabledface" label="结构使用默认值" v-model="jiegradioval" @change="jiegchange"></el-checkbox></span>
  822. <el-form-item label="重叠角度" :label-width="formLabelWidth2" >
  823. <el-input v-model="cleanerParam1.overlap_angle" autocomplete="off" :disabled='jiegdisabled' ></el-input>
  824. </el-form-item>
  825. <el-form-item label="长度阀值" :label-width="formLabelWidth2" >
  826. <el-input v-model="cleanerParam1.resolution_length" autocomplete="off" :disabled='jiegdisabled'></el-input>
  827. </el-form-item>
  828. </div>
  829. <div class='selecttype' v-else>
  830. <span class="meshcalss"> <el-checkbox label="流体使用默认值" v-model="jiegradioval"></el-checkbox></span>
  831. <el-form-item label="重叠角度" :label-width="formLabelWidth2 ">
  832. <el-input v-model="cleanerParam1.overlap_angle" autocomplete="off" :disabled='jiegdisabled'></el-input>
  833. </el-form-item>
  834. <el-form-item label="长度阀值" :label-width="formLabelWidth2" >
  835. <el-input v-model="cleanerParam1.resolution_length" autocomplete="off" :disabled='jiegdisabled'></el-input>
  836. </el-form-item>
  837. </div>
  838. </div>
  839. </div>
  840. </div>
  841. </div>
  842. <div v-if="meshval=='1'">
  843. <el-form-item
  844. label="组件"
  845. :label-width="formLabelWidth5"
  846. >
  847. <el-select
  848. v-model="tetraParam1.components"
  849. placeholder="请选择"
  850. >
  851. <el-option
  852. v-for="item in tetrahedron"
  853. :key="item.value"
  854. :label="item.name"
  855. :value="item.value"
  856. >
  857. </el-option>
  858. </el-select>
  859. </el-form-item>
  860. <el-form-item label="级配" :label-width="formLabelWidth5" >
  861. <el-input v-model="tetraParam1.gradation" autocomplete="off"></el-input>
  862. </el-form-item>
  863. </div>
  864. <div v-if="meshval=='2'">
  865. <el-form-item
  866. label="组件"
  867. :label-width="formLabelWidth5"
  868. >
  869. <el-select
  870. v-model="hexaParam1.components"
  871. placeholder="请选择"
  872. >
  873. <el-option
  874. v-for="item in hexahedral "
  875. :key="item.value"
  876. :label="item.name"
  877. :value="item.value"
  878. >
  879. </el-option>
  880. </el-select>
  881. </el-form-item>
  882. </div>
  883. <div v-if="meshval=='3'">
  884. <el-form-item
  885. label="网格生成"
  886. :label-width="formLabelWidth5"
  887. >
  888. <el-select
  889. v-model="hybridParam1.element_generation"
  890. placeholder="请选择"
  891. >
  892. <el-option
  893. v-for="item in mixture"
  894. :key="item.value"
  895. :label="item.name"
  896. :value="item.value"
  897. >
  898. </el-option>
  899. </el-select>
  900. </el-form-item>
  901. <el-form-item
  902. label="边界层增长方向"
  903. :label-width="formLabelWidth5"
  904. >
  905. <el-select
  906. v-model="hybridParam1.normal_direction"
  907. placeholder="请选择"
  908. >
  909. <el-option
  910. v-for="item in boundarylayer "
  911. :key="item.value"
  912. :label="item.name"
  913. :value="item.value"
  914. >
  915. </el-option>
  916. </el-select>
  917. </el-form-item>
  918. <el-form-item label="边界层层数" :label-width="formLabelWidth5" >
  919. <el-input v-model="hybridParam1.number_of_boundary_layers" autocomplete="off"></el-input>
  920. </el-form-item>
  921. <el-form-item label="边界层增长参数" :label-width="formLabelWidth5" >
  922. <el-input v-model="hybridParam1.boundary_layer_geometric_progression" autocomplete="off"></el-input>
  923. </el-form-item>
  924. <el-form-item label="初始层高度" :label-width="formLabelWidth5" >
  925. <el-input v-model="hybridParam1.boundary_layer_global_initial_height" autocomplete="off"></el-input>
  926. </el-form-item>
  927. </div>
  928. <!-- <div class="heigeinput">
  929. <div class="listbtn">
  930. <el-button plain class="anniu">写入参数文件</el-button>
  931. <el-button plain class="anniu">进行网格划分</el-button>
  932. </div>
  933. </div> -->
  934. </el-form>
  935. </div>
  936. <div
  937. slot="footer"
  938. class="dialog-footer"
  939. >
  940. <el-button @click="dialog.mesh_generation = false">{{ $t("HCFD.file.cancel")}}</el-button>
  941. <el-button
  942. type="primary"
  943. @click="meshSplitok();dialog.mesh_generation = false"
  944. >网格划分</el-button>
  945. </div>
  946. </el-dialog>
  947. <!-- 缩放 -->
  948. <el-dialog
  949. v-if="active=='two-0'"
  950. :visible.sync="dialog.scale_visiable"
  951. :close-on-click-modal="false"
  952. @close='activecleer()'
  953. class="dialog"
  954. :modal='false'
  955. custom-class='dialoglocation dialog_color'
  956. width="385px"
  957. v-draggable
  958. v-draggleft=[styX.left]
  959. >
  960. <div
  961. slot="title"
  962. class=dialog_header
  963. >
  964. <el-image
  965. class="imge"
  966. :src="t1"
  967. fit="cover"
  968. />
  969. <span class="text-color">{{$t('HCFD.geneal.scale')}}</span>
  970. </div>
  971. <el-form>
  972. <el-form-item
  973. label="名称"
  974. :label-width="formLabelWidth2"
  975. >
  976. <el-input
  977. v-model="mcnames"
  978. autocomplete="off"
  979. ></el-input>
  980. </el-form-item>
  981. <el-form-item
  982. label="类型"
  983. :label-width="formLabelWidth2"
  984. >
  985. <el-input
  986. value="suofang"
  987. autocomplete="off"
  988. ></el-input>
  989. </el-form-item>
  990. <div class="line">
  991. <div class="linetext">相交/延长</div>
  992. </div>
  993. <el-form-item
  994. :label="$t('HCFD.geneal.factor')"
  995. :label-width="formLabelWidth2"
  996. >
  997. <el-input
  998. v-model="geneal.MeshTransform.Scale.Factor"
  999. autocomplete="off"
  1000. ></el-input>
  1001. </el-form-item>
  1002. </el-form>
  1003. <div
  1004. slot="footer"
  1005. class="dialog-footer"
  1006. >
  1007. <el-button @click="dialog.scale_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
  1008. <el-button
  1009. type="primary"
  1010. @click="hcfdparam(); dialog.scale_visiable = false"
  1011. >{{ $t("HCFD.file.ok")}}</el-button>
  1012. </div>
  1013. </el-dialog>
  1014. <!-- 翻译 -->
  1015. <el-dialog
  1016. v-if="active=='two-1'"
  1017. :visible.sync="dialog.translation_visiable"
  1018. :close-on-click-modal="false"
  1019. @close='activecleer()'
  1020. :modal='false'
  1021. custom-class='dialoglocation dialog_color'
  1022. width="385px"
  1023. v-draggable
  1024. v-draggleft=[styX.left]
  1025. >
  1026. <div
  1027. slot="title"
  1028. class=dialog_header
  1029. >
  1030. <el-image
  1031. class="imge"
  1032. :src="t2"
  1033. fit="cover"
  1034. />
  1035. <span class="text-color">{{$t('HCFD.geneal.translation')}}</span>
  1036. </div>
  1037. <el-form class="div64">
  1038. <el-form-item
  1039. label="名称"
  1040. :label-width="formLabelWidth2"
  1041. >
  1042. <el-input
  1043. v-model="mcnames"
  1044. autocomplete="off"
  1045. ></el-input>
  1046. </el-form-item>
  1047. <el-form-item
  1048. label="类型"
  1049. :label-width="formLabelWidth2"
  1050. >
  1051. <el-input
  1052. value="PingYi"
  1053. autocomplete="off"
  1054. ></el-input>
  1055. </el-form-item>
  1056. <div class="line">
  1057. <div class="linetext">属性</div>
  1058. </div>
  1059. <div class="liitem">
  1060. <el-form-item
  1061. :label="$t('HCFD.geneal.distance')"
  1062. :label-width="formLabelWidth7"
  1063. >
  1064. <el-input
  1065. v-model="geneal.MeshTransform.Translation.Distance"
  1066. autocomplete="off"
  1067. ></el-input>
  1068. </el-form-item>
  1069. </div>
  1070. <div class="liitem">
  1071. <el-form-item
  1072. :label="$t('HCFD.geneal.translationx')"
  1073. :label-width="formLabelWidth7"
  1074. >
  1075. <el-input
  1076. v-model="geneal.MeshTransform.Translation.X"
  1077. autocomplete="off"
  1078. ></el-input>
  1079. </el-form-item>
  1080. </div>
  1081. <div class="liitem">
  1082. <el-form-item
  1083. :label=" $t('HCFD.geneal.translationy')"
  1084. :label-width="formLabelWidth7"
  1085. >
  1086. <el-input
  1087. v-model="geneal.MeshTransform.Translation.Y"
  1088. autocomplete="off"
  1089. ></el-input>
  1090. </el-form-item>
  1091. </div>
  1092. <div class="liitem">
  1093. <el-form-item
  1094. :label="$t('HCFD.geneal.translationz')"
  1095. :label-width="formLabelWidth7"
  1096. >
  1097. <el-input
  1098. v-model="geneal.MeshTransform.Translation.Z"
  1099. autocomplete="off"
  1100. ></el-input>
  1101. </el-form-item>
  1102. </div>
  1103. </el-form>
  1104. <div
  1105. slot="footer"
  1106. class="dialog-footer"
  1107. >
  1108. <el-button @click="dialog.translation_visiable = false"> {{ $t("HCFD.file.cancel")}} </el-button>
  1109. <el-button
  1110. type="primary"
  1111. @click="hcfdparam(); dialog.translation_visiable = false"
  1112. >{{ $t("HCFD.file.ok")}}</el-button>
  1113. </div>
  1114. </el-dialog>
  1115. <!-- 旋转 -->
  1116. <el-dialog
  1117. v-if="active=='two-2'"
  1118. :close-on-click-modal="false"
  1119. @close='activecleer()'
  1120. :modal='false'
  1121. custom-class='dialoglocation dialog_color'
  1122. :visible.sync="dialog.rotation_visiable"
  1123. width="385px"
  1124. v-draggable
  1125. v-draggleft=[styX.left]
  1126. >
  1127. <div
  1128. slot="title"
  1129. class=dialog_header
  1130. >
  1131. <el-image
  1132. class="imge"
  1133. :src="t3"
  1134. fit="cover"
  1135. />
  1136. <span class="text-color">{{$t('HCFD.geneal.rotation')}}</span>
  1137. </div>
  1138. <el-form class="div64">
  1139. <el-form-item
  1140. label="名称"
  1141. :label-width="formLabelWidth2"
  1142. >
  1143. <el-input
  1144. v-model="mcnames"
  1145. autocomplete="off"
  1146. ></el-input>
  1147. </el-form-item>
  1148. <el-form-item
  1149. label="类型"
  1150. :label-width="formLabelWidth2"
  1151. >
  1152. <el-input
  1153. value="xuanzuan"
  1154. autocomplete="off"
  1155. ></el-input>
  1156. </el-form-item>
  1157. <div class="line">
  1158. <div class="linetext">属性</div>
  1159. </div>
  1160. <el-form-item
  1161. :label="$t('HCFD.geneal.angle')"
  1162. :label-width="formLabelWidth7"
  1163. >
  1164. <el-input
  1165. v-model="geneal.MeshTransform.Rotation.Angle"
  1166. autocomplete="off"
  1167. ></el-input>
  1168. </el-form-item>
  1169. <el-form-item
  1170. :label="$t('HCFD.geneal.rotationx')"
  1171. :label-width="formLabelWidth7"
  1172. >
  1173. <el-input
  1174. v-model="geneal.MeshTransform.Rotation.X"
  1175. autocomplete="off"
  1176. ></el-input>
  1177. </el-form-item>
  1178. <el-form-item
  1179. :label="$t('HCFD.geneal.rotationy')"
  1180. :label-width="formLabelWidth7"
  1181. >
  1182. <el-input
  1183. v-model="geneal.MeshTransform.Rotation.Y"
  1184. autocomplete="off"
  1185. ></el-input>
  1186. </el-form-item>
  1187. <el-form-item
  1188. :label="$t('HCFD.geneal.rotationz')"
  1189. :label-width="formLabelWidth7"
  1190. >
  1191. <el-input
  1192. v-model="geneal.MeshTransform.Rotation.Z"
  1193. autocomplete="off"
  1194. ></el-input>
  1195. </el-form-item>
  1196. <el-form-item
  1197. :label="$t('HCFD.geneal.rotationx1')"
  1198. :label-width="formLabelWidth7"
  1199. >
  1200. <el-input
  1201. v-model="geneal.MeshTransform.Rotation.X1"
  1202. autocomplete="off"
  1203. ></el-input>
  1204. </el-form-item>
  1205. <el-form-item
  1206. :label="$t('HCFD.geneal.rotationy1')"
  1207. :label-width="formLabelWidth7"
  1208. >
  1209. <el-input
  1210. v-model="geneal.MeshTransform.Rotation.Y1"
  1211. autocomplete="off"
  1212. ></el-input>
  1213. </el-form-item>
  1214. <el-form-item
  1215. :label="$t('HCFD.geneal.rotationz1')"
  1216. :label-width="formLabelWidth7"
  1217. >
  1218. <el-input
  1219. v-model="geneal.MeshTransform.Rotation.Z1"
  1220. autocomplete="off"
  1221. ></el-input>
  1222. </el-form-item>
  1223. </el-form>
  1224. <div
  1225. slot="footer"
  1226. class="dialog-footer"
  1227. >
  1228. <el-button @click="dialog.rotation_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
  1229. <el-button
  1230. type="primary"
  1231. @click="hcfdparam(); dialog.rotation_visiable = false"
  1232. >{{ $t("HCFD.file.ok")}} </el-button>
  1233. </div>
  1234. </el-dialog>
  1235. <!-- 分析类型 -->
  1236. <!-- <el-dialog
  1237. class="lg-y-z"
  1238. :visible.sync="dialog.type_visiable "
  1239. :close-on-click-modal="false"
  1240. @close='activecleer()'
  1241. v-if="active=='two-3'"
  1242. :modal='false'
  1243. custom-class='dialoglocation dialog_color'
  1244. width="385px"
  1245. :style="styX"
  1246. >
  1247. <div slot="title" class=dialog_header>
  1248. <el-image class="imge" :src="t4" fit="cover" />
  1249. <span class="text-color">{{$t('HCFD.geneal.analysis')}}</span>
  1250. </div>
  1251. <el-form>
  1252. <div class="radio_text text_color liangf">
  1253. <div class="classfelx">
  1254. <el-tooltip class="item" effect="dark" content="分析类型" placement="bottom">
  1255. <el-radio
  1256. v-model="parameterObj.nmlParam.analysis_Type"
  1257. label="Steady"
  1258. >{{ $t("HCFD.geneal.steady") }}</el-radio
  1259. >
  1260. </el-tooltip>
  1261. </div>
  1262. <div class="classfelx">
  1263. <el-tooltip class="item" effect="dark" content="分析类型" placement="bottom">
  1264. <el-radio
  1265. v-model="parameterObj.nmlParam.analysis_Type"
  1266. label="Unsteady"
  1267. >{{ $t("HCFD.geneal.unsteady") }}</el-radio
  1268. >
  1269. </el-tooltip>
  1270. </div>
  1271. </div>
  1272. </el-form>
  1273. <div slot="footer" class="dialog-footer">
  1274. <el-button
  1275. @click="referencevisiable((dialog.type_visiable = false))"
  1276. >{{ $t("HCFD.file.cancel")}} </el-button
  1277. >
  1278. <el-button type="primary" @click="hcfdparam(); dialog.type_visiable = false"
  1279. >{{ $t("HCFD.file.ok")}}</el-button
  1280. >
  1281. </div>
  1282. </el-dialog> -->
  1283. <!-- 并行类型 -->
  1284. <el-dialog
  1285. class="lg-y-z"
  1286. :visible.sync="dialog.parallel_visiable "
  1287. :close-on-click-modal="false"
  1288. @close='activecleer()'
  1289. :modal='false'
  1290. custom-class='dialoglocation dialog_color'
  1291. width="385px"
  1292. v-draggable
  1293. v-draggleft=[styX.left]
  1294. >
  1295. <div
  1296. slot="title"
  1297. class=dialog_header
  1298. >
  1299. <el-image
  1300. class="imge"
  1301. :src="t5"
  1302. fit="cover"
  1303. />
  1304. <span class="text-color">{{$t('HCFD.geneal.parallel')}}</span>
  1305. </div>
  1306. <el-form>
  1307. <div class="radio_text text_color">
  1308. <el-form-item
  1309. :label="$t('HCFD.geneal.number')"
  1310. :label-width="formLabelWidth2"
  1311. v-if="
  1312. parameterObj.nmlParam.parallel_Optional == 'MPI Parallel'
  1313. "
  1314. >
  1315. <el-input
  1316. v-model="parameterObj.nmlParam.number_of_Processors"
  1317. autocomplete="off"
  1318. ></el-input>
  1319. </el-form-item>
  1320. </div>
  1321. </el-form>
  1322. <div
  1323. slot="footer"
  1324. class="dialog-footer"
  1325. >
  1326. <el-button @click="referencevisiable((dialog.parallel_visiable = false))">{{ $t("HCFD.file.cancel")}} </el-button>
  1327. <el-button
  1328. type="primary"
  1329. @click="hcfdparam(); dialog.parallel_visiable = false"
  1330. >{{ $t("HCFD.file.ok")}}</el-button>
  1331. </div>
  1332. </el-dialog>
  1333. <!-- 控制方程 -->
  1334. <el-dialog
  1335. v-if="active=='three-0'"
  1336. :visible.sync="dialog.equation_visiable"
  1337. :close-on-click-modal="false"
  1338. @close='activecleer()'
  1339. class="dialog"
  1340. :modal='false'
  1341. custom-class='dialoglocation dialog_color'
  1342. width="385px"
  1343. v-draggable
  1344. v-draggleft=[styX.left]
  1345. >
  1346. <div
  1347. slot="title"
  1348. class=dialog_header
  1349. >
  1350. <el-image
  1351. class="imge"
  1352. :src="w1"
  1353. fit="cover"
  1354. />
  1355. <span class="text-color">{{$t('HCFD.physics.gover')}}</span>
  1356. </div>
  1357. <el-form>
  1358. <el-radio-group
  1359. v-model="parameterObj.nmlParam.eqn_type"
  1360. size="mini"
  1361. >
  1362. <el-radio
  1363. label="cal_perf_compress"
  1364. style="display: block; padding:15px 0;"
  1365. >{{
  1366. $t("HCFD.physics.compress")
  1367. }}</el-radio>
  1368. <el-radio label="cal_perf_incompress">{{
  1369. $t("HCFD.physics.incompress")
  1370. }}</el-radio>
  1371. </el-radio-group>
  1372. <div
  1373. class="disflex text_color"
  1374. v-if="parameterObj.nmlParam.eqn_type=='cal_perf_incompress'"
  1375. >
  1376. <span class="text_color formLabelWidth8">&emsp;&nbsp;&nbsp;{{ $t("HCFD.physics.artifical") }}</span>
  1377. <el-input
  1378. class='inpw75'
  1379. size="mini"
  1380. v-model="parameterObj.nmlParam.artificial_compress"
  1381. ></el-input>
  1382. </div>
  1383. </el-form>
  1384. <div
  1385. slot="footer"
  1386. class="dialog-footer"
  1387. >
  1388. <el-button @click="dialog. equation_visiable = false"> {{ $t("HCFD.file.cancel")}} </el-button>
  1389. <el-button
  1390. type="primary"
  1391. @click="hcfdparam(); dialog.equation_visiable = false"
  1392. >{{ $t("HCFD.file.ok")}} </el-button>
  1393. </div>
  1394. </el-dialog>
  1395. <!-- 粘性模型 -->
  1396. <el-dialog
  1397. class="lg-y-z"
  1398. :visible.sync="dialog.inviscid_visiable"
  1399. :close-on-click-modal="false"
  1400. @close='activecleer()'
  1401. v-if="active=='three2-0'"
  1402. :modal='false'
  1403. custom-class='dialoglocation dialog_color'
  1404. width="385px"
  1405. heigth="385px"
  1406. v-draggable
  1407. v-draggleft=[styX.left]
  1408. >
  1409. <div
  1410. slot="title"
  1411. class=dialog_header
  1412. >
  1413. <el-image
  1414. class="imge"
  1415. :src="w2"
  1416. fit="cover"
  1417. />
  1418. <span class="text-color">{{$t('HCFD.physics.viscous')}}</span>
  1419. </div>
  1420. <el-form>
  1421. <div class="selecr">
  1422. <el-form-item
  1423. label="模型类型"
  1424. :label-width="formLabelWidth5"
  1425. >
  1426. <el-select
  1427. v-model="parameterObj.nmlParam.viscous_terms"
  1428. placeholder="请选择"
  1429. >
  1430. <el-option
  1431. v-for="item in selectlist1"
  1432. :key="item.value"
  1433. :label="item.name"
  1434. :value="item.value"
  1435. >
  1436. </el-option>
  1437. </el-select>
  1438. </el-form-item>
  1439. <div class="line">
  1440. <div class="linetext">属性</div>
  1441. </div>
  1442. <div v-if="parameterObj.nmlParam.viscous_terms=='laminar'">
  1443. <el-form-item
  1444. :label="$t('HCFD.physics.molecular')"
  1445. :label-width="formLabelWidth5"
  1446. >
  1447. <el-input
  1448. v-model="parameterObj.nmlParam.prandtlnumber_molecular"
  1449. autocomplete="off"
  1450. ></el-input>
  1451. </el-form-item>
  1452. </div>
  1453. <div v-if="parameterObj.nmlParam.viscous_terms=='turbulent'">
  1454. <el-form-item
  1455. label="湍流模型"
  1456. :label-width="formLabelWidth5"
  1457. >
  1458. <el-select
  1459. v-model="parameterObj.nmlParam.turb_model"
  1460. placeholder="请选择"
  1461. >
  1462. <el-option
  1463. v-for="item in selectlist2"
  1464. :key="item.value"
  1465. :label="item.name"
  1466. :value="item.value"
  1467. >
  1468. </el-option>
  1469. </el-select>
  1470. </el-form-item>
  1471. <el-form-item
  1472. :label="$t('HCFD.physics.Molecular')"
  1473. :label-width="formLabelWidth5"
  1474. >
  1475. <el-input
  1476. v-model="parameterObj.nmlParam.prandtlnumber_molecular"
  1477. autocomplete="off"
  1478. ></el-input>
  1479. </el-form-item>
  1480. <el-form-item
  1481. :label="$t('HCFD.physics.turbulents')"
  1482. :label-width="formLabelWidth5"
  1483. >
  1484. <el-input
  1485. v-model="Physics.Turbulent.TurbulentPrandtlNumber"
  1486. autocomplete="off"
  1487. ></el-input>
  1488. </el-form-item>
  1489. </div>
  1490. </div>
  1491. </el-form>
  1492. <div
  1493. slot="footer"
  1494. class="dialog-footer"
  1495. >
  1496. <el-button @click="dialog.inviscid_visiable= false">{{ $t("HCFD.file.cancel")}} </el-button>
  1497. <el-button
  1498. type="primary"
  1499. @click="hcfdparam(); dialog.inviscid_visiable = false"
  1500. >{{ $t("HCFD.file.ok")}}</el-button>
  1501. </div>
  1502. </el-dialog>
  1503. <!-- 运动网格 -->
  1504. <el-dialog
  1505. class="lg-y-z"
  1506. :visible.sync="dialog.dynamic_visiable "
  1507. :close-on-click-modal="false"
  1508. @close='activecleer()'
  1509. v-if="active=='three2-2'"
  1510. :modal='false'
  1511. custom-class='dialoglocation dialog_color'
  1512. width="385px"
  1513. v-draggable
  1514. v-draggleft=[styX.left]
  1515. >
  1516. <div
  1517. slot="title"
  1518. class=dialog_header
  1519. >
  1520. <el-image
  1521. class="imge"
  1522. :src="w4"
  1523. fit="cover"
  1524. />
  1525. <span class="text-color">{{$t('HCFD.physics.dynamic')}}</span>
  1526. </div>
  1527. <el-form>
  1528. <div class="radio_text text_color liangf">
  1529. <div class="classfelx">
  1530. <el-radio
  1531. v-model="parameterObj.nmlParam.dynamic_Mesh"
  1532. label="on"
  1533. >on</el-radio>
  1534. </div>
  1535. <div class="classfelx">
  1536. <el-radio
  1537. v-model="parameterObj.nmlParam.dynamic_Mesh"
  1538. label="off"
  1539. >off</el-radio>
  1540. </div>
  1541. </div>
  1542. <div
  1543. class="selecr"
  1544. v-if="parameterObj.nmlParam.dynamic_Mesh=='on'"
  1545. >
  1546. <el-form-item
  1547. label="运动模型"
  1548. :label-width="formLabelWidth7"
  1549. >
  1550. <el-select
  1551. v-model="ydval"
  1552. placeholder="请选择"
  1553. >
  1554. <el-option
  1555. v-for="item in ydlist"
  1556. :key="item.value"
  1557. :label="item.name"
  1558. :value="item.value"
  1559. >
  1560. </el-option>
  1561. </el-select>
  1562. </el-form-item>
  1563. <div class="line">
  1564. <div class="linetext">定义运动体</div>
  1565. </div>
  1566. <el-form-item
  1567. label="数量"
  1568. :label-width="formLabelWidth7"
  1569. >
  1570. <el-input
  1571. v-model="form.name"
  1572. autocomplete="off"
  1573. ></el-input>
  1574. </el-form-item>
  1575. <el-form-item
  1576. label="名字"
  1577. :label-width="formLabelWidth7"
  1578. >
  1579. <el-input
  1580. v-model="form.name"
  1581. autocomplete="off"
  1582. ></el-input>
  1583. </el-form-item>
  1584. <el-form-item
  1585. label="运动机理"
  1586. :label-width="formLabelWidth7"
  1587. >
  1588. <el-select
  1589. v-model="ydval2"
  1590. placeholder="请选择"
  1591. >
  1592. <el-option
  1593. v-for="item in ydlist2"
  1594. :key="item.value"
  1595. :label="item.name"
  1596. :value="item.value"
  1597. >
  1598. </el-option>
  1599. </el-select>
  1600. </el-form-item>
  1601. <el-form-item
  1602. label="类型"
  1603. :label-width="formLabelWidth7"
  1604. >
  1605. <el-select
  1606. v-model="ydval3"
  1607. placeholder="请选择"
  1608. >
  1609. <el-option
  1610. v-for="item in ydlist3"
  1611. :key="item.value"
  1612. :label="item.name"
  1613. :value="item.value"
  1614. >
  1615. </el-option>
  1616. </el-select>
  1617. </el-form-item>
  1618. <div v-if="ydval2=='0'&&ydval3=='0'||ydval2=='1'&&ydval3=='0'">
  1619. <el-form-item
  1620. label="无量刚速率"
  1621. :label-width="formLabelWidth7"
  1622. >
  1623. <el-input
  1624. v-model="form.name"
  1625. autocomplete="off"
  1626. ></el-input>
  1627. </el-form-item>
  1628. <el-form-item
  1629. label="无量刚速率"
  1630. :label-width="formLabelWidth7"
  1631. >
  1632. <el-input
  1633. v-model="form.name"
  1634. autocomplete="off"
  1635. ></el-input>
  1636. </el-form-item>
  1637. </div>
  1638. <div v-if="ydval2=='1'&&ydval3=='0'||ydval2=='1'&&ydval3=='1'">
  1639. <el-form-item
  1640. label="相位/度"
  1641. :label-width="formLabelWidth7"
  1642. >
  1643. <el-input
  1644. v-model="form.name"
  1645. autocomplete="off"
  1646. ></el-input>
  1647. </el-form-item>
  1648. <el-form-item
  1649. label="幅值/度"
  1650. :label-width="formLabelWidth7"
  1651. >
  1652. <el-input
  1653. v-model="form.name"
  1654. autocomplete="off"
  1655. ></el-input>
  1656. </el-form-item>
  1657. </div>
  1658. <div v-if="ydval2=='1'&&ydval3=='0'||ydval2=='1'&&ydval3=='1'">
  1659. <el-form-item
  1660. label="旋转中心坐标X"
  1661. :label-width="formLabelWidth7"
  1662. >
  1663. <el-input
  1664. v-model="form.name"
  1665. autocomplete="off"
  1666. ></el-input>
  1667. </el-form-item>
  1668. <el-form-item
  1669. label="旋转中心坐标Y"
  1670. :label-width="formLabelWidth7"
  1671. >
  1672. <el-input
  1673. v-model="form.name"
  1674. autocomplete="off"
  1675. ></el-input>
  1676. </el-form-item>
  1677. <el-form-item
  1678. label="旋转中心坐标Z"
  1679. :label-width="formLabelWidth7"
  1680. >
  1681. <el-input
  1682. v-model="form.name"
  1683. autocomplete="off"
  1684. ></el-input>
  1685. </el-form-item>
  1686. </div>
  1687. <el-form-item
  1688. label="旋转轴单位矢量X分量"
  1689. :label-width="formLabelWidth7"
  1690. >
  1691. <el-input
  1692. v-model="form.name"
  1693. autocomplete="off"
  1694. ></el-input>
  1695. </el-form-item>
  1696. <el-form-item
  1697. label="旋转轴单位矢量Y分量"
  1698. :label-width="formLabelWidth7"
  1699. >
  1700. <el-input
  1701. v-model="form.name"
  1702. autocomplete="off"
  1703. ></el-input>
  1704. </el-form-item>
  1705. <el-form-item
  1706. label="旋转轴单位矢量Z分量"
  1707. :label-width="formLabelWidth7"
  1708. >
  1709. <el-input
  1710. v-model="form.name"
  1711. autocomplete="off"
  1712. ></el-input>
  1713. </el-form-item>
  1714. <el-form-item
  1715. label="无量纲旋转起始时间"
  1716. :label-width="formLabelWidth7"
  1717. >
  1718. <el-input
  1719. v-model="form.name"
  1720. autocomplete="off"
  1721. ></el-input>
  1722. </el-form-item>
  1723. <el-form-item
  1724. label="无量纲旋转持续时间"
  1725. :label-width="formLabelWidth7"
  1726. >
  1727. <el-input
  1728. v-model="form.name"
  1729. autocomplete="off"
  1730. ></el-input>
  1731. </el-form-item>
  1732. <div class="line">
  1733. <div class="linetext">t=0时刻力矩中心</div>
  1734. </div>
  1735. <el-form-item
  1736. label="X-coordinate"
  1737. :label-width="formLabelWidth7"
  1738. >
  1739. <el-input
  1740. v-model="form.name"
  1741. autocomplete="off"
  1742. ></el-input>
  1743. </el-form-item>
  1744. <el-form-item
  1745. label="Y-coordinate"
  1746. :label-width="formLabelWidth7"
  1747. >
  1748. <el-input
  1749. v-model="form.name"
  1750. autocomplete="off"
  1751. ></el-input>
  1752. </el-form-item>
  1753. <el-form-item
  1754. label="Z-coordinate"
  1755. :label-width="formLabelWidth7"
  1756. >
  1757. <el-input
  1758. v-model="form.name"
  1759. autocomplete="off"
  1760. ></el-input>
  1761. </el-form-item>
  1762. <el-form-item
  1763. label="力矩中心状态"
  1764. :label-width="formLabelWidth7"
  1765. >
  1766. <el-select
  1767. v-model="ydval4"
  1768. placeholder="请选择"
  1769. >
  1770. <el-option
  1771. v-for="item in ydlist4"
  1772. :key="item.value"
  1773. :label="item.name"
  1774. :value="item.value"
  1775. >
  1776. </el-option>
  1777. </el-select>
  1778. </el-form-item>
  1779. <div class="line">
  1780. <div class="linetext">力/力矩无量纲化</div>
  1781. </div>
  1782. <el-form-item
  1783. label="无量纲参考面积"
  1784. :label-width="formLabelWidth7"
  1785. >
  1786. <el-input
  1787. v-model="form.name"
  1788. autocomplete="off"
  1789. ></el-input>
  1790. </el-form-item>
  1791. <el-form-item
  1792. label="无量纲参考弦长"
  1793. :label-width="formLabelWidth7"
  1794. >
  1795. <el-input
  1796. v-model="form.name"
  1797. autocomplete="off"
  1798. ></el-input>
  1799. </el-form-item>
  1800. <el-form-item
  1801. label="无量纲参考展长"
  1802. :label-width="formLabelWidth7"
  1803. >
  1804. <el-input
  1805. v-model="form.name"
  1806. autocomplete="off"
  1807. ></el-input>
  1808. </el-form-item>
  1809. <div class="line">
  1810. <div class="linetext">有量纲物理量</div>
  1811. </div>
  1812. <div class="liangf">
  1813. <div
  1814. class="classfelx text_color"
  1815. style="line-height: 2;"
  1816. >
  1817. 输出运动体有量纲物理量
  1818. </div>
  1819. <div class="classfelx">
  1820. <el-radio
  1821. v-model="parameterObj.nmlParam.dynamic_Mesh"
  1822. label="on"
  1823. >on</el-radio>
  1824. <el-radio
  1825. v-model="parameterObj.nmlParam.dynamic_Mesh"
  1826. label="off"
  1827. >off</el-radio>
  1828. </div>
  1829. </div>
  1830. <el-checkbox v-model="checked">预览网格运动</el-checkbox>
  1831. </div>
  1832. </el-form>
  1833. <div
  1834. slot="footer"
  1835. class="dialog-footer"
  1836. >
  1837. <el-button @click="dialog.dynamic_visiable = false">{{ $t("HCFD.file.cancel")}} </el-button>
  1838. <el-button
  1839. type="primary"
  1840. @click="hcfdparam(); dialog.dynamic_visiable = false"
  1841. >{{ $t("HCFD.file.ok")}}</el-button>
  1842. </div>
  1843. </el-dialog>
  1844. <!--非惯性参考条件 -->
  1845. <el-dialog
  1846. class="lg-y-z"
  1847. :visible.sync="dialog.nonitertial_visiable"
  1848. :close-on-click-modal="false"
  1849. @close='activecleer()'
  1850. v-if="active=='three1-1'"
  1851. :modal='false'
  1852. custom-class='dialoglocation dialog_color'
  1853. width="385px"
  1854. v-draggable
  1855. v-draggleft=[styX.left]
  1856. >
  1857. <div
  1858. slot="title"
  1859. class=dialog_header
  1860. >
  1861. <el-image
  1862. class="imge"
  1863. :src="w6"
  1864. fit="cover"
  1865. />
  1866. <span class="text-color">{{$t('HCFD.physics.nonitertial')}}</span>
  1867. </div>
  1868. <el-form>
  1869. <div class="radio_text text_color liangf">
  1870. <div class="classfelx">
  1871. <el-radio
  1872. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  1873. label="on"
  1874. >on</el-radio>
  1875. </div>
  1876. <div class="classfelx">
  1877. <el-radio
  1878. v-model="parameterObj.nmlParam.noninertial_Reference_Frame"
  1879. label="off"
  1880. >off</el-radio>
  1881. </div>
  1882. </div>
  1883. <div v-if="parameterObj.nmlParam.noninertial_Reference_Frame=='on'">
  1884. <div class="line">
  1885. <div class="linetext">旋转中心</div>
  1886. </div>
  1887. <el-form-item
  1888. label="坐标X"
  1889. :label-width="formLabelWidth2"
  1890. >
  1891. <el-input
  1892. v-model="form.name"
  1893. autocomplete="off"
  1894. ></el-input>
  1895. </el-form-item>
  1896. <el-form-item
  1897. label="坐标Y"
  1898. :label-width="formLabelWidth2"
  1899. >
  1900. <el-input
  1901. v-model="form.name"
  1902. autocomplete="off"
  1903. ></el-input>
  1904. </el-form-item>
  1905. <el-form-item
  1906. label="坐标Z"
  1907. :label-width="formLabelWidth2"
  1908. >
  1909. <el-input
  1910. v-model="form.name"
  1911. autocomplete="off"
  1912. ></el-input>
  1913. </el-form-item>
  1914. <div class="line">
  1915. <div class="linetext">旋转矢量</div>
  1916. </div>
  1917. <el-form-item
  1918. label="X方向分量"
  1919. :label-width="formLabelWidth2"
  1920. >
  1921. <el-input
  1922. v-model="form.name"
  1923. autocomplete="off"
  1924. ></el-input>
  1925. </el-form-item>
  1926. <el-form-item
  1927. label="Y方向分量"
  1928. :label-width="formLabelWidth2"
  1929. >
  1930. <el-input
  1931. v-model="form.name"
  1932. autocomplete="off"
  1933. ></el-input>
  1934. </el-form-item>
  1935. <el-form-item
  1936. label="Z方向分量"
  1937. :label-width="formLabelWidth2"
  1938. >
  1939. <el-input
  1940. v-model="form.name"
  1941. autocomplete="off"
  1942. ></el-input>
  1943. </el-form-item>
  1944. </div>
  1945. </el-form>
  1946. <div
  1947. slot="footer"
  1948. class="dialog-footer"
  1949. >
  1950. <el-button @click="dialog.nonitertial_visiable = false">{{ $t("HCFD.file.cancel")}} </el-button>
  1951. <el-button
  1952. type="primary"
  1953. @click="hcfdparam(); dialog.nonitertial_visiable = false"
  1954. >{{ $t("HCFD.file.ok")}}</el-button>
  1955. </div>
  1956. </el-dialog>
  1957. <!-- 通量残差构造方法 -->
  1958. <el-dialog
  1959. class="lg-Solution"
  1960. :visible.sync="dialog.fluxrc_visiable"
  1961. :close-on-click-modal="false"
  1962. @close='activecleer()'
  1963. v-if="active=='four-0'"
  1964. :modal='false'
  1965. custom-class='dialoglocation dialog_color'
  1966. width="385px"
  1967. v-draggable
  1968. v-draggleft=[styX.left]
  1969. >
  1970. <div
  1971. slot="title"
  1972. class=dialog_header
  1973. >
  1974. <el-image
  1975. class="imge"
  1976. :src="q1"
  1977. fit="cover"
  1978. />
  1979. <span class="text-color">{{$t('HCFD.solution.invis')}}</span>
  1980. </div>
  1981. <el-form class="groupradio selecr">
  1982. <div class="line">
  1983. <div class="linetext">属性</div>
  1984. </div>
  1985. <el-form-item
  1986. label="通量残差构造方法"
  1987. :label-width="formLabelWidth7"
  1988. >
  1989. <el-select
  1990. v-model="parameterObj.nmlParam.flux_construction"
  1991. placeholder="请选择"
  1992. >
  1993. <el-option
  1994. v-for="item in qjklist"
  1995. :key="item.value"
  1996. :label="item.name"
  1997. :value="item.value"
  1998. >
  1999. </el-option>
  2000. </el-select>
  2001. </el-form-item>
  2002. <el-form-item
  2003. label="通量雅可比构造方法"
  2004. :label-width="formLabelWidth7"
  2005. >
  2006. <el-select
  2007. v-model="parameterObj.nmlParam.flux_construction_lhs"
  2008. placeholder="请选择"
  2009. >
  2010. <el-option
  2011. v-for="item in qjklist3"
  2012. :key="item.value"
  2013. :label="item.name"
  2014. :value="item.value"
  2015. >
  2016. </el-option>
  2017. </el-select>
  2018. </el-form-item>
  2019. <el-form-item
  2020. label="MUSCL重构格式"
  2021. :label-width="formLabelWidth7"
  2022. >
  2023. <el-input
  2024. v-model="form.name"
  2025. autocomplete="off"
  2026. ></el-input>
  2027. </el-form-item>
  2028. <el-form-item
  2029. label="通量限制"
  2030. :label-width="formLabelWidth7"
  2031. >
  2032. <el-select
  2033. v-model="parameterObj.nmlParam.flux_limiter"
  2034. placeholder="请选择"
  2035. >
  2036. <el-option
  2037. v-for="item in qjklist2"
  2038. :key="item.value"
  2039. :label="item.name"
  2040. :value="item.value"
  2041. >
  2042. </el-option>
  2043. </el-select>
  2044. </el-form-item>
  2045. <el-form-item
  2046. :label="$t('HCFD.solution.firstOrderNum') "
  2047. :label-width="formLabelWidth7"
  2048. >
  2049. <el-input
  2050. v-model="parameterObj.nmlParam.first_order_iterations"
  2051. autocomplete="off"
  2052. ></el-input>
  2053. </el-form-item>
  2054. </el-form>
  2055. <div
  2056. slot="footer"
  2057. class="dialog-footer"
  2058. >
  2059. <el-button @click="referencevisiable((dialog.fluxrc_visiable = false))"> {{ $t("HCFD.file.cancel")}} </el-button>
  2060. <el-button
  2061. type="primary"
  2062. @click="hcfdparam(); dialog.fluxrc_visiable = false"
  2063. >{{ $t("HCFD.file.ok")}}</el-button>
  2064. </div>
  2065. </el-dialog>
  2066. <!-- 时间格式 -->
  2067. <el-dialog
  2068. :visible.sync="dialog.time_visiable"
  2069. class="lg-Solution"
  2070. :close-on-click-modal="false"
  2071. @close='activecleer()'
  2072. v-if="active=='four-1'"
  2073. :modal='false'
  2074. custom-class='dialoglocation dialog_color'
  2075. width="385px"
  2076. v-draggable
  2077. v-draggleft=[styX.left]
  2078. >
  2079. <div
  2080. slot="title"
  2081. class=dialog_header
  2082. >
  2083. <el-image
  2084. class="imge"
  2085. :src="q2"
  2086. fit="cover"
  2087. />
  2088. <span class="text-color">{{$t('HCFD.solution.timeScheme')}}</span>
  2089. </div>
  2090. <el-form class="lg-form">
  2091. <div class="line">
  2092. <div class="linetext">属性</div>
  2093. </div>
  2094. <el-form-item
  2095. label="时间格式"
  2096. :label-width="formLabelWidth7"
  2097. class="shijianges"
  2098. >
  2099. <el-select
  2100. v-model="parameterObj.nmlParam.time_accuracy"
  2101. placeholder="请选择"
  2102. >
  2103. <el-option
  2104. v-for="item in tlist1"
  2105. :key="item.value"
  2106. :label="item.name"
  2107. :value="item.value"
  2108. >
  2109. </el-option>
  2110. </el-select>
  2111. </el-form-item>
  2112. <el-form-item
  2113. :label="$t('HCFD.solution.stepping')"
  2114. :label-width="formLabelWidth61"
  2115. class="iemradio shijianges"
  2116. >
  2117. <el-radio-group v-model="parameterObj.nmlParam.pseudo_time_stepping">
  2118. <el-radio label="off">Off</el-radio>
  2119. <el-radio
  2120. label="on"
  2121. class="radiooff"
  2122. >On</el-radio>
  2123. </el-radio-group>
  2124. </el-form-item>
  2125. <li class="disflex liitem liangf">
  2126. <span class="formLabelWidth8">{{$t('HCFD.solution.nondim')}}</span>
  2127. <el-input v-model="parameterObj.nmlParam.time_step_nondim"></el-input>
  2128. </li>
  2129. <li class="disflex liitem liangf">
  2130. <span class="formLabelWidth8">{{$t('HCFD.solution.subiterations')}}</span>
  2131. <el-input v-model="parameterObj.nmlParam.subiterations"></el-input>
  2132. </li>
  2133. <li class="disflex liitem liangf">
  2134. <span class="formLabelWidth9">{{$t('HCFD.solution.cfl')}}</span>
  2135. <el-input v-model="parameterObj.nmlParam.schedule_iteration[0]"></el-input>
  2136. <el-input v-model="parameterObj.nmlParam.schedule_iteration[1]"></el-input>
  2137. </li>
  2138. <li class="disflex liitem liangf">
  2139. <span class="formLabelWidth9">{{$t('HCFD.solution.Schedulecfl')}}</span>
  2140. <el-input v-model="parameterObj.nmlParam.schedule_cfl[0]"></el-input>
  2141. <el-input v-model="parameterObj.nmlParam.schedule_cfl[1]"></el-input>
  2142. </li>
  2143. <li class="disflex liitem liangf">
  2144. <span class="formLabelWidth9">{{$t('HCFD.solution.cflturb')}}</span>
  2145. <el-input v-model="parameterObj.nmlParam.schedule_cflturb[0]"></el-input>
  2146. <el-input v-model="parameterObj.nmlParam.schedule_cflturb[1]"></el-input>
  2147. </li>
  2148. </el-form>
  2149. <div
  2150. slot="footer"
  2151. class="dialog-footer"
  2152. >
  2153. <el-button @click="referencevisiable((dialog.time_visiable = false))">{{ $t("HCFD.file.cancel")}} </el-button>
  2154. <el-button
  2155. type="primary"
  2156. @click="hcfdparam(); dialog.time_visiable = false"
  2157. >{{ $t("HCFD.file.ok")}}</el-button>
  2158. </div>
  2159. </el-dialog>
  2160. <!-- 边界条件 -->
  2161. <el-dialog
  2162. class="dialog-block"
  2163. :visible.sync="dialog.border_visiable"
  2164. :close-on-click-modal="false"
  2165. @close='activecleer()'
  2166. v-if="active=='three2-1'"
  2167. :modal='false'
  2168. custom-class='dialoglocation dialog_color'
  2169. width="384px"
  2170. v-draggable
  2171. v-draggleft=[styX.left]
  2172. >
  2173. <div
  2174. slot="title"
  2175. class=dialog_header
  2176. >
  2177. <el-image
  2178. class="imge"
  2179. :src="w2"
  2180. fit="cover"
  2181. />
  2182. <span class="text-color">{{$t('HCFD.physics.boundary')}}</span>
  2183. </div>
  2184. <el-form>
  2185. <div class="selecr">
  2186. <div>
  2187. <vue-uploader
  2188. ref="mapbc"
  2189. :projectId="project.projectId"
  2190. :solverType="'hcfd'"
  2191. :accept="'.mapbc,.dat'"
  2192. :name="'Load BC File'"
  2193. :upId="'1'"
  2194.  @changedesc="changedesc1($event)"
  2195. ></vue-uploader>
  2196. </div>
  2197. <div class="desc">
  2198. <li
  2199. class="descitem"
  2200. v-for="(item,index) in desclist"
  2201. :key="index"
  2202. >{{item.id}}--{{item.conditionsCode}}--{{item.name}}</li>
  2203. </div>
  2204. <el-form-item
  2205. label=" 边界类型"
  2206. :label-width="formLabelWidth2"
  2207. >
  2208. <el-select
  2209. size="mini"
  2210. @change="boundaryChange"
  2211. v-model="Physics.Boundary.bquery"
  2212. placeholder="select boundary"
  2213. >
  2214. <el-option
  2215. v-for="hcfdBoundary in parameterObj.hcfdBoundarys"
  2216. :key="hcfdBoundary.id"
  2217. :label="hcfdBoundary.name"
  2218. :value="hcfdBoundary.id"
  2219. >
  2220. </el-option>
  2221. </el-select>
  2222. </el-form-item>
  2223. <el-form-item
  2224. label=" 外流类型"
  2225. :label-width="formLabelWidth2"
  2226. >
  2227. <el-select
  2228. size="mini"
  2229. @change="conditionsChange"
  2230. v-model="Physics.Boundary.cquery"
  2231. placeholder="select Conditions"
  2232. >
  2233. <el-option
  2234. v-for="Condition in Physics.Boundary.Conditions"
  2235. :key="Condition.conditionsCode"
  2236. :label="Condition.name"
  2237. :value="Condition.conditionsCode"
  2238. >
  2239. </el-option>
  2240. </el-select>
  2241. </el-form-item>
  2242. <div v-if="Physics.Boundary.bquery=='WING1'">
  2243. <el-form-item
  2244. label=" 总压比"
  2245. :label-width="formLabelWidth"
  2246. >
  2247. <el-input
  2248. v-model="form.name"
  2249. autocomplete="off"
  2250. ></el-input>
  2251. </el-form-item>
  2252. <el-form-item
  2253. label=" 总温比"
  2254. :label-width="formLabelWidth"
  2255. >
  2256. <el-input
  2257. v-model="form.name"
  2258. autocomplete="off"
  2259. ></el-input>
  2260. </el-form-item>
  2261. <el-form-item
  2262. label="法向"
  2263. :label-width="formLabelWidth"
  2264. >
  2265. <el-input
  2266. v-model="form.name"
  2267. autocomplete="off"
  2268. ></el-input>
  2269. </el-form-item>
  2270. <el-form-item
  2271. label="入流角(Alpha)"
  2272. :label-width="formLabelWidth"
  2273. >
  2274. <el-input
  2275. v-model="form.name"
  2276. autocomplete="off"
  2277. ></el-input>
  2278. </el-form-item>
  2279. <el-form-item
  2280. label="入流角(Beta)"
  2281. :label-width="formLabelWidth"
  2282. >
  2283. <el-input
  2284. v-model="form.name"
  2285. autocomplete="off"
  2286. ></el-input>
  2287. </el-form-item>
  2288. <el-form-item
  2289. label=" 欧拉角(Theta1)"
  2290. :label-width="formLabelWidth"
  2291. >
  2292. <el-input
  2293. v-model="form.name"
  2294. autocomplete="off"
  2295. ></el-input>
  2296. </el-form-item>
  2297. <el-form-item
  2298. label=" 欧拉角(Theta2)"
  2299. :label-width="formLabelWidth"
  2300. >
  2301. <el-input
  2302. v-model="form.name"
  2303. autocomplete="off"
  2304. ></el-input>
  2305. </el-form-item>
  2306. <el-form-item
  2307. label="欧拉角(Theta3)"
  2308. :label-width="formLabelWidth"
  2309. >
  2310. <el-input
  2311. v-model="form.name"
  2312. autocomplete="off"
  2313. ></el-input>
  2314. </el-form-item>
  2315. </div>
  2316. </div>
  2317. </el-form>
  2318. <div
  2319. slot="footer"
  2320. class="dialog-footer"
  2321. >
  2322. <el-button @click="dialog.border_visiable = false">{{ $t("HCFD.file.cancel")}} </el-button>
  2323. <el-button
  2324. type="primary"
  2325. @click="hcfdparam(); dialog.border_visiable = false"
  2326. >{{ $t("HCFD.file.ok")}} </el-button>
  2327. </div>
  2328. </el-dialog>
  2329. <!-- 参考条件 -->
  2330. <el-dialog
  2331. class="dialog-block"
  2332. :visible.sync="dialog.reference_visiable"
  2333. :close-on-click-modal="false"
  2334. @close='activecleer()'
  2335. v-if="active=='three1-0'"
  2336. :modal='false'
  2337. custom-class='dialoglocation dialog_color heightclass'
  2338. width="385px"
  2339. height="400px"
  2340. v-draggable
  2341. v-draggleft=[styX.left]
  2342. >
  2343. <div
  2344. slot="title"
  2345. class=dialog_header
  2346. >
  2347. <el-image
  2348. class="imge"
  2349. :src="w5"
  2350. fit="cover"
  2351. />
  2352. <span class="text-color">{{$t('HCFD.physics.reference')}}</span>
  2353. </div>
  2354. <el-form class="groupradio">
  2355. <div class="line">
  2356. <div class="linetext">属性</div>
  2357. </div>
  2358. <li class="disflex liitem liangf">
  2359. <span class="formLabelWidth8">{{ $t("HCFD.physics.machNum") }}</span>
  2360. <el-input
  2361. class="inpw50"
  2362. size="mini"
  2363. v-model="parameterObj.nmlParam.mach_number"
  2364. ></el-input>
  2365. </li>
  2366. <li class=" liitem liangf">
  2367. <span class="formLabelWidth8">{{ $t("HCFD.physics.reyNum") }}</span>
  2368. <el-input
  2369. class="inpw50"
  2370. size="mini"
  2371. v-model="parameterObj.nmlParam.reynolds_number"
  2372. ></el-input>
  2373. </li>
  2374. <li class=" liitem liangf">
  2375. <span class="formLabelWidth8">{{ $t("HCFD.physics.temperature") }}</span>
  2376. </li>
  2377. <li class=" liitem liangf">
  2378. <el-radio-group
  2379. v-model="parameterObj.nmlParam.temperature_units"
  2380. style=" width: 100%;"
  2381. >
  2382. <el-radio :label="'Kelvin'">{{ $t("HCFD.physics.kelvin") }}</el-radio>
  2383. <el-radio :label="'Rankine'">{{ $t("HCFD.physics.rankine") }}</el-radio>
  2384. </el-radio-group>
  2385. <el-input v-model="parameterObj.nmlParam.temperature"></el-input>
  2386. </li>
  2387. <li class=" liitem liangf">
  2388. <span class="formLabelWidth8">{{ $t("HCFD.physics.attack") }}</span>
  2389. <el-input v-model="parameterObj.nmlParam.angle_of_attack"></el-input>
  2390. </li>
  2391. <li class=" liitem liangf">
  2392. <span class="formLabelWidth8">{{ $t("HCFD.physics.yaw") }} </span>
  2393. <el-input v-model="parameterObj.nmlParam.angle_of_yaw"></el-input>
  2394. </li>
  2395. <li class=" liitem liangf">
  2396. <span class="formLabelWidth8">{{ $t("HCFD.physics.area") }}</span>
  2397. <el-input v-model="parameterObj.nmlParam.area_reference"></el-input>
  2398. </li>
  2399. <li class=" liitem liangf">
  2400. <span class="formLabelWidth8">{{ $t("HCFD.physics.yaxis") }}</span>
  2401. <el-input v-model="parameterObj.nmlParam.x_moment_length"></el-input>
  2402. </li>
  2403. <li class=" liitem liangf">
  2404. <span class="formLabelWidth8">{{ $t("HCFD.physics.zaxis") }}</span>
  2405. <el-input v-model="parameterObj.nmlParam.y_moment_length"></el-input>
  2406. </li>
  2407. <!-- <li class=" liitem liangf">
  2408. <span class="formLabelWidth8">{{ $t("HCFD.physics.momentc") }}</span>
  2409. <el-input v-model="parameterObj.nmlParam.x_moment_center"></el-input>
  2410. </li> -->
  2411. <!-- <li class=" liitem liangf">
  2412. <span class="formLabelWidth8">{{ $t("HCFD.physics.xcoordinate") }}</span>
  2413. <el-input v-model="parameterObj.nmlParam.x_moment_center"></el-input>
  2414. </li> -->
  2415. <li class=" liitem liangf">
  2416. <span class="formLabelWidth8">{{ $t("HCFD.physics.ycoordinate") }}</span>
  2417. <el-input v-model="parameterObj.nmlParam.y_moment_center"></el-input>
  2418. </li>
  2419. <li class=" liitem liangf">
  2420. <span class="formLabelWidth8">{{ $t("HCFD.physics.zcoordinate") }}</span>
  2421. <el-input v-model="parameterObj.nmlParam.z_moment_center"></el-input>
  2422. </li>
  2423. </el-form>
  2424. <div
  2425. slot="footer"
  2426. class="dialog-footer"
  2427. >
  2428. <el-button @click="dialog.reference_visiable = false">{{ $t("HCFD.file.cancel")}} </el-button>
  2429. <el-button
  2430. type="primary"
  2431. @click="hcfdparam(); dialog.reference_visiable = false"
  2432. >{{ $t("HCFD.file.ok")}}</el-button>
  2433. </div>
  2434. </el-dialog>
  2435. <!-- 线性方程组求解参数 -->
  2436. <el-dialog
  2437. class="lg-Solution"
  2438. :visible.sync="dialog.xian_visiable"
  2439. :close-on-click-modal="false"
  2440. @close='activecleer()'
  2441. v-if="active=='four2-0'"
  2442. :modal='false'
  2443. custom-class='dialoglocation dialog_color'
  2444. width="385px"
  2445. v-draggable
  2446. v-draggleft=[styX.left]
  2447. >
  2448. <div
  2449. slot="title"
  2450. class=dialog_header
  2451. >
  2452. <el-image
  2453. class="imge"
  2454. :src="q3"
  2455. fit="cover"
  2456. />
  2457. <span class="text-color">{{$t('HCFD.solution.linearSol')}}</span>
  2458. </div>
  2459. <el-form>
  2460. <li class="disflex liitem liangf ">
  2461. <span class="formLabelWidth8">
  2462. {{ $t("HCFD.solution.meanflow") }}
  2463. </span>
  2464. <el-input
  2465. class="inpw75"
  2466. size="mini"
  2467. v-model="parameterObj.nmlParam.meanflow_sweeps"
  2468. ></el-input>
  2469. </li>
  2470. <li class="disflex liitem liangf ">
  2471. <span class="formLabelWidth8">
  2472. {{ $t("HCFD.solution.turbulence") }}
  2473. </span>
  2474. <el-input
  2475. class="inpw75"
  2476. size="mini"
  2477. v-model="parameterObj.nmlParam.turbulence_sweeps"
  2478. ></el-input>
  2479. </li>
  2480. <el-form-item
  2481. :label="$t('HCFD.solution.gcr')"
  2482. :label-width="formLabelWidth61"
  2483. class="iemradio"
  2484. >
  2485. <el-radio-group v-model="parameterObj.nmlParam.line_implicit">
  2486. <el-radio label="off">Off</el-radio>
  2487. <el-radio
  2488. label="on"
  2489. class="radiooff"
  2490. >On</el-radio>
  2491. </el-radio-group>
  2492. </el-form-item>
  2493. </el-form>
  2494. <div
  2495. slot="footer"
  2496. class="dialog-footer"
  2497. >
  2498. <el-button @click="referencevisiable((dialog.xian_visiable = false))">{{ $t("HCFD.file.cancel")}} </el-button>
  2499. <el-button
  2500. type="primary"
  2501. @click="hcfdparam(); dialog.xian_visiable = false"
  2502. >{{ $t("HCFD.file.ok")}} </el-button>
  2503. </div>
  2504. </el-dialog>
  2505. <!-- 初始化 -->
  2506. <el-dialog
  2507. class="lg-y-z"
  2508. :visible.sync="dialog.initialization_visiable "
  2509. :close-on-click-modal="false"
  2510. @close='activecleer()'
  2511. v-if="active=='four2-10'"
  2512. :modal='false'
  2513. custom-class='dialoglocation dialog_color'
  2514. width="385px"
  2515. v-draggable
  2516. v-draggleft=[styX.left]
  2517. >
  2518. <div
  2519. slot="title"
  2520. class=dialog_header
  2521. >
  2522. <el-image
  2523. class="imge"
  2524. :src="q4"
  2525. fit="cover"
  2526. />
  2527. <span class="text-color">{{$t('HCFD.solution.initialization')}}</span>
  2528. </div>
  2529. <el-form>
  2530. <div class="radio_text text_color liangf radiogroup ">
  2531. <el-radio-group
  2532. v-model="initialization"
  2533. size="mini"
  2534. >
  2535. <el-radio
  2536. label="freestreams"
  2537. style="flex:1"
  2538. >{{
  2539. $t("HCFD.solution.freestreams")
  2540. }}</el-radio>
  2541. <el-radio
  2542. label="specified"
  2543. style="flex:1"
  2544. >{{
  2545. $t("HCFD.solution.specified")
  2546. }}</el-radio>
  2547. </el-radio-group>
  2548. </div>
  2549. <div v-if="initialization=='specified'">
  2550. <div class="line">
  2551. <div class="linetext">属性</div>
  2552. </div>
  2553. <el-form-item
  2554. label="区域数量"
  2555. :label-width="formLabelWidth2"
  2556. >
  2557. <el-input
  2558. v-model="form.name"
  2559. autocomplete="off"
  2560. ></el-input>
  2561. </el-form-item>
  2562. <div class="selecr">
  2563. <el-form-item
  2564. label=" 区域类型"
  2565. :label-width="formLabelWidth2"
  2566. >
  2567. <el-select
  2568. @change="changest"
  2569. v-model="loadval"
  2570. placeholder="请选择"
  2571. >
  2572. <el-option
  2573. v-for="item in loadlist"
  2574. :key="item.value"
  2575. :label="item.name"
  2576. :value="item.value"
  2577. >
  2578. </el-option>
  2579. </el-select>
  2580. </el-form-item>
  2581. <div v-if="loadval=='0'">
  2582. <el-form-item
  2583. label="顶点1"
  2584. :label-width="formLabelWidth2"
  2585. >
  2586. <el-input
  2587. v-model="form.name"
  2588. autocomplete="off"
  2589. ></el-input>
  2590. </el-form-item>
  2591. <el-form-item
  2592. label="顶点2"
  2593. :label-width="formLabelWidth2"
  2594. >
  2595. <el-input
  2596. v-model="form.name"
  2597. autocomplete="off"
  2598. ></el-input>
  2599. </el-form-item>
  2600. </div>
  2601. <div v-if="loadval=='1'">
  2602. <el-form-item
  2603. label="球心"
  2604. :label-width="formLabelWidth2"
  2605. >
  2606. <el-input
  2607. v-model="form.name"
  2608. autocomplete="off"
  2609. ></el-input>
  2610. </el-form-item>
  2611. <el-form-item
  2612. label="半径"
  2613. :label-width="formLabelWidth2"
  2614. >
  2615. <el-input
  2616. v-model="form.name"
  2617. autocomplete="off"
  2618. ></el-input>
  2619. </el-form-item>
  2620. </div>
  2621. <div v-if="loadval=='2'">
  2622. <el-form-item
  2623. label="球心"
  2624. :label-width="formLabelWidth2"
  2625. >
  2626. <el-input
  2627. v-model="form.name"
  2628. autocomplete="off"
  2629. ></el-input>
  2630. </el-form-item>
  2631. <el-form-item
  2632. label="端点1"
  2633. :label-width="formLabelWidth2"
  2634. >
  2635. <el-input
  2636. v-model="form.name"
  2637. autocomplete="off"
  2638. ></el-input>
  2639. </el-form-item>
  2640. <el-form-item
  2641. label="端点2"
  2642. :label-width="formLabelWidth2"
  2643. >
  2644. <el-input
  2645. v-model="form.name"
  2646. autocomplete="off"
  2647. ></el-input>
  2648. </el-form-item>
  2649. </div>
  2650. <div v-if="loadval=='2'">
  2651. <el-form-item
  2652. label="端点1"
  2653. :label-width="formLabelWidth2"
  2654. >
  2655. <el-input
  2656. v-model="form.name"
  2657. autocomplete="off"
  2658. ></el-input>
  2659. </el-form-item>
  2660. <el-form-item
  2661. label="半径1"
  2662. :label-width="formLabelWidth2"
  2663. >
  2664. <el-input
  2665. v-model="form.name"
  2666. autocomplete="off"
  2667. ></el-input>
  2668. </el-form-item>
  2669. <el-form-item
  2670. label="端点2"
  2671. :label-width="formLabelWidth2"
  2672. >
  2673. <el-input
  2674. v-model="form.name"
  2675. autocomplete="off"
  2676. ></el-input>
  2677. </el-form-item>
  2678. <el-form-item
  2679. label="半径2"
  2680. :label-width="formLabelWidth2"
  2681. >
  2682. <el-input
  2683. v-model="form.name"
  2684. autocomplete="off"
  2685. ></el-input>
  2686. </el-form-item>
  2687. </div>
  2688. </div>
  2689. <div class="line">
  2690. <div class="linetext">区域变量</div>
  2691. </div>
  2692. <el-form-item
  2693. label="无量纲密度"
  2694. :label-width="formLabelWidth7"
  2695. >
  2696. <el-input
  2697. v-model="form.name"
  2698. autocomplete="off"
  2699. ></el-input>
  2700. </el-form-item>
  2701. <el-form-item
  2702. label="无量纲声速"
  2703. :label-width="formLabelWidth7"
  2704. >
  2705. <el-input
  2706. v-model="form.name"
  2707. autocomplete="off"
  2708. ></el-input>
  2709. </el-form-item>
  2710. <el-form-item
  2711. label="X方向无量纲速度分量"
  2712. :label-width="formLabelWidth7"
  2713. >
  2714. <el-input
  2715. v-model="form.name"
  2716. autocomplete="off"
  2717. ></el-input>
  2718. </el-form-item>
  2719. <el-form-item
  2720. label="Y方向无量纲速度分量"
  2721. :label-width="formLabelWidth7"
  2722. >
  2723. <el-input
  2724. v-model="form.name"
  2725. autocomplete="off"
  2726. ></el-input>
  2727. </el-form-item>
  2728. <el-form-item
  2729. label="Z方向无量纲速度分量"
  2730. :label-width="formLabelWidth7"
  2731. >
  2732. <el-input
  2733. v-model="form.name"
  2734. autocomplete="off"
  2735. ></el-input>
  2736. </el-form-item>
  2737. </div>
  2738. </el-form>
  2739. <div
  2740. slot="footer"
  2741. class="dialog-footer"
  2742. >
  2743. <el-button @click="dialog.initialization_visiable = false">{{ $t("HCFD.file.cancel")}} </el-button>
  2744. <el-button
  2745. type="primary"
  2746. @click="hcfdparam(); dialog.initialization_visiable = false"
  2747. >{{ $t("HCFD.file.ok")}}</el-button>
  2748. </div>
  2749. </el-dialog>
  2750. <!-- 运行控制Run Control -->
  2751. <el-dialog
  2752. :visible.sync="dialog.runc_visiable"
  2753. :close-on-click-modal="false"
  2754. @close='activecleer()'
  2755. v-if="active=='four3-0'"
  2756. :modal='false'
  2757. custom-class='dialoglocation dialog_color'
  2758. width="385px"
  2759. v-draggable
  2760. v-draggleft=[styX.left]
  2761. >
  2762. <div
  2763. slot="title"
  2764. class=dialog_header
  2765. >
  2766. <el-image
  2767. class="imge"
  2768. :src="q5"
  2769. fit="cover"
  2770. />
  2771. <span class="text-color">{{$t('HCFD.solution.run')}}</span>
  2772. </div>
  2773. <el-form class="lg-form text_color">
  2774. <el-form-item
  2775. :label="$t('HCFD.solution.iterNum')"
  2776. :label-width="formLabelWidth6"
  2777. >
  2778. <el-input
  2779. v-model="parameterObj.nmlParam.steps"
  2780. autocomplete="off"
  2781. ></el-input>
  2782. </el-form-item>
  2783. <el-form-item
  2784. :label="$t('HCFD.solution.stopToler')"
  2785. :label-width="formLabelWidth6"
  2786. >
  2787. <el-input
  2788. v-model="parameterObj.nmlParam.stopping_tolerance"
  2789. autocomplete="off"
  2790. ></el-input>
  2791. </el-form-item>
  2792. <el-form-item
  2793. :label="$t('HCFD.solution.writeFreq')"
  2794. :label-width="formLabelWidth6"
  2795. >
  2796. <el-input
  2797. v-model="parameterObj.nmlParam.restart_write_freq"
  2798. autocomplete="off"
  2799. ></el-input>
  2800. </el-form-item>
  2801. <el-form-item
  2802. :label="$t('HCFD.solution.evaluate')"
  2803. :label-width="formLabelWidth6"
  2804. >
  2805. <el-input
  2806. v-model="parameterObj.nmlParam.jacobian_eval_freq"
  2807. autocomplete="off"
  2808. ></el-input>
  2809. </el-form-item>
  2810. <el-form-item
  2811. :label="$t('HCFD.solution.Restart')"
  2812. :label-width="formLabelWidth6"
  2813. class="iemradio"
  2814. >
  2815. <el-radio-group
  2816. class="inpw35"
  2817. v-model="parameterObj.nmlParam.restart_read"
  2818. >
  2819. <el-radio label="off">Off</el-radio>
  2820. <el-radio label="on" class="radiooff">On</el-radio>
  2821. </el-radio-group>
  2822. </el-form-item>
  2823. <!-- <el-button type="info" @click="hcfdparam()"> 运行</el-button> -->
  2824. </el-form>
  2825. <div
  2826. slot="footer"
  2827. class="dialog-footer"
  2828. >
  2829. <el-button @click="runcvisiable()"> {{ $t("HCFD.file.cancel")}} </el-button>
  2830. <el-button
  2831. type="primary"
  2832. @click="Runsolve()"
  2833. >{{ $t("HCFD.file.ok")}}</el-button>
  2834. </div>
  2835. </el-dialog>
  2836. <!-- 物面输出 -->
  2837. <el-dialog
  2838. :visible.sync="dialog.boundaryo_visiable"
  2839. :close-on-click-modal="false"
  2840. @close='activecleer()'
  2841. class="Conditions lg-out-h"
  2842. v-if="active=='four3-1'"
  2843. :modal='false'
  2844. custom-class='dialoglocation dialog_color'
  2845. width="385px"
  2846. v-draggable
  2847. v-draggleft=[styX.left]
  2848. >
  2849. <div
  2850. slot="title"
  2851. class=dialog_header
  2852. >
  2853. <el-image
  2854. class="imge"
  2855. :src="q6"
  2856. fit="cover"
  2857. />
  2858. <span class="text-color">{{$t('HCFD.solution.bounOut')}}</span>
  2859. </div>
  2860. <el-form>
  2861. <div class="selecr">
  2862. <el-form-item
  2863. label=" 特征"
  2864. :label-width="formLabelWidth2"
  2865. >
  2866. <el-select
  2867. @change="changest"
  2868. v-model="objectplaneval"
  2869. placeholder="请选择"
  2870. >
  2871. <el-option
  2872. v-for="item in objectplanelist"
  2873. :key="item.value"
  2874. :label="item.name"
  2875. :value="item.value"
  2876. >
  2877. </el-option>
  2878. </el-select>
  2879. </el-form-item>
  2880. </div>
  2881. <div v-if="objectplaneval=='0'">
  2882. <el-form-item
  2883. :label=" $t('HCFD.solution.outputfreq')"
  2884. :label-width="formLabelWidth2"
  2885. >
  2886. <el-input
  2887. v-model="parameterObj.nmlParam.animation_freq"
  2888. autocomplete="off"
  2889. ></el-input>
  2890. </el-form-item>
  2891. </div>
  2892. <div v-else>
  2893. <el-form-item
  2894. :label=" $t('HCFD.solution.outputfreq')"
  2895. :label-width="formLabelWidth2"
  2896. >
  2897. <el-input
  2898. v-model="parameterObj.nmlParam.volume_animation_freq"
  2899. autocomplete="off"
  2900. ></el-input>
  2901. </el-form-item>
  2902. </div>
  2903. <div class="line">
  2904. <div class="linetext">{{ $t("HCFD.solution.Variables")}}</div>
  2905. </div>
  2906. <div v-if="objectplaneval=='0'">
  2907. <el-checkbox
  2908. :indeterminate="Solution.boundaryout.isIndeterminate"
  2909. v-model="Solution.boundaryout.checkAll"
  2910. @change="solutionbCheckAllChange"
  2911. >{{ $t("HCFD.solution.all")}}</el-checkbox>
  2912. <div class="displanblock">
  2913. <el-checkbox v-model="parameterObj.nmlParam.a_u">
  2914. {{ $t("HCFD.solution.Xcomponent")}}</el-checkbox>
  2915. <el-checkbox v-model="parameterObj.nmlParam.a_v">{{ $t("HCFD.solution.Ycomponent")}}</el-checkbox>
  2916. <el-checkbox v-model="parameterObj.nmlParam.a_w">{{ $t("HCFD.solution.Zcomponent")}}</el-checkbox>
  2917. <el-checkbox v-model="parameterObj.nmlParam.a_p">{{ $t("HCFD.solution.Press")}}</el-checkbox>
  2918. <el-checkbox v-model="parameterObj.nmlParam.a_cp">{{ $t("HCFD.solution.presscoefficient")}}</el-checkbox>
  2919. <el-checkbox v-model="parameterObj.nmlParam.a_mach">{{ $t("HCFD.solution.mnumber")}}</el-checkbox>
  2920. <el-checkbox v-model="parameterObj.nmlParam.a_vort_mag">{{ $t("HCFD.solution.magnitude")}}</el-checkbox>
  2921. <el-checkbox v-model="parameterObj.nmlParam.a_vort_x ">{{ $t("HCFD.solution.Xvorticity")}}</el-checkbox>
  2922. <el-checkbox v-model="parameterObj.nmlParam.a_vort_y">{{ $t("HCFD.solution.Yvorticity")}}</el-checkbox>
  2923. <el-checkbox v-model="parameterObj.nmlParam.a_vort_z ">{{ $t("HCFD.solution.Zvorticity")}}</el-checkbox>
  2924. <el-checkbox v-model="parameterObj.nmlParam.a_q_criterion">{{ $t("HCFD.solution.Criterion")}}</el-checkbox>
  2925. </div>
  2926. </div>
  2927. <div v-else>
  2928. <el-checkbox
  2929. :indeterminate="Solution.volumout.isIndeterminate"
  2930. v-model="Solution.volumout.checkAll"
  2931. @change="solutionvCheckAllChange"
  2932. >{{ $t("HCFD.solution.all")}}</el-checkbox>
  2933. <div class="displanblock">
  2934. <el-checkbox v-model="parameterObj.nmlParam.v_u">{{ $t("HCFD.solution.Xcomponent")}}</el-checkbox>
  2935. <el-checkbox v-model="parameterObj.nmlParam.v_v ">{{ $t("HCFD.solution.Ycomponent")}}</el-checkbox>
  2936. <el-checkbox v-model="parameterObj.nmlParam.v_w">{{ $t("HCFD.solution.Zcomponent")}}</el-checkbox>
  2937. <el-checkbox v-model="parameterObj.nmlParam.v_p ">{{ $t("HCFD.solution.Press")}}</el-checkbox>
  2938. <el-checkbox v-model="parameterObj.nmlParam.v_cp">{{ $t("HCFD.solution.presscoefficient")}}</el-checkbox>
  2939. <el-checkbox v-model="parameterObj.nmlParam.v_mach">{{ $t("HCFD.solution.mnumber")}}</el-checkbox>
  2940. <el-checkbox v-model="parameterObj.nmlParam.v_vort_mag">{{ $t("HCFD.solution.magnitude")}}</el-checkbox>
  2941. <el-checkbox v-model="parameterObj.nmlParam.v_vort_x ">{{ $t("HCFD.solution.Xvorticity")}}</el-checkbox>
  2942. <el-checkbox v-model="parameterObj.nmlParam.v_vort_y">{{ $t("HCFD.solution.Yvorticity")}}</el-checkbox>
  2943. <el-checkbox v-model="parameterObj.nmlParam.v_vort_z ">{{ $t("HCFD.solution.Zvorticity")}}</el-checkbox>
  2944. <el-checkbox v-model="parameterObj.nmlParam.v_q_criterion">{{ $t("HCFD.solution.Criterion")}}</el-checkbox>
  2945. </div>
  2946. </div>
  2947. </el-form>
  2948. <div
  2949. slot="footer"
  2950. class="dialog-footer"
  2951. >
  2952. <el-button @click="referencevisiable(dialog.boundaryo_visiable = false)">{{ $t("HCFD.file.cancel")}} </el-button>
  2953. <el-button
  2954. type="primary"
  2955. @click="hcfdparam(); dialog.boundaryo_visiable = false"
  2956. >{{ $t("HCFD.file.ok")}}</el-button>
  2957. </div>
  2958. </el-dialog>
  2959. <!-- 流场输出 -->
  2960. <el-dialog
  2961. class="lg-y-z"
  2962. :title="$t('HCFD.solution.specialPara')"
  2963. :visible.sync="dialog.specialp_visiable"
  2964. :close-on-click-modal="false"
  2965. @close='activecleer()'
  2966. v-if="active=='four4-0'"
  2967. :modal='false'
  2968. custom-class='dialoglocation dialog_color'
  2969. width="385px"
  2970. v-draggable
  2971. v-draggleft=[styX.left]
  2972. >
  2973. <el-form>
  2974. <el-radio-group v-model="parameterObj.nmlParam.large_angle_fix">
  2975. <el-radio label="off">Off</el-radio>
  2976. <el-radio label="on">On</el-radio>
  2977. </el-radio-group>
  2978. </el-form>
  2979. <div
  2980. slot="footer"
  2981. class="dialog-footer"
  2982. >
  2983. <el-button @click="referencevisiable((dialog.specialp_visiable = false))">{{ $t("HCFD.file.cancel")}} </el-button>
  2984. <el-button
  2985. type="primary"
  2986. @click="dialog.specialp_visiable = false"
  2987. >{{ $t("HCFD.file.ok")}}</el-button>
  2988. </div>
  2989. </el-dialog>
  2990. <el-dialog
  2991. title="Swap Y-Z Axres"
  2992. :visible.sync="dialog.swap_visiable"
  2993. class="lg-y-z"
  2994. :close-on-click-modal="false"
  2995. @close='activecleer()'
  2996. v-if="active=='four4-1'"
  2997. :modal='false'
  2998. custom-class='dialoglocation dialog_color'
  2999. width="385px"
  3000.  
  3001. v-draggable
  3002. v-draggleft=[styX.left]
  3003. >
  3004. <el-form>
  3005. <el-radio-group v-model="parameterObj.nmlParam.swap_yz_axes">
  3006. <el-radio label="false">Off</el-radio>
  3007. <el-radio label="true">On</el-radio>
  3008. </el-radio-group>
  3009. </el-form>
  3010. <div
  3011. slot="footer"
  3012. class="dialog-footer"
  3013. >
  3014. <el-button @click="referencevisiable((dialog.swap_visiable = false))"> {{ $t("HCFD.file.cancel")}} </el-button>
  3015. <el-button
  3016. type="primary"
  3017. @click="dialog.swap_visiable = false"
  3018. >{{ $t("HCFD.file.ok")}}</el-button>
  3019. </div>
  3020. </el-dialog>
  3021. <!-- 资源选择 -->
  3022. <el-dialog
  3023. :close-on-click-modal="false"
  3024. @close='activecleer()'
  3025. :title="$t('HCFD.solution.Resource')"
  3026. :visible.sync="dialog.ziyuan"
  3027. width="45%"
  3028. class="dialog"
  3029. custom-class='dialog_color'
  3030. >
  3031. <el-form>
  3032. <el-table
  3033. :data="ziyprojects"
  3034. border
  3035. :row-key="getRowKeys"
  3036. height="250"
  3037. row-class-name='table-color'
  3038. ref="multipleTable"
  3039. @selection-change="ziySelectionChange"
  3040. @select="ziySelectionSelect"
  3041. size="mini"
  3042. :fit="true"
  3043. >
  3044. <el-table-column
  3045. type="selection"
  3046. label="选择"
  3047. :reserve-selection="true"
  3048. />
  3049. <el-table-column
  3050. property="id"
  3051. label="ID"
  3052. />
  3053. <el-table-column
  3054. property="resIp"
  3055. label="资源内网IP"
  3056. />
  3057. <el-table-column
  3058. property="resShortname"
  3059. label="资源简称"
  3060. />
  3061. </el-table>
  3062. </el-form>
  3063. <div class="pagination">
  3064. <Pagination
  3065. :pagination-config="paginationConfig"
  3066. @putPagination="getPagination"
  3067. ></Pagination>
  3068. </div>
  3069. <div
  3070. slot="footer"
  3071. class="dialog-footer"
  3072. >
  3073. <el-button @click="dialog.ziyuan = false"> {{ $t("HCFD.file.cancel")}} </el-button>
  3074. <el-button
  3075. type="primary"
  3076. @click='resourceOK()'
  3077. >{{ $t("HCFD.file.ok")}} </el-button>
  3078. </div>
  3079. </el-dialog>
  3080. <!-- 表面网格 -->
  3081. <el-dialog
  3082. :visible.sync="dialog.SurfaceGrid_visiable"
  3083. class="lg-y-z"
  3084. :close-on-click-modal="false"
  3085. :modal-append-to-body="false"
  3086. :append-to-body="false"
  3087. @close='activecleer()'
  3088. v-if="active=='five-0'"
  3089. :modal='false'
  3090. custom-class='dialoglocation dialog_color'
  3091. width="385px"
  3092.  
  3093. v-draggable
  3094. v-draggleft=[styX.left]
  3095. >
  3096. <div
  3097. slot="title"
  3098. class=dialog_header
  3099. >
  3100. <el-image
  3101. class="imge"
  3102. :src="j1"
  3103. fit="cover"
  3104. />
  3105. <span class="text-color">{{$t('HCFD.results.Surfacegrid')}}</span>
  3106. </div>
  3107. <div class="flexpad30">
  3108. <div class="selecr">
  3109. <el-form>
  3110. <el-form-item
  3111. :label="$t('HCFD.results.steps') "
  3112. :label-width="formLabelWidth2"
  3113. >
  3114. <el-select
  3115. size="mini"
  3116. v-model="bStep"
  3117. @change="bStepChange"
  3118. placeholder="请选择"
  3119. >
  3120. <el-option
  3121. v-for="setep in boundaryStep"
  3122. :key="setep"
  3123. :label="setep"
  3124. :value="setep"
  3125. >
  3126. </el-option>
  3127. </el-select>
  3128. </el-form-item>
  3129. </el-form>
  3130. </div>
  3131. </div>
  3132. <div
  3133. slot="footer"
  3134. class="dialog-footer"
  3135. >
  3136. <el-button @click="dialog.SurfaceGrid_visiable = false">{{ $t("HCFD.file.cancel")}} </el-button>
  3137. <el-button
  3138. type="primary"
  3139. @click="bStepok('ResultImport','','');dialog.SurfaceGrid_visiable = false"
  3140. >{{ $t("HCFD.file.ok")}}</el-button>
  3141. </div>
  3142. </el-dialog>
  3143. <!-- 流场数据 -->
  3144. <el-dialog
  3145. :visible.sync="dialog.VolumeGrid_visiable"
  3146. class="lg-y-z"
  3147. :close-on-click-modal="false"
  3148. @close='activecleer()'
  3149. v-if="active=='five-1'"
  3150. :modal='false'
  3151. custom-class='dialoglocation dialog_color'
  3152. width="385px"
  3153. v-draggable
  3154. v-draggleft=[styX.left]
  3155. >
  3156. <div
  3157. slot="title"
  3158. class=dialog_header
  3159. >
  3160. <el-image
  3161. class="imge"
  3162. :src="j2"
  3163. fit="cover"
  3164. />
  3165. <span class="text-color">{{$t('HCFD.results.volume')}}</span>
  3166. </div>
  3167. <div class="selecr">
  3168. <el-form>
  3169. <el-form-item
  3170. :label="$t('HCFD.results.steps') "
  3171. :label-width="formLabelWidth2"
  3172. >
  3173. <el-select
  3174. size="mini"
  3175. v-model="vStep"
  3176. @change="vStepChange"
  3177. placeholder="请选择"
  3178. >
  3179. <el-option
  3180. v-for="setep in volumStep"
  3181. :key="setep"
  3182. :label="setep"
  3183. :value="setep"
  3184. >
  3185. </el-option>
  3186. </el-select>
  3187. </el-form-item>
  3188. <!-- <el-form-item :label="$t('HCFD.results.scalar') " :label-width="formLabelWidth2">
  3189. <el-select size="mini" v-model="vSalar" placeholder="请选择">
  3190. <el-option
  3191. v-for="scalar in volumScalars"
  3192. :key="scalar"
  3193. :label="scalar"
  3194. :value="scalar"
  3195. >
  3196. </el-option>
  3197. </el-select>
  3198. </el-form-item> -->
  3199. <!-- <div>
  3200. <li class="disflex lheig34 liitem">
  3201. <span class="span100 marb5 formLabelWidth15">{{ $t("HCFD.results.vector")}} </span>
  3202. <el-checkbox checked>Velocity</el-checkbox>
  3203. </li>
  3204. <el-form-item :label=" $t('HCFD.results.contour')" :label-width="formLabelWidth2">
  3205. <el-input-number v-model="Volumenum" @change="VolumenumChange" :min="1" :max="10" label="描述文字"></el-input-number>
  3206. </el-form-item>
  3207. <li class="disflex lheig34 liitem">
  3208. <span class="span100 marb5 formLabelWidth15">{{ $t("HCFD.results.show")}}</span>
  3209. <el-checkbox-group v-model="velementCheckeds" style="display:flex">
  3210. <el-checkbox
  3211. label="Mesh"
  3212. @change="ContourvalVolume('Mesh')"
  3213. ></el-checkbox>
  3214. <el-checkbox
  3215. label="Contour"
  3216. @change="ContourvalVolume('Contour')"
  3217. ></el-checkbox>
  3218. </el-checkbox-group>
  3219. </li>
  3220. </div> -->
  3221. <!-- <el-button
  3222. type="primary"
  3223. size="mini"
  3224. style="margin:30px 0 30px 40%"
  3225. @click="showVolume()"
  3226. >{{ $t("HCFD.results.ShowVolume")}}</el-button
  3227. > -->
  3228. </el-form>
  3229. </div>
  3230. <div
  3231. slot="footer"
  3232. class="dialog-footer"
  3233. >
  3234. <el-button @click="dialog.VolumeGrid_visiable = false">{{ $t("HCFD.file.cancel")}}</el-button>
  3235. <el-button
  3236. type="primary"
  3237. @click="bStepok('ResultImport','',''); dialog.VolumeGrid_visiable = false"
  3238. >{{ $t("HCFD.file.ok")}}</el-button>
  3239. </div>
  3240. </el-dialog>
  3241. <!--轮廓显示 Contour Displsy-->
  3242. <el-dialog
  3243. :visible.sync="dialog.contour_visiable"
  3244. v-if="active=='five7-0'"
  3245. :modal='false'
  3246. :close-on-click-modal="false"
  3247. @close='activecleer()'
  3248. custom-class='dialoglocation dialog_color'
  3249. width="385px"
  3250. v-draggable
  3251. v-draggleft=[styX.left]
  3252. >
  3253. <div
  3254. slot="title"
  3255. class=dialog_header
  3256. >
  3257. <el-image
  3258. class="imge"
  3259. :src="p3"
  3260. fit="cover"
  3261. />
  3262. <span class="text-color">轮廓显示</span>
  3263. </div>
  3264. <el-form>
  3265. <div class="line">
  3266. <div class="linetext">轮廓</div>
  3267. </div>
  3268. <div class="Squareline selecr">
  3269. <el-form-item
  3270. label="名称"
  3271. :label-width="formLabelWidth2"
  3272. >
  3273. <el-input
  3274. v-model="outlineobj.scalarName"
  3275. autocomplete="off"
  3276. ></el-input>
  3277. </el-form-item>
  3278. <el-form-item
  3279. label="类型"
  3280. :label-width="formLabelWidth2"
  3281. >
  3282. <el-input
  3283. v-model="outlineobj.leixing"
  3284. autocomplete="off"
  3285. ></el-input>
  3286. </el-form-item>
  3287. <el-form-item
  3288. :label="$t('HCFD.results.scalar') "
  3289. :label-width="formLabelWidth2"
  3290. >
  3291. <el-select
  3292. size="mini"
  3293. v-model="vSalar"
  3294. placeholder="select boundary"
  3295. @change="bmScalarschange()"
  3296. >
  3297. <el-option
  3298. v-for="scalar in outlineobj.bmScalars"
  3299. :key="scalar"
  3300. :label="scalar"
  3301. :value="scalar"
  3302. >
  3303. </el-option>
  3304. </el-select>
  3305. </el-form-item>
  3306. </div>
  3307. <div class="line">
  3308. <div class="linetext"> 标量集</div>
  3309. </div>
  3310. <el-form-item
  3311. label="level"
  3312. :label-width="formLabelWidth2"
  3313. >
  3314. <el-input
  3315. v-model="outlineobj.level"
  3316. autocomplete="off"
  3317. ></el-input>
  3318. </el-form-item>
  3319. <!-- @change="ContourvalVolume('Mesh')" @change="ContourvalVolume('Contour')" -->
  3320. <!-- <div class="disflex lheig34 liitem">
  3321. <el-checkbox-group v-model="velementCheckeds" style="display:flex">
  3322. <el-checkbox
  3323. label="Horizontal"
  3324. ></el-checkbox>
  3325. <el-checkbox
  3326. label="Velocity"
  3327. ></el-checkbox>
  3328. </el-checkbox-group>
  3329. </div> -->
  3330. <div class="line">
  3331. <div class="linetext"> 范围</div>
  3332. </div>
  3333. <el-form-item
  3334. label="最大范围"
  3335. :label-width="formLabelWidth2"
  3336. >
  3337. <el-input
  3338. v-model="outlineobj.range1"
  3339. autocomplete="off"
  3340. ></el-input>
  3341. </el-form-item>
  3342. <el-form-item
  3343. label="最小范围"
  3344. :label-width="formLabelWidth2"
  3345. >
  3346. <el-input
  3347. v-model="outlineobj.range0"
  3348. autocomplete="off"
  3349. ></el-input>
  3350. </el-form-item>
  3351. </el-form>
  3352. <div
  3353. slot="footer"
  3354. class="dialog-footer"
  3355. >
  3356. <el-button @click="dialog.contour_visiable= false">{{ $t("HCFD.file.cancel")}}</el-button>
  3357. <el-button
  3358. type="primary"
  3359. @click="changeblur();dialog.contour_visiable = false"
  3360. >{{ $t("HCFD.file.ok")}}</el-button>
  3361. </div>
  3362. </el-dialog>
  3363. <!--线条显示 Line Displsy-->
  3364. <el-dialog
  3365. :visible.sync="dialog.Line_visiable"
  3366. v-if="active=='five7-1'"
  3367. :modal='false'
  3368. :close-on-click-modal="false"
  3369. @close='activecleer()'
  3370. custom-class='dialoglocation dialog_color'
  3371. width="385px"
  3372. v-draggable
  3373. v-draggleft=[styX.left]
  3374. >
  3375. <div
  3376. slot="title"
  3377. class=dialog_header
  3378. >
  3379. <el-image
  3380. class="imge"
  3381. :src="p9"
  3382. fit="cover"
  3383. />
  3384. <span class="text-color">线显示</span>
  3385. </div>
  3386. <el-form>
  3387. <div class="line">
  3388. <div class="linetext">线</div>
  3389. </div>
  3390. <div class="Squareline selecr">
  3391. <el-form-item
  3392. label="名称"
  3393. :label-width="formLabelWidth2"
  3394. >
  3395. <el-input
  3396. v-model="outlineobj.scalarName"
  3397. autocomplete="off"
  3398. ></el-input>
  3399. </el-form-item>
  3400. <el-form-item
  3401. label="类型"
  3402. :label-width="formLabelWidth2"
  3403. >
  3404. <el-input
  3405. v-model="outlineobj.leixing"
  3406. autocomplete="off"
  3407. ></el-input>
  3408. </el-form-item>
  3409. <el-form-item
  3410. :label="$t('HCFD.results.scalar') "
  3411. :label-width="formLabelWidth2"
  3412. >
  3413. <el-select
  3414. size="mini"
  3415. v-model="vSalar"
  3416. placeholder="select boundary"
  3417. @change="bmScalarschange()"
  3418. >
  3419. <el-option
  3420. v-for="scalar in outlineobj.bmScalars"
  3421. :key="scalar"
  3422. :label="scalar"
  3423. :value="scalar"
  3424. >
  3425. </el-option>
  3426. </el-select>
  3427. </el-form-item>
  3428. </div>
  3429. <div class="line">
  3430. <div class="linetext"> 标量集</div>
  3431. </div>
  3432. <el-form-item
  3433. label="level"
  3434. :label-width="formLabelWidth2"
  3435. >
  3436. <el-input
  3437. v-model="outlineobj.level"
  3438. autocomplete="off"
  3439. ></el-input>
  3440. </el-form-item>
  3441. <div class="line">
  3442. <div class="linetext"> 范围</div>
  3443. </div>
  3444. <el-form-item
  3445. label="最大范围"
  3446. :label-width="formLabelWidth2"
  3447. >
  3448. <el-input
  3449. v-model="outlineobj.range1"
  3450. autocomplete="off"
  3451. ></el-input>
  3452. </el-form-item>
  3453. <el-form-item
  3454. label="最小范围"
  3455. :label-width="formLabelWidth2"
  3456. >
  3457. <el-input
  3458. v-model="outlineobj.range0"
  3459. autocomplete="off"
  3460. ></el-input>
  3461. </el-form-item>
  3462. </el-form>
  3463. <div
  3464. slot="footer"
  3465. class="dialog-footer"
  3466. >
  3467. <el-button @click="dialog.Line_visiable= false">{{ $t("HCFD.file.cancel")}}</el-button>
  3468. <el-button
  3469. type="primary"
  3470. @click="vchangeblur(); dialog.Line_visiable = false"
  3471. >{{ $t("HCFD.file.ok")}}</el-button>
  3472. </div>
  3473. </el-dialog>
  3474. <!--Vector 矢量 -->
  3475. <el-dialog
  3476. :visible.sync="dialog.Vector_visiable"
  3477. v-if="active=='five7-2'"
  3478. :modal='false'
  3479. :close-on-click-modal="false"
  3480. @close='activecleer()'
  3481. custom-class='dialoglocation dialog_color'
  3482. width="385px"
  3483. v-draggable
  3484. v-draggleft=[styX.left]
  3485. >
  3486. <div
  3487. slot="title"
  3488. class=dialog_header
  3489. >
  3490. <el-image
  3491. class="imge"
  3492. :src="p4"
  3493. fit="cover"
  3494. />
  3495. <span class="text-color">矢量</span>
  3496. </div>
  3497. <el-form>
  3498. <div class="line">
  3499. <div class="linetext">矢量</div>
  3500. </div>
  3501. <div class="Squareline selecr">
  3502. <el-form-item
  3503. label="u"
  3504. :label-width="formLabelWidth2"
  3505. >
  3506. <el-select
  3507. size="mini"
  3508. v-model="vectorobj.dataU"
  3509. placeholder="select boundary"
  3510. >
  3511. <el-option
  3512. v-for="scalar in vectorobj.dataUarr"
  3513. :key="scalar"
  3514. :label="scalar"
  3515. :value="scalar"
  3516. >
  3517. </el-option>
  3518. </el-select>
  3519. </el-form-item>
  3520. <el-form-item
  3521. label="v"
  3522. :label-width="formLabelWidth2"
  3523. >
  3524. <el-select
  3525. size="mini"
  3526. v-model="vectorobj.dataV"
  3527. placeholder="select boundary"
  3528. >
  3529. <el-option
  3530. v-for="scalar in vectorobj.dataVarr"
  3531. :key="scalar"
  3532. :label="scalar"
  3533. :value="scalar"
  3534. >
  3535. </el-option>
  3536. </el-select>
  3537. </el-form-item>
  3538. <el-form-item
  3539. label="w"
  3540. :label-width="formLabelWidth2"
  3541. >
  3542. <el-select
  3543. size="mini"
  3544. v-model="vectorobj.dataW"
  3545. placeholder="select boundary"
  3546. >
  3547. <el-option
  3548. v-for="scalar in vectorobj.dataWarr"
  3549. :key="scalar"
  3550. :label="scalar"
  3551. :value="scalar"
  3552. >
  3553. </el-option>
  3554. </el-select>
  3555. </el-form-item>
  3556. </div>
  3557. <div class="line">
  3558. <div class="linetext"> 参数设置</div>
  3559. </div>
  3560. <el-form-item
  3561. label="标度因子"
  3562. :label-width="formLabelWidth2"
  3563. >
  3564. <el-input
  3565. v-model="vectorobj.scaleFactor"
  3566. autocomplete="off"
  3567. ></el-input>
  3568. </el-form-item>
  3569. </el-form>
  3570. <div
  3571. slot="footer"
  3572. class="dialog-footer"
  3573. >
  3574. <el-button @click="dialog.Vector_visiable= false">{{ $t("HCFD.file.cancel")}}</el-button>
  3575. <el-button
  3576. type="primary"
  3577. @click="vectorOK(); dialog.Vector_visiable = false"
  3578. >{{ $t("HCFD.file.ok")}}</el-button>
  3579. <!-- <el-button type="primary" @click="dialog.Vector_visiable = false"
  3580. >Apply</el-button
  3581. > -->
  3582. </div>
  3583. </el-dialog>
  3584. <!--Solid Surface实体表面 -->
  3585. <el-dialog
  3586. :visible.sync="dialog.Solid_Surface"
  3587. v-if="active=='five8-0'"
  3588. :modal='false'
  3589. :close-on-click-modal="false"
  3590. @close='activecleer()'
  3591. custom-class='dialoglocation dialog_color'
  3592. width="385px"
  3593. v-draggable
  3594. v-draggleft=[styX.left]
  3595. >
  3596. <div
  3597. slot="title"
  3598. class=dialog_header
  3599. >
  3600. <el-image
  3601. class="imge"
  3602. :src="p14"
  3603. fit="cover"
  3604. />
  3605. <span class="text-color">实体表面</span>
  3606. </div>
  3607. <el-form :model="form">
  3608. <div class="heigeinput">
  3609. <el-form-item label="颜色">
  3610. <div class="saninput titleinput"> R
  3611. <el-input
  3612. v-model="colorobj.R"
  3613. autocomplete="off"
  3614. ></el-input>G
  3615. <el-input
  3616. v-model="colorobj.G"
  3617. autocomplete="off"
  3618. ></el-input>B
  3619. <el-input
  3620. v-model="colorobj.B"
  3621. autocomplete="off"
  3622. ></el-input>
  3623. <el-color-picker
  3624. v-model="lineColor"
  3625. show-alpha
  3626. @change="colorchange()"
  3627. :predefine="predefineColors"
  3628. >
  3629. </el-color-picker>
  3630. </div>
  3631. </el-form-item>
  3632. <div class="yiinpu heigeinput">
  3633. <el-form-item
  3634. label="透明度"
  3635. :label-width="formLabelWidth2"
  3636. >
  3637. <el-input
  3638. v-model="colorobj.transparency"
  3639. autocomplete="off"
  3640. ></el-input>
  3641. <span style="width:80px">值范围0~1</span>
  3642. </el-form-item>
  3643. </div>
  3644. <div class="radio_text text_color liangf">
  3645. <div
  3646. class="classfelx"
  3647. style="text-align: center;"
  3648. >
  3649. <el-radio
  3650. v-model="colorobj.showHideState"
  3651. label="0"
  3652. >hide</el-radio>
  3653. </div>
  3654. <div class="classfelx">
  3655. <el-radio
  3656. v-model="colorobj.showHideState"
  3657. label="1"
  3658. >show</el-radio>
  3659. </div>
  3660. </div>
  3661. </div>
  3662. </el-form>
  3663. <div
  3664. slot="footer"
  3665. class="dialog-footer"
  3666. >
  3667. <el-button @click="dialog.Solid_Surface= false">{{ $t("HCFD.file.cancel")}}</el-button>
  3668. <el-button
  3669. type="primary"
  3670. @click="colorsolid();dialog.Solid_Surface= false "
  3671. >{{ $t("HCFD.file.ok")}}</el-button>
  3672. <!-- <el-button type="primary" @click="dialog.Solid_Surface = false"
  3673. >Apply</el-button
  3674. > -->
  3675. </div>
  3676. </el-dialog>
  3677. <!--Slice片 -->
  3678. <el-dialog
  3679. :visible.sync="dialog.Slice_Surface"
  3680. v-if="active=='five8-1'"
  3681. :modal='false'
  3682. :close-on-click-modal="false"
  3683. @close='activecleer()'
  3684. custom-class='dialoglocation dialog_color'
  3685. width="385px"
  3686. v-draggable
  3687. v-draggleft=[styX.left]
  3688. >
  3689. <div
  3690. slot="title"
  3691. class=dialog_header
  3692. >
  3693. <el-image
  3694. class="imge"
  3695. :src="p15"
  3696. fit="cover"
  3697. />
  3698. <span class="text-color">切片</span>
  3699. </div>
  3700. <el-form :model="form">
  3701. <div class="heigeinput">
  3702. <div class="listbtn">
  3703. <el-button
  3704. plain
  3705. class="anniu"
  3706. @click="addTab(editableTabsValue) "
  3707. >添加</el-button>
  3708. <el-button
  3709. plain
  3710. class="anniu"
  3711. @click="updata()"
  3712. >updata</el-button>
  3713. <el-button
  3714. plain
  3715. class="anniu"
  3716. @click="removeclear(editableTabsValue)"
  3717. >清除</el-button>
  3718. </div>
  3719. <el-tabs
  3720. v-model="editableTabsValue"
  3721. type="card"
  3722. closable
  3723. @tab-remove="removeTab"
  3724. @tab-click="handletabclick"
  3725. >
  3726. <el-tab-pane
  3727. v-for="ruleForm in editableTabs"
  3728. :key="ruleForm.index"
  3729. :label="ruleForm.index"
  3730. :name="ruleForm.index"
  3731. >
  3732. <!-- {{item.content}}:is=item.content -->
  3733. <Addtabs
  3734. ref="addtabs"
  3735. :variableNamearr1="variableNamearr"
  3736. :ruleForm="ruleForm"
  3737. ></Addtabs>
  3738. </el-tab-pane>
  3739. </el-tabs>
  3740. </div>
  3741. </el-form>
  3742. <div
  3743. slot="footer"
  3744. class="dialog-footer"
  3745. >
  3746. <el-button @click="dialog.Slice_Surface= false">{{ $t("HCFD.file.cancel")}}</el-button>
  3747. <el-button
  3748. type="primary"
  3749. @click=" liceOK();"
  3750. >{{ $t("HCFD.file.ok")}}</el-button>
  3751. <el-button
  3752. type="primary"
  3753. @click="dialog.Slice_Surface = false"
  3754. >Apply</el-button>
  3755. </div>
  3756. </el-dialog>
  3757. <!-- Stream流线 -->
  3758. <el-dialog
  3759. :visible.sync="dialog.Stream_Surface"
  3760. v-if="active=='five8-2'"
  3761. :modal='false'
  3762. :close-on-click-modal="false"
  3763. @close='activecleer()'
  3764. custom-class='dialoglocation dialog_color'
  3765. width="385px"
  3766. v-draggable
  3767. v-draggleft=[styX.left]
  3768. >
  3769. <div
  3770. slot="title"
  3771. class=dialog_header
  3772. >
  3773. <el-image
  3774. class="imge"
  3775. :src="p16"
  3776. fit="cover"
  3777. />
  3778. <span class="text-color">流线</span>
  3779. </div>
  3780. <el-form :model="form">
  3781. <div class="heigeinput">
  3782. <div class='selecttype'>
  3783. <span class="texttype">流线</span>
  3784. <div class='selecttype'>
  3785. <span class="texttype">矢量</span>
  3786. <div class="selecr">
  3787. <el-form-item
  3788. label="u"
  3789. :label-width="formLabelWidth4"
  3790. >
  3791. <el-select
  3792. size="mini"
  3793. v-model="streamobj.dataU"
  3794. placeholder="select boundary"
  3795. >
  3796. <el-option
  3797. v-for="scalar in streamobj.dataUarr"
  3798. :key="scalar"
  3799. :label="scalar"
  3800. :value="scalar"
  3801. >
  3802. </el-option>
  3803. </el-select>
  3804. </el-form-item>
  3805. <el-form-item
  3806. label="v"
  3807. :label-width="formLabelWidth4"
  3808. >
  3809. <el-select
  3810. size="mini"
  3811. v-model="streamobj.dataV"
  3812. placeholder="select boundary"
  3813. >
  3814. <el-option
  3815. v-for="scalar in streamobj.dataVarr"
  3816. :key="scalar"
  3817. :label="scalar"
  3818. :value="scalar"
  3819. >
  3820. </el-option>
  3821. </el-select>
  3822. </el-form-item>
  3823. <el-form-item
  3824. label="w"
  3825. :label-width="formLabelWidth4"
  3826. >
  3827. <el-select
  3828. size="mini"
  3829. v-model="streamobj.dataW"
  3830. placeholder="select boundary"
  3831. >
  3832. <el-option
  3833. v-for="scalar in streamobj.dataWarr"
  3834. :key="scalar"
  3835. :label="scalar"
  3836. :value="scalar"
  3837. >
  3838. </el-option>
  3839. </el-select>
  3840. </el-form-item>
  3841. </div>
  3842. <div class="listbtn">
  3843. <el-button
  3844. plain
  3845. class="anniu"
  3846. @click="CreateStream()"
  3847. >创建</el-button>
  3848. </div>
  3849. </div>
  3850. <div class='selecttype'>
  3851. <span class="texttype">seed</span>
  3852. <div class="listbtn"> <el-button
  3853. plain
  3854. class="anniu"
  3855. >选择</el-button></div>
  3856. <div class="listbtn"> <el-button
  3857. plain
  3858. class="anniu"
  3859. >删除最后一个</el-button></div>
  3860. <div class="listbtn"> <el-button
  3861. plain
  3862. class="anniu"
  3863. >删除全部</el-button></div>
  3864. </div>
  3865. <div class="selecr">
  3866. <div class="line">
  3867. <div class="linetext"> 方向</div>
  3868. </div>
  3869. <el-form-item
  3870. label="方向"
  3871. :label-width="formLabelWidth5"
  3872. >
  3873. <el-select
  3874. size="mini"
  3875. v-model="streamres.direction"
  3876. placeholder="select boundary"
  3877. >
  3878. <el-option
  3879. v-for="scalar in directionlist"
  3880. :key="scalar"
  3881. :label="scalar"
  3882. :value="scalar"
  3883. >
  3884. </el-option>
  3885. </el-select>
  3886. </el-form-item>
  3887. <div class="line">
  3888. <div class="linetext"> 样式</div>
  3889. </div>
  3890. <el-form-item
  3891. label="StreamStyle"
  3892. :label-width="formLabelWidth5"
  3893. >
  3894. <el-select
  3895. size="mini"
  3896. v-model="streamres.streamstyle"
  3897. placeholder="select boundary"
  3898. >
  3899. <el-option
  3900. v-for="scalar in streamstylelist"
  3901. :key="scalar"
  3902. :label="scalar"
  3903. :value="scalar"
  3904. >
  3905. </el-option>
  3906. </el-select>
  3907. </el-form-item>
  3908. <div class="line">
  3909. <div class="linetext"> intergration</div>
  3910. </div>
  3911. <el-form-item
  3912. label="InitialStep"
  3913. :label-width="formLabelWidth6"
  3914. >
  3915. <el-input
  3916. v-model="streamres.initialstep"
  3917. autocomplete="off"
  3918. ></el-input>
  3919. </el-form-item>
  3920. <el-form-item
  3921. label="MaxPropagation"
  3922. :label-width="formLabelWidth6"
  3923. >
  3924. <el-input
  3925. v-model="streamres.maxpropagation"
  3926. autocomplete="off"
  3927. ></el-input>
  3928. </el-form-item>
  3929. <el-form-item
  3930. label="MinimumStep"
  3931. :label-width="formLabelWidth6"
  3932. >
  3933. <el-input
  3934. v-model="streamres.minimumstep"
  3935. autocomplete="off"
  3936. ></el-input>
  3937. </el-form-item>
  3938. <div class="radio_text text_color liangf">
  3939. <div
  3940. class="classfelx"
  3941. style="text-align: center;"
  3942. >
  3943. <el-checkbox
  3944. v-model="streamres.showstate"
  3945. label="show"
  3946. ></el-checkbox>
  3947. </div>
  3948. <div class="classfelx">
  3949. <el-checkbox
  3950. v-model="streamres.toolstate"
  3951. label="tool"
  3952. ></el-checkbox>
  3953. </div>
  3954. </div>
  3955. </div>
  3956. </div>
  3957. </div>
  3958. </el-form>
  3959. <div
  3960. slot="footer"
  3961. class="dialog-footer"
  3962. >
  3963. <el-button @click="dialog.Stream_Surface= false">{{ $t("HCFD.file.cancel")}}</el-button>
  3964. <el-button
  3965. type="primary"
  3966. @click="streamOK();dialog.Stream_Surface= false"
  3967. >{{ $t("HCFD.file.ok")}}</el-button>
  3968. </div>
  3969. </el-dialog>
  3970. <!-- an_Animation -->
  3971. <el-dialog
  3972. :visible.sync="dialog.an_Animation"
  3973. :modal='false'
  3974. :close-on-click-modal="false"
  3975. custom-class='dialoglocation dialog_color'
  3976. width="385px"
  3977. v-draggable
  3978. v-draggleft=[styX.left]
  3979. >
  3980. <div
  3981. slot="title"
  3982. class=dialog_header
  3983. >
  3984. <el-image
  3985. class="imge"
  3986. :src="p17"
  3987. fit="cover"
  3988. />
  3989. <span class="text-color">动画</span>
  3990. </div>
  3991. <el-form :model="form">
  3992. <div class="heigeinput">
  3993. <div class="selecttype">
  3994. <span class="texttype">动画</span>
  3995. <el-form>
  3996. <el-form-item
  3997. :label="$t('HCFD.results.steps') "
  3998. :label-width="formLabelWidth2"
  3999. >
  4000. <el-select
  4001. size="mini"
  4002. v-model="animaval"
  4003. @change="animationclick"
  4004. placeholder="请选择"
  4005. style="width:100%"
  4006. >
  4007. <el-option
  4008. v-for="setep in classlist"
  4009. :key="setep.val"
  4010. :label="setep.titlie"
  4011. :value="setep.val"
  4012. >
  4013. </el-option>
  4014. </el-select>
  4015. </el-form-item>
  4016. </el-form>
  4017. <div class='selecttype'>
  4018. <span class="texttype">zoom</span>
  4019. <ul style="padding:0">
  4020. <li>
  4021. <el-checkbox-group v-model="checkList">
  4022. <el-checkbox
  4023. v-for="(item,key) in animationobj.zoomarr"
  4024. @change="zoomList(item,key)"
  4025. :key="key"
  4026. :label="item"
  4027. >{{item}}</el-checkbox>
  4028. </el-checkbox-group>
  4029. </li>
  4030. </ul>
  4031. </div>
  4032. <div class="yiinpu loadclass">
  4033. <el-button
  4034. plain
  4035. class="anniu"
  4036. @click="loadonclick()"
  4037. >Load</el-button>
  4038. <el-progress
  4039. :percentage="percentage"
  4040. v-if="!isNaN(parseInt(percentage))"
  4041. :stroke-width="5"
  4042. ></el-progress>
  4043. </div>
  4044. </div>
  4045. <div class="line">
  4046. <div class="linetext">通用场景</div>
  4047. </div>
  4048. <el-form-item
  4049. label="第一步"
  4050. :label-width="formLabelWidth2"
  4051. >
  4052. <el-input
  4053. v-model="animationobj.firststep"
  4054. autocomplete="off"
  4055. ></el-input>
  4056. </el-form-item>
  4057. <el-form-item
  4058. label="最后一步"
  4059. :label-width="formLabelWidth2"
  4060. >
  4061. <el-input
  4062. v-model="animationobj.laststep"
  4063. autocomplete="off"
  4064. ></el-input>
  4065. </el-form-item>
  4066. <el-form-item
  4067. label="当前步"
  4068. :label-width="formLabelWidth2"
  4069. >
  4070. <el-input
  4071. v-model="animationobj.currentstep"
  4072. autocomplete="off"
  4073. ></el-input>
  4074. </el-form-item>
  4075. <!-- <animation :animationobj='animationobj' :solverConfigid="solverConfigid" :action="animaval"></animation> -->
  4076. <div
  4077. class="block1"
  4078. style="dispaly:flex"
  4079. >
  4080. <div class="listbtn">
  4081. <el-button
  4082. plain
  4083. class="anniu"
  4084. @click="lowclick()"
  4085. >low</el-button>
  4086. <el-slider
  4087. :max='Number(animationobj.laststep)'
  4088. :min="Number(animationobj.firststep)"
  4089. :step="median"
  4090. v-model.number="value1"
  4091. @change="sliderchange"
  4092. style="width:50%;margin: 0 10px 0 15px;"
  4093. ></el-slider>
  4094. <el-button
  4095. plain
  4096. class="anniu"
  4097. @click="Quickclick()"
  4098. >Quick</el-button>
  4099. </div>
  4100. <div class="listbtn anbtn">
  4101. <el-button
  4102. plain
  4103. class="anniu"
  4104. @click="Startclick()"
  4105. >Start</el-button>
  4106. <el-button
  4107. plain
  4108. class="anniu"
  4109. @click="Lastclick();signnum=false;"
  4110. >Last</el-button>
  4111. <el-button
  4112. plain
  4113. class="anniu"
  4114. @click="Playstop()"
  4115. >Play/stop</el-button>
  4116. <el-button
  4117. plain
  4118. class="anniu"
  4119. @click="Nextclick();signnum=false;"
  4120. >Next</el-button>
  4121. <el-button
  4122. plain
  4123. class="anniu"
  4124. @click="Endclick();signnum=false;"
  4125. >End</el-button>
  4126. </div>
  4127. </div>
  4128. <!-- <div class="timeanmiantion">
  4129. <ul>
  4130. <li>Time<span>1</span></li>
  4131. <li style="flex:2;">
  4132. <el-form-item label="FileType" :label-width="formLabelWidth2">
  4133. <el-select v-model="fileTypeval" disabled placeholder="请选择">
  4134. <el-option
  4135. v-for="item in fileTypeli"
  4136. :key="item.value"
  4137. :label="item.name"
  4138. :value="item.value"
  4139. >
  4140. </el-option>
  4141. </el-select>
  4142. </el-form-item>
  4143. </li>
  4144. </ul>
  4145. </div> -->
  4146. </div>
  4147. </el-form>
  4148. <div
  4149. slot="footer"
  4150. class="dialog-footer"
  4151. >
  4152. <el-button @click="dialog.an_Animation= false">{{ $t("HCFD.file.cancel")}}</el-button>
  4153. <el-button
  4154. type="primary"
  4155. @click="dialog.an_Animation= false"
  4156. >{{ $t("HCFD.file.ok")}}</el-button>
  4157. <!-- <el-button type="primary" @click="dialog.an_Animation = false"
  4158. >Apply</el-button
  4159. > -->
  4160. </div>
  4161. </el-dialog>
  4162. <!--Curve Select曲线选择 -->
  4163. <el-dialog
  4164. :visible.sync="dialog.Curve_Select"
  4165. v-if="active=='five10-0'"
  4166. :modal='false'
  4167. :close-on-click-modal="false"
  4168. @close='activecleer()'
  4169. custom-class='dialoglocation dialog_color'
  4170. width="385px"
  4171. v-draggable
  4172. v-draggleft=[styX.left]
  4173. >
  4174. <div
  4175. slot="title"
  4176. class=dialog_header
  4177. >
  4178. <el-image
  4179. class="imge"
  4180. :src="p9"
  4181. fit="cover"
  4182. />
  4183. <span class="text-color"> 选择</span>
  4184. </div>
  4185. <el-form :model="form">
  4186. <div class="heigeinput selecr">
  4187. <div class="line">
  4188. <div class="linetext">结果曲线</div>
  4189. </div>
  4190. <el-form-item
  4191. label="选择区域"
  4192. :label-width="formLabelWidth2"
  4193. >
  4194. <el-select
  4195. size="mini"
  4196. v-model="vSalar"
  4197. placeholder="select boundary"
  4198. >
  4199. <el-option
  4200. v-for="scalar in volumScalars"
  4201. :key="scalar"
  4202. :label="scalar"
  4203. :value="scalar"
  4204. >
  4205. </el-option>
  4206. </el-select>
  4207. </el-form-item>
  4208. <div class="line">
  4209. <div class="linetext">类型</div>
  4210. </div>
  4211. <div class="listbtn">
  4212. <el-button
  4213. plain
  4214. class="anniu"
  4215. >点</el-button>
  4216. <el-button
  4217. plain
  4218. class="anniu"
  4219. >Cells</el-button>
  4220. </div>
  4221. <el-form-item
  4222. label="标量名称"
  4223. :label-width="formLabelWidth2"
  4224. >
  4225. <el-select
  4226. size="mini"
  4227. v-model="vSalar"
  4228. placeholder="select boundary"
  4229. >
  4230. <el-option
  4231. v-for="scalar in volumScalars"
  4232. :key="scalar"
  4233. :label="scalar"
  4234. :value="scalar"
  4235. >
  4236. </el-option>
  4237. </el-select>
  4238. </el-form-item>
  4239. <div class="listbtn">
  4240. <el-button
  4241. plain
  4242. class="anniu"
  4243. >清除</el-button>
  4244. <el-button
  4245. plain
  4246. class="anniu"
  4247. >输出量</el-button>
  4248. </div>
  4249. </div>
  4250. </el-form>
  4251. <div
  4252. slot="footer"
  4253. class="dialog-footer"
  4254. >
  4255. <el-button @click="dialog.Curve_Select= false">{{ $t("HCFD.file.cancel")}}</el-button>
  4256. <el-button
  4257. type="primary"
  4258. @click="dialog.Curve_Select= false"
  4259. >{{ $t("HCFD.file.ok")}}</el-button>
  4260. <el-button
  4261. type="primary"
  4262. @click="dialog.Curve_Select = false"
  4263. >Apply</el-button>
  4264. </div>
  4265. </el-dialog>
  4266. <!--Curve Disp1ay曲线
  4267. 曲线选择 -->
  4268. <!-- :modal='false'
  4269. :close-on-click-modal="false"
  4270. :modal-append-to-body='false'
  4271. @close='activecleer()'
  4272. :style="styX"
  4273. -->
  4274. <el-dialog
  4275. :visible.sync="dialog.Curve_Disp1ay"
  4276. v-if="active=='five10-1'"
  4277. :modal='false'
  4278. :close-on-click-modal="false"
  4279. :modal-append-to-body='false'
  4280. @close='activecleer()'
  4281. v-draggable
  4282. v-draggleft=[styX.left]
  4283. custom-class='dialoglocation dialog_color'
  4284. width="385px"
  4285. >
  4286. <div
  4287. slot="title"
  4288. class=dialog_header
  4289. >
  4290. <el-image
  4291. class="imge"
  4292. :src="p13"
  4293. fit="cover"
  4294. />
  4295. <span class="text-color"> 选择</span>
  4296. </div>
  4297. <el-form :model="form">
  4298. <div class="Squareline selecr ">
  4299. <div class="line">
  4300. <div class="linetext">结果曲线</div>
  4301. </div>
  4302. </div>
  4303. <div class="heigeinput selecr">
  4304. <div class='selecttype'>
  4305. <span class="texttype">选择类型</span>
  4306. <div class="divselect">
  4307. <div>
  4308. <el-radio-group
  4309. v-model="zobj.lineType"
  4310. @change="changeline()"
  4311. >
  4312. <el-radio label="Point">点</el-radio>
  4313. <el-radio label="Line">曲线</el-radio>
  4314. </el-radio-group>
  4315. </div>
  4316. <div>
  4317. <el-form-item
  4318. label="点大小"
  4319. :label-width="formLabelWidth2"
  4320. >
  4321. <el-input
  4322. v-model="zobj.pointvalue"
  4323. @blur="pointclick()"
  4324. autocomplete="off"
  4325. ></el-input>
  4326. </el-form-item>
  4327. <el-form-item
  4328. label="曲线大小"
  4329. :label-width="formLabelWidth2"
  4330. >
  4331. <el-input
  4332. v-model="zobj.linevalue"
  4333. @blur="lineclick()"
  4334. autocomplete="off"
  4335. ></el-input>
  4336. </el-form-item>
  4337. </div>
  4338. </div>
  4339. </div>
  4340. <div class='selecttype'>
  4341. <span class="texttype">zoom</span>
  4342. <div class="liangf">
  4343. <el-form-item
  4344. label="X_最小值"
  4345. :label-width="formLabelWidth2"
  4346. >
  4347. <el-input
  4348. value="0"
  4349. autocomplete="off"
  4350. ></el-input>
  4351. </el-form-item>
  4352. <el-form-item
  4353. label="Y_最大值"
  4354. :label-width="formLabelWidth2"
  4355. >
  4356. <el-input
  4357. value="0"
  4358. autocomplete="off"
  4359. ></el-input>
  4360. </el-form-item>
  4361. </div>
  4362. </div>
  4363. </div>
  4364. </el-form>
  4365. <div
  4366. slot="footer"
  4367. class="dialog-footer"
  4368. >
  4369. <el-button @click="dialog.Curve_Disp1ay= false">{{ $t("HCFD.file.cancel")}}</el-button>
  4370. <el-button
  4371. type="primary"
  4372. @click="lineoclick();dialog.Curve_Disp1ay= false"
  4373. >{{ $t("HCFD.file.ok")}}</el-button>
  4374. <el-button
  4375. type="primary"
  4376. @click="dialog.Curve_Disp1ay = false"
  4377. >Apply</el-button>
  4378. </div>
  4379. </el-dialog>
  4380. <!-- 单位计算开始 -->
  4381. <el-dialog
  4382. :visible.sync="visiable"
  4383. v-if="active=='six-0'"
  4384. :modal='false'
  4385. :close-on-click-modal="false"
  4386. @close='activecleer()'
  4387. custom-class='dialoglocation dialog_color'
  4388. width="385px"
  4389. v-draggable
  4390. v-draggleft=[styX.left]
  4391. >
  4392. <div
  4393. slot="title"
  4394. class=dialog_header
  4395. >
  4396. <el-image
  4397. class="imge"
  4398. :src="d1"
  4399. fit="cover"
  4400. />
  4401. <span class="text-color">单位换算</span>
  4402. </div>
  4403. <el-form :model="form1">
  4404. <el-form-item
  4405. label="kelvin"
  4406. :label-width="formLabelWidth1"
  4407. >
  4408. <el-input
  4409. v-model="form1.kelvins"
  4410. type="number"
  4411. autocomplete="off"
  4412. ></el-input>
  4413. </el-form-item>
  4414. <el-form-item
  4415. label="℃"
  4416. :label-width="formLabelWidth1"
  4417. >
  4418. <el-input
  4419. v-model="form1.ssd"
  4420. type="number"
  4421. autocomplete="off"
  4422. ></el-input>
  4423. </el-form-item>
  4424. <div>
  4425. <el-button
  4426. @click="dialogbtnkew"
  4427. style="margin:10px 0 0 65px"
  4428. size="mini"
  4429. >摄氏度</el-button>
  4430. <el-button
  4431. @click="dialogbtnssd"
  4432. size="mini"
  4433. >开尔文</el-button>
  4434. </div>
  4435. </el-form>
  4436. </el-dialog>
  4437. <!-- Y+ Calculator -->
  4438. <el-dialog
  4439. :visible.sync="Yvisiable"
  4440. :close-on-click-modal="false"
  4441. @close='activecleer()'
  4442. v-if="active=='six-1'"
  4443. :modal='false'
  4444. custom-class='dialoglocation dialog_color'
  4445. width="385px"
  4446. v-draggable
  4447. v-draggleft=[styX.left]
  4448. >
  4449. <div
  4450. slot="title"
  4451. class=dialog_header
  4452. >
  4453. <el-image
  4454. class="imge"
  4455. :src="d2"
  4456. fit="cover"
  4457. />
  4458. <span class="text-color">Y+值计算</span>
  4459. </div>
  4460. <el-form
  4461. :model="form"
  4462. class="gongju"
  4463. >
  4464. <!-- Freestream velocity流速度U∞ -->
  4465. <el-form-item
  4466. label="自由流速度U∞(m/s):"
  4467. :label-width="formLabelWidth3"
  4468. >
  4469. <el-input
  4470. v-model="form.u_freestream"
  4471. autocomplete="off"
  4472. ></el-input>
  4473. </el-form-item>
  4474. <!--Density 自由氣流密度ρ -->
  4475. <el-form-item
  4476. label="自由氣流密度ρ(kg/m^3):"
  4477. :label-width="formLabelWidth3"
  4478. >
  4479. <el-input
  4480. v-model="form.rho"
  4481. autocomplete="off"
  4482. ></el-input>
  4483. </el-form-item>
  4484. <!-- Characteristic length 特征长度L-->
  4485. <el-form-item
  4486. label="特征长度L:(m):"
  4487. :label-width="formLabelWidth3"
  4488. >
  4489. <el-input
  4490. v-model="form.L"
  4491. type="number"
  4492. autocomplete="off"
  4493. ></el-input>
  4494. </el-form-item>
  4495. <!-- Dynamic viscosity表流运动粘贴系数μ: -->
  4496. <el-form-item
  4497. label="表流运动粘贴系数μ(Pa·s):"
  4498. :label-width="formLabelWidth3"
  4499. >
  4500. <el-input
  4501. v-model="form.mu"
  4502. autocomplete="off"
  4503. ></el-input>
  4504. </el-form-item>
  4505. <!-- Desired Y+ value: -->
  4506. <el-form-item
  4507. label="Y+:"
  4508. :label-width="formLabelWidth3"
  4509. >
  4510. <el-input
  4511. v-model="form.y_plus_desired"
  4512. type="number"
  4513. autocomplete="off"
  4514. ></el-input>
  4515. </el-form-item>
  4516. <!-- Reynolds number -->
  4517. <h3 class="Rex">雷诺数:&nbsp;&nbsp;&nbsp;&nbsp;{{ form.Rex }}</h3>
  4518. <!-- Estimated wall distance: -->
  4519. <h3 class="Rex">估计墙距:&nbsp;&nbsp;&nbsp;&nbsp;{{ form.dtc }}</h3>
  4520. <el-form-item style="margin-left: 0">
  4521. <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
  4522. <el-button
  4523. type="primary"
  4524. @click="dialogbtny"
  4525. style="margin:0 0 0 55px"
  4526. >计算</el-button>
  4527. </el-form-item>
  4528. </el-form>
  4529. </el-dialog>
  4530. <!-- r雷诺数计算 -->
  4531. <el-dialog
  4532. :visible.sync="llsvisiable"
  4533. :close-on-click-modal="false"
  4534. v-if="active=='six-2'"
  4535. :modal='false'
  4536. custom-class='dialoglocation dialog_color'
  4537. width="385px"
  4538. v-draggable
  4539. v-draggleft=[styX.left]
  4540. >
  4541. <div
  4542. slot="title"
  4543. class=dialog_header
  4544. >
  4545. <el-image
  4546. class="imge"
  4547. :src="d3"
  4548. fit="cover"
  4549. />
  4550. <span class="text-color">雷诺数计算</span>
  4551. </div>
  4552. <el-form
  4553. :model="form"
  4554. class="leiluoshu"
  4555. >
  4556. <el-form-item
  4557. label="流速v(m/s):"
  4558. :label-width="formLabelWidth3"
  4559. >
  4560. <el-input
  4561. v-model="form.lls"
  4562. autocomplete="off"
  4563. ></el-input>
  4564. </el-form-item>
  4565. <el-form-item
  4566. label="密度ρ(kg/m^3)"
  4567. :label-width="formLabelWidth3"
  4568. >
  4569. <el-input
  4570. v-model="form.lmi"
  4571. autocomplete="off"
  4572. ></el-input>
  4573. </el-form-item>
  4574. <el-form-item
  4575. label="动力黏性系数η(Pa·s)"
  4576. :label-width="formLabelWidth3"
  4577. >
  4578. <el-input
  4579. v-model="form.ldlzxxs"
  4580. autocomplete="off"
  4581. ></el-input>
  4582. </el-form-item>
  4583. <el-form-item
  4584. label="特征长度(内径)d(m):"
  4585. :label-width="formLabelWidth3"
  4586. >
  4587. <el-input
  4588. v-model="form.lld"
  4589. autocomplete="off"
  4590. ></el-input>
  4591. </el-form-item>
  4592. <el-form-item label="">
  4593. <!-- <el-input v-model="form.lys" type="number" autocomplete="off"></el-input> -->
  4594. <h3 class="Rex">雷诺数Re:{{ form.Re }}</h3>
  4595. <el-button
  4596. type="primary"
  4597. style="margin:0 0 0 60px"
  4598. @click="leinsdialogbtny"
  4599. >计算</el-button>
  4600. </el-form-item>
  4601. </el-form>
  4602. </el-dialog>
  4603. <!-- 组件 -->
  4604. <filesload
  4605. ref="filesload"
  4606. :fileurls="fileurls"
  4607. @fileLoadeState="fileLoadeState($event)"
  4608. ></filesload>
  4609. <loading
  4610. ref="loading"
  4611. :loadObjs="loadObjs"
  4612. ></loading>
  4613. <!-- <hcfd-Calculator ref="Calculator"></hcfd-Calculator> -->
  4614. </div>
  4615. </template>
  4616. <script>
  4617. // 引入组件
  4618. import geometry from "../geometry/index.vue";
  4619. import meshindex from "../meshindex/index.vue";
  4620. import t1 from "@/assets/icon/u9588.png";
  4621. import t2 from "@/assets/icon/u9616.png";
  4622. import t3 from "@/assets/icon/u9637.png";
  4623. import t4 from "@/assets/icon/u212.png";
  4624. import t5 from "@/assets/icon/u3284.png";
  4625. import w1 from "@/assets/icon/u3250.png";
  4626. import w2 from "@/assets/icon/u9700.png";
  4627. import w3 from "@/assets/icon/u9872.png";
  4628. import w4 from "@/assets/icon/u3877.png";
  4629. import w5 from "@/assets/icon/u9823.png";
  4630. import w6 from "@/assets/icon/u3742.png";
  4631. import d1 from "@/assets/icon/u10148.png";
  4632. import d2 from "@/assets/icon/u10152.png";
  4633. import d3 from "@/assets/icon/u10156.png";
  4634. import d4 from "@/assets/icon/u10160.png";
  4635. import j1 from "@/assets/icon/u10140.png";
  4636. import j2 from "@/assets/icon/u10144.png";
  4637. import q1 from "@/assets/icon/u9681.png";
  4638. import q2 from "@/assets/icon/u10115.png";
  4639. import q3 from "@/assets/icon/u9987.png";
  4640. import q4 from "@/assets/icon/u3868.png";
  4641. import q5 from "@/assets/icon/u10048.png";
  4642. import q6 from "@/assets/icon/u10068.png";
  4643. import qq from "@/assets/icon/14.png";
  4644. import p1 from "@/assets/icon/7.png";
  4645. import p2 from "@/assets/icon/zoomtowindow.png";
  4646. import p3 from "@/assets/icon/result_contour.png";
  4647. import p4 from "@/assets/icon/result_vector.png";
  4648. import p5 from "@/assets/icon/13.png";
  4649. import p6 from "@/assets/icon/14.png";
  4650. import p7 from "@/assets/icon/19.png";
  4651. import p8 from "@/assets/icon/12.png";
  4652. import p9 from "@/assets/icon/result_line.png";
  4653. import p10 from "@/assets/icon/6.png";
  4654. import p11 from "@/assets/icon/9.png";
  4655. import p12 from "@/assets/icon/2.png";
  4656. import p13 from "@/assets/icon/18.png";
  4657. import p14 from "@/assets/icon/solid_surface.png";
  4658. import p15 from "@/assets/icon/result_slice.png";
  4659. import p16 from "@/assets/icon/result_stream.png";
  4660. import p17 from "@/assets/icon/animation.png";
  4661. import p18 from "@/assets/icon/result_curve.png";
  4662. import p19 from "@/assets/hcfd_images/run.png";
  4663. import p20 from "@/assets/icon/u3313.png";
  4664. import p21 from "@/assets/icon/u854.png";
  4665. import p22 from "@/assets/icon/u237.png";
  4666. import adilog from "@/assets/hcfd_images/adilog.png";
  4667. import Pagination from "@/components/Pagination";
  4668. import { Message, MessageBox } from "element-ui";
  4669. import store from "@/store";
  4670. import UgridLoad from "./loads/UgridLoad.vue";
  4671. import VolumLoad from "./loads/VolumLoad.vue";
  4672. import { request, uploadFile } from "@/utils/request";
  4673. import vueUploader from "./fileupload.vue";
  4674. import filesload from "./filesload.vue";
  4675. import { Caegw_ProUrl } from "@/settings"; // 引入settings.js
  4676. import loading from "./loading.vue";
  4677. import transformtool from "./loads/transformtool.vue";
  4678. import echartsHFCD from "./echartsHFCD.vue";
  4679. import Addtabs from "./addtabs.vue";
  4680. import animation from "../compoents/animation.vue";
  4681. export default {
  4682. components: {
  4683. geometry,
  4684. meshindex,
  4685. vueUploader,
  4686. animation,
  4687. filesload,
  4688. loading,
  4689. UgridLoad,
  4690. VolumLoad,
  4691. transformtool,
  4692. Pagination,
  4693. echartsHFCD,
  4694. Addtabs,
  4695. },
  4696. props: {
  4697. objopp: String,
  4698. pid: String,
  4699. femnum: String,
  4700. elodingfalse: {
  4701. type: Boolean,
  4702. default() {
  4703. return false;
  4704. },
  4705. },
  4706. ytdata: {
  4707. type: Object,
  4708. default() {
  4709. return {};
  4710. },
  4711. },
  4712. vectorparam: {
  4713. type: Object,
  4714. default() {
  4715. return {};
  4716. },
  4717. },
  4718. },
  4719. data() {
  4720. return {
  4721. objcheck:{
  4722. pointsFlag:false,
  4723. curvesFlag:true,
  4724. surFacesFlag:false,
  4725. },
  4726. funbool:true,
  4727. objmesh:{
  4728. strResultFormat:".vtk",
  4729. surfParam:{
  4730. max_size:"10",
  4731. min_size:"1",
  4732. surfStyle:"triangle",
  4733. global_physical_size:"1.0"
  4734. },
  4735. surfParam1:{
  4736. gradation:"1",
  4737. anisotropic_ratio:"0",
  4738. chordal_error:"0",
  4739. debug:"no",
  4740. closed_geometry:"no",
  4741. enforce_cad_edge_sizes:"1",
  4742. force_bad_surface_element_removal:"no",
  4743. discard_input_topology:"no",
  4744. create_tag_on_collision:"yes"
  4745. },
  4746. surfParam2:{
  4747. element_order:"linear",
  4748. remove_duplicate_cad_faces:"yes",
  4749. scaled_jacobian_threshold_value:"0.001",
  4750. optimisation:"no",
  4751. correct_surface_intersections:"yes"
  4752. },
  4753. cleanerParam:null,
  4754. tetraParam:null,
  4755. hexaParam:null,
  4756. hybridParam:null,
  4757. },
  4758. cleanerParam1:{
  4759. folding_angle:"1",
  4760. min_hole_size:"1",
  4761. overlap_distance:"1",
  4762. use_default_settings_for:"structure",
  4763. overlap_angle:"15",
  4764. resolution_length:"5"
  4765. },
  4766. tetraParam1:{
  4767. components:"outside_components",
  4768. gradation:"1.0"
  4769. },
  4770. hexaParam1:{
  4771. components:"all",
  4772. },
  4773. hybridParam1:{
  4774. element_generation:"tetra_dominant",
  4775. normal_direction:'1',
  4776. boundary_layer_global_initial_height:'',
  4777. boundary_layer_geometric_progression:'',
  4778. number_of_boundary_layers:'',
  4779. },
  4780. meshtableData:[{
  4781. id:0,
  4782. da:1
  4783. },{
  4784. id:2,
  4785. da:33
  4786. },
  4787. ],
  4788. setface:false,
  4789. meshbrim:false,
  4790. meshface:'物理尺寸模型',
  4791. jiegradioval:false,
  4792. facecheckbox:true,
  4793. disabledface:false,
  4794. jiegdisabled:true,
  4795. jiegradio:"结构",
  4796. checkListset:['纠正表面相交'],
  4797. disabledset:true,
  4798. lowbool: false,
  4799. Quickbool: false,
  4800. Startbool: false,
  4801. sign: "low",
  4802. signnum: false,
  4803. countnum: 100,
  4804. numan: true,
  4805. slidermax: Number,
  4806. median: Number,
  4807. checkList: [],
  4808. // 云图参数
  4809. Stepe: "", //步数
  4810. isVolume: "",
  4811. outlineobj: {
  4812. scalarName: "",
  4813. range0: "",
  4814. range1: "",
  4815. leixing: "",
  4816. level: "10",
  4817. bmScalars: [],
  4818. nameTypes: "",
  4819. scalarmax: "",
  4820. },
  4821. percentage: 0,
  4822. animationType: "ContourDisplay",
  4823. hideZones: "",
  4824. checkList: [],
  4825. animationobj: {
  4826. firststep: "",
  4827. laststep: "",
  4828. currentstep: "",
  4829. zoomarr: [],
  4830. },
  4831. colorobj: {
  4832. R: "0",
  4833. G: "0",
  4834. B: "0",
  4835. showHideState: "1",
  4836. transparency: "1",
  4837. },
  4838. variableNamearr: [],
  4839. vector: {
  4840. u: "r",
  4841. v: "r",
  4842. w: "r",
  4843. },
  4844. vectorobj: {
  4845. dataU: "r",
  4846. dataV: "r",
  4847. dataW: "r",
  4848. dataUarr: [],
  4849. dataVarr: [],
  4850. dataWarr: [],
  4851. scaleFactor: "",
  4852. },
  4853. streamobj: {
  4854. dataU: "r",
  4855. dataV: "r",
  4856. dataW: "r",
  4857. dataUarr: [],
  4858. dataVarr: [],
  4859. dataWarr: [],
  4860. },
  4861. // 折线图的参数
  4862. zobj: {
  4863. lineType: "Line",
  4864. pointvalue: "1",
  4865. linevalue: "1",
  4866. },
  4867. target: "",
  4868. editableTabsValue: "1",
  4869. editableTabs: [
  4870. // {
  4871. // title: '1',
  4872. // name: '1',
  4873. // ruleForm: {
  4874. // fw:'1',
  4875. // slicecheck:'Solid',
  4876. // sx:'',
  4877. // sy:'',
  4878. // sx:'',
  4879. // rx:'',
  4880. // yx:'',
  4881. // zx:'',
  4882. // con:'0',
  4883. // colorlevel:'Sectionalplane',
  4884. // secheck:'',
  4885. // },
  4886. // },
  4887. ],
  4888. tabIndex: 0,
  4889. value1: 3,
  4890. radio: "",
  4891. desclist: [],
  4892. boundaryid: "",
  4893. desc: "",
  4894. checked: false,
  4895. solverConfigid: "",
  4896. mcnames: "apply1",
  4897. formLabelWidth: "60px",
  4898. formLabelWidth2: "73px",
  4899. formLabelWidth4: "37px",
  4900. formLabelWidth5: "100px",
  4901. formLabelWidth6: "120px",
  4902. formLabelWidth61: "134px",
  4903. formLabelWidth7: "170px",
  4904. formLabelWidth9: "407px",
  4905. switchvalue: "1",
  4906. styX: {
  4907. left: "",
  4908. },
  4909. t1,
  4910. t2,
  4911. t3,
  4912. t4,
  4913. t5,
  4914. w1,
  4915. w2,
  4916. w3,
  4917. w4,
  4918. w5,
  4919. w6,
  4920. d1,
  4921. d2,
  4922. d3,
  4923. d4,
  4924. j1,
  4925. j2,
  4926. q1,
  4927. q2,
  4928. q3,
  4929. q4,
  4930. q5,
  4931. q6,
  4932. qq,
  4933. p1,
  4934. p2,
  4935. p3,
  4936. p4,
  4937. p5,
  4938. p6,
  4939. p7,
  4940. p8,
  4941. p9,
  4942. p10,
  4943. p11,
  4944. p12,
  4945. p13,
  4946. p14,
  4947. p15,
  4948. p16,
  4949. p17,
  4950. p18,
  4951. p19,
  4952. p20,
  4953. p21,
  4954. p22,
  4955. visibles: false,
  4956. restime: "",
  4957. numzhexian: "",
  4958. newlog: "",
  4959. luobj: {
  4960. projectName: "",
  4961. projectId: "",
  4962. projectDesc: "",
  4963. },
  4964. // 颜色选择
  4965. r: "",
  4966. g: "",
  4967. b: "",
  4968. lineColor: "rgba(255, 69, 0, 0.68)",
  4969. predefineColors: [
  4970. "#ff4500",
  4971. "#ff8c00",
  4972. "#ffd700",
  4973. "#90ee90",
  4974. "#00ced1",
  4975. "#1e90ff",
  4976. "#c71585",
  4977. "rgba(255, 69, 0, 0.68)",
  4978. "rgb(255, 120, 0)",
  4979. "hsv(51, 100, 98)",
  4980. "hsva(120, 40, 94, 0.5)",
  4981. "hsl(181, 100%, 37%)",
  4982. "hsla(209, 100%, 56%, 0.73)",
  4983. "#c7158577",
  4984. ],
  4985. // current:0,
  4986. lsolverState: "2",
  4987. footerShow: true,
  4988. bMesh: 0,
  4989. bContour: 1,
  4990. vMesh: 0,
  4991. vContour: 1,
  4992. name: "New",
  4993. xiugai: {},
  4994. Surfacenum: 3,
  4995. Volumenum: 3,
  4996. clearobj: {
  4997. projectId: "",
  4998. fileType: "",
  4999. step: Number,
  5000. },
  5001. servertype: "ugrid",
  5002. tstep: Number,
  5003. wstep: "0",
  5004. step: "0",
  5005. srsurl: "ugrid",
  5006. footerval: "on",
  5007. top: "50px",
  5008. formLabelWidth1: "70px",
  5009. formLabelWidth3: "180px",
  5010. visiable: false,
  5011. dialogFormVisible: false,
  5012. form1: {
  5013. ssd: "",
  5014. kelvins: "",
  5015. delivery: false,
  5016. type: [],
  5017. resource: "",
  5018. desc: "",
  5019. },
  5020. sum: "",
  5021. formLabelWidth: "120px",
  5022. adilog: adilog,
  5023. activeName: "twos",
  5024. tabPosition: "bottom",
  5025. showtrue: true,
  5026. drawer: true,
  5027. direction: "rtl",
  5028. twolist: [
  5029. { icon: t1, titlie: "缩放" },
  5030. { icon: t2, titlie: "平移" },
  5031. { icon: t3, titlie: "旋转" },
  5032. // {icon:t4, titlie:'分析类型'},
  5033. // {icon:t5, titlie:'并行类型'},
  5034. ],
  5035. classlist: [
  5036. { val: "ContourDisplay", titlie: " 轮廓显示" },
  5037. { val: "LineDisplay", titlie: "线" },
  5038. { val: "VectorDisplay", titlie: "矢量" },
  5039. { val: "SolidSurfaceDisplay", titlie: "实体表面" },
  5040. ],
  5041. animaval: "ContourDisplay",
  5042. meshlist: [
  5043. { icon: q4, titlie: "文件上传" },
  5044. { icon: p20, titlie: "几何网格检测" },
  5045. { icon: p21, titlie: "网格自动划分" },
  5046. ],
  5047. geometrylist: [{ icon: p22, titlie: "几何导入" }],
  5048. physicslist: [{ icon: w1, titlie: "控制方程" }],
  5049. physicslist2: [
  5050. { icon: w2, titlie: "粘性模型" },
  5051. // {icon:"icon-d-glassware", titlie:'层流'},
  5052. // {icon:"icon-xunhuanbofang", titlie:'湍流'},
  5053. { icon: w3, titlie: "边界条件" },
  5054. { icon: w4, titlie: "运动网格" },
  5055. ],
  5056. physicslist1: [
  5057. { icon: w5, titlie: "参考条件" },
  5058. { icon: w6, titlie: "非惯性参考系" },
  5059. ],
  5060. solutionlist: [
  5061. { icon: q1, titlie: "无粘通量方法" },
  5062. { icon: q2, titlie: "时间推进格式" },
  5063. ],
  5064. solutionlist2: [{ icon: q3, titlie: "线性方程组求解参数" }],
  5065. solutionlist21: [{ icon: q4, titlie: "初始化" }],
  5066. solutionlist22: [{ icon: p18, titlie: "折线图" }],
  5067. solutionlist3: [
  5068. { icon: q5, titlie: "运行控制" },
  5069. { icon: q6, titlie: "输出控制" },
  5070. ],
  5071. runlist: [{ icon: p19, titlie: "求解" }],
  5072. solutionlist4: [
  5073. {
  5074. icon: "icon-xitongcanshupeizhi",
  5075. titlie: "Advanced Option_特殊的参数",
  5076. },
  5077. { icon: "icon-icon", titlie: "Advanced Option_Swap Y-Z Axres" },
  5078. { icon: "icon-yunhang", titlie: "运行" },
  5079. { icon: "icon-quxiantu", titlie: "Monitor" },
  5080. { icon: "icon-tuxingtuxiangchuli", titlie: "资源选择" },
  5081. ],
  5082. resultslist: [
  5083. // { icon:"icon-cankaowenjian", titlie:'下载求解结果'},
  5084. { icon: j1, titlie: "物面数据" },
  5085. { icon: j2, titlie: "流场数据" },
  5086. ],
  5087. plotslsit: [
  5088. { icon: p1, titlie: "Model plot" },
  5089. { icon: p2, titlie: "path plot" },
  5090. { icon: p3, titlie: "Global variables" },
  5091. ],
  5092. plotslsit1: [
  5093. { icon: p4, titlie: "Design plot" },
  5094. { icon: p5, titlie: "Gentralized Y Plot" },
  5095. { icon: p6, titlie: "Import" },
  5096. ],
  5097. plotslsit2: [
  5098. { icon: p6, titlie: "Length Unit" },
  5099. { icon: p7, titlie: "History rlot" },
  5100. { icon: p6, titlie: "Import IYPlot" },
  5101. ],
  5102. samplelist: [{ icon: p8, titlie: "采样点" }],
  5103. generatelist: [
  5104. { icon: p9, titlie: "工具" },
  5105. { icon: p10, titlie: "动画" },
  5106. { icon: p11, titlie: "Movies" },
  5107. ],
  5108. generatelist2: [
  5109. { icon: p3, titlie: "报告" },
  5110. { icon: p4, titlie: "几何距离" },
  5111. ],
  5112. displaylist: [
  5113. { icon: p3, titlie: "轮廓显示" },
  5114. { icon: p9, titlie: "线" },
  5115. { icon: p4, titlie: "矢量" },
  5116. ],
  5117. displaylist2: [
  5118. { icon: p14, titlie: "实体表面" },
  5119. { icon: p15, titlie: "切片" },
  5120. { icon: p16, titlie: "流线" },
  5121. ],
  5122. animationlist: [{ icon: p17, titlie: "动画" }],
  5123. Cuelist: [
  5124. { icon: p9, titlie: "Curve Select" },
  5125. { icon: p13, titlie: "Curve Display" },
  5126. ],
  5127. unitlist: [
  5128. { icon: d1, titlie: "单位换算" },
  5129. { icon: d2, titlie: "Y+计算器" },
  5130. { icon: d3, titlie: "雷诺数计算" },
  5131. ],
  5132. selectlist1: [
  5133. { value: "inviscid", name: "无粘" },
  5134. { value: "laminar", name: "层流" },
  5135. { value: "turbulent", name: "湍流" },
  5136. ],
  5137. strResultFormatlist:[
  5138. { value: ".vtk", name: ".vtk" },
  5139. { value: ".mesh", name: ".mesh" },
  5140. { value: ".ugrid", name: ".ugrid" },
  5141. { value: ".bdf", name: ".bdf" },
  5142. { value: ".neu", name: ".neu" },
  5143. ],
  5144. meshval:'0',
  5145. meshvallist:[
  5146. { value: "0", name: "面网格" },
  5147. { value: "1", name: "四面体网格" },
  5148. { value: "2", name: "六面体网格" },
  5149. { value: "3", name: "混合网格" },
  5150. ],
  5151. meshvallist1:[
  5152. { value: "triangle", name: "三角形" },
  5153. { value: "quad_dominant", name: "四边形" },
  5154. { value: "full_quad", name: "全四边形" },
  5155. { value: "local", name: "局部" },
  5156. ],
  5157. meshval1:'0',
  5158. patternlist:[
  5159. { value: "global", name: "global" },
  5160. { value: "local", name: "local" },
  5161. { value: "none", name: "none" },
  5162. ],
  5163. patternval:'0',
  5164. elsementlist:[
  5165. { value: "linear", name: "linear" },
  5166. { value: "quadratic", name: "quadratic" },
  5167. ],
  5168. eleval:'0',
  5169. tetrahedron:[
  5170. { value: "outside_components", name: "outside_components" },
  5171. { value: "all", name: "all" },
  5172. ],
  5173. hexahedral:[
  5174. { value: "outside_components", name: "outside_components" },
  5175. { value: "outside_skin_only", name: "outside_skin_only" },
  5176. { value: "all", name: "all" },
  5177. ],
  5178. mixture:[
  5179. { value: "tetra_dominant", name: "tetra_dominant" },
  5180. { value: "hexa_dominant", name: "hexa_dominant" },
  5181. { value: "extrusion_only", name: "extrusion_only" },
  5182. { value: "cartesian_core", name: "cartesian_core" },
  5183. ],
  5184. mixval:'0',
  5185. hemxval:'0',
  5186. boundarylayer :[
  5187. { value: "1", name: "正" },
  5188. { value: "-1", name: "负" },
  5189. ],
  5190. layerval:'0',
  5191. fileTypeli: [
  5192. { value: "timestep", name: "timestep" },
  5193. { value: "model", name: "model" },
  5194. ],
  5195. fileTypeval: "timestep",
  5196. selectlist2: [
  5197. { value: "sa", name: "SA" },
  5198. { value: "k-omega-sst", name: "Menter-SST" },
  5199. { value: "sa-des", name: "SA-DES" },
  5200. { value: "k-omega-des", name: "k-omega-DES" },
  5201. { value: "linear-k-epsilon", name: "Linear-k-epsilon" },
  5202. { value: "abid-k-epsilon", name: "Abid-k-epsilon" },
  5203. { value: "menter-sst-les", name: "Menter-SST-LES" },
  5204. { value: "Wilcox-les", name: "Wilcox-LES" },
  5205. ],
  5206. qjklist: [
  5207. { value: "roe", name: "Roe" },
  5208. { value: "vanleer", name: "vanleer" },
  5209. { value: "hllc", name: "HLLC" },
  5210. { value: "aufs", name: "AUFS" },
  5211. { value: "central_diss", name: "Central_Diss" },
  5212. { value: "dlfss", name: "LDFSS" },
  5213. { value: "stvd", name: "STVD" },
  5214. { value: "stvd_modified", name: "STVD_modified" },
  5215. ],
  5216. qjklist2: [
  5217. { value: "none", name: "none" },
  5218. { value: "barth", name: "barth" },
  5219. { value: "venkat", name: "venkat" },
  5220. { value: "minmod", name: "minmod" },
  5221. { value: "vanleer", name: "vanleer" },
  5222. { value: "vanalbada", name: "vanalbada" },
  5223. { value: "smooth", name: "smooth" },
  5224. { value: "hminmod", name: "hminmod" },
  5225. { value: "hvanleer", name: "hvanleer" },
  5226. { value: "hvanalbada", name: "hvanalbada" },
  5227. { value: "hsmooth", name: "hsmooth" },
  5228. { value: "hvenkat", name: "hvenkat" },
  5229. ],
  5230. qjklist3: [
  5231. { value: "roe", name: "Roe" },
  5232. { value: "central_difference", name: "Central_Difference" },
  5233. { value: "hllc", name: "HLLC" },
  5234. { value: "aufs", name: "AUFS" },
  5235. { value: "dlfss", name: "LDFSS" },
  5236. ],
  5237. ydlist: [
  5238. { value: "0", name: "刚体" },
  5239. { value: "1", name: "变形" },
  5240. ],
  5241. tlist1: [
  5242. { value: "steady", name: "定常" },
  5243. { value: "1storder", name: "1阶差分" },
  5244. { value: "2ndorder", name: "2阶差分" },
  5245. { value: "2ndorderOPT", name: "最优2阶差分" },
  5246. { value: "3rdorder", name: "4阶差分" },
  5247. { value: "4thorderMEBDF4", name: "4阶差分" },
  5248. { value: "4thorderESDIRK4", name: "4阶差分" },
  5249. ],
  5250. ydval: "0",
  5251. ydlist2: [
  5252. { value: "0", name: "平动" },
  5253. { value: "1", name: "转动" },
  5254. ],
  5255. directionlist: ["Both", "Forward", "Backward"],
  5256. streamstylelist: ["Line", "Ribbon", "Tube"],
  5257. streamres: {
  5258. direction: "Both",
  5259. streamstyle: "Line",
  5260. initialstep: 0.2,
  5261. maxpropagation: 1.2,
  5262. minimumstep: 0.3,
  5263. showstate: true,
  5264. toolstate: true,
  5265. },
  5266. ydval2: "0",
  5267. ydlist3: [
  5268. { value: "0", name: "匀速" },
  5269. { value: "1", name: "正弦" },
  5270. ],
  5271. ydval3: "0",
  5272. ydlist4: [
  5273. { value: "0", name: "随体运动" },
  5274. { value: "1", name: "空间固定" },
  5275. ],
  5276. ydval4: "0",
  5277. loadlist: [
  5278. { value: "0", name: "盒子" },
  5279. { value: "1", name: "球" },
  5280. { value: "2", name: "圆柱" },
  5281. { value: "4", name: "圆锥" },
  5282. ],
  5283. loadval: "0",
  5284. objectplanelist: [
  5285. { value: "0", name: " 物面输出" },
  5286. { value: "1", name: "流场输出" },
  5287. ],
  5288. objectplaneval: "0",
  5289. active: "",
  5290. //大对象
  5291. ziyprojects: [],
  5292. paginationConfig: {
  5293. hideSinglePage: false,
  5294. page: 1,
  5295. size: 15,
  5296. sizeList: [10, 15, 30, 50],
  5297. layout: "total, sizes, prev, pager, next, jumper",
  5298. total: 0,
  5299. },
  5300. getRowKeys(row) {
  5301. return row.id;
  5302. },
  5303. selsectid: [],
  5304. missType: true,
  5305. initialization: "freestreams",
  5306. upVisible: false,
  5307. Yvisiable: false,
  5308. llsvisiable: false,
  5309. newload: true,
  5310. runMonitor: true,
  5311. contourLevel: 3,
  5312. form: {
  5313. u_freestream: "",
  5314. rho: "",
  5315. L: "",
  5316. mu: "",
  5317. y_plus_desired: "",
  5318. dtc: "",
  5319. md: "",
  5320. ls: "",
  5321. cd: "",
  5322. Rex: "",
  5323. Re: "",
  5324. lys: "",
  5325. lmi: "",
  5326. ldlzxxs: "",
  5327. lld: "",
  5328. Re: "",
  5329. dtc: "",
  5330. lls: "",
  5331. },
  5332. uploadlist: [
  5333. {
  5334. name: "mapbc",
  5335. percentage: 0,
  5336. },
  5337. {
  5338. name: "ugrid",
  5339. percentage: 0,
  5340. },
  5341. ],
  5342. ContourSurface: false,
  5343. adilog: adilog,
  5344. loading: loading,
  5345. headMenu_2Show: false,
  5346. leftMenu_2Show: false,
  5347. gennealShow: false,
  5348. physicsShow: false,
  5349. solutionShow: false,
  5350. resultShow: false,
  5351. Consoleshow: true,
  5352. openshow: false,
  5353. TaskGenealshow: false,
  5354. TaskPhysicsshow: false,
  5355. TaskSolutionshow: false,
  5356. TaskSurfaceshow: false,
  5357. TaskVolumeshow: false,
  5358. ugridUrl: "",
  5359. bload: null,
  5360. websock: null,
  5361. logs: "欢迎来到HCFD",
  5362. islogload: true, //控制log请求(ture 发起 false 不发起)
  5363. outline: "OutLine",
  5364. fileNames: [],
  5365. belementCheckeds: ["Contour"],
  5366. boundaryStep: [],
  5367. bStep: "0",
  5368. boundaryScalars: [],
  5369. hcfdSteplist: [],
  5370. bScalar: "cp",
  5371. velementCheckeds: ["Contour"],
  5372. vStep: "0",
  5373. volumStep: [],
  5374. volumScalars: [],
  5375. vSalar: "",
  5376. isSolverEnd: false, //判断是否求解完成
  5377. solverState: "0", //求解状态(0-未求解 1-求解中 2-求解完成)
  5378. menuList: [
  5379. {
  5380. id: "1",
  5381. label: "Setup",
  5382. children: [
  5383. {
  5384. id: "2",
  5385. label: "General",
  5386. },
  5387. {
  5388. id: "3",
  5389. label: "Physics",
  5390. },
  5391. {
  5392. id: "4",
  5393. label: "Solution",
  5394. },
  5395. ],
  5396. },
  5397. {
  5398. id: "5",
  5399. label: "Results",
  5400. children: [
  5401. {
  5402. id: "6",
  5403. label: "Monitor",
  5404. },
  5405. {
  5406. id: "7",
  5407. label: "Surface Grid",
  5408. },
  5409. {
  5410. id: "8",
  5411. label: "Volume Grid",
  5412. },
  5413. {
  5414. id: "9",
  5415. label: "Ugrid",
  5416. },
  5417. ],
  5418. },
  5419. ],
  5420. dialog: {
  5421. //弹出框 控制
  5422. new_visiable: false,
  5423. load_visiable: false,
  5424. ziyuan: false,
  5425. geometry_upload: false,
  5426. upload_visiable: false,
  5427. mesh_generation:false,
  5428. scale_visiable: false,
  5429. translation_visiable: false,
  5430. rotation_visiable: false,
  5431. type_visiable: false,
  5432. parallel_visiable: false,
  5433. equation_visiable: false,
  5434. inviscid_visiable: false,
  5435. laminar_visiable: false,
  5436. turbulent_visiable: false,
  5437. dynamic_visiable: false,
  5438. nonitertial_visiable: false,
  5439. border_visiable: false,
  5440. reference_visiable: false,
  5441. fluxrc_visiable: false,
  5442. time_visiable: false,
  5443. timeasm_visiable: false,
  5444. xian_visiable: false,
  5445. initialization_visiable: false,
  5446. specified_visiable: false, //未完成
  5447. runc_visiable: false,
  5448. boundaryo_visiable: false,
  5449. volumeo_visiable: false,
  5450. specialp_visiable: false,
  5451. swap_visiable: false,
  5452. SurfaceGrid_visiable: false,
  5453. VolumeGrid_visiable: false,
  5454. contour_visiable: false,
  5455. Line_visiable: false,
  5456. Vector_visiable: false,
  5457. Solid_Surface: false,
  5458. Slice_Surface: false,
  5459. Stream_Surface: false,
  5460. Curve_Select: false,
  5461. Curve_Disp1ay: false,
  5462. an_Animation: false,
  5463. },
  5464. geneal: {
  5465. //数据存储
  5466. MeshTransform: {
  5467. Scale: {
  5468. Factor: 0,
  5469. },
  5470. Translation: {
  5471. Distance: 0,
  5472. X: 1,
  5473. Y: 0,
  5474. Z: 0,
  5475. },
  5476. Rotation: {
  5477. Angle: 0,
  5478. X: 0,
  5479. Y: 0,
  5480. Z: 0,
  5481. X1: 1,
  5482. Y1: 0,
  5483. Z1: 0,
  5484. },
  5485. },
  5486. },
  5487. Physics: {
  5488. Turbulent: {
  5489. TurbulentPrandtlNumber: 0.9,
  5490. },
  5491. Boundary: {
  5492. bquery: null, //hcfdBoundary 选中数据 id
  5493. hcfdBoundaryquery: null, //hcfdBoundary 选中数据
  5494. cquery: null,
  5495. /* 黎曼远场边界(Farfield) 5000
  5496. * 自由来流边界(Freestream)5050
  5497. * 无粘壁面(Inviscous Wall) 3000
  5498. * 粘性壁面(Viscous Wall)4000
  5499. * X-对称平面(X-symmetry Plane)6661
  5500. * Y-对称平面(Y-symmetry Plane ) 6662
  5501. * Z-对称平面Z-symmetry Plane) 6663
  5502. * 周期边界(Periodic) 6100*/
  5503. Conditions: [
  5504. { conditionsCode: 5000, name: "Farfield" },
  5505. { conditionsCode: 5050, name: "Freestream" },
  5506. { conditionsCode: 3000, name: "Inviscous Wall" },
  5507. { conditionsCode: 4000, name: "Viscous Wall" },
  5508. { conditionsCode: 6661, name: "X-symmetry Plane" },
  5509. { conditionsCode: 6662, name: "Y-symmetry Plane" },
  5510. { conditionsCode: 6663, name: "Z-symmetry Plane" },
  5511. { conditionsCode: 6100, name: "Periodic" },
  5512. ],
  5513. },
  5514. },
  5515. Solution: {
  5516. boundaryout: {
  5517. checkAll: false,
  5518. checkeds: [],
  5519. lists: [
  5520. "X-component of velocity",
  5521. "Y-component of velocity",
  5522. "Z-component of velocity",
  5523. "Press",
  5524. "Press coefficient",
  5525. "Mach Number",
  5526. "Vorticity magnitude",
  5527. "X-component of vorticity",
  5528. "Y-component of vorticity",
  5529. "Z-component of vorticity",
  5530. "Q Criterion",
  5531. ],
  5532. isIndeterminate: true,
  5533. },
  5534. volumout: {
  5535. checkAll: false,
  5536. checkeds: [],
  5537. lists: [
  5538. "X-component of velocity",
  5539. "Y-component of velocity",
  5540. "Z-component of velocity",
  5541. "Press",
  5542. "Press coefficient",
  5543. "Mach Number",
  5544. "Vorticity magnitude",
  5545. "X-component of vorticity",
  5546. "Y-component of vorticity",
  5547. "Z-component of vorticity",
  5548. "Q Criterion",
  5549. ],
  5550. isIndeterminate: true,
  5551. },
  5552. },
  5553. //state -1,0 ,1
  5554. //message
  5555. //type 1 一般 2 下载
  5556. state: "", //求解状态(0-为求解,1-求解成功,-1-是求解失败)
  5557. loadObjs: [],
  5558. loadVVisiable: false,
  5559. loading: false,
  5560. fileurls: [],
  5561. project: {
  5562. projectId: "",
  5563. lesseeId: "",
  5564. projectName: "",
  5565. projectType: "hcfd",
  5566. projectDesc: "",
  5567. fileType: "ascii",
  5568. solverfiles: [],
  5569. solverVolumUrls: [],
  5570. solverBoundaryUrls: [],
  5571. loadfils: [],
  5572. converge: "",
  5573. uid: "",
  5574. },
  5575. projects: [],
  5576. parameterObjclone: [],
  5577. parameterObj: {
  5578. hcfdBoundarys: [
  5579. // {
  5580. // name: "WING1",
  5581. // id: 1,
  5582. // conditionsCode: 3000,
  5583. // },
  5584. ],
  5585. nmlParam: {
  5586. a_vort_mag: "false",
  5587. case_title: "case_name",
  5588. angle_of_yaw: 0,
  5589. x_moment_center: 0,
  5590. eqn_type: "cal_perf_incompress",
  5591. schedule_cfl: [0, 0],
  5592. swap_yz_axes: "false",
  5593. v_vort_mag: "false",
  5594. pseudo_time_stepping: "on",
  5595. meanflow_sweeps: 15,
  5596. a_p: "true",
  5597. a_u: true,
  5598. a_w: "true",
  5599. a_v: "true",
  5600. dynamic_Mesh: "off",
  5601. jacobian_eval_freq: 10,
  5602. turb_model: "menter-sst",
  5603. grid_format: "aflr3",
  5604. turbulence_sweeps: 10,
  5605. mach_number: 0.5,
  5606. y_moment_length: 1,
  5607. area_reference: 1,
  5608. flux_limiter: "none",
  5609. a_cp: "true",
  5610. viscous_terms: "turbulent",
  5611. volume_animation_freq: 100,
  5612. steps: 1500,
  5613. flux_construction_lhs: "roe",
  5614. stopping_tolerance: 2.0e-1,
  5615. prandtlnumber_molecular: 0.72,
  5616. restart_write_freq: 250,
  5617. v_vort_x: "false",
  5618. schedule_iteration: [1, 50],
  5619. v_vort_y: "false",
  5620. v_vort_z: "false",
  5621. line_implicit: "off",
  5622. temperature_units: "Rankine",
  5623. number_of_Processors: 2,
  5624. x_moment_length: 1,
  5625. time_accuracy: "steady",
  5626. angle_of_attack: 0,
  5627. subiterations: 0,
  5628. artificial_compress: 15,
  5629. a_q_criterion: "false",
  5630. schedule_cflturb: [50, 50],
  5631. schedule: 1,
  5632. first_order_iterations: 0,
  5633. restart_read: "off",
  5634. temperature: 490,
  5635. input_version: 2.2,
  5636. namelist_verbosity: "off",
  5637. ignore_euler_number: "false",
  5638. data_format: "ascii",
  5639. v_cp: "true",
  5640. time_step_nondim: 0,
  5641. a_mach: "true",
  5642. large_angle_fix: "off",
  5643. v_p: "true",
  5644. animation_freq: 100,
  5645. v_mach: "true",
  5646. project_rootname: "tf",
  5647. v_v: "true",
  5648. v_q_criterion: "false",
  5649. v_u: "true",
  5650. y_moment_center: 0,
  5651. v_w: true,
  5652. z_moment_center: 0,
  5653. parallel_Optional: "Serial",
  5654. analysis_Type: "Steady",
  5655. noninertial_Reference_Frame: "off",
  5656. flux_construction: "roe",
  5657. a_vort_z: "false",
  5658. a_vort_y: "false",
  5659. a_vort_x: "false",
  5660. reynolds_number: 1000000,
  5661. },
  5662. },
  5663. renderer_hight: 500,
  5664. renderer_width: 500,
  5665. showUgridflag: false, //ugrid 是否显示过
  5666. showSurfaceflag: false, //surface 是否显示过
  5667. showVolumeflage: false, //Volume 是否显示过
  5668. showMonitorflage: false, //Monitor是否显示过
  5669. };
  5670. },
  5671. created() {},
  5672. mounted() {
  5673. this.init();
  5674. },
  5675. watch: {},
  5676. // destroyed() {
  5677. // this.websock.close() //离开路由之后断开websocket连接
  5678. // },
  5679. methods: {
  5680. // 折线图对线的控制
  5681. changeline() {
  5682. let obj = JSON.stringify(this.zobj);
  5683. this.$parent.changelines(obj);
  5684. if (this.zobj.ineType == "line") {
  5685. }
  5686. },
  5687. lineclick() {
  5688. let num = Number(this.zobj.linevalue);
  5689. if (
  5690. (num < 0 && this.zobj.lineType == "Line") ||
  5691. (num < 10 && this.zobj.lineType == "Line")
  5692. ) {
  5693. this.$parent.linezhexian(this.zobj.linevalue);
  5694. }
  5695. },
  5696. pointclick() {
  5697. let num = Number(this.zobj.pointvalue);
  5698. if (
  5699. (num < 0 && this.zobj.pointvalue == "Point") ||
  5700. (num < 10 && this.zobj.pointvalue == "Point")
  5701. ) {
  5702. this.$parent.linezhexian(this.zobj.pointvalue);
  5703. }
  5704. },
  5705. geometryup() {
  5706. this.loaddataaction('geometryFileShow',JSON.stringify(this.objcheck));
  5707. },
  5708. // 文件上传成功调用几何接口
  5709. loaddataaction(action,paramJson) {
  5710. this.solverConfigid=sessionStorage.getItem('solverConfigid');
  5711. console.log(this.solverConfigid);
  5712. let that = this;
  5713. let params = {
  5714. transCode: "AFT001", // 服务器渲染实例接口创建推流
  5715. pid: this.project.projectId,
  5716. solverConfigId: this.solverConfigid,
  5717. action: action,
  5718. paramJson: paramJson,
  5719. };
  5720. request(params)
  5721. .then((res) => {})
  5722. .catch((err) => {
  5723. // Message({
  5724. // type: "info",
  5725. // message: "请上传文件",
  5726. // });
  5727. });
  5728. },
  5729. // 上传文件,加载图片
  5730. runugrid() {
  5731. this.$parent.startimg("init", "loaddata");
  5732. },
  5733. // 添加div
  5734. addTab(targetName) {
  5735. this.target = targetName;
  5736. let newTabName = ++this.tabIndex + "";
  5737. this.bStepok("SliceDisplayAdd", newTabName, "");
  5738. this.editableTabs.push({
  5739. index: newTabName,
  5740. type: "line",
  5741. variableName: "r",
  5742. level: "10",
  5743. normal_x: "",
  5744. normal_y: "",
  5745. normal_z: "",
  5746. position_x: "1",
  5747. position_y: "",
  5748. position_z: "",
  5749. scalar_value_state: false,
  5750. solid_state: true,
  5751. sectional_plane_state: true,
  5752. sectional_contour_state: true,
  5753. areaRange: "",
  5754. });
  5755. this.editableTabsValue = newTabName;
  5756. },
  5757. //add的参数
  5758. addparam() {
  5759. console.log(22222);
  5760. let dataslicedisplay = JSON.parse(
  5761. sessionStorage.getItem("dataslicedisplay")
  5762. );
  5763. let data = JSON.parse(dataslicedisplay);
  5764. let that = this;
  5765. that.variableNamearr = data.variableName.split(",");
  5766. let arr = this.editableTabs;
  5767. that.$nextTick(() => {
  5768. for (var i = 0; i < arr.length; i++) {
  5769. arr[i].position_x = data.position_x;
  5770. arr[i].position_y = data.position_y;
  5771. arr[i].position_z = data.position_z;
  5772. arr[i].areaRange = data.areaRange;
  5773. that.$refs.addtabs[i].getarrs(this.variableNamearr);
  5774. that.$refs.addtabs[i].range.xrange = data.xrange;
  5775. that.$refs.addtabs[i].range.yrange = data.yrange;
  5776. that.$refs.addtabs[i].range.zrange = data.zrange;
  5777. }
  5778. });
  5779. },
  5780. updata() {
  5781. this.bStepok("SliceDisplayUpdate", "", "");
  5782. },
  5783. //updata的参数
  5784. updataparam() {
  5785. let updateparam = JSON.parse(sessionStorage.getItem("updateparam"));
  5786. let edarr = this.editableTabs;
  5787. let updatadata = JSON.parse(updateparam);
  5788. let updatarr = updatadata.update_param;
  5789. console.log(updatarr);
  5790. for (var i = 0; i < edarr.length; i++) {
  5791. for (var j = 0; j < updatarr.length; j++) {
  5792. edarr[i].normal_x = updatarr[j].normal_x;
  5793. edarr[i].normal_y = updatarr[j].normal_y;
  5794. edarr[i].normal_z = updatarr[j].normal_z;
  5795. edarr[i].position_x = updatarr[j].position_x;
  5796. edarr[i].position_y = updatarr[j].position_y;
  5797. edarr[i].position_z = updatarr[j].position_z;
  5798. }
  5799. }
  5800. },
  5801. // 参数的编辑
  5802. //删除新增的tab
  5803. removeclear(val) {
  5804. let tabs = this.editableTabs;
  5805. let activeName = this.editableTabsValue;
  5806. if (activeName === val) {
  5807. tabs.forEach((tab, index) => {
  5808. if (tab.index === val) {
  5809. let nextTab = tabs[index + 1] || tabs[index - 1];
  5810. if (nextTab) {
  5811. activeName = nextTab.index;
  5812. }
  5813. }
  5814. });
  5815. }
  5816. this.editableTabsValue = activeName;
  5817. this.editableTabs = tabs.filter((tab) => tab.index !== val);
  5818. this.bStepok("SliceDisplayDel", val, "");
  5819. },
  5820. removeTab(targetName) {
  5821. console.log(targetName);
  5822. let tabs = this.editableTabs;
  5823. let activeName = this.editableTabsValue;
  5824. if (activeName === targetName) {
  5825. tabs.forEach((tab, index) => {
  5826. if (tab.index === targetName) {
  5827. let nextTab = tabs[index + 1] || tabs[index - 1];
  5828. if (nextTab) {
  5829. activeName = nextTab.index;
  5830. }
  5831. }
  5832. });
  5833. }
  5834. this.editableTabsValue = activeName;
  5835. this.editableTabs = tabs.filter((tab) => tab.index !== targetName);
  5836. this.bStepok("SliceDisplayDel", targetName, "");
  5837. },
  5838. handletabclick(el) {
  5839. console.log(el);
  5840. },
  5841. liceOK() {
  5842. let paramJson = JSON.stringify(this.editableTabs);
  5843. this.bStepok("SliceDisplayApply", "", paramJson);
  5844. this.dialog.Slice_Surface = false;
  5845. },
  5846. changedesc1(val) {
  5847. this.desclist = JSON.parse(val);
  5848. this.parameterObj.hcfdBoundarys = this.desclist;
  5849. },
  5850. leixingchange(val) {
  5851. if (val == "MPI Parallel") {
  5852. this.dialog.parallel_visiable = true;
  5853. } else {
  5854. this.dialog.parallel_visiable = false;
  5855. }
  5856. console.log(val);
  5857. },
  5858. //数据加载参数配置obj
  5859. hcfdchange(obj, solverConfigid, datas) {
  5860. this.parameterObj = JSON.parse(obj);
  5861. console.log(this.parameterObj);
  5862. this.desclist = this.parameterObj.hcfdBoundarys;
  5863. sessionStorage.setItem("res", obj);
  5864. this.solverConfigid = solverConfigid;
  5865. this.state = datas.state; //-1-为求解 ,0-是求解中,1-求解完成
  5866. sessionStorage.setItem("solverConfigid", solverConfigid);
  5867. },
  5868. //更新参数配置
  5869. hcfdparam() {
  5870. const params = {
  5871. transCode: "C00004",
  5872. solverConfigid: this.solverConfigid,
  5873. parameterObj: JSON.stringify(this.parameterObj),
  5874. };
  5875. request(params)
  5876. .then((res) => {
  5877. this.$parent.solverchange1(this.femnum, "1");
  5878. })
  5879. .catch((err) => {});
  5880. },
  5881. // 新版求解控制
  5882. Runsolve() {
  5883. this.hcfdparam();
  5884. this.dialog.runc_visiable = false;
  5885. },
  5886. hcfdExe() {
  5887. var _this = this;
  5888. let params = {
  5889. transCode: "C00005",
  5890. solverConfigId: this.solverConfigid,
  5891. };
  5892. request(params)
  5893. .then((res) => {
  5894. Message({
  5895. type: "success",
  5896. message: res.returnMsg,
  5897. });
  5898. })
  5899. .catch((err) => {
  5900. this.$emit("exlodingfalse", false);
  5901. setTimeout(function () {
  5902. _this.$refs.loading.visiable = false;
  5903. }, 4000);
  5904. if (err.returnCode == "EB8100017") {
  5905. MessageBox.confirm("你还未分配资源?", "提示", {
  5906. confirmButtonText: "分配资源",
  5907. cancelButtonText: "取消",
  5908. type: "warning",
  5909. })
  5910. .then(() => {
  5911. let errUril =
  5912. _this.$store.getters.proUrl +
  5913. "?projectId=" +
  5914. _this.project.projectId;
  5915. let params2 = {
  5916. transCode: "A00118",
  5917. lesseeId: _this.$store.getters.lesseeId,
  5918. };
  5919. request(params2)
  5920. .then((res) => {
  5921. window.location.href =
  5922. errUril + "&authCode=" + res.authCode;
  5923. })
  5924. .catch((err) => {});
  5925. })
  5926. .catch(() => {
  5927. _this.$refs.loading.visiable = false;
  5928. Message({
  5929. type: "info",
  5930. message: "已取消",
  5931. });
  5932. });
  5933. }
  5934. });
  5935. },
  5936. reUpload() {
  5937. this.$refs.mapbc.uploader.upload();
  5938. this.$refs.ugrid.uploader.upload();
  5939. },
  5940. /**
  5941. * 更新配置 并求解
  5942. */
  5943. async hcfdrun() {
  5944. if (this.state == "1") {
  5945. //求解状态(0-求解中,1-求解成功,-1-没有求解)
  5946. //上次求解完成
  5947. MessageBox.confirm("已完成计算,是否放弃上次结果重新计算?", "提示", {
  5948. confirmButtonText: "重新计算",
  5949. cancelButtonText: "取消",
  5950. type: "warning",
  5951. })
  5952. .then(() => {
  5953. MessageBox.close();
  5954. this.isSolverEnd = false;
  5955. this.hcfdExe();
  5956. let _this = this;
  5957. let isStop = false;
  5958. this.$parent.funagain();
  5959. this.$emit("exlodingfalse", true);
  5960. })
  5961. .catch(() => {
  5962. Message.info("已取消!");
  5963. MessageBox.close();
  5964. this.$emit("exlodingfalse", false);
  5965. this.funbool=false;
  5966. });
  5967. } else {
  5968. this.$emit("exlodingfalse", true);
  5969. this.isSolverEnd = false;
  5970. this.hcfdExe();
  5971. let _this = this;
  5972. let isStop = false;
  5973. isStop = true;
  5974. this.$parent.funagain();
  5975. }
  5976. },
  5977. // 求解的日志
  5978. getlog() {
  5979. let params = {
  5980. transCode: "C00006",
  5981. pid: this.project.projectId,
  5982. };
  5983. request(params)
  5984. .then((res) => {
  5985. let rows = res.rows;
  5986. console.log(rows);
  5987. })
  5988. .catch((err) => {});
  5989. },
  5990. handleClick(tab, event) {
  5991. console.log(this.activeName);
  5992. if(this.activeName=='one'){
  5993. // this.$parent.startimg("init",'geometryFileShow');
  5994. this.loaddataaction('geometryFileShow','');
  5995. }else if(this.activeName=='twos'){
  5996. this.$parent.startimg("init",'loaddata');
  5997. }
  5998. },
  5999. activecleer() {
  6000. this.active = 11;
  6001. },
  6002. // 获取物面数据的步数
  6003. setpnum() {
  6004. let steplist = this.boundaryStep;
  6005. let len = steplist.length;
  6006. if (len == 0) {
  6007. let params = {
  6008. transCode: "AFT002",
  6009. pid: this.project.projectId,
  6010. solverConfigId: this.solverConfigid,
  6011. };
  6012. request(params).then((res) => {
  6013. let steps = res.steps.split(",");
  6014. this.boundaryStep = steps;
  6015. this.hcfdSteplist = steps;
  6016. this.volumStep = steps;
  6017. this.slidermax = Number(this.boundaryStep.length);
  6018. this.median =
  6019. Number(this.hcfdSteplist[2]) - Number(this.hcfdSteplist[1]);
  6020. });
  6021. }
  6022. },
  6023. // 获取轮廓数据
  6024. bStepok(action, index, paramJson) {
  6025. const params = {
  6026. transCode: "AFT001",
  6027. pid: this.project.projectId,
  6028. solverConfigId: this.solverConfigid,
  6029. action: action,
  6030. paramJson: paramJson,
  6031. step: this.Stepe,
  6032. scalarName: this.outlineobj.scalarName,
  6033. level: this.outlineobj.level,
  6034. range0: this.outlineobj.range0,
  6035. range1: this.outlineobj.range1,
  6036. isVolume: this.isVolume,
  6037. dataU: this.vector.u,
  6038. dataV: this.vector.v,
  6039. dataW: this.vector.w,
  6040. scaleFactor: this.vectorobj.scaleFactor,
  6041. index: index,
  6042. animationType: this.animationType,
  6043. hideZones: this.hideZones,
  6044. };
  6045. request(params)
  6046. .then((res) => {
  6047. console.log(res);
  6048. })
  6049. .catch((err) => {});
  6050. },
  6051. //level颜色的数据
  6052. changeblur() {
  6053. this.bStepok("ContourDisplay", "", "");
  6054. },
  6055. vchangeblur() {
  6056. this.bStepok("LineDisplay", "", "");
  6057. },
  6058. // 获取轮廓数据
  6059. outlinedata(data) {
  6060. let scalarrange1 = "";
  6061. let ytdata = JSON.parse(data);
  6062. this.outlineobj.scalarName = ytdata.scalarName;
  6063. this.vSalar = ytdata.scalarName;
  6064. let ress = ytdata.scalarNames;
  6065. this.outlineobj.scalarmax = ytdata.scalarrange;
  6066. if (ress == undefined) {
  6067. Message({
  6068. type: "info",
  6069. message: "请择物面数据",
  6070. });
  6071. } else {
  6072. this.outlineobj.bmScalars = Array.from(ress.split(","));
  6073. this.outlineobj.nameTypes = ytdata.nameTypes;
  6074. this.strnumchange(ytdata.nameTypes);
  6075. this.outlinemax(this.vSalar);
  6076. }
  6077. },
  6078. // 获取轮廓数据的最大值和最小值
  6079. outlinemax(val) {
  6080. let arrmax = Array.from(this.outlineobj.scalarmax.split(","));
  6081. arrmax.forEach((item, index) => {
  6082. let arrval = arrmax[index].split("#");
  6083. if (arrval.includes(val)) {
  6084. this.outlineobj.range0 = arrval[1];
  6085. this.outlineobj.range1 = arrval[2];
  6086. }
  6087. });
  6088. },
  6089. //矢量数据
  6090. vectordata(data) {
  6091. //let vectorparam= JSON.parse(sessionStorage.getItem("vectorparam"));
  6092. let vectorparam = JSON.parse(data);
  6093. console.log(vectorparam);
  6094. let datau = vectorparam.dataU;
  6095. let datav = vectorparam.dataV;
  6096. let dataw = vectorparam.dataW;
  6097. this.vectorobj.dataUarr = datau.split(",");
  6098. this.vectorobj.dataVarr = datav.split(",");
  6099. this.vectorobj.dataWarr = dataw.split(",");
  6100. this.vectorobj.scaleFactor = vectorparam.scaleFactor;
  6101. }, // zoom
  6102. zoomanimation(data) {
  6103. let zoomparam = JSON.parse(data);
  6104. this.animationobj.zoomarr = zoomparam.zonename.split(",");
  6105. console.log(this.animationobj.zoomarr);
  6106. },
  6107. //拿到勾选数据
  6108. zoomList(data, index) {
  6109. console.log(this.checkList);
  6110. console.log(data + index);
  6111. },
  6112. // 动画
  6113. loadonclick() {
  6114. // console.log(this.paramJson);
  6115. // console.log(this.animationType);
  6116. this.hideZones = this.checkList.toString();
  6117. this.bStepok("animation", "", "");
  6118. },
  6119. // 矢量的OK按钮
  6120. vectorOK() {
  6121. (this.vector.u = this.vectorobj.dataU),
  6122. (this.vector.v = this.vectorobj.dataV),
  6123. (this.vector.w = this.vectorobj.dataW),
  6124. this.bStepok("VectorDisplay", "", "");
  6125. },
  6126. //stream 数据
  6127. streamdata(data) {
  6128. console.log(data);
  6129. let streamparam = JSON.parse(data);
  6130. let datau = streamparam.dataU;
  6131. let datav = streamparam.dataV;
  6132. let dataw = streamparam.dataW;
  6133. this.streamobj.dataUarr = datau.split(",");
  6134. this.streamobj.dataVarr = datav.split(",");
  6135. this.streamobj.dataWarr = dataw.split(",");
  6136. },
  6137. // stream创建数据
  6138. CreateStream() {
  6139. this.vector.u = this.streamobj.dataU;
  6140. this.vector.v = this.streamobj.dataV;
  6141. this.vector.w = this.streamobj.dataW;
  6142. if (
  6143. this.vector.u == this.vector.v ||
  6144. this.vector.u == this.vector.w ||
  6145. this.vector.v == this.vector.w
  6146. ) {
  6147. Message({
  6148. type: "warning",
  6149. message: "矢量值,各不相同才能创建!",
  6150. });
  6151. } else {
  6152. this.bStepok("StreamDisplayCreate", "", "");
  6153. }
  6154. },
  6155. //stream提交数据
  6156. streamOK() {
  6157. console.log(this.streamres);
  6158. let parae = JSON.stringify(this.streamres);
  6159. this.bStepok("StreamDisplayApply", "", parae);
  6160. },
  6161. // 字符串的裁剪
  6162. strnumchange(val) {
  6163. let strnum = val;
  6164. let num_caj = strnum.split(",");
  6165. for (var i = 0; i < num_caj.length; i++) {
  6166. if (num_caj[i].includes(this.vSalar)) {
  6167. let ster = num_caj[i];
  6168. let str = ster.charAt(ster.length - 1);
  6169. if (str == "0") {
  6170. this.outlineobj.leixing = "point scalar";
  6171. } else {
  6172. this.outlineobj.leixing = "cell scalar";
  6173. }
  6174. }
  6175. }
  6176. },
  6177. // 标量选择名称跟着边
  6178. bmScalarschange(val) {
  6179. this.outlineobj.scalarName = this.vSalar;
  6180. this.strnumchange(this.outlineobj.nameTypes);
  6181. this.outlinemax(this.vSalar);
  6182. },
  6183. //实体的颜色的控制
  6184. colorchange(val) {
  6185. if (this.lineColor != null) {
  6186. let str = this.lineColor.slice(5, -1);
  6187. let colorstr = str.split(",");
  6188. this.colorobj.R = colorstr[0];
  6189. this.colorobj.G = colorstr[1];
  6190. this.colorobj.B = colorstr[2];
  6191. this.colorobj.transparency = colorstr[3];
  6192. console.log(colorstr);
  6193. }
  6194. },
  6195. colorsolid() {
  6196. let r = (Number(this.colorobj.R) / 255).toFixed(4);
  6197. let g = (Number(this.colorobj.G) / 255).toFixed(4);
  6198. let b = (Number(this.colorobj.B) / 255).toFixed(4);
  6199. const params = {
  6200. transCode: "AFT001",
  6201. pid: this.project.projectId,
  6202. solverConfigId: this.solverConfigid,
  6203. action: "SolidSurfaceDisplay",
  6204. paramJson: "",
  6205. step: this.bStep,
  6206. scalarName: this.outlineobj.scalarName,
  6207. level: "",
  6208. range0: this.outlineobj.range0,
  6209. range1: this.outlineobj.range1,
  6210. isVolume: this.isVolume,
  6211. dataU: this.vectorobj.dataU,
  6212. dataV: this.vectorobj.dataV,
  6213. dataW: this.vectorobj.dataW,
  6214. scaleFactor: this.vectorobj.scaleFactor,
  6215. r: r,
  6216. g: g,
  6217. b: b,
  6218. transparency: this.colorobj.transparency,
  6219. showHideState: this.colorobj.showHideState,
  6220. };
  6221. request(params)
  6222. .then((res) => {
  6223. console.log(res);
  6224. })
  6225. .catch((err) => {});
  6226. },
  6227. //
  6228. //模块选择
  6229. clickgeometry(e, index, key) {
  6230. var e = e || window.Event;
  6231. this.styX.left = e.clientX + "px";
  6232. this.active = key;
  6233. // document.querySelector('.el-dialog').style.left='265px';
  6234. // console.log(typeof this.styX.left);
  6235. console.log(key);
  6236. if(key=='four44-0'){
  6237. sessionStorage.setItem('keyactive',"four44-0");
  6238. }else{
  6239. sessionStorage.setItem('keyactive',"");
  6240. }
  6241. // console.log(document.querySelector('.el-dialog').style.left)
  6242. switch (key) {
  6243. case "info1-0":
  6244. this.name = "New";
  6245. this.clickNew();
  6246. break;
  6247. case "info1-1":
  6248. this.loadProjects();
  6249. break;
  6250. case "info1-2":
  6251. this.name = "amend";
  6252. this.clickNew();
  6253. break;
  6254. case "one0-0":
  6255. this.dialog.geometry_upload = true;
  6256. break;
  6257. case "one-0":
  6258. this.dialog.upload_visiable = true;
  6259. break;
  6260. case "one-2":
  6261. this.dialog.mesh_generation = true;
  6262. break;
  6263. case "two-0":
  6264. this.dialog.scale_visiable = true;
  6265. break;
  6266. case "two-1":
  6267. this.dialog.translation_visiable = true;
  6268. break;
  6269. case "two-2":
  6270. this.dialog.rotation_visiable = true;
  6271. case "two-3":
  6272. this.dialog.type_visiable = true;
  6273. break;
  6274. case "two-4":
  6275. this.dialog.parallel_visiable = true;
  6276. break;
  6277. case "three-0":
  6278. this.dialog.equation_visiable = true;
  6279. break;
  6280. case "three2-0":
  6281. this.dialog.inviscid_visiable = true;
  6282. break;
  6283. case "three2-1":
  6284. this.dialog.border_visiable = true;
  6285. break;
  6286. case "three2-2":
  6287. this.dialog.dynamic_visiable = true;
  6288. break;
  6289. case "three1-0":
  6290. this.dialog.reference_visiable = true;
  6291. break;
  6292. case "three1-1":
  6293. this.dialog.nonitertial_visiable = true;
  6294. break;
  6295. case "four-0":
  6296. this.dialog.fluxrc_visiable = true;
  6297. break;
  6298. case "four-1":
  6299. this.dialog.time_visiable = true;
  6300. break;
  6301. case "four2-0":
  6302. this.dialog.xian_visiable = true;
  6303. break;
  6304. case "four2-10":
  6305. this.dialog.initialization_visiable = true;
  6306. break;
  6307. case "four3-0":
  6308. this.dialog.runc_visiable = true;
  6309. break;
  6310. case "four3-1":
  6311. this.dialog.boundaryo_visiable = true;
  6312. break;
  6313. case "four4-0":
  6314. this.dialog.specialp_visiable = true;
  6315. break;
  6316. case "four4-1":
  6317. this.dialog.swap_visiable = true;
  6318. break;
  6319. case "four44-0":
  6320. this.$parent.fun();
  6321. break;
  6322. case "four410":
  6323. this.funbool=true;
  6324. this.hcfdrun();
  6325. break;
  6326. case "five-0":
  6327. this.isVolume = "1";
  6328. this.setpnum();
  6329. this.dialog.SurfaceGrid_visiable = true;
  6330. break;
  6331. case "five-1":
  6332. this.isVolume = "2";
  6333. this.setpnum();
  6334. this.dialog.VolumeGrid_visiable = true;
  6335. break;
  6336. case "five7-0":
  6337. this.dialog.contour_visiable = true;
  6338. break;
  6339. case "five7-1":
  6340. this.dialog.Line_visiable = true;
  6341. break;
  6342. case "five7-2":
  6343. this.dialog.Vector_visiable = true;
  6344. break;
  6345. case "five8-0":
  6346. this.dialog.Solid_Surface = true;
  6347. break;
  6348. case "five8-1":
  6349. this.dialog.Slice_Surface = true;
  6350. break;
  6351. case "five8-2":
  6352. this.dialog.Stream_Surface = true;
  6353. break;
  6354. case "five9-0":
  6355. this.stepfun();
  6356. this.value1 = Number(this.animationobj.currentstep);
  6357. this.dialog.an_Animation = true;
  6358. let that = this;
  6359. setTimeout(function () {
  6360. that.active = "five7-0";
  6361. that.dialog.contour_visiable = true;
  6362. }, 100);
  6363. break;
  6364. case "five10-0":
  6365. this.dialog.Curve_Select = true;
  6366. break;
  6367. case "five10-1":
  6368. this.dialog.Curve_Disp1ay = true;
  6369. break;
  6370. }
  6371. },
  6372. animationclick(val) {
  6373. this.percentage = 0;
  6374. console.log(val);
  6375. this.animationType = val;
  6376. switch (val) {
  6377. case "ContourDisplay":
  6378. this.active = "five7-0";
  6379. this.dialog.contour_visiable = true;
  6380. break;
  6381. case "LineDisplay":
  6382. this.active = "five7-1";
  6383. this.dialog.Line_visiable = true;
  6384. break;
  6385. case "VectorDisplay":
  6386. this.active = "five7-2";
  6387. this.dialog.Vector_visiable = true;
  6388. break;
  6389. case "SolidSurfaceDisplay":
  6390. this.active = "five8-0";
  6391. this.dialog.Solid_Surface = true;
  6392. break;
  6393. }
  6394. },
  6395. //清除相关信息
  6396. clearAll() {
  6397. this.showUgridflag = false; //ugrid 是否显示过
  6398. this.showSurfaceflag = false; //surface 是否显示过
  6399. this.showVolumeflage = false; //Volume 是否显示过
  6400. this.showMonitorflage = false;
  6401. this.islogload = true;
  6402. this.boundaryStep = [];
  6403. this.logs = "";
  6404. this.project = {
  6405. projectId: "",
  6406. projectName: "",
  6407. projectType: "hcfd",
  6408. projectDesc: "",
  6409. fileType: "ascii",
  6410. solverfiles: [],
  6411. solverVolumUrls: [],
  6412. solverBoundaryUrls: [],
  6413. loadfils: [],
  6414. converge: "",
  6415. };
  6416. },
  6417. init() {
  6418. this.project.projectId = this.pid; //获取url 参数
  6419. this.project.lesseeId = this.$store.getters.lesseeId; //获取url 参数
  6420. this.missType = true;
  6421. },
  6422. logtime() {
  6423. let self = this;
  6424. let projectId = self.project.projectId;
  6425. if (projectId != null && projectId != "" && self.islogload) {
  6426. self.islogload = false;
  6427. let params = {
  6428. transCode: "A00112",
  6429. projectId: projectId,
  6430. page: 0,
  6431. count: 30,
  6432. };
  6433. request(params)
  6434. .then((res) => {
  6435. console.log(res);
  6436. let rows = res.rows;
  6437. self.logs = ""; //只显示最新的数据
  6438. rows.forEach((row) => {
  6439. self.logs = row.log + "\n" + self.logs;
  6440. if (row.log.indexOf("Solver end") > 0) {
  6441. self.isSolverEnd = true;
  6442. }
  6443. });
  6444. self.islogload = true;
  6445. })
  6446. .catch((err) => {
  6447. self.islogload = true;
  6448. });
  6449. }
  6450. },
  6451. setVolumScalars(scalars) {
  6452. console.log(scalars);
  6453. this.volumScalars = scalars;
  6454. },
  6455. // 工具栏的点击事件
  6456. yCalchange() {
  6457. this.Yvisiable = true;
  6458. },
  6459. reyCalchange() {
  6460. this.llsvisiable = true;
  6461. },
  6462. atmoCalchange() {},
  6463. // 弹框执行事件
  6464. // 弹框执行事件
  6465. referencevisiable() {
  6466. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  6467. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  6468. },
  6469. timeasmvisiable() {
  6470. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  6471. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  6472. this.dialog.timeasm_visiable = false;
  6473. },
  6474. runcvisiable() {
  6475. this.parameterObjclone = JSON.parse(sessionStorage.getItem("res"));
  6476. this.parameterObj.nmlParam = this.parameterObjclone.nmlParam;
  6477. this.dialog.runc_visiable = false;
  6478. },
  6479. dialogbtnkew() {
  6480. this.form1.ssd = "";
  6481. var kelvins = parseFloat(this.form1.kelvins);
  6482. this.form1.ssd = this.accAdd(kelvins, 273.15);
  6483. // this.form.ssd = Math.floor((parseInt(this.form.kelvins) * 100) / 100)-273.15
  6484. if (this.form1.ssd < 0) {
  6485. this.form1.ssd = 0;
  6486. }
  6487. },
  6488. accAdd(arg1, arg2) {
  6489. var r1, r2, m;
  6490. try {
  6491. r1 = arg1.toString().split(".")[1].length;
  6492. } catch (e) {
  6493. r1 = 0;
  6494. }
  6495. try {
  6496. r2 = arg2.toString().split(".")[1].length;
  6497. } catch (e) {
  6498. r2 = 0;
  6499. }
  6500. m = Math.pow(10, Math.max(r1, r2));
  6501. return (arg1 * m - arg2 * m) / m;
  6502. },
  6503. dialogbtnssd() {
  6504. this.form1.kelvins = "";
  6505. var ssd = parseFloat(this.form1.ssd);
  6506. this.form1.kelvins = this.accAdd(ssd, -273.15);
  6507. //this.form.kelvins = Math.floor((parseInt(this.form.ssd) * 100) / 100) +273.15
  6508. },
  6509. dialogbtny() {
  6510. let u_freestream = eval(this.form.u_freestream);
  6511. if (u_freestream <= 0.0) {
  6512. alert("Free stream velocity must be greater than zero");
  6513. return;
  6514. }
  6515. let rho = eval(this.form.rho);
  6516. if (rho <= 0.0) {
  6517. alert("Density must be greater than zero");
  6518. return;
  6519. }
  6520. let L = eval(this.form.L);
  6521. if (L <= 0.0) {
  6522. alert("Boundary layer reference length must be greater than zero");
  6523. return;
  6524. }
  6525. let mu = eval(this.form.mu);
  6526. if (mu <= 0.0) {
  6527. alert("Dynamic viscosity must be greater than zero");
  6528. return;
  6529. }
  6530. let y_plus_desired = eval(this.form.y_plus_desired);
  6531. if (y_plus_desired <= 0.0) {
  6532. alert("Desired y+ value must be greater than zero");
  6533. return;
  6534. }
  6535. let Re = (rho * u_freestream * L) / mu;
  6536. let C_f = 0.026 * Math.pow(Re, -(1.0 / 7.0));
  6537. C_f = 0.0576 * Math.pow(Re, -1.0 / 5.0);
  6538. C_f = 0.37 * Math.pow(Math.log(Re) / Math.log(10), -2.584);
  6539. C_f = Math.pow((2 * Math.log(Re)) / Math.log(10) - 0.65, -2.3);
  6540. let tau_w = C_f * 0.5 * rho * u_freestream * u_freestream;
  6541. let U_f = Math.sqrt(tau_w / rho);
  6542. let wall_distance_estimation = (y_plus_desired * mu) / (U_f * rho);
  6543. this.form.Rex = Re.toExponential(1);
  6544. this.form.dtc = wall_distance_estimation.toExponential(1);
  6545. },
  6546. leinsdialogbtny() {
  6547. this.form.Re =
  6548. (this.form.lmi * this.form.lls * this.form.lld) / this.form.ldlzxxs;
  6549. // console.log(this.form.Re);
  6550. },
  6551. unitConversion() {
  6552. this.$refs.Calculator.visiable = true;
  6553. },
  6554. taskchangGeneal() {
  6555. this.TaskGenealshow = false;
  6556. },
  6557. taskchangPhysics() {
  6558. this.TaskPhysicsshow = false;
  6559. },
  6560. taskchangSolution() {
  6561. this.TaskSolutionshow = false;
  6562. },
  6563. taskchangSurface() {
  6564. this.TaskSurfaceshow = false;
  6565. },
  6566. taskchangVolume() {
  6567. this.TaskVolumeshow = false;
  6568. },
  6569. // Contour
  6570. showLeftMenu(emt) {
  6571. this.leftMenu_2Show = true;
  6572. },
  6573. uploadRequest1(params) {
  6574. let param = new FormData();
  6575. param.append("transCode", "A00102");
  6576. param.append("file", params.file);
  6577. param.append("projectId", this.project.projectId);
  6578. uploadFile(param)
  6579. .then((res) => {
  6580. this.findParam();
  6581. this.getHCFDLoadFiles();
  6582. })
  6583. .catch((err) => {});
  6584. },
  6585. uploadRequest2(params) {
  6586. let param = new FormData();
  6587. param.append("transCode", "A00102");
  6588. param.append("file", params.file);
  6589. param.append("projectId", this.project.projectId);
  6590. uploadFile(param)
  6591. .then((res) => {
  6592. this.findParam();
  6593. })
  6594. .catch((err) => {});
  6595. },
  6596. //获取上传文件
  6597. async getHCFDLoadFiles() {
  6598. let params = {
  6599. transCode: "A00110",
  6600. projectId: this.project.projectId,
  6601. };
  6602. await request(params)
  6603. .then((res) => {
  6604. this.project.loadfils = res.files;
  6605. this.fileNames = [];
  6606. res.files.forEach((url) => {
  6607. let names = url.filepath.split("/");
  6608. let name = names[names.length - 1];
  6609. this.fileNames.push(name);
  6610. });
  6611. })
  6612. .catch((err) => {});
  6613. },
  6614. /**
  6615. * 更新配置 并求解
  6616. */
  6617. //选择step
  6618. bStepChange(val) {
  6619. console.log(val);
  6620. this.Stepe = val;
  6621. let numstepe = 0;
  6622. if (this.Stepe == 0) {
  6623. Message({
  6624. type: "warning",
  6625. message: "请选择setp有效值",
  6626. });
  6627. }
  6628. this.animationobj.firststep = this.boundaryStep[0];
  6629. this.animationobj.laststep =
  6630. this.boundaryStep[this.boundaryStep.length - 1];
  6631. this.animationobj.currentstep = this.bStep;
  6632. },
  6633. //选择step
  6634. vStepChange(val) {
  6635. this.Stepe = val;
  6636. if (val == 0) {
  6637. Message({
  6638. type: "warning",
  6639. message: "请选择setp有效值",
  6640. });
  6641. }
  6642. this.animationobj.firststep = this.volumStep[0];
  6643. this.animationobj.laststep = this.volumStep[this.volumStep.length - 1];
  6644. this.animationobj.currentstep = val;
  6645. // for(let i=0;i<=this.boundaryStep.length-1;i++){
  6646. // if(this.Stepe==this.boundaryStep[i]){
  6647. // this.countnum= i;
  6648. // }
  6649. // }
  6650. },
  6651. // 表面加载
  6652. SurfaceChange(value) {
  6653. // 选择色条个数
  6654. this.Surfacenum = value;
  6655. },
  6656. // 体积
  6657. VolumenumChange(value) {
  6658. // 选择色条个数
  6659. this.Volumenum = value;
  6660. },
  6661. async reUpload() {
  6662. this.$refs.mapbc.uploader.upload();
  6663. this.$refs.ugrid.uploader.upload();
  6664. },
  6665. async ugridShow() {
  6666. if (
  6667. this.project.projectId == "" ||
  6668. this.project.projectId == undefined ||
  6669. this.project.projectId == null
  6670. ) {
  6671. Message({
  6672. type: "error",
  6673. message: "缺少文件,请检查修改",
  6674. });
  6675. } else {
  6676. this.dialog.new_visiable = false;
  6677. this.tstep = 0;
  6678. this.clearserver();
  6679. this.initWebSocket();
  6680. }
  6681. },
  6682. async findParam() {
  6683. let params = {
  6684. transCode: "A00107",
  6685. projectId: this.project.projectId,
  6686. };
  6687. await request(params)
  6688. .then((res) => {
  6689. this.project.projectName = res.projectName;
  6690. this.project.uid = res.uid;
  6691. let cjuserid = this.$route.query.cjuserid;
  6692. sessionStorage.setItem("projectName", res.projectName);
  6693. if (res.missionType === "3" || res.missionType === "4") {
  6694. this.missType = false;
  6695. } else {
  6696. this.missType = true;
  6697. }
  6698. console.log(this.parameterObj);
  6699. this.parameterObj = JSON.parse(res.parameterObj);
  6700. sessionStorage.setItem("res", res.parameterObj);
  6701. this.lsolverState = res.solverState;
  6702. })
  6703. .catch((err) => {});
  6704. },
  6705. //上传配置参数
  6706. async updateParam() {
  6707. delete this.parameterObj.nmlParam.initialization;
  6708. let params = {
  6709. transCode: "A00104",
  6710. parameterObj: JSON.stringify(this.parameterObj),
  6711. projectId: this.project.projectId,
  6712. lesseeId: this.$store.getters.lesseeId,
  6713. };
  6714. // console.log(this.parameterObj.nmlParam.a_u);
  6715. // console.log(this.parameterObj);
  6716. await request(params)
  6717. .then((res) => {
  6718. this.solverState = res.solverState;
  6719. })
  6720. .catch((err) => {});
  6721. },
  6722. loadProjects() {
  6723. this.dialog.load_visiable = true;
  6724. let params = {
  6725. transCode: "A00101",
  6726. page: 1,
  6727. size: 1,
  6728. projectType: "hcfd",
  6729. lesseeId: this.$store.getters.lesseeId,
  6730. };
  6731. this.loading = true;
  6732. request(params)
  6733. .then((res) => {
  6734. this.projects = res.rows;
  6735. this.loading = false;
  6736. })
  6737. .catch((err) => {});
  6738. },
  6739. projectsSelectionChange(val) {
  6740. this.clearAll();
  6741. if (val.length == 1) {
  6742. this.project.projectId = val[0].projectId;
  6743. this.project.projectName = val[0].projectName;
  6744. this.project.projectDesc = val[0].projectDesc;
  6745. this.xiugai = val[0];
  6746. } else if (val.length > 1) {
  6747. this.project.projectId = val[1].projectId;
  6748. this.project.projectName = val[1].projectName;
  6749. this.project.projectDesc = val[1].projectDesc;
  6750. this.xiugai = val[1];
  6751. }
  6752. },
  6753. projectsSelectionSelect(selection, row) {
  6754. if (selection.length <= 1) return;
  6755. this.$refs.projectsTable.clearSelection();
  6756. this.$refs.projectsTable.toggleRowSelection(row, true);
  6757. },
  6758. //load状态回调
  6759. fileLoadeState(files) {
  6760. files.forEach((file) => {
  6761. this.loadObjs.forEach((obj) => {
  6762. if (obj.type == 2) {
  6763. if (obj.filename === file.name) {
  6764. obj.percentage = file.percentage;
  6765. }
  6766. }
  6767. if (obj.type == 1) {
  6768. // obj.message=file.message;
  6769. }
  6770. });
  6771. });
  6772. },
  6773. boundaryChange(boundaryid) {
  6774. this.boundaryid = boundaryid;
  6775. this.parameterObj.hcfdBoundarys.forEach((hcfdBoundary) => {
  6776. if (hcfdBoundary.id === boundaryid) {
  6777. this.Physics.hcfdBoundaryquery = hcfdBoundary;
  6778. this.Physics.Boundary.cquery = hcfdBoundary.conditionsCode;
  6779. return;
  6780. }
  6781. });
  6782. },
  6783. conditionsChange(conditionsCode) {
  6784. this.Physics.hcfdBoundaryquery.conditionsCode = conditionsCode;
  6785. this.parameterObj.hcfdBoundarys.forEach((hcfdBoundary) => {
  6786. if (hcfdBoundary.id === this.boundaryid) {
  6787. this.Physics.hcfdBoundaryquery = hcfdBoundary;
  6788. this.Physics.Boundary.cquery = hcfdBoundary.conditionsCode;
  6789. return;
  6790. }
  6791. });
  6792. },
  6793. solutionbCheckAllChange(val) {
  6794. if (val == true) {
  6795. this.parameterObj.nmlParam.a_u = true;
  6796. this.parameterObj.nmlParam.a_v = true;
  6797. this.parameterObj.nmlParam.a_w = true;
  6798. this.parameterObj.nmlParam.a_p = true;
  6799. this.parameterObj.nmlParam.a_cp = true;
  6800. this.parameterObj.nmlParam.a_mach = true;
  6801. this.parameterObj.nmlParam.a_vort_mag = true;
  6802. this.parameterObj.nmlParam.a_vort_x = true;
  6803. this.parameterObj.nmlParam.a_vort_y = true;
  6804. this.parameterObj.nmlParam.a_vort_z = true;
  6805. this.parameterObj.nmlParam.a_q_criterion = true;
  6806. this.Solution.boundaryout.isIndeterminate = false;
  6807. } else {
  6808. this.parameterObj.nmlParam.a_u = false;
  6809. this.parameterObj.nmlParam.a_v = false;
  6810. this.parameterObj.nmlParam.a_w = false;
  6811. this.parameterObj.nmlParam.a_p = false;
  6812. this.parameterObj.nmlParam.a_cp = false;
  6813. this.parameterObj.nmlParam.a_mach = false;
  6814. this.parameterObj.nmlParam.a_vort_mag = false;
  6815. this.parameterObj.nmlParam.a_vort_x = false;
  6816. this.parameterObj.nmlParam.a_vort_y = false;
  6817. this.parameterObj.nmlParam.a_vort_z = false;
  6818. this.parameterObj.nmlParam.a_q_criterion = false;
  6819. this.Solution.boundaryout.isIndeterminate = false;
  6820. }
  6821. },
  6822. solutionbCheckedCitiesChange(value) {
  6823. let checkedCount = value.length;
  6824. this.Solution.boundaryout.checkAll =
  6825. checkedCount === this.Solution.boundaryout.lists.length;
  6826. this.Solution.boundaryout.isIndeterminate =
  6827. checkedCount > 0 &&
  6828. checkedCount < this.Solution.boundaryout.lists.length;
  6829. this.solutionbSetParam();
  6830. },
  6831. solutionbSetParam() {
  6832. this.Solution.boundaryout.checkeds.forEach((cell) => {
  6833. switch (cell) {
  6834. case "X-component of velocity":
  6835. console.log(this.parameterObj.nmlParam.a_u);
  6836. this.parameterObj.nmlParam.a_u = true;
  6837. break;
  6838. case "Y-component of velocity":
  6839. this.parameterObj.nmlParam.a_v = true;
  6840. break;
  6841. case "Z-component of velocity":
  6842. this.parameterObj.nmlParam.a_w = true;
  6843. break;
  6844. case "Press":
  6845. this.parameterObj.nmlParam.a_p = true;
  6846. break;
  6847. case "Press coefficient":
  6848. this.parameterObj.nmlParam.a_cp = true;
  6849. break;
  6850. case "Mach Number":
  6851. this.parameterObj.nmlParam.a_mach = true;
  6852. break;
  6853. case "Vorticity magnitude":
  6854. this.parameterObj.nmlParam.a_vort_mag = true;
  6855. break;
  6856. case "X-component of vorticity":
  6857. this.parameterObj.nmlParam.a_vort_x = true;
  6858. break;
  6859. case "Y-component of vorticity":
  6860. this.parameterObj.nmlParam.a_vort_y = true;
  6861. break;
  6862. case "Z-component of vorticity":
  6863. this.parameterObj.nmlParam.a_vort_z = true;
  6864. break;
  6865. case "Q Criterion":
  6866. this.parameterObj.nmlParam.a_q_criterion = true;
  6867. break;
  6868. default:
  6869. break;
  6870. }
  6871. });
  6872. },
  6873. solutionvCheckAllChange(val) {
  6874. // this.Solution.volumout.checkeds = val ? this.Solution.volumout.lists : [];
  6875. // this.Solution.volumout.isIndeterminate = false;
  6876. // this.solutionbSetParam();
  6877. if (val == true) {
  6878. this.parameterObj.nmlParam.v_u = true;
  6879. this.parameterObj.nmlParam.v_v = true;
  6880. this.parameterObj.nmlParam.v_w = true;
  6881. this.parameterObj.nmlParam.v_p = true;
  6882. this.parameterObj.nmlParam.v_cp = true;
  6883. this.parameterObj.nmlParam.v_mach = true;
  6884. this.parameterObj.nmlParam.v_vort_mag = true;
  6885. this.parameterObj.nmlParam.v_vort_x = true;
  6886. this.parameterObj.nmlParam.v_vort_y = true;
  6887. this.parameterObj.nmlParam.v_vort_z = true;
  6888. this.parameterObj.nmlParam.v_q_criterion = true;
  6889. } else {
  6890. this.parameterObj.nmlParam.v_u = false;
  6891. this.parameterObj.nmlParam.v_v = false;
  6892. this.parameterObj.nmlParam.v_w = false;
  6893. this.parameterObj.nmlParam.v_p = false;
  6894. this.parameterObj.nmlParam.v_cp = false;
  6895. this.parameterObj.nmlParam.v_mach = false;
  6896. this.parameterObj.nmlParam.v_vort_mag = false;
  6897. this.parameterObj.nmlParam.v_vort_x = false;
  6898. this.parameterObj.nmlParam.v_vort_y = false;
  6899. this.parameterObj.nmlParam.v_vort_z = false;
  6900. this.parameterObj.nmlParam.v_q_criterion = false;
  6901. this.Solution.volumout.isIndeterminate = false;
  6902. }
  6903. },
  6904. solutionvCheckedCitiesChange(value) {
  6905. let checkedCount = value.length;
  6906. console.log(value);
  6907. this.Solution.volumout.checkAll =
  6908. checkedCount === this.Solution.volumout.lists.length;
  6909. this.Solution.volumout.isIndeterminate =
  6910. checkedCount > 0 && checkedCount < this.Solution.volumout.lists.length;
  6911. this.solutionvSetParam();
  6912. },
  6913. solutionvSetParam() {
  6914. this.Solution.volumout.checkeds.forEach((cell) => {
  6915. switch (cell) {
  6916. case "X-component of velocity":
  6917. this.parameterObj.nmlParam.v_u = true;
  6918. break;
  6919. case "Y-component of velocity":
  6920. this.parameterObj.nmlParam.v_v = true;
  6921. break;
  6922. case "Z-component of velocity":
  6923. this.parameterObj.nmlParam.v_w = true;
  6924. break;
  6925. case "Press":
  6926. this.parameterObj.nmlParam.v_p = true;
  6927. break;
  6928. case "Press coefficient":
  6929. this.parameterObj.nmlParam.v_cp = true;
  6930. break;
  6931. case "Mach Number":
  6932. this.parameterObj.nmlParam.v_mach = true;
  6933. break;
  6934. case "Vorticity magnitude":
  6935. this.parameterObj.nmlParam.v_vort_mag = true;
  6936. break;
  6937. case "X-component of vorticity":
  6938. this.parameterObj.nmlParam.v_vort_x = true;
  6939. break;
  6940. case "Y-component of vorticity":
  6941. this.parameterObj.nmlParam.v_vort_y = true;
  6942. break;
  6943. case "Z-component of vorticity":
  6944. this.parameterObj.nmlParam.v_vort_z = true;
  6945. break;
  6946. case "Q Criterion":
  6947. this.parameterObj.nmlParam.v_q_criterion = true;
  6948. break;
  6949. default:
  6950. break;
  6951. }
  6952. });
  6953. },
  6954. //显示 UgridLoad
  6955. async showUgrid() {
  6956. console.log(this.showUgridflag);
  6957. this.$refs.monitor.hiden();
  6958. if (!this.showUgridflag) {
  6959. //是否显示过
  6960. this.$refs.ugridLoad.clear();
  6961. if (this.project.loadfils.length == 0) {
  6962. await this.getHCFDLoadFiles();
  6963. }
  6964. this.project.loadfils.forEach((url) => {
  6965. if (url.filepath.indexOf(".ugrid") > 0) {
  6966. this.ugridUrl = url.filepath;
  6967. }
  6968. });
  6969. this.$refs.ugridLoad.loadUgrid(this.ugridUrl, 1);
  6970. this.showUgridflag = true;
  6971. } else {
  6972. this.$refs.ugridLoad.nhiden();
  6973. }
  6974. },
  6975. //显示 Surface
  6976. async showSurface() {
  6977. let mesh = false;
  6978. let contour = false;
  6979. this.belementCheckeds.forEach((ele) => {
  6980. if ("Mesh" == ele) {
  6981. mesh = true;
  6982. } else if ("Contour" == ele) {
  6983. contour = true;
  6984. }
  6985. });
  6986. this.$refs.ugridLoad.hiden();
  6987. this.$refs.volumLoad.hiden();
  6988. this.$refs.monitor.hiden();
  6989. if (!this.showSurfaceflag) {
  6990. if (this.project.solverfiles.length == 0) {
  6991. }
  6992. let burl;
  6993. this.project.solverBoundaryUrls.forEach((url) => {
  6994. if (url.indexOf(this.bStep + ".dat") > 0) {
  6995. burl = url;
  6996. }
  6997. });
  6998. if (mesh) {
  6999. this.$refs.boundaryLoad.loadBoundary(burl, 1, this.bScalar);
  7000. }
  7001. if (contour) {
  7002. this.$refs.boundaryLoad.loadBoundary(burl, 2, this.bScalar);
  7003. }
  7004. this.showSurfaceflag = true;
  7005. } else {
  7006. this.$refs.boundaryLoad.clear();
  7007. this.$refs.boundaryLoad.nhiden();
  7008. if (mesh) {
  7009. this.$refs.boundaryLoad.mesh(this.bScalar);
  7010. }
  7011. if (contour) {
  7012. this.$refs.volumLoad.vdivb = false;
  7013. this.$refs.boundaryLoad.divb = true;
  7014. this.$refs.boundaryLoad.contour(this.bScalar);
  7015. }
  7016. }
  7017. },
  7018. large() {
  7019. this.$refs.ugridLoad.large();
  7020. this.$refs.boundaryLoad.large();
  7021. this.$refs.volumLoad.large();
  7022. },
  7023. small() {
  7024. this.$refs.ugridLoad.small();
  7025. this.$refs.boundaryLoad.small();
  7026. this.$refs.volumLoad.small();
  7027. },
  7028. positive(axis) {
  7029. this.$refs.ugridLoad.positive(axis);
  7030. this.$refs.boundaryLoad.positive(axis);
  7031. this.$refs.volumLoad.positive(axis);
  7032. },
  7033. negative(axis) {
  7034. this.$refs.ugridLoad.negative(axis);
  7035. this.$refs.boundaryLoad.negative(axis);
  7036. this.$refs.volumLoad.negative(axis);
  7037. },
  7038. // 资源选择代码
  7039. showresource() {
  7040. this.dialog.ziyuan = true;
  7041. this.getresource();
  7042. },
  7043. //获取资源代码
  7044. getresource() {
  7045. const loading = this.$loading({
  7046. lock: true,
  7047. text: "Loading",
  7048. spinner: "el-icon-loading",
  7049. background: "rgba(0, 0, 0, 0.7)",
  7050. });
  7051. setTimeout(() => {
  7052. const params = {
  7053. transCode: "HG00000",
  7054. page: this.paginationConfig.page,
  7055. count: this.paginationConfig.size,
  7056. lesseeId: this.$store.getters.lesseeId,
  7057. };
  7058. request(params)
  7059. .then((res) => {
  7060. loading.close();
  7061. this.ziyprojects = res.rows;
  7062. this.paginationConfig.total = res.total;
  7063. this.resourcelook();
  7064. })
  7065. .catch((err) => {
  7066. loading.close();
  7067. });
  7068. }, 500);
  7069. },
  7070. getPagination(data) {
  7071. this.paginationConfig = data;
  7072. this.getresource();
  7073. },
  7074. //选中
  7075. ziySelectionChange(val) {
  7076. let id = [];
  7077. val.map((item) => {
  7078. id.push(item.id);
  7079. });
  7080. this.selsectid = id.join(",");
  7081. },
  7082. ziySelectionSelect(selection, row) {},
  7083. // 日志的文本框
  7084. footerShows(evt) {
  7085. if (evt == "claer") {
  7086. this.logs = "";
  7087. } else {
  7088. this.footerShow = !this.footerShow;
  7089. }
  7090. },
  7091. //保存
  7092. resourceOK() {
  7093. const params = {
  7094. transCode: "HG00002",
  7095. otherId: this.project.projectId,
  7096. type: "1",
  7097. resourceIds: this.selsectid,
  7098. lesseeId: this.$store.getters.lesseeId,
  7099. };
  7100. request(params)
  7101. .then((res) => {
  7102. Message({
  7103. type: "success",
  7104. message: "保存成功",
  7105. });
  7106. this.dialog.ziyuan = false;
  7107. })
  7108. .catch((err) => {});
  7109. },
  7110. changest(val) {},
  7111. // 查看已经中的
  7112. resourcelook() {
  7113. const loading = this.$loading({
  7114. lock: true,
  7115. text: "Loading",
  7116. spinner: "el-icon-loading",
  7117. background: "rgba(0, 0, 0, 0.7)",
  7118. });
  7119. const params = {
  7120. transCode: "HG00001",
  7121. otherId: this.project.projectId,
  7122. type: "1",
  7123. lesseeId: this.$store.getters.lesseeId,
  7124. };
  7125. request(params)
  7126. .then((res) => {
  7127. loading.close();
  7128. let rst = res.rows;
  7129. console.log(res);
  7130. this.$refs.multipleTable.clearSelection();
  7131. if (rst.length > 0) {
  7132. for (var i = 0; i < rst.length; i++) {
  7133. for (let j = 0; j < this.ziyprojects.length; j++) {
  7134. if (this.ziyprojects[j].id === rst[i].resourceId) {
  7135. this.$refs.multipleTable.toggleRowSelection(
  7136. this.ziyprojects[j],
  7137. true
  7138. );
  7139. }
  7140. }
  7141. }
  7142. } else {
  7143. }
  7144. })
  7145. .catch((err) => {
  7146. loading.close();
  7147. });
  7148. },
  7149. closeOff(val) {
  7150. if (val == "on") {
  7151. this.Consoleshow = true;
  7152. this.openshow = false;
  7153. } else {
  7154. this.Consoleshow = false;
  7155. this.openshow = true;
  7156. }
  7157. },
  7158. //动画
  7159. // 循环步数
  7160. Startclick() {
  7161. let that = this;
  7162. this.countnum = Number(this.animationobj.firststep) - this.median;
  7163. this.value1 = Number(this.animationobj.currentstep);
  7164. this.sign == "Start";
  7165. this.lowbool = false;
  7166. this.Quickbool = false;
  7167. this.Startbool = true;
  7168. that.signnum = true;
  7169. that.numan = true;
  7170. that.timesleep3(1000);
  7171. },
  7172. stepfun() {
  7173. for (let i = 0; i <= this.hcfdSteplist.length - 1; i++) {
  7174. //this.hcfdSteplist.length-1
  7175. if (this.hcfdSteplist[i] == this.animationobj.currentstep) {
  7176. this.countnum = i;
  7177. }
  7178. }
  7179. },
  7180. timesleep(time) {
  7181. this.signnum = true;
  7182. const sleep = (timeout = time) =>
  7183. new Promise((resolve, reject) => {
  7184. setTimeout(resolve, timeout);
  7185. });
  7186. let timer = async (timeout) => {
  7187. for (let i = this.countnum; i <= this.hcfdSteplist.length - 1; i++) {
  7188. if (this.signnum == true && this.lowbool == true) {
  7189. await sleep(time);
  7190. this.jiekou(this.hcfdSteplist[i]);
  7191. } else {
  7192. break;
  7193. }
  7194. }
  7195. };
  7196. timer(time);
  7197. },
  7198. timesleep2(time) {
  7199. this.signnum = true;
  7200. const sleep = (timeout = time) =>
  7201. new Promise((resolve, reject) => {
  7202. setTimeout(resolve, timeout);
  7203. });
  7204. let timer = async (timeout) => {
  7205. for (let i = this.countnum; i <= this.hcfdSteplist.length - 1; i++) {
  7206. if (this.signnum == true && this.Quickbool == true) {
  7207. await sleep(time);
  7208. this.jiekou(this.hcfdSteplist[i]);
  7209. } else {
  7210. break;
  7211. }
  7212. }
  7213. };
  7214. timer(time);
  7215. },
  7216. timesleep3(time) {
  7217. this.signnum = true;
  7218. const sleep = (timeout = time) =>
  7219. new Promise((resolve, reject) => {
  7220. setTimeout(resolve, timeout);
  7221. });
  7222. let timer = async (timeout) => {
  7223. for (let i = this.countnum; i <= this.hcfdSteplist.length - 1; i++) {
  7224. if (this.signnum == true && this.Startbool == true) {
  7225. await sleep(time);
  7226. this.jiekou(this.hcfdSteplist[i]);
  7227. } else {
  7228. break;
  7229. }
  7230. }
  7231. };
  7232. timer(time);
  7233. },
  7234. //sliderchange
  7235. sliderchange(val) {
  7236. this.animationobj.currentstep = val + "";
  7237. this.value1 = val;
  7238. this.jiekou(this.animationobj.currentstep);
  7239. },
  7240. //Low/2
  7241. lowclick() {
  7242. let that = this;
  7243. that.sign = "Low";
  7244. this.lowbool = true;
  7245. this.Quickbool = false;
  7246. this.Startbool = false;
  7247. that.signnum = true;
  7248. that.numan = true;
  7249. that.timesleep(2000);
  7250. // }
  7251. },
  7252. Quickclick() {
  7253. let that = this;
  7254. that.sign = "Quick";
  7255. this.lowbool = false;
  7256. this.Quickbool = true;
  7257. this.Startbool = false;
  7258. that.signnum = true;
  7259. that.numan = true;
  7260. that.timesleep2(100);
  7261. },
  7262. //上一个
  7263. Lastclick() {
  7264. let startstep = Number(this.animationobj.firststep);
  7265. if (this.value1 <= startstep) {
  7266. Message({
  7267. type: "warning",
  7268. message: "已经是最开始一张",
  7269. });
  7270. } else {
  7271. console.log(this.median);
  7272. this.animationobj.currentstep =
  7273. Number(this.animationobj.currentstep) - this.median;
  7274. console.log(this.animationobj.currentstep);
  7275. this.jiekou(this.animationobj.currentstep);
  7276. }
  7277. },
  7278. // 下一个
  7279. Nextclick() {
  7280. let laststep = Number(this.animationobj.laststep);
  7281. if (this.value1 >= laststep) {
  7282. Message({
  7283. type: "warning",
  7284. message: "已经是最后一张",
  7285. });
  7286. } else {
  7287. this.animationobj.currentstep =
  7288. Number(this.animationobj.currentstep) + this.median;
  7289. console.log(this.animationobj.currentstep);
  7290. this.jiekou(this.animationobj.currentstep);
  7291. }
  7292. },
  7293. // 点击一下循环,再点击一下停止备注记录长度在循环
  7294. Playstop() {
  7295. if (this.numan == true) {
  7296. this.signnum = false;
  7297. this.numan = false;
  7298. } else {
  7299. // this.numan=true;
  7300. if (this.sign == "Low") {
  7301. this.lowclick();
  7302. this.signnum = true;
  7303. } else if (this.sign == "Quick") {
  7304. this.signnum = true;
  7305. this.Quickclick();
  7306. } else if (this.sign == "Start") {
  7307. this.signnum = true;
  7308. this.Startclick();
  7309. } else {
  7310. }
  7311. }
  7312. },
  7313. // 最后一张
  7314. Endclick() {
  7315. this.jiekou(this.animationobj.laststep);
  7316. },
  7317. // 接口
  7318. jiekou(step) {
  7319. this.value1 = Number(step);
  7320. let that = this;
  7321. this.animationobj.currentstep = step + "";
  7322. let params = {
  7323. transCode: "AFT003", // 服务器渲染实例接口创建推流
  7324. pid: this.project.projectId,
  7325. solverConfigId: this.solverConfigid,
  7326. animationType: this.animaval,
  7327. step: this.animationobj.currentstep,
  7328. isVolume: this.isVolume,
  7329. };
  7330. this.loading = true;
  7331. request(params)
  7332. .then((res) => {
  7333. console.log(res);
  7334. this.$parent.chaild(res.img);
  7335. })
  7336. .catch((err) => {});
  7337. },
  7338. // 划分类型按钮
  7339. Partitiontype(){
  7340. if(this.meshval=='1'){
  7341. this.objmesh.tetraParam=this.tetraParam1;
  7342. this.objmesh.hexaParam=null;
  7343. this.objmesh.hybridParam=null;
  7344. }else if(this.meshval=='2'){
  7345. this.objmesh.tetraParam=null;
  7346. this.objmesh.hexaParam=this.hexaParam1;
  7347. this.objmesh.hybridParam=null;
  7348. }else if(this.meshval=='3'){
  7349. this.objmesh.tetraParam=null;
  7350. this.objmesh.hexaParam=null;
  7351. this.objmesh.hybridParam=this.hybridParam1;
  7352. }else{
  7353. this.objmesh.tetraParam=null;
  7354. this.objmesh.hexaParam=null;
  7355. this.objmesh.hybridParam=null;
  7356. }
  7357. },
  7358. checksetchange(val){
  7359. let correct_surface_intersections=this.objmesh.surfParam2.correct_surface_intersections;
  7360. if(correct_surface_intersections=='yes'){
  7361. this.disabledset=true;
  7362. this.objmesh.surfParam2.optimisation='no';
  7363. }else{
  7364. this.disabledset=false;
  7365. }
  7366. },
  7367. facechange(){
  7368. let that=this;
  7369. if(this.facecheckbox){
  7370. this.disabledface=false;
  7371. this.objmesh.cleanerParam=this.cleanerParam1;
  7372. }else{
  7373. this.objmesh.cleanerParam=null;
  7374. this.disabledface=true;
  7375. }
  7376. },
  7377. jiegchange(){
  7378. if(this.jiegradioval==true){
  7379. this.objmesh.cleanerParam.overlap_angle= this.cleanerParam1.overlap_angle
  7380. this.objmesh.cleanerParam.resolution_length= this.cleanerParam1.resolution_length
  7381. this.jiegdisabled=false;
  7382. }else{
  7383. this.jiegdisabled=true;
  7384. }
  7385. },
  7386. //上传网格划分参数接口
  7387. meshSplitok() {
  7388. if(this.facecheckbox==false){
  7389. this.objmesh.cleanerParam=null
  7390. }else{
  7391. this.objmesh.cleanerParam=this.cleanerParam1;
  7392. if(this.jiegradioval==true){
  7393. this.objmesh.cleanerParam.overlap_angle= this.cleanerParam1.overlap_angle;
  7394. this.objmesh.cleanerParam.resolution_length= this.cleanerParam1.resolution_length;
  7395. }else{
  7396. this.objmesh.cleanerParam.overlap_angle= '';
  7397. this.objmesh.cleanerParam.resolution_length= '';
  7398. }
  7399. }
  7400. console.log(this.objmesh);
  7401. const params = {
  7402. transCode: "AFT001",
  7403. pid: this.project.projectId,
  7404. solverConfigId: this.solverConfigid,
  7405. action:"meshSplit",
  7406. paramJson:JSON.stringify(this.objmesh),
  7407. };
  7408. request(params)
  7409. .then((res) => {
  7410. console.log(res);
  7411. })
  7412. .catch((err) => {});
  7413. },
  7414. },
  7415. watch: {
  7416. "animationobj.currentstep"() {
  7417. this.stepfun();
  7418. },
  7419. deep: true,
  7420. },
  7421. };
  7422. </script>
  7423. <style lang="scss" >
  7424. @import "@/styles/variables.scss";
  7425. @import "@/styles/mixin.scss";
  7426. .hcfdlab {
  7427. .el-input__inner {
  7428. line-height: 30px;
  7429. height: 30px;
  7430. }
  7431. }
  7432. html,
  7433. body {
  7434. width: 100%;
  7435. height: 100%;
  7436. }
  7437. .el-tabs__content {
  7438. padding: 0 5px;
  7439. }
  7440. .content {
  7441. display: flex;
  7442. height: 100%;
  7443. position: relative;
  7444. .left {
  7445. width: 200px;
  7446. height: 100%;
  7447. flex-direction: column;
  7448. padding: 15px;
  7449. position: relative;
  7450. height: 88vh;
  7451. }
  7452. .part-panel-collapse-handle {
  7453. position: absolute;
  7454. // right: -56px;
  7455. left: -38px;
  7456. top: 44%;
  7457. width: 94px;
  7458. height: 0;
  7459. cursor: pointer;
  7460. text-align: center;
  7461. border-width: 0 20px 18px;
  7462. line-height: 18px;
  7463. border-style: none solid solid;
  7464. transform: rotateZ(90deg);
  7465. font-size: 19px;
  7466. }
  7467. .lbg_color3 i:before {
  7468. transform: rotateZ(0);
  7469. }
  7470. .right {
  7471. flex: 1;
  7472. height: 100%;
  7473. // height: 78vh;
  7474. height: calc(100vh - 210px);
  7475. position: relative;
  7476. }
  7477. .imgcontent img {
  7478. font-size: 16px;
  7479. }
  7480. .slide-fade-enter-active {
  7481. transition: all 0.3s ease;
  7482. }
  7483. }
  7484. .tablist {
  7485. border-bottom: 1px solid #999;
  7486. padding: 3px 0;
  7487. }
  7488. .tablist .tabitem {
  7489. color: #b6b6b6;
  7490. font-size: 16px;
  7491. padding-right: 5px;
  7492. cursor: pointer;
  7493. &.current {
  7494. color: #fff;
  7495. }
  7496. }
  7497. .imgzong {
  7498. display: flex;
  7499. padding-top: 4px;
  7500. overflow: auto;
  7501. white-space: nowrap;
  7502. .el-image {
  7503. width: 30px;
  7504. vertical-align: middle;
  7505. }
  7506. }
  7507. .imgzong::-webkit-scrollbar {
  7508. /*滚动条整体样式*/
  7509. width: 4px; /*高宽分别对应横竖滚动条的尺寸*/
  7510. height: 4px;
  7511. }
  7512. .imgzong::-webkit-scrollbar-thumb {
  7513. /*滚动条里面小方块*/
  7514. border-radius: 5px;
  7515. -webkit-box-shadow: inset005pxrgba(0, 0, 0, 0.2);
  7516. background: rgba(0, 0, 0, 0.2); /*设置滚动条颜色*/
  7517. }
  7518. .imgzong::-webkit-scrollbar-track {
  7519. /*滚动条里面轨道*/
  7520. -webkit-box-shadow: inset005pxrgba(0, 0, 0, 0.2);
  7521. border-radius: 0;
  7522. // background:rgba(255,255,255,0.1);
  7523. background: rgba(255, 255, 255, 0);
  7524. }
  7525. .item1,
  7526. .item2 {
  7527. cursor: pointer;
  7528. }
  7529. .imgzong .item1 {
  7530. padding-right: 4px;
  7531. padding: 4px 4px;
  7532. }
  7533. .shu {
  7534. padding: 4px 10px;
  7535. color: #666;
  7536. }
  7537. .el-tabs__item {
  7538. color: #b6b6b6;
  7539. font-size: 16px;
  7540. }
  7541. .meshcalss{
  7542. position: absolute;
  7543. display: inline-block;
  7544. top: -13px;
  7545. left: 12%;
  7546. margin: 0 auto;
  7547. margin-left: -27px;
  7548. font-size: 12px;
  7549. padding: 3px 5px;
  7550. background-color: #ffff;
  7551. color:#333;
  7552. .el-checkbox__label{
  7553. color:#333;
  7554. }
  7555. }
  7556. .jieguo{
  7557. display: flex;
  7558. .jiegleft{
  7559. width: 35%;
  7560. .el-radio__label{
  7561. font-size: 12px;
  7562. }
  7563. }
  7564. .jiegright{
  7565. width: 67%;
  7566. }
  7567. }
  7568. .textlab {
  7569. display: inline-block;
  7570. vertical-align: middle;
  7571. margin-top: -28px;
  7572. }
  7573. .anbtn {
  7574. padding: 5px 0;
  7575. }
  7576. .anbtn1 .anniu {
  7577. padding: 5px 9px;
  7578. }
  7579. .anbtn .anniu {
  7580. padding: 5px 0;
  7581. }
  7582. </style>
  7583. <style lang="scss" scoped>
  7584. .el-checkbox+.el-checkbox{
  7585. margin-left: 0;
  7586. }
  7587. .activeOrange {
  7588. background-color: rgba(255, 255, 255, 0.3);
  7589. border: 2px solid #fff;
  7590. border-radius: 5px;
  7591. box-sizing: border-box;
  7592. }
  7593. .imgzong {
  7594. padding-top: 4px;
  7595. .radiocontent {
  7596. display: flex;
  7597. justify-content: center;
  7598. align-items: center;
  7599. }
  7600. .listitem {
  7601. width: auto;
  7602. height: 92px;
  7603. margin: 5px;
  7604. padding: 2px 6px 2px 2px;
  7605. .el-image {
  7606. width: 18px;
  7607. vertical-align: middle;
  7608. }
  7609. span {
  7610. font-size: 14px;
  7611. }
  7612. }
  7613. .item2 {
  7614. .el-image {
  7615. margin: 0 19px;
  7616. width: 60px;
  7617. vertical-align: middle;
  7618. padding: 9px;
  7619. }
  7620. span {
  7621. display: block;
  7622. text-align: center;
  7623. }
  7624. }
  7625. }
  7626. </style>
  7627. <style>
  7628. .itemimg {
  7629. display: flex;
  7630. justify-content: center;
  7631. padding: 8px;
  7632. }
  7633. .el-input-number__decrease,
  7634. .el-input-number__increase {
  7635. position: absolute;
  7636. z-index: 1;
  7637. top: 4px;
  7638. width: 31px;
  7639. height: 30px;
  7640. text-align: center;
  7641. background: #f5f7fa;
  7642. color: #606266;
  7643. cursor: pointer;
  7644. font-size: 13px;
  7645. }
  7646. .el-tabs--bottom .el-tabs__header.is-bottom {
  7647. margin: 0;
  7648. }
  7649. .el-tabs__header {
  7650. margin: 0;
  7651. }
  7652. .imgcontent {
  7653. padding: 0 15px;
  7654. }
  7655. .el-tabs__item {
  7656. height: 30px;
  7657. line-height: 30px;
  7658. padding: 0 8px;
  7659. font-size: 12px;
  7660. }
  7661. .el-tabs--border-card {
  7662. background-color: none;
  7663. }
  7664. .baoshi {
  7665. margin-top: 4px;
  7666. color: #b6b6b6;
  7667. }
  7668. .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active {
  7669. background-color: #757070;
  7670. }
  7671. .el-dialog__header {
  7672. padding: 15px 20px 10px;
  7673. }
  7674. .textselsect {
  7675. position: absolute;
  7676. z-index: 9;
  7677. bottom: 1px;
  7678. right: 7px;
  7679. z-index: 9;
  7680. }
  7681. .dialoglocation {
  7682. position: absolute;
  7683. top: -15vh;
  7684. left: 10px;
  7685. }
  7686. .el-dialog__wrapper {
  7687. top: 15vh;
  7688. }
  7689. </style>
  7690. // 样式大全
  7691. <style lang="scss" scoped>
  7692. .qijuan {
  7693. padding-left: 25px;
  7694. margin-bottom: 20px;
  7695. }
  7696. .el-dialog__wrapper {
  7697. top: 20vh;
  7698. }
  7699. /deep/.textselsect .el-input__inner {
  7700. background-color: rgba(0, 0, 0, 0) !important;
  7701. }
  7702. .diyi i {
  7703. font-size: 14px;
  7704. color: #c0c4cc;
  7705. }
  7706. .tupian {
  7707. display: flex;
  7708. justify-content: center;
  7709. align-items: center;
  7710. }
  7711. .red {
  7712. color: red;
  7713. }
  7714. .dialog_header {
  7715. align-items: center;
  7716. display: flex;
  7717. }
  7718. .juli {
  7719. margin-top: 15px;
  7720. width: 100%;
  7721. }
  7722. </style>
  7723. <style lang="scss">
  7724. @import "@/styles/variables.scss";
  7725. @import "@/styles/mixin.scss";
  7726. .heigeinput {
  7727. .el-form-item {
  7728. margin-bottom: 5px;
  7729. }
  7730. }
  7731. .el-dialog__body {
  7732. padding: 10px 20px 10px 20px;
  7733. }
  7734. .line {
  7735. width: 100%;
  7736. height: 1px;
  7737. background-color: #999;
  7738. position: relative;
  7739. margin: 30px 0;
  7740. .linetext {
  7741. position: absolute;
  7742. left: 50%;
  7743. transform: translateX(-50%);
  7744. background-color: #ffff;
  7745. padding: 5px;
  7746. font-size: 12px;
  7747. top: -10px;
  7748. font-weight: 700;
  7749. }
  7750. }
  7751. .loadclass {
  7752. margin-bottom: 10px;
  7753. display: flex;
  7754. .el-button {
  7755. margin-right: 10px;
  7756. }
  7757. .el-progress {
  7758. width: 100%;
  7759. }
  7760. }
  7761. .ulist ul {
  7762. display: flex;
  7763. margin: 0;
  7764. padding: 0;
  7765. li {
  7766. flex: 1;
  7767. border: 1px solid #666;
  7768. }
  7769. }
  7770. .liitem {
  7771. margin-bottom: 5px;
  7772. }
  7773. .inputwithd .el-input__inner {
  7774. width: 74px;
  7775. }
  7776. .inputtext .el-input {
  7777. margin-top: 5px;
  7778. }
  7779. .dancentent {
  7780. display: flex;
  7781. justify-content: center;
  7782. align-items: center;
  7783. }
  7784. .titleinput .el-input {
  7785. width: 100px;
  7786. }
  7787. .itemlist {
  7788. display: flex;
  7789. }
  7790. .listbtn {
  7791. display: flex;
  7792. margin-bottom: 5px;
  7793. .anniu {
  7794. flex: 1;
  7795. }
  7796. .el-checkbox {
  7797. flex: 1;
  7798. }
  7799. }
  7800. .anniu {
  7801. padding: 5px 28px;
  7802. font-size: 12px;
  7803. margin: 0;
  7804. }
  7805. .titleinput {
  7806. .el-row {
  7807. padding-left: 10px;
  7808. }
  7809. .el-button {
  7810. padding: 8px 28px;
  7811. font-size: 12px;
  7812. }
  7813. .el-button + .el-button {
  7814. margin: 0;
  7815. }
  7816. }
  7817. .el-dialog__wrapper {
  7818. z-index: 2300;
  7819. }
  7820. .tiele {
  7821. width: 324px;
  7822. background-color: #fff;
  7823. position: fixed;
  7824. top: 50%;
  7825. left: 50%;
  7826. z-index: 2049;
  7827. padding: 20px;
  7828. .heder {
  7829. width: 100%;
  7830. height: 40px;
  7831. line-height: 40px;
  7832. font-size: 14px;
  7833. padding: 0 20px;
  7834. border-bottom: 1px solid #eee;
  7835. }
  7836. .tiele_content {
  7837. padding: 20px 20px;
  7838. .el-checkbox {
  7839. display: block;
  7840. }
  7841. }
  7842. p {
  7843. text-align: center;
  7844. }
  7845. }
  7846. .el-form-item {
  7847. margin: 0;
  7848. }
  7849. .btntext {
  7850. text-align: center;
  7851. background-color: #757070;
  7852. color: #d5d5d5;
  7853. font-size: 12px;
  7854. padding: 4px 0;
  7855. margin: 5px 0;
  7856. border-radius: 5px;
  7857. }
  7858. .btnyiban {
  7859. width: 50%;
  7860. background-color: #757070;
  7861. color: #d5d5d5;
  7862. }
  7863. .fangxiang .el-row {
  7864. display: flex;
  7865. padding-bottom: 10px;
  7866. }
  7867. .input3 {
  7868. display: flex;
  7869. flex-wrap: nowrap;
  7870. justify-content: space-around;
  7871. padding-bottom: 5px;
  7872. .el-input {
  7873. width: 30%;
  7874. }
  7875. }
  7876. .yiinpu .el-form-item__content {
  7877. display: flex;
  7878. .el-input {
  7879. margin-right: 5px;
  7880. }
  7881. }
  7882. .saninput {
  7883. display: flex;
  7884. flex-wrap: nowrap;
  7885. justify-content: space-around;
  7886. .el-input {
  7887. margin-right: 5px;
  7888. }
  7889. .el-form-item__label {
  7890. text-align: left;
  7891. }
  7892. }
  7893. // select样式
  7894. .selecr {
  7895. font-size: 12px;
  7896. .el-select {
  7897. width: 100%;
  7898. .el-checkbox__label{
  7899. font-size:12px;
  7900. }
  7901. }
  7902. }
  7903. .btnringth {
  7904. text-align: right;
  7905. }
  7906. .juli .el-input__inner {
  7907. margin-bottom: 5px;
  7908. width: 100%;
  7909. }
  7910. </style>
  7911. <style lang="scss" scoped>
  7912. /deep/.toolbar-part-detail {
  7913. position: relative;
  7914. }
  7915. /deep/ .el-form-item__label {
  7916. font-size: 12px;
  7917. line-height: 30px;
  7918. }
  7919. /deep/.el-form-item__content {
  7920. line-height: 30px;
  7921. font-size: 12px;
  7922. }
  7923. /deep/ .el-input-number__decrease {
  7924. width: 30px;
  7925. line-height: 28px;
  7926. }
  7927. /deep/ .el-input-number__increase {
  7928. width: 30px;
  7929. line-height: 28px;
  7930. }
  7931. /deep/ .el-dialog__headerbtn:hover .el-dialog__close {
  7932. color: #fff !important;
  7933. }
  7934. .el-form-item {
  7935. margin-bottom: 5px;
  7936. }
  7937. </style>
  7938. <style lang="scss" scoped>
  7939. .selecttype {
  7940. position: relative;
  7941. margin: 35px 0 20px 0;
  7942. border: 1px solid;
  7943. padding: 15px;
  7944. .divselect {
  7945. display: flex;
  7946. .el-radio {
  7947. height: 23px;
  7948. line-height: 23px;
  7949. }
  7950. }
  7951. }
  7952. .timeanmiantion {
  7953. line-height: 30px;
  7954. ul {
  7955. display: flex;
  7956. padding-left: 20px;
  7957. li {
  7958. flex: 1;
  7959. span {
  7960. padding-left: 30px;
  7961. }
  7962. }
  7963. }
  7964. }
  7965. .divselect .el-avatar,
  7966. .el-cascader-panel,
  7967. .el-radio,
  7968. .el-radio--medium.is-bordered .el-radio__label,
  7969. .el-radio__label {
  7970. font-size: 12px !important;
  7971. }
  7972. .texttype {
  7973. position: absolute;
  7974. display: inline-block;
  7975. top: -13px;
  7976. left: 50%;
  7977. margin: 0 auto;
  7978. margin-left: -27px;
  7979. font-size: 12px;
  7980. background-color: #fff;
  7981. padding: 3px 5px;
  7982. }
  7983. .femFooter {
  7984. height: 135px !important;
  7985. padding: 0;
  7986. position: relative;
  7987. }
  7988. .footerTitle {
  7989. display: flex;
  7990. justify-content: space-between;
  7991. padding: 5px 20px;
  7992. font-size: 20px;
  7993. height: 30px !important;
  7994. background-color: #bbb;
  7995. }
  7996. .footerTitle div {
  7997. display: flex;
  7998. justify-content: space-around;
  7999. align-items: center;
  8000. }
  8001. .footerTitle p {
  8002. margin: 0;
  8003. }
  8004. .footerTitle span {
  8005. padding: 5px 10px;
  8006. cursor: default;
  8007. }
  8008. /deep/.footerText .el-textarea__inner {
  8009. width: 100%;
  8010. height: 135px !important;
  8011. border: 0;
  8012. font-size: 12px;
  8013. color: #333;
  8014. padding: 2px;
  8015. }
  8016. /deep/.shijianges .el-form-item__label{
  8017. text-align: left !important;
  8018. }
  8019. .radio_text {
  8020. line-height: 28px;
  8021. .el-radio__label {
  8022. color: #d5d5d5;
  8023. }
  8024. .disacent {
  8025. padding: 6px 0 6px 3.125vw;
  8026. font-size: 12px;
  8027. }
  8028. }
  8029. .iemradio .el-radio-group {
  8030. padding-left: 50px;
  8031. }
  8032. .radiooff {
  8033. padding-left: 50px;
  8034. }
  8035. .el-table th,
  8036. .el-table tr {
  8037. background-color: #535353;
  8038. }
  8039. .beij-container {
  8040. width: 100%;
  8041. height: 100%;
  8042. background: linear-gradient(180deg, #ccd3e2 0%, rgba(255, 255, 255, 0) 100%);
  8043. }
  8044. .el-footer {
  8045. padding: 0;
  8046. height: 149px;
  8047. overflow-y: auto;
  8048. }
  8049. .radiogroup .el-radio-group {
  8050. display: contents;
  8051. }
  8052. .logs_title {
  8053. background: #bfc5cb;
  8054. padding: 10px;
  8055. font-size: 16px;
  8056. }
  8057. .x {
  8058. cursor: default;
  8059. float: right;
  8060. }
  8061. .exloadbox {
  8062. float: right;
  8063. margin-right: 100px;
  8064. display: flex;
  8065. }
  8066. .maxh221 {
  8067. max-height: calc(100vh - 10px);
  8068. }
  8069. .maxh400 {
  8070. max-height: calc(100vh - 410px);
  8071. }
  8072. body {
  8073. position: relative;
  8074. background-color: #eceef0;
  8075. }
  8076. .el-loading-mask {
  8077. background: none;
  8078. }
  8079. .sblock {
  8080. width: 100px;
  8081. display: inline-block;
  8082. }
  8083. .groupradio .el-radio {
  8084. display: block;
  8085. padding: 5px;
  8086. }
  8087. .desc {
  8088. width: 100%;
  8089. height: 130px;
  8090. border: 1px solid #000;
  8091. padding: 20px;
  8092. overflow: auto;
  8093. }
  8094. .Squareline {
  8095. border: 1px solid;
  8096. padding: 10px;
  8097. // transform: translateX(-50%);
  8098. }
  8099. .radiogroup {
  8100. display: flex;
  8101. }
  8102. .radiogroup label {
  8103. flex: 1;
  8104. }
  8105. .el-radio + .el-radio {
  8106. margin-left: 0;
  8107. }
  8108. /deep/ .radiogroup .el-radio-button--mini .el-radio-button__inner {
  8109. border-radius: 5px;
  8110. }
  8111. /deep/ .radiogroup .el-radio-button:last-child .el-radio-button__inner {
  8112. border-radius: 4px;
  8113. }
  8114. /deep/ .heightclass {
  8115. height: 450px;
  8116. overflow-y: auto;
  8117. }
  8118. /deep/ .heightclass .el-dialog__header {
  8119. position: fixed;
  8120. z-index: 99;
  8121. width: 385px;
  8122. }
  8123. /deep/ .heightclass .el-dialog__body {
  8124. margin-top: 60px;
  8125. }
  8126. .displanblock .el-checkbox {
  8127. display: block;
  8128. }
  8129. .outline {
  8130. margin-left: 50px;
  8131. font-size: 20px;
  8132. }
  8133. /deep/.el-dialog__wrapper {
  8134. pointer-events: none;
  8135. }
  8136. /deep/.el-dialog {
  8137. pointer-events: auto;
  8138. }
  8139. /deep/ .asideTag2 {
  8140. left: auto;
  8141. right: 10px;
  8142. top: 21px;
  8143. ul {
  8144. display: flex;
  8145. li {
  8146. margin-left: 4px;
  8147. width: 28px;
  8148. height: 28px;
  8149. }
  8150. }
  8151. }
  8152. .asideTag {
  8153. top: 30px;
  8154. }
  8155. /deep/ .asideTag ul {
  8156. display: flex;
  8157. li {
  8158. margin-left: 4px;
  8159. width: 28px;
  8160. height: 28px;
  8161. }
  8162. }
  8163. /deep/
  8164. .el-tabs--top.el-tabs--card
  8165. > .el-tabs__header
  8166. .el-tabs__item:nth-child(2) {
  8167. padding-left: 6px;
  8168. }
  8169. @media screen and (max-width: 1330px) {
  8170. .headMenu_2 .el-col {
  8171. transform: scale(0.8);
  8172. transform-origin: 0 0;
  8173. }
  8174. .headMenu_2 {
  8175. height: 150px !important;
  8176. }
  8177. .asideTag2,
  8178. .asideTag {
  8179. transform: scale(0.7);
  8180. transform-origin: 0 0;
  8181. }
  8182. }
  8183. @media screen and (max-width: 1160px) {
  8184. .headMenu_2 .el-col {
  8185. transform: scale(0.7);
  8186. transform-origin: 0 0;
  8187. }
  8188. .asideTag2 {
  8189. left: 91%;
  8190. }
  8191. .el-aside {
  8192. width: 170px !important;
  8193. }
  8194. .headMenu_2 {
  8195. height: 135px !important;
  8196. }
  8197. }
  8198. .text {
  8199. color: #fff;
  8200. font-size: 14px;
  8201. margin: 0;
  8202. }
  8203. .y {
  8204. width: 100%;
  8205. height: 100%;
  8206. background-image: url("../../../assets/3d_images/y.png") center 100%;
  8207. }
  8208. .y2 {
  8209. background-image: url("../../../assets/3d_images/y2.png");
  8210. }
  8211. body {
  8212. font-family: "微软雅黑";
  8213. }
  8214. .classfelx {
  8215. flex: 1;
  8216. }
  8217. .liitem .formLabelWidth8,.formLabelWidth8{
  8218. width: 343px;
  8219. }
  8220. .liitem .formLabelWidth9 {
  8221. width: 409px;
  8222. }
  8223. .formLabelWidth15 {
  8224. width: 70px;
  8225. text-align: center;
  8226. }
  8227. </style>
  8228. <style>
  8229. .imge {
  8230. width: 25px;
  8231. vertical-align: middle;
  8232. }
  8233. .textselsect .el-input__inner {
  8234. background-color: rgba(255, 255, 255, 0);
  8235. }
  8236. .el-color-picker__trigger {
  8237. height: 30px;
  8238. width: 33px;
  8239. padding: 3px;
  8240. }
  8241. .zoomclass {
  8242. display: inline-block;
  8243. width: 50%;
  8244. }
  8245. </style>