index.vue 239 KB

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