Cost.vue 253 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787
  1. <template>
  2. <div class="cost-all" v-loading.fullscreen.lock="costloading">
  3. <div class="cost-box">
  4. <div class="cost-haed">
  5. <div class="ser-btn">
  6. <div class="ser-btn-li Cost_topFlex" style="display: flex;">
  7. <el-select size="small" v-model="diid" filterable placeholder="请选择" @change="groupChange">
  8. <el-option v-for="item in options" :key="item.id" :label="item.groupName" :value="item.id">
  9. <span v-if="item.isTrue == 'True'" style="color:#409EFF">{{ item.groupName }}</span>
  10. <span v-else style="color:gray">{{ item.groupName }}</span>
  11. </el-option>
  12. </el-select>
  13. <div
  14. style="line-height: 28px;font-size: 14px;width: 90px;color: #555;text-align: right;padding-right: 12px;">
  15. 分段类型:
  16. </div>
  17. <el-select style="width:200px" size="small" v-model="costTypevalue" placeholder="请选择"
  18. @change="costTypeSelect">
  19. <el-option v-for="item in costType" :key="item.value" :label="item.label"
  20. :value="item.value">
  21. </el-option>
  22. </el-select>
  23. </div>
  24. <div class="ser-btn-li">
  25. <el-button size="small" type="primary">导入收款账单</el-button>
  26. <el-button size="small" type="primary" @click="GetPriceCheckWord">生成收款账单</el-button>
  27. <el-button size="small" type="primary" @click="GetClientWord">导出客户报表</el-button>
  28. <el-button size="small" type="primary" @click="GetGroupCostExcel">导出成本</el-button>
  29. <!-- <el-button type="primary">一键复制</el-button> -->
  30. <el-button size="small" type="primary" @click="GroupIsShare">成本通知</el-button>
  31. <el-button size="small" type="primary" @click="save">保存设置</el-button>
  32. </div>
  33. </div>
  34. <div class="cost-input">
  35. <el-form :inline="true" class="demo-form-inline" :model='AGroupCostParameter' ref="inputs"
  36. :rules="rules">
  37. <el-form-item label="税率:" prop="tax">
  38. <el-input size="small" v-model="AGroupCostParameter.tax" placeholder="税率"></el-input>
  39. </el-form-item>
  40. <el-form-item label="货币:">
  41. <el-select size="small" v-model="AGroupCostParameter.currency" @change="changeCurrency"
  42. placeholder="请选择">
  43. <el-option v-for="item in currencyOption" :key="item.currencyId"
  44. :label="item.currencyCode" :value="item.currencyId">
  45. </el-option>
  46. </el-select>
  47. </el-form-item>
  48. <el-form-item label="汇率:" prop="rate">
  49. <el-input size="small" v-model="AGroupCostParameter.rate" placeholder="汇率"></el-input>
  50. </el-form-item>
  51. </el-form>
  52. <div v-show="costTypevalue == 'A'">
  53. <el-form :inline="true" class="demo-form-inline" :rules="HotelRules" ref="DHotel"
  54. :model="costTypeHotelNumbers.filter(item => item.type == 'Default')[0]">
  55. <el-form-item label="TBR:" prop="tbr">
  56. <el-input size="small" @blur='inSelectChangeCheck'
  57. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'Default')[0].tbr"
  58. placeholder="TBR"><i slot="suffix"
  59. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  60. </el-form-item>
  61. <el-form-item label="SGR:" prop="sgr">
  62. <el-input size="small" @blur='inSelectChangeCheck'
  63. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'Default')[0].sgr"
  64. placeholder="SGR"><i slot="suffix"
  65. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  66. </el-form-item>
  67. <el-form-item label="JS/ES:" prop="jses">
  68. <el-input size="small" @blur='inSelectChangeCheck'
  69. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'Default')[0].jses"
  70. placeholder="JS/ES"><i slot="suffix"
  71. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  72. </el-form-item>
  73. <el-form-item label="SUITE:" prop="suite">
  74. <el-input size="small" @blur='inSelectChangeCheck'
  75. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'Default')[0].suite"
  76. placeholder="SUITE"><i slot="suffix"
  77. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  78. </el-form-item>
  79. </el-form>
  80. </div>
  81. <div v-show="costTypevalue == 'B'" class="CostBShow">
  82. <el-row>
  83. <el-form ref="Asection" :inline="true" class="demo-form-inline" :rules="CostTimeRules"
  84. :model="AGroupCostParameter">
  85. <el-col :span="5">
  86. <div> <el-form-item label="第一段开始:" prop="costTypeStartTime">
  87. <el-date-picker size="small" v-model="AGroupCostParameter.costTypeStartTime"
  88. type="date" placeholder="第一段开始" format="yyyy-MM-dd"
  89. value-format="yyyy-MM-dd">
  90. </el-date-picker>
  91. </el-form-item>
  92. </div>
  93. </el-col>
  94. <el-col :span="4">
  95. <div> <el-form-item label="结束:" prop="costTypeendTime"><el-date-picker size="small"
  96. v-model="AGroupCostParameter.costTypeendTime" type="date"
  97. placeholder="结束" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
  98. </el-date-picker>
  99. </el-form-item>
  100. </div>
  101. </el-col>
  102. <el-col :span="3">
  103. <div>
  104. <el-form-item label="人数:" prop="costTypenumber"><el-input size="small"
  105. placeholder="人数" v-model.number="AGroupCostParameter.costTypenumber"
  106. clearable>
  107. </el-input>
  108. </el-form-item>
  109. </div>
  110. </el-col>
  111. </el-form>
  112. <el-form ref="AHotel" :inline="true" class="demo-form-inline" :rules="HotelRules"
  113. :model="costTypeHotelNumbers.filter(item => item.type == 'A')[0]">
  114. <el-col :span="3">
  115. <div><el-form-item label="TBR:" prop="tbr">
  116. <el-input size="small" @blur='inSelectChangeCheck'
  117. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'A')[0].tbr"
  118. placeholder="TBR"><i slot="suffix"
  119. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  120. </el-form-item></div>
  121. </el-col>
  122. <el-col :span="3">
  123. <div> <el-form-item label="SGR:" prop="sgr">
  124. <el-input size="small" @blur='inSelectChangeCheck'
  125. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'A')[0].sgr"
  126. placeholder="SGR"><i slot="suffix"
  127. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  128. </el-form-item></div>
  129. </el-col>
  130. <el-col :span="3">
  131. <div><el-form-item label="JS/ES:" prop="jses">
  132. <el-input size="small" @blur='inSelectChangeCheck'
  133. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'A')[0].jses"
  134. placeholder="JS/ES"><i slot="suffix"
  135. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  136. </el-form-item></div>
  137. </el-col>
  138. <el-col :span="3">
  139. <div><el-form-item label="SUITE:" prop="suite">
  140. <el-input size="small" @blur='inSelectChangeCheck'
  141. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'A')[0].suite"
  142. placeholder="SUITE"><i slot="suffix"
  143. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  144. </el-form-item></div>
  145. </el-col>
  146. </el-form>
  147. </el-row>
  148. <el-row>
  149. <el-form ref="Bsection" :inline="true" class="demo-form-inline" :rules="CostTimeRules"
  150. :model="BGroupCostParameter">
  151. <el-col :span="5">
  152. <div> <el-form-item label="第二段开始:" prop="costTypeStartTime">
  153. <el-date-picker size="small" v-model="BGroupCostParameter.costTypeStartTime"
  154. type="date" placeholder="第二段开始" format="yyyy-MM-dd"
  155. value-format="yyyy-MM-dd">
  156. </el-date-picker>
  157. </el-form-item>
  158. </div>
  159. </el-col>
  160. <el-col :span="4">
  161. <div> <el-form-item label="结束:" prop="costTypeendTime"><el-date-picker size="small"
  162. v-model="BGroupCostParameter.costTypeendTime" type="date"
  163. placeholder="结束" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
  164. </el-date-picker>
  165. </el-form-item>
  166. </div>
  167. </el-col>
  168. <el-col :span="3">
  169. <div>
  170. <el-form-item label="人数:" prop="costTypenumber"><el-input size="small"
  171. placeholder="人数" v-model.number="BGroupCostParameter.costTypenumber"
  172. clearable>
  173. </el-input>
  174. </el-form-item>
  175. </div>
  176. </el-col>
  177. </el-form>
  178. <el-form ref="BHotel" :inline="true" class="demo-form-inline" :rules="HotelRules"
  179. :model="costTypeHotelNumbers.filter(item => item.type == 'B')[0]">
  180. <el-col :span="3">
  181. <div>
  182. <el-form-item label="TBR:" prop="tbr">
  183. <el-input size="small" @blur='inSelectChangeCheck'
  184. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'B')[0].tbr"
  185. placeholder="TBR"><i slot="suffix"
  186. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  187. </el-form-item>
  188. </div>
  189. </el-col>
  190. <el-col :span="3">
  191. <div> <el-form-item label="SGR:" prop="sgr">
  192. <el-input size="small" @blur='inSelectChangeCheck'
  193. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'B')[0].sgr"
  194. placeholder="SGR"><i slot="suffix"
  195. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  196. </el-form-item></div>
  197. </el-col>
  198. <el-col :span="3">
  199. <div><el-form-item label="JS/ES:" prop="jses">
  200. <el-input size="small" @blur='inSelectChangeCheck'
  201. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'B')[0].jses"
  202. placeholder="JS/ES"><i slot="suffix"
  203. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  204. </el-form-item></div>
  205. </el-col>
  206. <el-col :span="3">
  207. <div><el-form-item label="SUITE:" prop="suite">
  208. <el-input size="small" @blur='inSelectChangeCheck'
  209. v-model.number="costTypeHotelNumbers.filter(item => item.type == 'B')[0].suite"
  210. placeholder="SUITE"><i slot="suffix"
  211. style="font-style:normal;margin-right: 10px;">间</i></el-input>
  212. </el-form-item></div>
  213. </el-col>
  214. </el-form>
  215. </el-row>
  216. </div>
  217. </div>
  218. <div class="cost-info">
  219. <div class="cost-info-li">
  220. <label>团 号:</label>
  221. <span>{{ grouptitleinfo.tourCode }}</span>
  222. </div>
  223. <div class="cost-info-li">
  224. <label>客 户:</label>
  225. <span>{{ grouptitleinfo.clientName }}</span>
  226. </div>
  227. <div class="cost-info-li">
  228. <label>出访国家:</label>
  229. <span>{{ grouptitleinfo.visitCountry }}</span>
  230. </div>
  231. <div class="cost-info-li">
  232. <label>起止日期:</label>
  233. <span>{{ grouptitleinfo.visitStartDate }} -
  234. {{ grouptitleinfo.visitEndDate
  235. }}</span>
  236. </div>
  237. <div class="cost-info-li">
  238. <label>天数/人数:</label>
  239. <span>{{ grouptitleinfo.visitDays }}天/{{ grouptitleinfo.visitPNumber }}人</span>
  240. </div>
  241. </div>
  242. </div>
  243. <div style="color: #606266;font-size: 15px;font-weight: 600;">请选择要显示的项:</div>
  244. <el-checkbox-group class="form-ss"
  245. v-model="CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues" @change="TopChange">
  246. <el-checkbox v-for="( item, index ) in checkOptions " :key="index" :title="item.tips"
  247. :label="item.label" @change="(val) => { topcheckboxChange(val, item.label) }"></el-checkbox>
  248. </el-checkbox-group>
  249. <el-table :stripe='true' class="tables" style="font-size:10px" :summary-method="getSummaries" show-summary
  250. show-overflow-tooltip :data="tableData" :border="true" size="small" row-class-name="row"
  251. cell-class-name="column" :highlight-current-row="true" :fit="true">
  252. <!-- :height="centerheight" -->
  253. <template v-for="( item, index ) in tableLabel">
  254. <el-table-column :key="index" :prop="item.prop"
  255. :width="item.width != '100' ? columnWidth : item.width" :label="item.label"
  256. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.includes(item.label)">
  257. <!-- eslint-disable-next-line -->
  258. <template slot="header" slot-scope="scope">
  259. <el-tooltip effect="dark" :content="item.describe" placement="top">
  260. <div>
  261. <span class="rapAddress">{{ item.label }}</span>
  262. <span v-show="item.describe.indexOf('个人成本') != -1" style=" color:red">*</span>
  263. </div>
  264. </el-tooltip>
  265. </template>
  266. <template slot-scope="scope">
  267. <div v-if="item.prop === 'sales'">
  268. <el-input size="mini" :ref="'el-input-' + index" v-model="scope.row[item.prop]"
  269. show-word-limit />
  270. </div>
  271. <div v-else-if="item.prop === 'day'">
  272. <el-input size="mini" :ref="'el-input-' + index" v-model="scope.row[item.prop]"
  273. type="number" controls-position="right" min="0"
  274. @change="NumberSetTime(scope.row[item.prop], scope.$index)">
  275. <div style="display: flex;flex-direction: column;height: 28px;justify-content: center;margin-right: -5px;font-size: 14px;"
  276. slot="suffix" class="number-input-icon">
  277. <i class="el-icon-caret-top btntop" @click="increase(scope.$index)"></i>
  278. <i class="el-icon-caret-bottom btnbottom" @click="decrease(scope.$index)"></i>
  279. </div>
  280. </el-input>
  281. </div>
  282. <div v-else-if="item.prop === 'date'">
  283. <span :title="scope.row[item.prop]">
  284. <!-- <el-input placeholder="请输入日期"
  285. v-model="scope.row[item.prop]"
  286. @change="dateChange(scope.row[item.prop], scope.$index)">
  287. </el-input> -->
  288. <el-date-picker :clearable="false" size="mini" v-model="scope.row[item.prop]"
  289. type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
  290. </el-date-picker>
  291. </span>
  292. <div style="position: absolute;left: 36%;">
  293. {{ GetWeek(scope.row[item.prop]) }}
  294. </div>
  295. </div>
  296. <div v-else-if="item.prop === 'sale'">
  297. <el-row class="figures-btn">
  298. <el-button @click="handleEdit(scope.$index, scope.row, 1)" size="mini"
  299. type="primary">司兼导</el-button>
  300. <el-button @click="handleEdit(scope.$index, scope.row, 2)" size="mini"
  301. type="primary">导
  302. 游</el-button>
  303. <el-button @click="handleEdit(scope.$index, scope.row, 3)" size="mini"
  304. type="primary">车数据</el-button>
  305. <el-button @click="handleEdit(scope.$index, scope.row, 4)" size="mini"
  306. type="primary">景
  307. 点</el-button>
  308. </el-row>
  309. </div>
  310. <div v-else-if="item.width == 100">
  311. <div v-if="item.label == 'ITIN'">
  312. <el-input type="textarea" @input="capslk(scope.row[item.prop], scope.$index,)"
  313. :rows="6" placeholder="请输入内容" v-model="scope.row[item.prop]"></el-input>
  314. </div>
  315. <div v-else-if="item.label == 'ACCO N'">
  316. <el-input style="position: relative;" type="textarea" :rows="6" placeholder="请输入内容"
  317. v-model="scope.row[item.prop]"></el-input>
  318. <!-- <div class="accon-ul">
  319. <div class="accon-li">asas</div>
  320. <div class="accon-li">asas</div>
  321. <div class="accon-li">asas</div>
  322. <div class="accon-li">asas</div>
  323. </div> -->
  324. </div>
  325. <div v-else>
  326. <el-input type="textarea" :rows="6" placeholder="请输入内容"
  327. v-model="scope.row[item.prop]"></el-input>
  328. </div>
  329. </div>
  330. <div v-else-if="item.prop == 'b' || item.prop == 'l' || item.prop == 'd'">
  331. <el-popover placement="top-start" title="餐食报批费用:" width="200" trigger="hover">
  332. <div>
  333. <span style="color:red;">*具体价格以当前货币汇率为准!</span><br />
  334. <div v-if="ShowMeals.length == 0">
  335. <br />
  336. <span style="color:red">暂无数据!</span>
  337. </div>
  338. <div v-else>
  339. <div v-for="( item, index ) in ShowMeals" :key="index">
  340. {{ item.countryOrCity }} &nbsp;&nbsp; <span style="color:green;">{{
  341. item.price }}</span>元/人<br>
  342. </div>
  343. </div>
  344. </div>
  345. <el-input size="mini" slot="reference" v-model="scope.row[item.prop]">
  346. </el-input>
  347. </el-popover>
  348. </div>
  349. <div
  350. v-else-if="item.prop == 'suite' || item.prop == 'jS_ES' || item.prop == 'sgr' || item.prop == 'tbr'">
  351. <el-popover placement="top-start" title="酒店报批费用:" width="200" trigger="hover">
  352. <div>
  353. <span style="color:red;">*具体价格以当前货币汇率为准!</span><br />
  354. <div v-if="ShowHotel.length == 0">
  355. <br />
  356. <span style="color:red">暂无数据!</span>
  357. </div>
  358. <div v-else>
  359. <div v-for="( item, index ) in ShowHotel" :key="index">
  360. {{ item.countryOrCity }} &nbsp;&nbsp; <span style="color:green;">{{
  361. item.price }}</span>元/人<br>
  362. </div>
  363. </div>
  364. </div>
  365. <el-input size="mini" slot="reference" v-model="scope.row[item.prop]">
  366. </el-input>
  367. </el-popover>
  368. </div>
  369. <span v-else :title="scope.row[item.prop]">
  370. <el-input size="mini" v-model="scope.row[item.prop]">
  371. </el-input></span>
  372. </template>
  373. </el-table-column>
  374. </template>
  375. <el-table-column class="czbtn" label="操作">
  376. <!-- eslint-disable-next-line -->
  377. <template slot-scope="scope">
  378. <el-button class="czbtn" size="mini" @click="insertRow(scope.$index, scope.row, 'UP')"
  379. type="primary">
  380. 插入行↑
  381. </el-button>
  382. <br />
  383. <el-button class="czbtn" style="margin: 10px 0;" size="mini"
  384. @click="handleDelete(scope.$index, scope.row, tableData)" type="danger">
  385. 删除<i class="el-icon-delete"></i>
  386. </el-button>
  387. <br />
  388. <el-button class="czbtn" size="mini" @click="insertRow(scope.$index, scope.row, 'DOWN')"
  389. type="primary">插入行↓
  390. </el-button>
  391. </template>
  392. </el-table-column>
  393. </el-table>
  394. <div style="text-align: center;padding: 10px 0;"><el-button @click="addStrip" type="primary">添 加 <i
  395. class="el-icon-plus"></i></el-button></div>
  396. <div>
  397. <el-table :data="[{ a: 1 }]" border style="width: 100%;font-size:12px">
  398. <el-table-column v-for="item in columnTotalData" :key="item.label"
  399. :width="item.width != '100' ? columnWidth : item.width"
  400. :label="item.tips ? item.tips + getCurr : ''"
  401. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.includes(item.label)">
  402. {{ item.totalPrice }}
  403. </el-table-column>
  404. <el-table-column class="czbtn">
  405. </el-table-column>
  406. </el-table>
  407. </div>
  408. <div>
  409. <el-table :data="[{ a: 1 }]" border style="width: 100%;font-size:12px">
  410. <el-table-column v-for="item in columnTotalData" :key="item.label"
  411. :width="item.width != '100' ? columnWidth : item.width"
  412. :label="item.singleTips ? item.singleTips + getCurr : ''"
  413. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.includes(item.label)">
  414. {{ item.singlePrice }}
  415. <!-- <template slot="header">
  416. <div>{{item.singleTips ? item.singleTips:''}}</div>
  417. <div v-bind="getCurr">{{getCurr().toString}}</div>
  418. </template> -->
  419. </el-table-column>
  420. <el-table-column class="czbtn">
  421. </el-table-column>
  422. </el-table>
  423. </div>
  424. <div class="sheet-box">
  425. <div class="sheet-li">
  426. <div style="color: #606266;font-size: 15px;font-weight: 600;">请选择要显示的项:</div>
  427. <el-checkbox-group v-model="CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues">
  428. <el-checkbox v-for="( item, index ) in sheetoneOptions " :key="index"
  429. :label="item"></el-checkbox>
  430. </el-checkbox-group>
  431. <div style="display: flex;font-size: 12px">
  432. <div :style="{ 'width': costTypevalue == 'A' ? '100%' : '49%' }">
  433. <div style="width: 200px;margin-bottom:0px;margin-top: 20px;"
  434. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues.includes('签证') && visaCountryInfoArr.length > 0">
  435. <el-table :data="visaCountryInfoArr" border style="width: 100%">
  436. <el-table-column prop="visaCountry" label="签证国家">
  437. </el-table-column>
  438. <el-table-column prop="visaPrice" label="签证费用">
  439. </el-table-column>
  440. </el-table>
  441. </div>
  442. <div v-for="(sheetitem, index) in sheetDatal" :key="index">
  443. <div class="biaoge" :class="{ 'biaogeKz': costTypevalue == 'B' }"
  444. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues.includes(sheetitem.label)">
  445. <el-table :data="[{ a: 1 }]" border style="width: 100%">
  446. <el-table-column
  447. v-for="( itemsheetone, index ) in sheetitem.childList "
  448. :key="index" :prop="itemsheetone.prop" :label="itemsheetone.childLabel">
  449. <!-- eslint-disable-next-line -->
  450. <template slot-scope="scope">
  451. <div v-if="itemsheetone.prop.indexOf(sheetitem.EnLabel) != -1">
  452. <div v-if="itemsheetone.isBind">
  453. <span>{{ AGroupCostParameter[itemsheetone.prop] }}</span>
  454. </div>
  455. <div v-else>
  456. <!-- <el-input v-model="AGroupCostParameter[itemsheetone.prop]"
  457. show-word-limit /> -->
  458. <!-- <el-input-number
  459. v-model="AGroupCostParameter[itemsheetone.prop]"
  460. @change="handleChange" :min="0" size="small"
  461. :controls="false"></el-input-number> -->
  462. <div v-if="itemsheetone.tips">
  463. <el-popover placement="top-start"
  464. :title="itemsheetone.title" width="200" trigger="hover">
  465. <!-- :content="itemsheetone.tips" -->
  466. <div v-if="itemsheetone.tips != '暂无!'">
  467. <span style="color:green">{{ itemsheetone.tips
  468. }}</span>
  469. 元/人
  470. </div>
  471. <div v-else>
  472. <span style="color:red">{{ itemsheetone.tips
  473. }}</span>
  474. </div>
  475. <el-input-number slot="reference"
  476. v-model="AGroupCostParameter[itemsheetone.prop]"
  477. @change="handleChange" :min="0" size="small"
  478. :controls="false"></el-input-number>
  479. </el-popover>
  480. </div>
  481. <div
  482. v-else-if="(typeof itemsheetone.title).toString() != 'undefined'">
  483. <el-popover placement="top-start"
  484. :title="itemsheetone.title" width="200" trigger="hover">
  485. <span style="color:red">暂无数据!</span>
  486. <el-input-number slot="reference"
  487. v-model="AGroupCostParameter[itemsheetone.prop]"
  488. @change="handleChange" :min="0" size="small"
  489. :controls="false"></el-input-number>
  490. </el-popover>
  491. </div>
  492. <div v-else>
  493. <el-input-number
  494. v-model="AGroupCostParameter[itemsheetone.prop]"
  495. @change="handleChange" :min="0" size="small"
  496. :controls="false"></el-input-number>
  497. </div>
  498. </div>
  499. </div>
  500. <div v-else-if="itemsheetone.prop === 'ZCB'">
  501. {{ calculateZCB(sheetitem.EnLabel) }}
  502. </div>
  503. <div v-else-if="itemsheetone.prop === 'DRBJ'">
  504. {{ calculateDRBJ(sheetitem.EnLabel) }}
  505. </div>
  506. <div v-else-if="itemsheetone.prop === 'ZBJ'">
  507. {{ calculateZBJ(sheetitem.EnLabel) }}
  508. </div>
  509. <div v-else-if="itemsheetone.prop === 'DRLR'">
  510. {{ calculateDRLR(sheetitem.EnLabel) }}
  511. </div>
  512. <div v-else-if="itemsheetone.prop === 'ZLR'">
  513. {{ calculateZLR(sheetitem.EnLabel) }}
  514. </div>
  515. <!-- 绑定对象属性的值 -->
  516. </template>
  517. </el-table-column>
  518. </el-table>
  519. </div>
  520. </div>
  521. </div>
  522. <div style="width: 2%;" v-show="costTypevalue != 'A'"></div>
  523. <div style="width: 49%;" v-show="costTypevalue != 'A'">
  524. <div class="" style="width: 200px;margin-bottom:0px;margin-top: 20px;visibility: hidden;"
  525. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues.includes('签证') && visaCountryInfoArr.length > 0">
  526. <el-table :data="visaCountryInfoArr" border style="width: 100%">
  527. <el-table-column prop="visaCountry" label="签证国家">
  528. </el-table-column>
  529. <el-table-column prop="visaPrice" label="签证费用">
  530. </el-table-column>
  531. </el-table>
  532. </div>
  533. <div v-for="( sheetitem, index ) in sheetDatal " :key="index">
  534. <div class="biaogeB"
  535. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues.includes(sheetitem.label)">
  536. <el-table :data="[{ a: 1 }]" border style="width: 100%"
  537. :class="{ 'hiddenElement': (sheetitem.EnLabel == 'visa' || sheetitem.EnLabel == 'bx') ? true : false }">
  538. <el-table-column v-for="(itemsheetone, index) in sheetitem.childList"
  539. :key="index" :prop="itemsheetone.prop" :label="itemsheetone.childLabel">
  540. <!-- eslint-disable-next-line -->
  541. <template slot-scope="scope">
  542. <div v-if="itemsheetone.prop.indexOf(sheetitem.EnLabel) != -1">
  543. <div v-if="itemsheetone.isBind">
  544. <span>{{ BGroupCostParameter[itemsheetone.prop] }}</span>
  545. </div>
  546. <div v-else>
  547. <!-- <el-input v-model="BGroupCostParameter[itemsheetone.prop]"
  548. show-word-limit /> -->
  549. <el-input-number
  550. v-model="BGroupCostParameter[itemsheetone.prop]"
  551. @change="handleChange" :min="0" size="small"
  552. :controls="false"></el-input-number>
  553. </div>
  554. </div>
  555. <div v-else-if="itemsheetone.prop === 'ZCB'">
  556. {{ BcalculateZCB(sheetitem.EnLabel) }}
  557. </div>
  558. <div v-else-if="itemsheetone.prop === 'DRBJ'">
  559. {{ BcalculateDRBJ(sheetitem.EnLabel) }}
  560. </div>
  561. <div v-else-if="itemsheetone.prop === 'ZBJ'">
  562. {{ BcalculateZBJ(sheetitem.EnLabel) }}
  563. </div>
  564. <div v-else-if="itemsheetone.prop === 'DRLR'">
  565. {{ BcalculateDRLR(sheetitem.EnLabel) }}
  566. </div>
  567. <div v-else-if="itemsheetone.prop === 'ZLR'">
  568. {{ BcalculateZLR(sheetitem.EnLabel) }}
  569. </div>
  570. <!-- 绑定对象属性的值 -->
  571. </template>
  572. </el-table-column>
  573. </el-table>
  574. </div>
  575. </div>
  576. </div>
  577. </div>
  578. </div>
  579. </div>
  580. <div class="cabin-box">
  581. <div class="cabin-li">
  582. <div style="color: #606266;font-size: 15px;font-weight: 600;">请选择要显示的项:</div>
  583. <el-checkbox-group v-model="CheckBoxListSelect.filter(item => item.cbType == 'Right')[0].cbValues">
  584. <el-checkbox v-for="( item, index ) in cabinoneOptions " :key="index"
  585. :label="item"></el-checkbox>
  586. </el-checkbox-group>
  587. <div style="display: flex;">
  588. <div :style="{ 'width': costTypevalue == 'A' ? '100%' : '49%' }">
  589. <div v-for="( cabinitem, index ) in cabinDatal " :key="index">
  590. <div class="biaoge"
  591. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Right')[0].cbValues.includes(cabinitem.label)">
  592. <div style=" color: rgb(96, 98, 102);font-size: 15px;font-weight: 600;">{{
  593. cabinitem.label }}
  594. </div>
  595. <el-table :data="cabinitem.sheetInfo" border style="width: 100%">
  596. <el-table-column
  597. v-for="( itemcabinone, index ) in cabinitem.childList "
  598. :key="index" :prop="itemcabinone.prop" :label="itemcabinone.childLabel">
  599. <template slot-scope="scope">
  600. <div v-if="itemcabinone.prop === 'toll'">
  601. <el-input size="small" :ref="'el-input-' + index"
  602. v-model="scope.row[itemcabinone.prop]" show-word-limit
  603. disabled />
  604. </div>
  605. <span
  606. v-else-if="itemcabinone.prop === 'costPerson' || itemcabinone.prop === 'singleQuote'"
  607. :title="scope.row[itemcabinone.prop]">
  608. <span v-if="itemcabinone.prop === 'singleQuote'">
  609. <span v-if="itemcabinone.tips">
  610. <el-popover placement="top-start"
  611. :title="itemcabinone.title" width="200" trigger="hover">
  612. <span v-if="itemcabinone.tips != '暂无!'"
  613. style="color:green">{{ itemcabinone.tips
  614. }}元/人</span>
  615. <span v-else style="color: red">暂无!</span>
  616. <span slot="reference">{{ scope.row[itemcabinone.prop]
  617. }}</span>
  618. </el-popover>
  619. </span>
  620. <span v-else>
  621. <el-popover placement="top-start"
  622. :title="itemcabinone.title" width="200" trigger="hover">
  623. <span style="color: red">暂无!</span>
  624. <span slot="reference">{{ scope.row[itemcabinone.prop]
  625. }}</span>
  626. </el-popover>
  627. </span>
  628. </span>
  629. <span v-else>{{ scope.row[itemcabinone.prop] }}</span>
  630. </span>
  631. <span v-else-if="itemcabinone.prop === 'totalCost'"
  632. :title="scope.row[itemcabinone.prop]">{{
  633. (scope.row['toll'] * scope.row['costPerson']).toFixed(2)
  634. }}</span>
  635. <span v-else-if="itemcabinone.prop === 'totalQuote'"
  636. :title="scope.row[itemcabinone.prop]">{{
  637. (scope.row['toll'] * scope.row['singleQuote']).toFixed(2)
  638. }}</span>
  639. <span v-else-if="itemcabinone.prop === 'singleProfit'"
  640. :title="scope.row[itemcabinone.prop]">{{
  641. ((scope.row['singleQuote'] - scope.row['costPerson'])).toFixed(2)
  642. }}</span>
  643. <span v-else-if="itemcabinone.prop === 'totalProfit'"
  644. :title="scope.row[itemcabinone.prop]">{{
  645. ((scope.row['singleQuote'] - scope.row['costPerson']) *
  646. scope.row['toll']).toFixed(2)
  647. }}</span>
  648. <span v-else :title="scope.row[itemcabinone.prop]">{{
  649. scope.row[itemcabinone.prop]
  650. }}</span>
  651. </template>
  652. </el-table-column>
  653. </el-table>
  654. </div>
  655. </div>
  656. </div>
  657. <div style="width: 2%;" v-show="costTypevalue != 'A'"></div>
  658. <div style="width: 49%;" v-show="costTypevalue != 'A'">
  659. <div v-for="( cabinitem, index ) in BcabinDatal " :key="index">
  660. <div class="biaogeB"
  661. v-if="CheckBoxListSelect.filter(item => item.cbType == 'Right')[0].cbValues.includes(cabinitem.label)">
  662. <div style="color: rgb(96, 98, 102);font-size: 15px;font-weight: 600;">{{
  663. cabinitem.label }}
  664. </div>
  665. <el-table :data="cabinitem.sheetInfo" border style="width: 100%">
  666. <el-table-column
  667. v-for="( itemcabinone, index ) in cabinitem.childList "
  668. :key="index" :prop="itemcabinone.prop" :label="itemcabinone.childLabel">
  669. <template slot-scope="scope">
  670. <div v-if="itemcabinone.prop === 'toll'">
  671. <el-input size="small" :ref="'el-input-' + index"
  672. v-model="scope.row[itemcabinone.prop]" show-word-limit
  673. disabled />
  674. </div>
  675. <span
  676. v-else-if="itemcabinone.prop === 'costPerson' || itemcabinone.prop === 'singleQuote'"
  677. :title="scope.row[itemcabinone.prop]">{{
  678. scope.row[itemcabinone.prop]
  679. }}</span>
  680. <span v-else-if="itemcabinone.prop === 'totalCost'"
  681. :title="scope.row[itemcabinone.prop]">{{
  682. (scope.row['toll'] * scope.row['costPerson']).toFixed(2)
  683. }}</span>
  684. <span v-else-if="itemcabinone.prop === 'totalQuote'"
  685. :title="scope.row[itemcabinone.prop]">{{
  686. (scope.row['toll'] * scope.row['singleQuote']).toFixed(2)
  687. }}</span>
  688. <span v-else-if="itemcabinone.prop === 'singleProfit'"
  689. :title="scope.row[itemcabinone.prop]">{{
  690. (scope.row['singleQuote'] - scope.row['costPerson']).toFixed(2)
  691. }}</span>
  692. <span v-else-if="itemcabinone.prop === 'totalProfit'"
  693. :title="scope.row[itemcabinone.prop]">{{
  694. ((scope.row['singleQuote'] - scope.row['costPerson']) *
  695. scope.row['toll']).toFixed(2)
  696. }}</span>
  697. <span v-else :title="scope.row[itemcabinone.prop]">{{
  698. scope.row[itemcabinone.prop]
  699. }}</span>
  700. </template>
  701. </el-table-column>
  702. </el-table>
  703. </div>
  704. </div>
  705. </div>
  706. </div>
  707. </div>
  708. </div>
  709. </div>
  710. <el-dialog :title="DialogTitle" :visible.sync="outerVisible" :width="'60%'" :close-on-click-modal="false">
  711. <div>
  712. <div style="display: flex;">
  713. <div style="width: 30%;">
  714. <el-input v-model="dialogSearchInput" placeholder="请输入城市名称"></el-input>
  715. </div>
  716. <div style="width: 2%;"></div>
  717. <!-- <div><el-button type="primary" @click="dialogSearchMethon">搜索</el-button></div> -->
  718. </div>
  719. <br />
  720. <el-table ref="singleTable" border @current-change="SelChange"
  721. :data="filterdialogSearchInput.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  722. highlight-current-row style="width: 100%">
  723. <el-table-column v-for=" item, index in SeldialogColumn " :key="index"
  724. :prop="item.prop" :label="item.title">
  725. <template slot-scope="scope">
  726. <div>
  727. {{ scope.row[item.prop] }}
  728. </div>
  729. </template>
  730. </el-table-column>
  731. </el-table>
  732. <div class="block">
  733. <el-pagination align='center' @current-change="handleCurrentChange" :current-page="currentPage"
  734. :page-sizes="[5, 10]" :page-size="pageSize" layout="total, sizes, prev, pager, next"
  735. @size-change="handleSizeChange" :total="filterdialogSearchInput.length">
  736. </el-pagination>
  737. </div>
  738. </div>
  739. <!-- <el-dialog width="30%" title="内层 Dialog" :visible.sync="innerVisible" append-to-body>
  740. </el-dialog> -->
  741. <!-- <div slot="footer" class="dialog-footer">
  742. <el-button @click="outerVisible = false">取 消</el-button>
  743. <el-button type="primary" @click="innerVisible = true">打开内层 Dialog</el-button>
  744. </div> -->
  745. <div slot="footer" class="dialog-footer">
  746. <el-button @click="outerVisible = false; dialogSelectObject={}">取 消</el-button>
  747. <el-button type="primary" @click="confirm">确定</el-button>
  748. </div>
  749. </el-dialog>
  750. </div>
  751. </template>
  752. <script>
  753. export default {
  754. data() {
  755. return {
  756. costloading: true,
  757. outerVisible: false,
  758. innerVisible: false,
  759. //checkList: ['DAY', 'ITIN', 'VA', 'VF', 'VRD', 'T/G S', 'DATE'], //列表默认选中
  760. checkOptions: [
  761. { label: 'DAY', tips: '时间(DATE)' },
  762. { label: 'DATE', tips: '行程描述(ITINERARY)' },
  763. { label: 'ITIN', tips: '行程描述(ITINERARY)' },
  764. { label: 'VA', tips: '车服务区域(Vehicle Area)' },
  765. { label: 'VT', tips: '车型(VEHICLE TYPE)' },
  766. { label: 'VF', tips: '车费用(VEHICLE FEES)' },
  767. { label: 'VN', tips: '车数量(VEHICLE Number)' },
  768. { label: 'VRD', tips: '用车时间(VEHICLE RENTAL DURATION)' },
  769. { label: 'T/G S', tips: '导游工资(TOUR GUIDE SALARY)' },
  770. { label: 'T/G N', tips: '导游数量(TOUR GUIDE Number)' },
  771. { label: 'T/G WH', tips: '导游工作时间(导游工作时间)' },
  772. { label: 'T/G OF', tips: '导游超时费用(TOUR GUIDE OVERTIME FEES)' },
  773. { label: 'T/G M', tips: '导游餐补(TOUR GUIDE MEALS)' },
  774. { label: 'T/G A', tips: '导游房补(TOUR GUIDE ACCOMMODATION)' },
  775. { label: 'T/G TF', tips: '导游交通费(TOUR GUIDE TRANSPORATION FEES)' },
  776. { label: 'T/G EF', tips: '导游景点费(TOUR GUIDE ENTRANCE FEES)' },
  777. { label: 'C/F M', tips: '司机餐补(CHAUFFEUR MEALS)' },
  778. { label: 'C/F OF', tips: '司机超时费用(CHAUFFEUR OVERTIME FEES)' },
  779. { label: 'B', tips: '早餐(BREAKFAST) #个人成本' },
  780. { label: 'L', tips: '午餐(LUNCH) #个人成本' },
  781. { label: 'D', tips: '晚餐(DINNER) #个人成本' },
  782. { label: 'TBR', tips: '双人间(TWIN BED ROOM) #个人成本' },
  783. { label: 'SGR', tips: '单间(SINGLE ROOM) #个人成本' },
  784. { label: 'JS/ES', tips: '小套房/豪华套房(JUNIOR SUITE/EXECUTIVE SUITE) #个人成本' },
  785. { label: 'SUITE', tips: '套房(SUITE) #个人成本' },
  786. { label: 'ACCO N', tips: '住宿地名称(ACCOMMODATION NAME)' },
  787. //--------------------------------------------------
  788. { label: 'TV/N', tips: '公务场次' },
  789. { label: 'IF/N', tips: '翻译场次' },
  790. //-----------------------------------------------------
  791. { label: 'T/V', tips: '公务活动费用(T/V)' },
  792. { label: '1/L', tips: '公务活动费用(1/L)' },
  793. { label: 'I/F', tips: '公务翻译费用(INTERPRETER FEES)' },
  794. { label: 'EF', tips: '景点门票(ENTRANCE FEE) #个人成本' },
  795. { label: 'B/R/F', tips: '饮料零食水果(BEVERAGE/RRESHMENT/FRUIT)' },
  796. { label: 'TE', tips: '出行物资(TRAVELLLING ESSENTIALS) #个人成本' },
  797. { label: 'T/G T', tips: '导游小费(T/G TIPS) #个人成本' },
  798. { label: 'DRV T', tips: '司机小费(DRIVER TIPS #个人成本)' },
  799. { label: 'P/C', tips: '零用金(PETTY CASH) #个人成本' },
  800. { label: 'T/L F', tips: '领队费(TOUR LEADER FEES)' },
  801. { label: 'E/C T', tips: '会务费(EXPO/CONFERENCE TICKET)' }
  802. ],
  803. tableLabel: [
  804. { label: 'DAY', width: '50', prop: 'day', describe: '天数(DAY)' },
  805. { label: 'DATE', width: '100', prop: 'date', describe: '时间(DATE)' },
  806. { label: 'ITIN', width: '100', prop: 'itin', describe: '行程描述(ITINERARY)' },
  807. { label: 'VA', width: '100', prop: 'sale', describe: '车服务区域(Vehicle Area)' }, // ??????????????
  808. { label: 'VT', width: '100', prop: 'carType', describe: '车型(VEHICLE TYPE)' },
  809. { label: 'VF', width: '60', prop: 'carCost', describe: '车费用(VEHICLE FEES)' },
  810. { label: 'VN', width: '60', prop: 'carNumber', describe: '车数量(VEHICLE Number)' },
  811. { label: 'VRD', width: '60', prop: 'carTiming', describe: '用车时间(VEHICLE RENTAL DURATION)' },
  812. { label: 'T/G S', width: '60', prop: 'tgs', describe: '导游工资(TOUR GUIDE SALARY)' },
  813. { label: 'T/G N', width: '60', prop: 'tgn', describe: '导游数量(TOUR GUIDE Number' },
  814. { label: 'T/G WH', width: '60', prop: 'tgwh', describe: '导游工作时间(导游工作时间)' },
  815. { label: 'T/G OF', width: '60', prop: 'tgof', describe: '导游超时费用(TOUR GUIDE OVERTIME FEES)' },
  816. { label: 'T/G M', width: '60', prop: 'tgm', describe: '导游餐补(TOUR GUIDE MEALS)' },
  817. { label: 'T/G A', width: '60', prop: 'tga', describe: '导游房补(TOUR GUIDE ACCOMMODATION)' },
  818. { label: 'T/G TF', width: '60', prop: 'tgtf', describe: '导游交通费(TOUR GUIDE TRANSPORATION FEES)' },
  819. { label: 'T/G EF', width: '60', prop: 'tgef', describe: '导游景点费(TOUR GUIDE ENTRANCE FEES)' },
  820. { label: 'C/F M', width: '60', prop: 'cfm', describe: '司机餐补(CHAUFFEUR MEALS)' },
  821. { label: 'C/F OF', width: '60', prop: 'cfof', describe: '司机超时费用(CHAUFFEUR OVERTIME FEES)' },
  822. { label: 'B', width: '60', prop: 'b', describe: '早餐(BREAKFAST) #个人成本' },
  823. { label: 'L', width: '60', prop: 'l', describe: '午餐(LUNCH) #个人成本' },
  824. { label: 'D', width: '60', prop: 'd', describe: '晚餐(DINNER) #个人成本' },
  825. { label: 'TBR', width: '60', prop: 'tbr', describe: '双人间(TWIN BED ROOM) #个人成本' },
  826. { label: 'SGR', width: '60', prop: 'sgr', describe: '单间(SINGLE ROOM) #个人成本' },
  827. { label: 'JS/ES', width: '60', prop: 'jS_ES', describe: '小套房/豪华套房(JUNIOR SUITE/EXECUTIVE SUITE) #个人成本' },
  828. { label: 'SUITE', width: '60', prop: 'suite', describe: '套房(SUITE) #个人成本' },
  829. { label: 'ACCO N', width: '100', prop: 'accon', describe: '住宿地名称(ACCOMMODATION NAME)' },
  830. //--------------------------------------------------
  831. { label: 'TV/N', width: '60', prop: 'gwCount', describe: '公务场次' },
  832. { label: 'IF/N', width: '60', prop: 'fyCount', describe: '翻译场次' },
  833. //-----------------------------------------------------
  834. { label: 'T/V', width: '60', prop: 'tv', describe: '公务活动费用(T/V)' },
  835. { label: '1/L', width: '60', prop: 'iL', describe: '邀请函相关费用(1/L)' },
  836. { label: 'I/F', width: '60', prop: 'if', describe: '公务翻译费用(INTERPRETER FEES)' },
  837. { label: 'EF', width: '60', prop: 'ef', describe: '景点门票(ENTRANCE FEE) #个人成本' },
  838. { label: 'B/R/F', width: '60', prop: 'b_R_F', describe: '饮料零食水果(BEVERAGE/RRESHMENT/FRUIT)' },
  839. { label: 'TE', width: '60', prop: 'te', describe: '出行物资(TRAVELLLING ESSENTIALS) #个人成本' },
  840. { label: 'T/G T', width: '60', prop: 'tgTips', describe: '导游小费(T/G TIPS) #个人成本' },
  841. { label: 'DRV T', width: '60', prop: 'drvTips', describe: '司机小费(DRIVER TIPS #个人成本)' },
  842. { label: 'P/C', width: '60', prop: 'pc', describe: '零用金(PETTY CASH) #个人成本' },
  843. { label: 'T/L F', width: '60', prop: 'tlf', describe: '领队费(TOUR LEADER FEES)' },
  844. { label: 'E/C T', width: '60', prop: 'ect', describe: '会务费(EXPO/CONFERENCE TICKET)' }
  845. ],
  846. statisticsArr: [
  847. { label: 'DAY', total: '', individual: '' },
  848. { label: 'DATE', total: '', individual: '' },
  849. { label: 'ITIN', total: '', individual: '' },
  850. { label: 'VA', total: '', individual: '' },
  851. { label: 'VT', total: '', individual: '' },
  852. { label: 'VF', total: '车费', individual: '车费人均' },
  853. { label: 'VN', total: '', individual: '' },
  854. { label: 'VRD', total: '', individual: '' },
  855. { label: 'T/G S', total: '导游工资', individual: '导游工资人均' },
  856. { label: 'T/G N', total: '', individual: '' },
  857. { label: 'T/G WH', total: '', individual: '' },
  858. { label: 'T/G OF', total: '', individual: '' },
  859. { label: 'T/G M', total: '', individual: '' },
  860. { label: 'T/G A', total: '', individual: '' },
  861. { label: 'T/G TF', total: '', individual: '' }
  862. ],
  863. tableData: [], //列表数据
  864. options: [],
  865. diid: '',
  866. currencyOption: [],
  867. currencyValueL: 'CNY',
  868. formInline: {
  869. user: '',
  870. region: ''
  871. },
  872. //sheetoneList: ['签证', '机票', '核酸检测',],
  873. sheetoneOptions: ['签证', '保险', '机票', '火车票', '船票', '核酸检测', '酒店TBR', '酒店SGR', '酒店JSES', '酒店SUITE', '地接', '公务', '零用金'],
  874. sheetDatal: [
  875. {
  876. label: '签证',
  877. EnLabel: 'visa',
  878. childList: [
  879. {
  880. childLabel: '签证单人成本(CNY)',
  881. prop: 'visaCB',
  882. tips: '这是一个tips',
  883. title: '签证报批费用:'
  884. },
  885. {
  886. childLabel: '人数',
  887. prop: 'visaRS'
  888. },
  889. {
  890. childLabel: '签证系数',
  891. prop: 'visaXS'
  892. },
  893. {
  894. childLabel: '签证总成本(CNY)',
  895. prop: 'ZCB'
  896. },
  897. {
  898. childLabel: '签证单人报价(CNY)',
  899. prop: 'DRBJ' // 系数 * 单价
  900. },
  901. {
  902. childLabel: '签证总报价(CNY)',
  903. prop: 'ZBJ' // 系数 * 单价 * 人数
  904. },
  905. {
  906. childLabel: '签证单人利润(CNY)',
  907. prop: 'DRLR' //系数 * 单价 - 单价
  908. },
  909. {
  910. childLabel: '签证总利润(CNY)',
  911. prop: 'ZLR' //(系数 * 单价 - 单价) * 人数
  912. },
  913. ],
  914. },
  915. {
  916. label: '保险',
  917. EnLabel: 'bx',
  918. childList: [
  919. {
  920. childLabel: '保险单人成本(CNY)',
  921. prop: 'bxcb',
  922. title: '保险报批费用:',
  923. tips: '这是一个tips',
  924. },
  925. {
  926. childLabel: '人数',
  927. prop: 'bxrs'
  928. },
  929. {
  930. childLabel: '保险系数',
  931. prop: 'bxxs'
  932. },
  933. {
  934. childLabel: '保险总成本(CNY)',
  935. prop: 'ZCB'
  936. },
  937. {
  938. childLabel: '保险单人报价(CNY)',
  939. prop: 'DRBJ'
  940. },
  941. {
  942. childLabel: '保险总报价(CNY)',
  943. prop: 'ZBJ'
  944. },
  945. {
  946. childLabel: '保险单人利润(CNY)',
  947. prop: 'DRLR'
  948. },
  949. {
  950. childLabel: '保险总利润(CNY)',
  951. prop: 'ZLR'
  952. },
  953. ],
  954. },
  955. {
  956. label: '火车票',
  957. EnLabel: 'hcp',
  958. childList: [
  959. {
  960. childLabel: '火车票单人成本(CNY)',
  961. prop: 'hcpcb'
  962. },
  963. {
  964. childLabel: '人数',
  965. prop: 'hcprs'
  966. },
  967. {
  968. childLabel: '火车票系数',
  969. prop: 'hcpxs'
  970. },
  971. {
  972. childLabel: '火车票总成本(CNY)',
  973. prop: 'ZCB'
  974. },
  975. {
  976. childLabel: '火车票单人报价(CNY)',
  977. prop: 'DRBJ'
  978. },
  979. {
  980. childLabel: '火车票总报价(CNY)',
  981. prop: 'ZBJ'
  982. },
  983. {
  984. childLabel: '火车票单人利润(CNY)',
  985. prop: 'DRLR'
  986. },
  987. {
  988. childLabel: '火车票总利润(CNY)',
  989. prop: 'ZLR'
  990. },
  991. ],
  992. },
  993. {
  994. label: '机票',
  995. EnLabel: 'jjc',
  996. childList: [
  997. {
  998. childLabel: '经济舱单人成本(CNY)',
  999. prop: 'jjccb',
  1000. title: '经济舱报批费用:',
  1001. tips: '这是一个tips',
  1002. },
  1003. {
  1004. childLabel: '人数',
  1005. prop: 'jjcrs'
  1006. },
  1007. {
  1008. childLabel: '经济舱系数',
  1009. prop: 'jjcxs'
  1010. },
  1011. {
  1012. childLabel: '经济舱总成本(CNY)',
  1013. prop: 'ZCB'
  1014. },
  1015. {
  1016. childLabel: '经济舱单人报价(CNY)',
  1017. prop: 'DRBJ'
  1018. },
  1019. {
  1020. childLabel: '经济舱总报价(CNY)',
  1021. prop: 'ZBJ'
  1022. },
  1023. {
  1024. childLabel: '经济舱单人利润(CNY)',
  1025. prop: 'DRLR'
  1026. },
  1027. {
  1028. childLabel: '经济舱总利润(CNY)',
  1029. prop: 'ZLR'
  1030. },
  1031. ],
  1032. },
  1033. {
  1034. label: '机票',
  1035. EnLabel: 'gwc',
  1036. childList: [
  1037. {
  1038. childLabel: '公务舱单人成本(CNY)',
  1039. prop: 'gwccb',
  1040. title: '公务舱报批费用:',
  1041. tips: '这是一个tips',
  1042. },
  1043. {
  1044. childLabel: '人数',
  1045. prop: 'gwcrs'
  1046. },
  1047. {
  1048. childLabel: '公务舱系数',
  1049. prop: 'gwcxs'
  1050. },
  1051. {
  1052. childLabel: '公务舱总成本(CNY)',
  1053. prop: 'ZCB'
  1054. },
  1055. {
  1056. childLabel: '公务舱单人报价(CNY)',
  1057. prop: 'DRBJ'
  1058. },
  1059. {
  1060. childLabel: '公务舱总报价(CNY)',
  1061. prop: 'ZBJ'
  1062. },
  1063. {
  1064. childLabel: '公务舱单人利润(CNY)',
  1065. prop: 'DRLR'
  1066. },
  1067. {
  1068. childLabel: '公务舱总利润(CNY)',
  1069. prop: 'ZLR'
  1070. },
  1071. ],
  1072. },
  1073. {
  1074. label: '船票',
  1075. EnLabel: 'cp',
  1076. childList: [
  1077. {
  1078. childLabel: '船票单人成本(CNY)',
  1079. prop: 'cpcb'
  1080. },
  1081. {
  1082. childLabel: '人数',
  1083. prop: 'cprs'
  1084. },
  1085. {
  1086. childLabel: '船票系数',
  1087. prop: 'cpxs'
  1088. },
  1089. {
  1090. childLabel: '船票总成本(CNY)',
  1091. prop: 'ZCB'
  1092. },
  1093. {
  1094. childLabel: '船票单人报价(CNY)',
  1095. prop: 'DRBJ'
  1096. },
  1097. {
  1098. childLabel: '船票总报价(CNY)',
  1099. prop: 'ZBJ'
  1100. },
  1101. {
  1102. childLabel: '船票单人利润(CNY)',
  1103. prop: 'DRLR'
  1104. },
  1105. {
  1106. childLabel: '船票总利润(CNY)',
  1107. prop: 'ZLR'
  1108. },
  1109. ],
  1110. },
  1111. {
  1112. label: '核酸检测',
  1113. EnLabel: 'hs',
  1114. childList: [
  1115. {
  1116. childLabel: '核酸检测单人成本(CNY)',
  1117. prop: 'hscb',
  1118. title: '核酸检测报批费用:',
  1119. tips: '这是一个tips',
  1120. },
  1121. {
  1122. childLabel: '人数',
  1123. prop: 'hsrs'
  1124. },
  1125. {
  1126. childLabel: '核酸检测系数',
  1127. prop: 'hsxs'
  1128. },
  1129. {
  1130. childLabel: '核酸检测总成本(CNY)',
  1131. prop: 'ZCB'
  1132. },
  1133. {
  1134. childLabel: '核酸检测单人报价(CNY)',
  1135. prop: 'DRBJ'
  1136. },
  1137. {
  1138. childLabel: '核酸检测总报价(CNY)',
  1139. prop: 'ZBJ'
  1140. },
  1141. {
  1142. childLabel: '核酸检测单人利润(CNY)',
  1143. prop: 'DRLR'
  1144. },
  1145. {
  1146. childLabel: '核酸检测总利润(CNY)',
  1147. prop: 'ZLR'
  1148. },
  1149. ],
  1150. },
  1151. //---
  1152. {
  1153. label: '酒店TBR',
  1154. EnLabel: 'tbr',
  1155. childList: [
  1156. {
  1157. childLabel: '酒店TBR单间成本(CNY)',
  1158. prop: 'tbrcb',
  1159. isBind: true
  1160. },
  1161. {
  1162. childLabel: '间数',
  1163. prop: 'tbrNumber'
  1164. },
  1165. {
  1166. childLabel: '酒店TBR系数',
  1167. prop: 'tbrxs'
  1168. },
  1169. {
  1170. childLabel: '酒店TBR总成本(CNY)',
  1171. prop: 'ZCB'
  1172. },
  1173. {
  1174. childLabel: '酒店TBR单间报价(CNY)',
  1175. prop: 'DRBJ'
  1176. },
  1177. {
  1178. childLabel: '酒店TBR总报价(CNY)',
  1179. prop: 'ZBJ'
  1180. },
  1181. {
  1182. childLabel: '酒店TBR单间利润(CNY)',
  1183. prop: 'DRLR'
  1184. },
  1185. {
  1186. childLabel: '酒店TBR总利润(CNY)',
  1187. prop: 'ZLR'
  1188. },
  1189. ],
  1190. },
  1191. {
  1192. label: '酒店SGR',
  1193. EnLabel: 'sgr',
  1194. childList: [
  1195. {
  1196. childLabel: '酒店SGR单间成本(CNY)',
  1197. prop: 'sgrcb',
  1198. isBind: true
  1199. },
  1200. {
  1201. childLabel: '间数',
  1202. prop: 'sgrNumber'
  1203. },
  1204. {
  1205. childLabel: '酒店SGR系数',
  1206. prop: 'sgrxs'
  1207. },
  1208. {
  1209. childLabel: '酒店SGR总成本(CNY)',
  1210. prop: 'ZCB'
  1211. },
  1212. {
  1213. childLabel: '酒店SGR单间报价(CNY)',
  1214. prop: 'DRBJ'
  1215. },
  1216. {
  1217. childLabel: '酒店SGR总报价(CNY)',
  1218. prop: 'ZBJ'
  1219. },
  1220. {
  1221. childLabel: '酒店SGR单间利润(CNY)',
  1222. prop: 'DRLR'
  1223. },
  1224. {
  1225. childLabel: '酒店SGR总利润(CNY)',
  1226. prop: 'ZLR'
  1227. },
  1228. ],
  1229. },
  1230. {
  1231. label: '酒店JSES',
  1232. EnLabel: 'jses',
  1233. childList: [
  1234. {
  1235. childLabel: '酒店JSES单间成本(CNY)',
  1236. prop: 'jsescb',
  1237. isBind: true
  1238. },
  1239. {
  1240. childLabel: '间数',
  1241. prop: 'jsesNumber'
  1242. },
  1243. {
  1244. childLabel: '酒店JSES系数',
  1245. prop: 'jsesxs'
  1246. },
  1247. {
  1248. childLabel: '酒店JSES总成本(CNY)',
  1249. prop: 'ZCB'
  1250. },
  1251. {
  1252. childLabel: '酒店JSES单间报价(CNY)',
  1253. prop: 'DRBJ'
  1254. },
  1255. {
  1256. childLabel: '酒店JSES总报价(CNY)',
  1257. prop: 'ZBJ'
  1258. },
  1259. {
  1260. childLabel: '酒店JSES单间利润(CNY)',
  1261. prop: 'DRLR'
  1262. },
  1263. {
  1264. childLabel: '酒店JSES总利润(CNY)',
  1265. prop: 'ZLR'
  1266. },
  1267. ],
  1268. },
  1269. {
  1270. label: '酒店SUITE',
  1271. EnLabel: 'suite',
  1272. childList: [
  1273. {
  1274. childLabel: '酒店SUITE单间成本(CNY)',
  1275. prop: 'suitecb',
  1276. isBind: true
  1277. },
  1278. {
  1279. childLabel: '间数',
  1280. prop: 'suiteNumber'
  1281. },
  1282. {
  1283. childLabel: '酒店SUITE系数',
  1284. prop: 'suitexs'
  1285. },
  1286. {
  1287. childLabel: '酒店SUITE总成本(CNY)',
  1288. prop: 'ZCB'
  1289. },
  1290. {
  1291. childLabel: '酒店SUITE单间报价(CNY)',
  1292. prop: 'DRBJ'
  1293. },
  1294. {
  1295. childLabel: '酒店SUITE总报价(CNY)',
  1296. prop: 'ZBJ'
  1297. },
  1298. {
  1299. childLabel: '酒店SUITE单间利润(CNY)',
  1300. prop: 'DRLR'
  1301. },
  1302. {
  1303. childLabel: '酒店SUITE总利润(CNY)',
  1304. prop: 'ZLR'
  1305. },
  1306. ],
  1307. },
  1308. {
  1309. label: '地接',
  1310. EnLabel: 'dj',
  1311. childList: [
  1312. {
  1313. childLabel: '地接单人成本(CNY)',
  1314. prop: 'djcb',
  1315. isBind: true
  1316. },
  1317. {
  1318. childLabel: '人数', //实体类无地接人数
  1319. prop: 'djrs'
  1320. },
  1321. {
  1322. childLabel: '地接系数',
  1323. prop: 'djxs'
  1324. },
  1325. {
  1326. childLabel: '地接总成本(CNY)',
  1327. prop: 'ZCB'
  1328. },
  1329. {
  1330. childLabel: '地接单人报价(CNY)',
  1331. prop: 'DRBJ'
  1332. },
  1333. {
  1334. childLabel: '地接总报价(CNY)',
  1335. prop: 'ZBJ'
  1336. },
  1337. {
  1338. childLabel: '地接单人利润(CNY)',
  1339. prop: 'DRLR'
  1340. },
  1341. {
  1342. childLabel: '地接总利润(CNY)',
  1343. prop: 'ZLR'
  1344. },
  1345. ],
  1346. },
  1347. {
  1348. label: '公务',
  1349. EnLabel: 'gw',
  1350. childList: [
  1351. {
  1352. childLabel: '公务单人成本(CNY)',
  1353. prop: 'gwcb',
  1354. isBind: true
  1355. },
  1356. {
  1357. childLabel: '人数',
  1358. prop: 'gwrs'
  1359. },
  1360. {
  1361. childLabel: '公务系数',
  1362. prop: 'gwxs'
  1363. },
  1364. {
  1365. childLabel: '公务总成本(CNY)',
  1366. prop: 'ZCB'
  1367. },
  1368. {
  1369. childLabel: '公务单人报价(CNY)',
  1370. prop: 'DRBJ'
  1371. },
  1372. {
  1373. childLabel: '公务总报价(CNY)',
  1374. prop: 'ZBJ'
  1375. },
  1376. {
  1377. childLabel: '公务单人利润(CNY)',
  1378. prop: 'DRLR'
  1379. },
  1380. {
  1381. childLabel: '公务总利润(CNY)',
  1382. prop: 'ZLR'
  1383. },
  1384. ],
  1385. },
  1386. {
  1387. label: '零用金',
  1388. EnLabel: 'lyj',
  1389. childList: [
  1390. {
  1391. childLabel: '零用金单人成本(CNY)',
  1392. prop: 'lyjcb',
  1393. isBind: true
  1394. },
  1395. {
  1396. childLabel: '人数',
  1397. prop: 'lyjrs'
  1398. },
  1399. {
  1400. childLabel: '零用金系数',
  1401. prop: 'lyjxs'
  1402. },
  1403. {
  1404. childLabel: '零用金总成本(CNY)',
  1405. prop: 'ZCB'
  1406. },
  1407. {
  1408. childLabel: '零用金单人报价(CNY)',
  1409. prop: 'DRBJ'
  1410. },
  1411. {
  1412. childLabel: '零用金总报价(CNY)',
  1413. prop: 'ZBJ'
  1414. },
  1415. {
  1416. childLabel: '零用金单人利润(CNY)',
  1417. prop: 'DRLR'
  1418. },
  1419. {
  1420. childLabel: '零用金总利润(CNY)',
  1421. prop: 'ZLR'
  1422. },
  1423. ],
  1424. },
  1425. ],
  1426. //cabinoneList: ['经济舱 TBR', '经济舱 SGR', '核酸检测', '团组预算明细'],
  1427. cabinoneOptions: ['经济舱 TBR', '经济舱 SGR', '公务舱 SGR', '公务舱 JS/ES', '公务舱 SUITE', '经济舱 SUITE'],
  1428. cabinDatal: [
  1429. {
  1430. label: '经济舱 TBR',
  1431. childList: [
  1432. {
  1433. childLabel: '单人成本(CNY)',
  1434. prop: 'costPerson'
  1435. },
  1436. {
  1437. childLabel: '人数',
  1438. prop: 'toll'
  1439. },
  1440. {
  1441. childLabel: '总成本(CNY)',
  1442. prop: 'totalCost'
  1443. },
  1444. {
  1445. childLabel: '单人报价(CNY)',
  1446. prop: 'singleQuote',
  1447. title: '报批(单人经济舱总报价):',
  1448. tips: '这是一个tips',
  1449. },
  1450. {
  1451. childLabel: '总报价(CNY)',
  1452. prop: 'totalQuote'
  1453. },
  1454. {
  1455. childLabel: '单人利润(CNY)',
  1456. prop: 'singleProfit'
  1457. },
  1458. {
  1459. childLabel: '总利润(CNY)',
  1460. prop: 'totalProfit'
  1461. },
  1462. ],
  1463. sheetInfo: [
  1464. {
  1465. costPerson: 1,
  1466. toll: 11,
  1467. totalCost: 137597.76,
  1468. singleQuote: 102203.71,
  1469. totalQuote: 35394.05,
  1470. singleProfit: 35394.05,
  1471. totalProfit: 35394.05
  1472. },
  1473. ]
  1474. },
  1475. {
  1476. label: '经济舱 SGR',
  1477. childList: [
  1478. {
  1479. childLabel: '单人成本(CNY)',
  1480. prop: 'costPerson'
  1481. },
  1482. {
  1483. childLabel: '人数',
  1484. prop: 'toll'
  1485. },
  1486. {
  1487. childLabel: '总成本(CNY)',
  1488. prop: 'totalCost'
  1489. },
  1490. {
  1491. childLabel: '单人报价(CNY)',
  1492. prop: 'singleQuote',
  1493. title: '报批(单人经济舱总报价):',
  1494. tips: '这是一个tips',
  1495. },
  1496. {
  1497. childLabel: '总报价(CNY)',
  1498. prop: 'totalQuote'
  1499. },
  1500. {
  1501. childLabel: '单人利润(CNY)',
  1502. prop: 'singleProfit'
  1503. },
  1504. {
  1505. childLabel: '总利润(CNY)',
  1506. prop: 'totalProfit'
  1507. },
  1508. ],
  1509. sheetInfo: [
  1510. {
  1511. costPerson: 1,
  1512. toll: 11,
  1513. totalCost: 137597.76,
  1514. singleQuote: 102203.71,
  1515. totalQuote: 35394.05,
  1516. singleProfit: 35394.05,
  1517. totalProfit: 35394.05
  1518. },
  1519. ]
  1520. },
  1521. {
  1522. label: '公务舱 SGR',
  1523. childList: [
  1524. {
  1525. childLabel: '单人成本(CNY)',
  1526. prop: 'costPerson'
  1527. },
  1528. {
  1529. childLabel: '人数',
  1530. prop: 'toll'
  1531. },
  1532. {
  1533. childLabel: '总成本(CNY)',
  1534. prop: 'totalCost'
  1535. },
  1536. {
  1537. childLabel: '单人报价(CNY)',
  1538. prop: 'singleQuote',
  1539. title: '报批(单人公务舱总报价):',
  1540. tips: '这是一个tips',
  1541. },
  1542. {
  1543. childLabel: '总报价(CNY)',
  1544. prop: 'totalQuote'
  1545. },
  1546. {
  1547. childLabel: '单人利润(CNY)',
  1548. prop: 'singleProfit'
  1549. },
  1550. {
  1551. childLabel: '总利润(CNY)',
  1552. prop: 'totalProfit'
  1553. },
  1554. ],
  1555. sheetInfo: [
  1556. {
  1557. costPerson: 1,
  1558. toll: 11,
  1559. totalCost: 137597.76,
  1560. singleQuote: 102203.71,
  1561. totalQuote: 35394.05,
  1562. singleProfit: 35394.05,
  1563. totalProfit: 35394.05
  1564. },
  1565. ]
  1566. },
  1567. {
  1568. label: '公务舱 JS/ES',
  1569. childList: [
  1570. {
  1571. childLabel: '单人成本(CNY)',
  1572. prop: 'costPerson'
  1573. },
  1574. {
  1575. childLabel: '人数',
  1576. prop: 'toll'
  1577. },
  1578. {
  1579. childLabel: '总成本(CNY)',
  1580. prop: 'totalCost'
  1581. },
  1582. {
  1583. childLabel: '单人报价(CNY)',
  1584. prop: 'singleQuote',
  1585. title: '报批(单人公务舱总报价):',
  1586. tips: '这是一个tips',
  1587. },
  1588. {
  1589. childLabel: '总报价(CNY)',
  1590. prop: 'totalQuote'
  1591. },
  1592. {
  1593. childLabel: '单人利润(CNY)',
  1594. prop: 'singleProfit'
  1595. },
  1596. {
  1597. childLabel: '总利润(CNY)',
  1598. prop: 'totalProfit'
  1599. },
  1600. ],
  1601. sheetInfo: [
  1602. {
  1603. costPerson: 1,
  1604. toll: 11,
  1605. totalCost: 137597.76,
  1606. singleQuote: 102203.71,
  1607. totalQuote: 35394.05,
  1608. singleProfit: 35394.05,
  1609. totalProfit: 35394.05
  1610. },
  1611. ]
  1612. },
  1613. {
  1614. label: '公务舱 SUITE',
  1615. childList: [
  1616. {
  1617. childLabel: '单人成本(CNY)',
  1618. prop: 'costPerson'
  1619. },
  1620. {
  1621. childLabel: '人数',
  1622. prop: 'toll'
  1623. },
  1624. {
  1625. childLabel: '总成本(CNY)',
  1626. prop: 'totalCost'
  1627. },
  1628. {
  1629. childLabel: '单人报价(CNY)',
  1630. prop: 'singleQuote',
  1631. title: '报批(单人公务舱总报价):',
  1632. tips: '这是一个tips',
  1633. },
  1634. {
  1635. childLabel: '总报价(CNY)',
  1636. prop: 'totalQuote'
  1637. },
  1638. {
  1639. childLabel: '单人利润(CNY)',
  1640. prop: 'singleProfit'
  1641. },
  1642. {
  1643. childLabel: '总利润(CNY)',
  1644. prop: 'totalProfit'
  1645. },
  1646. ],
  1647. sheetInfo: [
  1648. {
  1649. costPerson: 1,
  1650. toll: 11,
  1651. totalCost: 137597.76,
  1652. singleQuote: 102203.71,
  1653. totalQuote: 35394.05,
  1654. singleProfit: 35394.05,
  1655. totalProfit: 35394.05
  1656. },
  1657. ]
  1658. }
  1659. ,
  1660. {
  1661. label: '经济舱 SUITE',
  1662. childList: [
  1663. {
  1664. childLabel: '单人成本(CNY)',
  1665. prop: 'costPerson'
  1666. },
  1667. {
  1668. childLabel: '人数',
  1669. prop: 'toll'
  1670. },
  1671. {
  1672. childLabel: '总成本(CNY)',
  1673. prop: 'totalCost'
  1674. },
  1675. {
  1676. childLabel: '单人报价(CNY)',
  1677. prop: 'singleQuote',
  1678. title: '报批(单人经济舱总报价):',
  1679. tips: '这是一个tips',
  1680. },
  1681. {
  1682. childLabel: '总报价(CNY)',
  1683. prop: 'totalQuote'
  1684. },
  1685. {
  1686. childLabel: '单人利润(CNY)',
  1687. prop: 'singleProfit'
  1688. },
  1689. {
  1690. childLabel: '总利润(CNY)',
  1691. prop: 'totalProfit'
  1692. },
  1693. ],
  1694. sheetInfo: [
  1695. {
  1696. costPerson: 1,
  1697. toll: 11,
  1698. totalCost: 137597.76,
  1699. singleQuote: 102203.71,
  1700. totalQuote: 35394.05,
  1701. singleProfit: 35394.05,
  1702. totalProfit: 35394.05
  1703. },
  1704. ]
  1705. },
  1706. {
  1707. label: '团组预算明细',
  1708. childList: [
  1709. {
  1710. childLabel: '团组成本(CNY)',
  1711. prop: 'groupCosts'
  1712. },
  1713. {
  1714. childLabel: '团组报价(CNY)',
  1715. prop: 'gtroupQuotes'
  1716. },
  1717. {
  1718. childLabel: '团组利润(CNY)',
  1719. prop: 'groupProfit'
  1720. }
  1721. ],
  1722. sheetInfo: [
  1723. {
  1724. groupCosts: 1,
  1725. gtroupQuotes: 11,
  1726. groupProfit: 137597.76,
  1727. },
  1728. ]
  1729. }
  1730. ],
  1731. BcabinDatal: [
  1732. {
  1733. label: '经济舱 TBR',
  1734. childList: [
  1735. {
  1736. childLabel: '单人成本(CNY)',
  1737. prop: 'costPerson'
  1738. },
  1739. {
  1740. childLabel: '人数',
  1741. prop: 'toll'
  1742. },
  1743. {
  1744. childLabel: '总成本(CNY)',
  1745. prop: 'totalCost'
  1746. },
  1747. {
  1748. childLabel: '单人报价(CNY)',
  1749. prop: 'singleQuote',
  1750. title: '报批(单人经济舱总报价):',
  1751. tips: '这是一个tips',
  1752. },
  1753. {
  1754. childLabel: '总报价(CNY)',
  1755. prop: 'totalQuote'
  1756. },
  1757. {
  1758. childLabel: '单人利润(CNY)',
  1759. prop: 'singleProfit'
  1760. },
  1761. {
  1762. childLabel: '总利润(CNY)',
  1763. prop: 'totalProfit'
  1764. },
  1765. ],
  1766. sheetInfo: [
  1767. {
  1768. costPerson: 0,
  1769. toll: 0,
  1770. totalCost: 137597.76,
  1771. singleQuote: 102203.71,
  1772. totalQuote: 35394.05,
  1773. singleProfit: 35394.05,
  1774. totalProfit: 35394.05
  1775. },
  1776. ]
  1777. },
  1778. {
  1779. label: '经济舱 SGR',
  1780. childList: [
  1781. {
  1782. childLabel: '单人成本(CNY)',
  1783. prop: 'costPerson'
  1784. },
  1785. {
  1786. childLabel: '人数',
  1787. prop: 'toll'
  1788. },
  1789. {
  1790. childLabel: '总成本(CNY)',
  1791. prop: 'totalCost'
  1792. },
  1793. {
  1794. childLabel: '单人报价(CNY)',
  1795. prop: 'singleQuote',
  1796. title: '报批(单人经济舱总报价):',
  1797. tips: '这是一个tips',
  1798. },
  1799. {
  1800. childLabel: '总报价(CNY)',
  1801. prop: 'totalQuote'
  1802. },
  1803. {
  1804. childLabel: '单人利润(CNY)',
  1805. prop: 'singleProfit'
  1806. },
  1807. {
  1808. childLabel: '总利润(CNY)',
  1809. prop: 'totalProfit'
  1810. },
  1811. ],
  1812. sheetInfo: [
  1813. {
  1814. costPerson: 1,
  1815. toll: 11,
  1816. totalCost: 137597.76,
  1817. singleQuote: 102203.71,
  1818. totalQuote: 35394.05,
  1819. singleProfit: 35394.05,
  1820. totalProfit: 35394.05
  1821. },
  1822. ]
  1823. },
  1824. {
  1825. label: '公务舱 SGR',
  1826. childList: [
  1827. {
  1828. childLabel: '单人成本(CNY)',
  1829. prop: 'costPerson'
  1830. },
  1831. {
  1832. childLabel: '人数',
  1833. prop: 'toll'
  1834. },
  1835. {
  1836. childLabel: '总成本(CNY)',
  1837. prop: 'totalCost'
  1838. },
  1839. {
  1840. childLabel: '单人报价(CNY)',
  1841. prop: 'singleQuote',
  1842. title: '报批(单人公务舱总报价):',
  1843. tips: '这是一个tips',
  1844. },
  1845. {
  1846. childLabel: '总报价(CNY)',
  1847. prop: 'totalQuote'
  1848. },
  1849. {
  1850. childLabel: '单人利润(CNY)',
  1851. prop: 'singleProfit'
  1852. },
  1853. {
  1854. childLabel: '总利润(CNY)',
  1855. prop: 'totalProfit'
  1856. },
  1857. ],
  1858. sheetInfo: [
  1859. {
  1860. costPerson: 1,
  1861. toll: 11,
  1862. totalCost: 137597.76,
  1863. singleQuote: 102203.71,
  1864. totalQuote: 35394.05,
  1865. singleProfit: 35394.05,
  1866. totalProfit: 35394.05
  1867. },
  1868. ]
  1869. },
  1870. {
  1871. label: '公务舱 JS/ES',
  1872. childList: [
  1873. {
  1874. childLabel: '单人成本(CNY)',
  1875. prop: 'costPerson'
  1876. },
  1877. {
  1878. childLabel: '人数',
  1879. prop: 'toll'
  1880. },
  1881. {
  1882. childLabel: '总成本(CNY)',
  1883. prop: 'totalCost'
  1884. },
  1885. {
  1886. childLabel: '单人报价(CNY)',
  1887. prop: 'singleQuote',
  1888. title: '报批(单人公务舱总报价):',
  1889. tips: '这是一个tips',
  1890. },
  1891. {
  1892. childLabel: '总报价(CNY)',
  1893. prop: 'totalQuote'
  1894. },
  1895. {
  1896. childLabel: '单人利润(CNY)',
  1897. prop: 'singleProfit'
  1898. },
  1899. {
  1900. childLabel: '总利润(CNY)',
  1901. prop: 'totalProfit'
  1902. },
  1903. ],
  1904. sheetInfo: [
  1905. {
  1906. costPerson: 1,
  1907. toll: 11,
  1908. totalCost: 137597.76,
  1909. singleQuote: 102203.71,
  1910. totalQuote: 35394.05,
  1911. singleProfit: 35394.05,
  1912. totalProfit: 35394.05
  1913. },
  1914. ]
  1915. },
  1916. {
  1917. label: '公务舱 SUITE',
  1918. childList: [
  1919. {
  1920. childLabel: '单人成本(CNY)',
  1921. prop: 'costPerson'
  1922. },
  1923. {
  1924. childLabel: '人数',
  1925. prop: 'toll'
  1926. },
  1927. {
  1928. childLabel: '总成本(CNY)',
  1929. prop: 'totalCost'
  1930. },
  1931. {
  1932. childLabel: '单人报价(CNY)',
  1933. prop: 'singleQuote',
  1934. title: '报批(单人公务舱总报价):',
  1935. tips: '这是一个tips',
  1936. },
  1937. {
  1938. childLabel: '总报价(CNY)',
  1939. prop: 'totalQuote'
  1940. },
  1941. {
  1942. childLabel: '单人利润(CNY)',
  1943. prop: 'singleProfit'
  1944. },
  1945. {
  1946. childLabel: '总利润(CNY)',
  1947. prop: 'totalProfit'
  1948. },
  1949. ],
  1950. sheetInfo: [
  1951. {
  1952. costPerson: 1,
  1953. toll: 11,
  1954. totalCost: 137597.76,
  1955. singleQuote: 102203.71,
  1956. totalQuote: 35394.05,
  1957. singleProfit: 35394.05,
  1958. totalProfit: 35394.05
  1959. },
  1960. ]
  1961. }
  1962. ,
  1963. {
  1964. label: '经济舱 SUITE',
  1965. childList: [
  1966. {
  1967. childLabel: '单人成本(CNY)',
  1968. prop: 'costPerson'
  1969. },
  1970. {
  1971. childLabel: '人数',
  1972. prop: 'toll'
  1973. },
  1974. {
  1975. childLabel: '总成本(CNY)',
  1976. prop: 'totalCost'
  1977. },
  1978. {
  1979. childLabel: '单人报价(CNY)',
  1980. prop: 'singleQuote',
  1981. title: '报批(单人经济舱总报价):',
  1982. tips: '这是一个tips',
  1983. },
  1984. {
  1985. childLabel: '总报价(CNY)',
  1986. prop: 'totalQuote'
  1987. },
  1988. {
  1989. childLabel: '单人利润(CNY)',
  1990. prop: 'singleProfit'
  1991. },
  1992. {
  1993. childLabel: '总利润(CNY)',
  1994. prop: 'totalProfit'
  1995. },
  1996. ],
  1997. sheetInfo: [
  1998. {
  1999. costPerson: 1,
  2000. toll: 11,
  2001. totalCost: 137597.76,
  2002. singleQuote: 102203.71,
  2003. totalQuote: 35394.05,
  2004. singleProfit: 35394.05,
  2005. totalProfit: 35394.05
  2006. },
  2007. ]
  2008. }
  2009. ],
  2010. costType: [
  2011. {
  2012. value: 'A',
  2013. label: '单段模式'
  2014. },
  2015. {
  2016. value: 'B',
  2017. label: '双段模式'
  2018. }
  2019. ],
  2020. userId: 0,
  2021. token: '',
  2022. costTypevalue: 'A',
  2023. grouptitleinfo: {},
  2024. costTypeHotelNumbers: [{
  2025. "sgr": 0,
  2026. "tbr": 0,
  2027. "jses": 0,
  2028. "suite": 0,
  2029. "type": "Default",
  2030. "diid": 0,
  2031. id: 0,
  2032. },
  2033. {
  2034. "sgr": 0,
  2035. "tbr": 0,
  2036. "jses": 0,
  2037. "suite": 0,
  2038. "type": "A",
  2039. "diid": 0,
  2040. id: 0,
  2041. },
  2042. {
  2043. "sgr": 0,
  2044. "tbr": 0,
  2045. "jses": 0,
  2046. "suite": 0,
  2047. "type": "B",
  2048. "diid": 0,
  2049. id: 0,
  2050. }],
  2051. CheckBoxListSelect: [
  2052. {
  2053. "diid": 0,
  2054. "cbType": "Top",
  2055. "cbValues": ['DAY', 'DATE', 'ITIN', 'VA', 'VT', 'VF', 'VRD', 'T/G S', 'T/G WH', 'C/F M', 'L', 'D', 'SGR', 'SUITE', 'ACCO N', 'T/V', 'EF', 'B/R/F', 'TE', 'DRV T', 'P/C'] //"string"
  2056. },
  2057. {
  2058. "diid": 0,
  2059. "cbType": "Left",
  2060. "cbValues": ['签证', '机票', '保险', '火车票', '地接', '公务', '零用金'] //"string"
  2061. },
  2062. {
  2063. "diid": 0,
  2064. "cbType": "Right",
  2065. "cbValues": ['公务舱 SGR', '经济舱 SGR', '团组预算明细'] //"string"
  2066. }
  2067. ],
  2068. AGroupCostParameter: {
  2069. "id": 0,
  2070. "diId": 0,
  2071. "currency": "CNY",
  2072. "rate": 0,
  2073. "tax": 0,
  2074. "ffys": 0,
  2075. "hotelXS": 0,
  2076. "jjccb": 0,
  2077. "jjcxs": 0,
  2078. "jjcrs": 0,
  2079. "gwccb": 0,
  2080. "gwcxs": 0,
  2081. "gwcrs": 0,
  2082. "hcpcb": 0,
  2083. "hcpxs": 0,
  2084. "hcprs": 0,
  2085. "cpcb": 0,
  2086. "cpxs": 0,
  2087. "cprs": 0,
  2088. "bxcb": 0,
  2089. "bxxs": 25,
  2090. "bxrs": 0,
  2091. "hscb": 0,
  2092. "hsxs": 0,
  2093. "hsrs": 0,
  2094. "visaCB": 0,
  2095. "visaXS": 0,
  2096. "visaRS": 0,
  2097. "gwcb": 0,
  2098. "gwxs": 0,
  2099. "gwrs": 0,
  2100. "djcb": 0,
  2101. "djrs": 0,
  2102. "djxs": 0,
  2103. "sgrcb": 0,
  2104. "sgrNumber": 0,
  2105. "sgrxs": 0,
  2106. "tbrcb": 0,
  2107. "tbrNumber": 0,
  2108. "tbrxs": 0,
  2109. "jsescb": 0,
  2110. "jsesNumber": 0,
  2111. "jsesxs": 0,
  2112. "suitecb": 0,
  2113. "suiteNumber": 0,
  2114. "suitexs": 0,
  2115. "lyjcb": 0,
  2116. "lyjxs": 0,
  2117. "lyjrs": 0,
  2118. "isShare": 0,
  2119. "costType": "A",
  2120. "costTypeStartTime": "",
  2121. "costTypeendTime": "",
  2122. "costTypenumber": 0
  2123. },
  2124. BGroupCostParameter: {
  2125. "id": 0,
  2126. "diId": 0,
  2127. "currency": "",
  2128. "rate": 0,
  2129. "tax": 0,
  2130. "ffys": 0,
  2131. "hotelXS": 0,
  2132. "jjccb": 0,
  2133. "jjcxs": 0,
  2134. "jjcrs": 0,
  2135. "gwccb": 0,
  2136. "gwcxs": 0,
  2137. "gwcrs": 0,
  2138. "hcpcb": 0,
  2139. "hcpxs": 0,
  2140. "hcprs": 0,
  2141. "cpcb": 0,
  2142. "cpxs": 0,
  2143. "cprs": 0,
  2144. "bxcb": 0,
  2145. "bxxs": 25,
  2146. "bxrs": 0,
  2147. "hscb": 0,
  2148. "hsxs": 0,
  2149. "hsrs": 0,
  2150. "visaCB": 0,
  2151. "visaXS": 0,
  2152. "visaRS": 0,
  2153. "gwcb": 0,
  2154. "gwxs": 0,
  2155. "gwrs": 0,
  2156. "djcb": 0,
  2157. "djxs": 0,
  2158. "djrs": 0,
  2159. "sgrcb": 0,
  2160. "sgrNumber": 0,
  2161. "sgrxs": 0,
  2162. "tbrcb": 0,
  2163. "tbrNumber": 0,
  2164. "tbrxs": 0,
  2165. "jsescb": 0,
  2166. "jsesNumber": 0,
  2167. "jsesxs": 0,
  2168. "suitecb": 0,
  2169. "suiteNumber": 0,
  2170. "suitexs": 0,
  2171. "lyjcb": 0,
  2172. "lyjxs": 0,
  2173. "lyjrs": 0,
  2174. "isShare": 0,
  2175. "costType": "B",
  2176. "costTypeStartTime": "",
  2177. "costTypeendTime": "",
  2178. "costTypenumber": 0
  2179. },
  2180. dialogColumn: [
  2181. {
  2182. index: 1, data: [
  2183. { title: "国家", prop: "country" },
  2184. { title: "城市", prop: "city" },
  2185. { title: "服务类型", prop: "serviceType" },
  2186. { title: "用车类型", prop: "carType" },
  2187. { title: "用车报价", prop: "offer" },
  2188. { title: "车兼导费用", prop: "cgCost" },
  2189. { title: "用车时长", prop: "runingTime" },
  2190. { title: "车超时费用/时", prop: "overtimeFee" },
  2191. { title: "司兼导超时费/时", prop: "cgOvertimeFee" },
  2192. { title: "币种", prop: "currency" },
  2193. { title: "备注", prop: "remark" }
  2194. ]
  2195. },
  2196. {
  2197. index: 2, data: [
  2198. { title: "国家", prop: "country" },
  2199. { title: "城市", prop: "city" },
  2200. { title: "导游服务类型", prop: "serviceType" },
  2201. { title: "导游工资", prop: "price" },
  2202. { title: "翻译工资", prop: "translationPrice" },
  2203. { title: "超时费用", prop: "overtimeFee" },
  2204. { title: "币种", prop: "currency" },
  2205. { title: "备注", prop: "remark" }
  2206. ]
  2207. },
  2208. {
  2209. index: 3, data: [
  2210. { title: "国家", prop: "country" },
  2211. { title: "城市", prop: "city" },
  2212. { title: "车类型", prop: "carType" },
  2213. { title: "服务类型", prop: "serviceType" },
  2214. { title: "用车时间", prop: "when" },
  2215. { title: "工资", prop: "price" },
  2216. { title: "超时费用", prop: "overtimeFee" },
  2217. { title: "币种", prop: "currency" },
  2218. { title: "备注", prop: "remark" }
  2219. ]
  2220. },
  2221. {
  2222. index: 4, data: [
  2223. { title: "国家", prop: "country" },
  2224. { title: "城市", prop: "city" },
  2225. { title: "景点", prop: "scenicSpot" },
  2226. { title: "景点项目描述", prop: "scenicSpotDetail" },
  2227. { title: "景点价格", prop: "price" },
  2228. { title: "币种", prop: "currency" },
  2229. { title: "景点地址", prop: "address" }
  2230. ]
  2231. }
  2232. // 司兼导
  2233. // 导游
  2234. // 车数据
  2235. // 景点
  2236. ],
  2237. dialogTableData: [],
  2238. SeldialogColumn: [],
  2239. DialogTitle: '',
  2240. pageSize: 5,
  2241. currentPage: 1,
  2242. dialogSearchInput: '',
  2243. selectRow: {},
  2244. rowIndex: 0,
  2245. sumTopPrice: [],
  2246. DJLables: ['VF', 'T/G S', 'T/G OF', 'T/G M', 'T/G A', 'T/G TF', 'T/G EF', 'C/F M', 'C/F OF', 'B', 'L', 'D', 'EF', 'B/R/F', 'TE', 'T/G T', 'DRV T', 'T/L F'],
  2247. GwLables: ['T/V', 'E/C T', 'I/F', '1/L'],
  2248. OtherCostProperty: ['visaCB', 'hcpcb', 'cpcb', 'bxcb', 'hscb', 'djcb', 'gwcb', 'lyjcb'],
  2249. OtherCostPropertyBJ: ['visa', 'hcp', 'cp', 'bx', 'hs', 'dj', 'gw', 'lyj'],
  2250. peopleNumber: 1,
  2251. centerheight: 700,
  2252. defaultheight: 50,
  2253. rules: {
  2254. rate: [
  2255. { pattern: /^-?\d+\.?\d*$/, message: '请输入正确数据', trigger: 'blur', required: true, }
  2256. ],
  2257. tax: [
  2258. { pattern: /^-?\d+\.?\d*$/, message: '请输入正确数据', trigger: 'blur', required: true, }
  2259. ],
  2260. },
  2261. HotelRules: {
  2262. sgr: [
  2263. { type: 'number', min: 0, message: '请输入整数', trigger: 'blur', required: true, },
  2264. ],
  2265. tbr: [
  2266. { type: 'number', min: 0, message: '请输入整数', trigger: 'blur', required: true, },
  2267. ],
  2268. suite: [
  2269. { type: 'number', min: 0, message: '请输入整数', trigger: 'blur', required: true, },
  2270. ],
  2271. jses: [
  2272. { type: 'number', min: 0, message: '请输入整数', trigger: 'blur', required: true, },
  2273. ],
  2274. },
  2275. CostTimeRules: {
  2276. costTypeendTime: [
  2277. { message: '请输入结束时间', trigger: 'blur', required: true, },
  2278. ],
  2279. costTypenumber: [
  2280. { type: 'number', min: 0, message: '请输入整数', trigger: 'blur', required: true, },
  2281. ],
  2282. costTypeStartTime: [
  2283. { message: '请输入开始时间', trigger: 'blur', required: true, },
  2284. ],
  2285. },
  2286. titleText: [],
  2287. vehicleLables: ['VF', 'T/G OF', 'T/G S', 'T/G TF', 'C/F OF'],
  2288. DJMeal: ['B', 'L', 'D'],
  2289. SubsidizedMeals: ['T/G M', 'C/F M'],
  2290. NightRepair: ['T/G A'],
  2291. AttractionsTickets: ['T/G EF', 'EF'],
  2292. MiscellaneousFees: ['B/R/F', 'TE', 'T/L F'],
  2293. ATip: ['T/G T', 'DRV T'],
  2294. visaCountryInfoArr: [],
  2295. equalWhere: [
  2296. { "Visa": "visa" },
  2297. { "HeSuan": "hs" },
  2298. { "Insurance": "bx" },
  2299. { "JJC": "jjc" },
  2300. { "GWC": "gwc" }
  2301. ],
  2302. ShowBaoPi: [
  2303. ],
  2304. dialogSelectObject: {
  2305. },
  2306. columnTotalData: [
  2307. {
  2308. "label": "DAY",
  2309. "tips": "",
  2310. "totalPrice": 0,
  2311. "singlePrice": 0,
  2312. "singleTips": "",
  2313. "width": 50,
  2314. },
  2315. {
  2316. "label": "DATE",
  2317. "tips": "",
  2318. "totalPrice": 0,
  2319. "singlePrice": 0,
  2320. "singleTips": "",
  2321. "width": 100,
  2322. },
  2323. {
  2324. "label": "ITIN",
  2325. "tips": "",
  2326. "totalPrice": 0,
  2327. "singlePrice": 0,
  2328. "singleTips": "",
  2329. "width": 100,
  2330. },
  2331. {
  2332. "label": "VA",
  2333. "tips": "",
  2334. "totalPrice": 0,
  2335. "singlePrice": 0,
  2336. "singleTips": "",
  2337. "width": 100,
  2338. },
  2339. {
  2340. "label": "VT",
  2341. "tips": "",
  2342. "totalPrice": 0,
  2343. "singlePrice": 0,
  2344. "singleTips": "",
  2345. "width": 100,
  2346. },
  2347. {
  2348. "label": "VF",
  2349. "tips": "车费用\n",
  2350. "totalPrice": 0,
  2351. "singlePrice": 0,
  2352. "singleTips": "车费用人均\n",
  2353. "width": 60,
  2354. },
  2355. {
  2356. "label": "VN",
  2357. "tips": "",
  2358. "totalPrice": 0,
  2359. "singlePrice": 0,
  2360. "singleTips": "",
  2361. "width": 60,
  2362. },
  2363. {
  2364. "label": "VRD",
  2365. "tips": "",
  2366. "totalPrice": 0,
  2367. "singlePrice": 0,
  2368. "singleTips": "",
  2369. "width": 60,
  2370. },
  2371. {
  2372. "label": "T/G S",
  2373. "tips": "导游工资\n",
  2374. "totalPrice": 0,
  2375. "singlePrice": 0,
  2376. "singleTips": "导游工资人均\n",
  2377. "width": 60,
  2378. },
  2379. {
  2380. "label": "T/G N",
  2381. "tips": "",
  2382. "totalPrice": 0,
  2383. "singlePrice": 0,
  2384. "singleTips": "",
  2385. "width": 60,
  2386. },
  2387. {
  2388. "label": "T/G WH",
  2389. "tips": "",
  2390. "totalPrice": 0,
  2391. "singlePrice": 0,
  2392. "singleTips": "",
  2393. "width": 60,
  2394. },
  2395. {
  2396. "label": "T/G OF",
  2397. "tips": "导游超时费用\n",
  2398. "totalPrice": 0,
  2399. "singlePrice": 0,
  2400. "singleTips": "导游超时费用人均\n",
  2401. "width": 60,
  2402. },
  2403. {
  2404. "label": "T/G M",
  2405. "tips": "导游餐补\n",
  2406. "totalPrice": 0,
  2407. "singlePrice": 0,
  2408. "singleTips": "导游餐补人均\n",
  2409. "width": 60,
  2410. },
  2411. {
  2412. "label": "T/G A",
  2413. "tips": "导游房补\n",
  2414. "totalPrice": 0,
  2415. "singlePrice": 0,
  2416. "singleTips": "导游房补人均\n",
  2417. "width": 60,
  2418. },
  2419. {
  2420. "label": "T/G TF",
  2421. "tips": "导游交通费\n",
  2422. "totalPrice": 0,
  2423. "singlePrice": 0,
  2424. "singleTips": "导游交通费人均\n",
  2425. "width": 60,
  2426. },
  2427. {
  2428. "label": "T/G EF",
  2429. "tips": "导游景点费\n",
  2430. "totalPrice": 0,
  2431. "singlePrice": 0,
  2432. "singleTips": "导游景点费人均\n",
  2433. "width": 60,
  2434. },
  2435. {
  2436. "label": "C/F M",
  2437. "tips": "司机餐补\n",
  2438. "totalPrice": 0,
  2439. "singlePrice": 0,
  2440. "singleTips": "司机餐补人均\n",
  2441. "width": 60,
  2442. },
  2443. {
  2444. "label": "C/F OF",
  2445. "tips": "司机超时费用\n",
  2446. "totalPrice": 0,
  2447. "singlePrice": 0,
  2448. "singleTips": "司机超时费用人均\n",
  2449. "width": 60,
  2450. },
  2451. {
  2452. "label": "B",
  2453. "tips": "早餐费用\n",
  2454. "totalPrice": 0,
  2455. "singlePrice": 0,
  2456. "singleTips": "早餐费用人均\n",
  2457. "width": 60,
  2458. },
  2459. {
  2460. "label": "L",
  2461. "tips": "午餐费用\n",
  2462. "totalPrice": 0,
  2463. "singlePrice": 0,
  2464. "singleTips": "午餐费用人均\n",
  2465. "width": 60,
  2466. },
  2467. {
  2468. "label": "D",
  2469. "tips": "晚餐费用\n",
  2470. "totalPrice": 0,
  2471. "singlePrice": 0,
  2472. "singleTips": "晚餐费用人均\n",
  2473. "width": 60,
  2474. },
  2475. {
  2476. "label": "TBR",
  2477. "tips": "双人间费用\n",
  2478. "totalPrice": 0,
  2479. "singlePrice": 0,
  2480. "singleTips": "双人间费用人均\n",
  2481. "width": 60,
  2482. },
  2483. {
  2484. "label": "SGR",
  2485. "tips": "单间费用\n",
  2486. "totalPrice": 0,
  2487. "singlePrice": 0,
  2488. "singleTips": "单间费用人均\n",
  2489. "width": 60,
  2490. },
  2491. {
  2492. "label": "JS/ES",
  2493. "tips": "小套房/豪华套房费用\n",
  2494. "totalPrice": 0,
  2495. "singlePrice": 0,
  2496. "singleTips": "小套房/豪华套房费用人均\n",
  2497. "width": 60,
  2498. },
  2499. {
  2500. "label": "SUITE",
  2501. "tips": "套房费用\n",
  2502. "totalPrice": 0,
  2503. "singlePrice": 0,
  2504. "singleTips": "套房费用人均\n",
  2505. "width": 60,
  2506. },
  2507. {
  2508. "label": "ACCO N",
  2509. "tips": "",
  2510. "totalPrice": 0,
  2511. "singlePrice": 0,
  2512. "singleTips": "",
  2513. "width": 100,
  2514. },
  2515. {
  2516. "label": "TV/N",
  2517. "tips": "",
  2518. "totalPrice": 0,
  2519. "singlePrice": 0,
  2520. "singleTips": "",
  2521. "width": 60,
  2522. },
  2523. {
  2524. "label": "IF/N",
  2525. "tips": "",
  2526. "totalPrice": 0,
  2527. "singlePrice": 0,
  2528. "singleTips": "",
  2529. "width": 60,
  2530. },
  2531. {
  2532. "label": "T/V",
  2533. "tips": "公务活动费用\n",
  2534. "totalPrice": 0,
  2535. "singlePrice": 0,
  2536. "singleTips": "公务活动费用人均\n",
  2537. "width": 60,
  2538. },
  2539. {
  2540. "label": "1/L",
  2541. "tips": "公务活动费用\n",
  2542. "totalPrice": 0,
  2543. "singlePrice": 0,
  2544. "singleTips": "公务活动费用人均\n",
  2545. "width": 60,
  2546. },
  2547. {
  2548. "label": "I/F",
  2549. "tips": "公务翻译费用\n",
  2550. "totalPrice": 0,
  2551. "singlePrice": 0,
  2552. "singleTips": "公务翻译费用人均\n",
  2553. "width": 60,
  2554. },
  2555. {
  2556. "label": "EF",
  2557. "tips": "景点门票\n",
  2558. "totalPrice": 0,
  2559. "singlePrice": 0,
  2560. "singleTips": "景点门票人均\n",
  2561. "width": 60,
  2562. },
  2563. {
  2564. "label": "B/R/F",
  2565. "tips": "饮料零食水果\n",
  2566. "totalPrice": 0,
  2567. "singlePrice": 0,
  2568. "singleTips": "饮料零食水果人均\n",
  2569. "width": 60,
  2570. },
  2571. {
  2572. "label": "TE",
  2573. "tips": "出行物资\n",
  2574. "totalPrice": 0,
  2575. "singlePrice": 0,
  2576. "singleTips": "出行物资人均\n",
  2577. "width": 60,
  2578. },
  2579. {
  2580. "label": "T/G T",
  2581. "tips": "导游小费\n",
  2582. "totalPrice": 0,
  2583. "singlePrice": 0,
  2584. "singleTips": "导游小费人均\n",
  2585. "width": 60,
  2586. },
  2587. {
  2588. "label": "DRV T",
  2589. "tips": "司机小费\n",
  2590. "totalPrice": 0,
  2591. "singlePrice": 0,
  2592. "singleTips": "司机小费人均\n",
  2593. "width": 60,
  2594. },
  2595. {
  2596. "label": "P/C",
  2597. "tips": "零用金\n",
  2598. "totalPrice": 0,
  2599. "singlePrice": 0,
  2600. "singleTips": "零用金人均\n",
  2601. "width": 60,
  2602. },
  2603. {
  2604. "label": "T/L F",
  2605. "tips": "领队费\n",
  2606. "totalPrice": 0,
  2607. "singlePrice": 0,
  2608. "singleTips": "领队费人均\n",
  2609. "width": 60,
  2610. },
  2611. {
  2612. "label": "E/C T",
  2613. "tips": "会务费\n",
  2614. "totalPrice": 0,
  2615. "singlePrice": 0,
  2616. "singleTips": "会务费人均\n",
  2617. "width": 60,
  2618. }
  2619. ],
  2620. autoSave: null,
  2621. };
  2622. },
  2623. watch: {
  2624. costTypeHotelNumbers: {
  2625. handler(val) {
  2626. for (var i = 0; i < val.length; i++) {
  2627. console.log(val[i]);
  2628. if (val[i].tbr == '') {
  2629. val[i].tbr = 0
  2630. }
  2631. if (val[i].sgr == '') {
  2632. val[i].sgr = 0
  2633. }
  2634. if (val[i].jses == '') {
  2635. val[i].jses = 0
  2636. }
  2637. if (val[i].suite == '') {
  2638. val[i].suite = 0
  2639. }
  2640. }
  2641. },
  2642. deep: true
  2643. },
  2644. 'tableData.length': {
  2645. handler(newValue, oldValue) {
  2646. if (newValue !== oldValue) {
  2647. if (this.tableData.length > 3) {
  2648. this.centerheight = 700;
  2649. } else {
  2650. this.centerheight = this.defaultheight + (this.tableData.length * 230) - ((this.tableData.length - 1) * 50);
  2651. }
  2652. ////console.log('高度' + this.centerheight);
  2653. }
  2654. }
  2655. }
  2656. },
  2657. methods: {
  2658. capslk(val, index) {
  2659. this.tableData[index].itin = val.toUpperCase()
  2660. },
  2661. getSummaries(param) {
  2662. var that = this;
  2663. //console.log(param)
  2664. const { columns, data } = param;
  2665. const sums = [];
  2666. const sums1 = [];
  2667. const texts = [];
  2668. var prices = [];
  2669. var BUpdate = []
  2670. var thisData = data;
  2671. var ATime = { start: that.addOneDay(that.AGroupCostParameter.costTypeStartTime, 0), end: that.addOneDay(that.AGroupCostParameter.costTypeendTime, 0) };
  2672. var BTime = { start: that.addOneDay(that.BGroupCostParameter.costTypeStartTime, 0), end: that.addOneDay(that.BGroupCostParameter.costTypeendTime, 0) };
  2673. ////console.log('ATime,BTime', ATime, BTime);
  2674. var data1 = [];
  2675. var data2 = [];
  2676. ////console.log('datas', data);
  2677. if (that.costTypevalue == 'B') {
  2678. for (var i = 0; i < thisData.length; i++) {
  2679. var forTime = thisData[i].date;
  2680. if (forTime == '' && i != 0) {
  2681. forTime = thisData[i - 1].date;
  2682. }
  2683. if (forTime) {
  2684. forTime = new Date(forTime).getDate();
  2685. }
  2686. if (forTime >= new Date(ATime.start).getDate() && forTime <= new Date(ATime.end).getDate()) {
  2687. data1.push(thisData[i])
  2688. }
  2689. if (forTime >= new Date(BTime.start).getDate() && forTime <= new Date(BTime.end).getDate()) {
  2690. data2.push(thisData[i])
  2691. }
  2692. }
  2693. thisData = data1;
  2694. if (isNaN(Number(that.AGroupCostParameter.costTypenumber)) || Number(that.AGroupCostParameter.costTypenumber) < 1) {
  2695. that.peopleNumber = 1;
  2696. } else {
  2697. that.peopleNumber = Number(that.AGroupCostParameter.costTypenumber);
  2698. }
  2699. }
  2700. //console.log('3data', thisData, data1, data2);
  2701. columns.forEach((column, index) => {
  2702. if (index === 0) {
  2703. prices[index] = "总计:";
  2704. that.lableSetPrice(column.label, '', '');
  2705. return;
  2706. }
  2707. if (column.label == 'DATE' || column.label == 'ITIN' || column.label == 'VT' || column.label == 'VN' || column.label == 'ACCO N' || column.label == 'VA' || column.label == 'VRD' || column.label == 'T/G N' || column.label == 'T/G WH' || column.label == '操作' || column.label == 'TV/N' || column.label == 'IF/N') {
  2708. prices[index] = "——";
  2709. that.lableSetPrice(column.label, '', '');
  2710. return;
  2711. }
  2712. const values = thisData.map(item => Number(item[column.property]));
  2713. if (!values.every(value => isNaN(value))) {
  2714. sums[index] = values.reduce((prev, curr) => {
  2715. const value = Number(curr);
  2716. if (!isNaN(value)) {
  2717. return prev + curr;
  2718. } else {
  2719. return prev;
  2720. }
  2721. }, 0);
  2722. if (column.label == 'B' || column.label == 'L' || column.label == 'D' || column.label == 'EF' || column.label == 'TE' || column.label == 'T/G T' || column.label == 'P/C' || column.label == 'DRV T' || column.label == 'DRV T') {
  2723. that.lableSetPrice(column.label, (sums[index] * that.peopleNumber).toFixed(2), (sums[index]).toFixed(2));
  2724. prices[index] = '共' + (sums[index] * that.peopleNumber).toFixed(2) + ' ' + this.AGroupCostParameter.currency + '\r\n人均' + (sums[index]).toFixed(2) + " " + this.AGroupCostParameter.currency //sums[index] + '(' + this.AGroupCostParameter.currency + ')' + ' 人均(' + sums[index] + ')';
  2725. }
  2726. else if (column.label == 'SGR' || column.label == 'JS/ES' || column.label == 'SUITE' || column.label == 'TBR') {
  2727. if (column.label == 'TBR') {
  2728. that.lableSetPrice(column.label, (sums[index]).toFixed(2), (sums[index] / 2).toFixed(2));
  2729. prices[index] = '共' + (sums[index]).toFixed(2) + ' ' + this.AGroupCostParameter.currency + '\r\n人均' + (sums[index] / 2).toFixed(2) + " " + this.AGroupCostParameter.currency
  2730. } else {
  2731. that.lableSetPrice(column.label, (sums[index]).toFixed(2), (sums[index]).toFixed(2));
  2732. prices[index] = '共' + (sums[index]).toFixed(2) + ' ' + this.AGroupCostParameter.currency + '\r\n人均' + (sums[index]).toFixed(2) + " " + this.AGroupCostParameter.currency
  2733. }
  2734. }
  2735. else {
  2736. that.lableSetPrice(column.label, sums[index].toFixed(2), (sums[index] / that.peopleNumber).toFixed(2));
  2737. prices[index] = '共' + sums[index].toFixed(2) + ' ' + this.AGroupCostParameter.currency + '\r\n人均' + (sums[index] / that.peopleNumber).toFixed(2) + " " + this.AGroupCostParameter.currency //sums[index] + '(' + this.AGroupCostParameter.currency + ')' + ' 人均(' + sums[index] + ')';
  2738. sums[index] = parseFloat((sums[index] / that.peopleNumber).toFixed(2));
  2739. }
  2740. } else {
  2741. prices[index] = 'N/A';
  2742. }
  2743. if (that.costTypevalue == 'B') {
  2744. const values1 = data2.map(item => Number(item[column.property]));
  2745. if (!values1.every(value => isNaN(value))) {
  2746. sums1[index] = values1.reduce((prev, curr) => {
  2747. const value = Number(curr);
  2748. if (!isNaN(value)) {
  2749. return prev + curr;
  2750. } else {
  2751. return prev;
  2752. }
  2753. }, 0);
  2754. if (column.label == 'B' || column.label == 'L' || column.label == 'D' || column.label == 'EF' || column.label == 'TE' || column.label == 'T/G T' || column.label == 'P/C' || column.label == 'DRV T' || column.label == 'DRV T') {
  2755. BUpdate.push({ label: column.label, total: (sums1[index] * that.BGroupCostParameter.costTypenumber).toFixed(2), single: (sums1[index]).toFixed(2) });
  2756. prices[index] = 'A段费用' + prices[index] + '\r\nB段费用共' + (sums1[index] * that.BGroupCostParameter.costTypenumber).toFixed(2) + " " + this.AGroupCostParameter.currency + '\r\n人均' + (sums1[index]).toFixed(2) + " " + this.AGroupCostParameter.currency //sums[index] + '(' + this.AGroupCostParameter.currency + ')' + ' 人均(' + sums[index] + ')';
  2757. }
  2758. else if (column.label == 'SGR' || column.label == 'JS/ES' || column.label == 'SUITE' || column.label == 'TBR') {
  2759. BUpdate.push({ label: column.label, total: (sums1[index]).toFixed(2), single: (sums1[index]).toFixed(2) });
  2760. prices[index] = 'A段费用' + prices[index] + '\r\nB段费用共' + (sums1[index]).toFixed(2) + " " + this.AGroupCostParameter.currency + '\r\n人均' + (sums1[index]).toFixed(2) + " " + this.AGroupCostParameter.currency //sums[index] + '(' + this.AGroupCostParameter.currency + ')' + ' 人均(' + sums[index] + ')';
  2761. }
  2762. else {
  2763. BUpdate.push({ label: column.label, total: sums1[index].toFixed(2), single: (sums1[index] / that.BGroupCostParameter.costTypenumber).toFixed(2) });
  2764. prices[index] = 'A段费用' + prices[index] + '\r\nB段费用共' + sums1[index].toFixed(2) + " " + this.AGroupCostParameter.currency + '\r\n人均' + (sums1[index] / that.BGroupCostParameter.costTypenumber).toFixed(2) + " " + this.AGroupCostParameter.currency //sums[index] + '(' + this.AGroupCostParameter.currency + ')' + ' 人均(' + sums[index] + ')';
  2765. sums1[index] = ((sums1[index] / that.BGroupCostParameter.costTypenumber).toFixed(2));
  2766. }
  2767. } else {
  2768. prices[index] = 'A段费用' + prices[index] + ' B段费用' + 'N/A';
  2769. }
  2770. }
  2771. var fliterList = that.sumTopPrice.filter(function (x) {
  2772. return x.name == column.property;
  2773. })
  2774. if (fliterList.length == 0) {
  2775. that.sumTopPrice.push({ name: column.property, label: column.label, Aprice: sums[index], Bprice: sums1[index] == undefined ? 0 : sums1[index] });
  2776. } else {
  2777. fliterList[0].Aprice = sums[index];
  2778. fliterList[0].Bprice = sums1[index] == undefined ? 0 : sums1[index];
  2779. }
  2780. var TextfliterList = texts.filter(function (x) {
  2781. return x.label == column.label;
  2782. })
  2783. var text = prices[index];
  2784. if (TextfliterList.length == 0) {
  2785. texts.push({ label: column.label, text: text });
  2786. } else {
  2787. TextfliterList.text = text;
  2788. }
  2789. });
  2790. this.titleText = texts;
  2791. ////console.log(that.sumTopPrice, 'sumTopPrice---------------');
  2792. this.CalculatedPrice();
  2793. //////console.log(that.sumTopPrice, '------------');
  2794. setTimeout(() => {
  2795. this.setLastTitle(prices);
  2796. if (that.costTypevalue == 'B') {
  2797. //遍历bupdate
  2798. BUpdate.forEach(function (item) {
  2799. that.BlableSetPrice(item.label, item.total, item.single);
  2800. })
  2801. }
  2802. }, 1000);
  2803. return prices;
  2804. },
  2805. handleEdit(index, row, buttonIndex) {
  2806. //////console.log(index, row, buttonIndex);
  2807. this.rowIndex = index; // 行的索引
  2808. var api = '';
  2809. switch (buttonIndex) {
  2810. case 1:
  2811. api = 'GetCarGuides';
  2812. this.DialogTitle = '选择车导数据';
  2813. break;
  2814. case 2:
  2815. api = 'GetGuidesInfo';
  2816. this.DialogTitle = '导游信息';
  2817. break;
  2818. case 3:
  2819. api = 'GetCarInfo';
  2820. this.DialogTitle = '选择车数据';
  2821. break;
  2822. case 4:
  2823. api = 'GetScenicSpotInfo';
  2824. this.DialogTitle = '景点信息';
  2825. break;
  2826. }
  2827. if (api == '') {
  2828. this.$message.error('程序异常!');
  2829. return;
  2830. }
  2831. var dataC = this.dialogColumn.filter(x => x.index == buttonIndex);
  2832. if (dataC.length == 0) {
  2833. this.SeldialogColumn = [];
  2834. } else {
  2835. this.SeldialogColumn = dataC[0].data;
  2836. }
  2837. var that = this;
  2838. this.$axios.post('/api/Groups/' + api, {}, {
  2839. headers: {
  2840. 'Authorization': that.token,
  2841. }
  2842. }).then(resp => {
  2843. ////console.log(resp.data.data, '------------------------------------');
  2844. that.outerVisible = true;
  2845. if (resp.data.code == 200) {
  2846. that.dialogTableData = resp.data.data;
  2847. } else {
  2848. that.$message.error('获取数据失败!' + resp.data.msg);
  2849. }
  2850. })
  2851. },
  2852. handleDelete(index, row, rows) {
  2853. ////console.log(index, row, rows);
  2854. this.$confirm('此操作将删除该条信息, 是否继续?', '提示', {
  2855. confirmButtonText: '确定',
  2856. cancelButtonText: '取消',
  2857. type: 'warning'
  2858. }).then(() => {
  2859. this.$message({
  2860. message: '已删除',
  2861. type: 'success',
  2862. offset: 50
  2863. });
  2864. rows.splice(index, 1);
  2865. }).catch(() => {
  2866. this.$message({
  2867. type: 'info',
  2868. message: '已取消删除'
  2869. });
  2870. });
  2871. },
  2872. //减
  2873. increase(val) {
  2874. console.log(this.tableData[val]);
  2875. if (this.tableData[val].day == "-") {
  2876. this.tableData[val].day = 0
  2877. }
  2878. if (this.tableData[val].day <= 1) {
  2879. return
  2880. }
  2881. this.tableData[val].day--
  2882. this.NumberSetTime(this.tableData[val].day, val)
  2883. },
  2884. //加
  2885. decrease(val) {
  2886. if (this.tableData[val].day == "-") {
  2887. this.tableData[val].day = 0
  2888. }
  2889. this.tableData[val].day++
  2890. this.NumberSetTime(this.tableData[val].day, val)
  2891. },
  2892. addStrip() {
  2893. var souerLength = this.tableData.length - 1;
  2894. var dataStr = "";
  2895. var day = '-';
  2896. if (souerLength >= 0) {
  2897. dataStr = this.tableData[souerLength].date;
  2898. dataStr = this.addOneDay(dataStr, 1);
  2899. var getDay = this.tableData[souerLength].day;
  2900. if (getDay) {
  2901. day = parseInt(getDay) + 1;
  2902. } else {
  2903. try {
  2904. day = parseInt(this.tableData[souerLength - 1].day) + 1;
  2905. dataStr = this.addOneDay(this.tableData[souerLength - 1].date, 1)
  2906. } catch (e) {
  2907. dataStr = "";
  2908. day = '-';
  2909. }
  2910. }
  2911. }
  2912. this.tableData.push(
  2913. {
  2914. "diid": this.diid,
  2915. "day": day,
  2916. "date": dataStr,
  2917. "itin": "",
  2918. "carType": "",
  2919. "carCost": "",
  2920. "carNumber": "",
  2921. "carTiming": "",
  2922. "tgs": "",
  2923. "tgwh": "",
  2924. "tgn": "",
  2925. "tgof": "",
  2926. "tgm": "",
  2927. "tga": "",
  2928. "tgtf": "",
  2929. "tgef": "",
  2930. "cfs": "",
  2931. "cfm": "",
  2932. "cfof": "",
  2933. "b": "",
  2934. "l": "",
  2935. "d": "",
  2936. "tbr": "",
  2937. "sgr": "",
  2938. "jS_ES": "",
  2939. "suite": "",
  2940. "accon": "",
  2941. "tv": "",
  2942. "iL": "",
  2943. "if": "",
  2944. "ef": "",
  2945. "b_R_F": "",
  2946. "te": "",
  2947. "tgTips": "",
  2948. "drvTips": "",
  2949. "pc": "",
  2950. "tlf": "",
  2951. "ect": "",
  2952. "id": 1,
  2953. "gwCount": "",
  2954. "fyCount": ""
  2955. }
  2956. )
  2957. },
  2958. loadData(id) {
  2959. this.costloading = true;
  2960. this.tableData = [];
  2961. var that = this;
  2962. this.$axios.post('/api/Groups/GroupCostInit', {
  2963. Diid: id
  2964. }, {
  2965. headers: {
  2966. 'Authorization': that.token,
  2967. }
  2968. }).then(resp => {
  2969. ////console.log(resp.data.data, '------------------------------------');
  2970. if (resp.data.code == 200) {
  2971. that.options = resp.data.data.groupList;
  2972. that.grouptitleinfo = resp.data.data.groupInfo.data;
  2973. that.diid = that.grouptitleinfo.id;
  2974. localStorage.setItem('costLoadData', JSON.stringify({
  2975. diid: that.diid
  2976. }))
  2977. that.QueryRate();
  2978. for (var i = 0; i < that.CheckBoxListSelect.length; i++) {
  2979. that.CheckBoxListSelect[i].diid = that.diid;
  2980. }
  2981. if (resp.data.data.groupChecks.length > 0) {
  2982. resp.data.data.groupChecks.forEach(item => {
  2983. for (var i = 0; i < that.CheckBoxListSelect.length; i++) {
  2984. if (item.cbType == that.CheckBoxListSelect[i].cbType) {
  2985. that.CheckBoxListSelect[i].cbValues = item.cbValues.split(',');
  2986. ////console.log(item.cbValues.split(','));
  2987. break;
  2988. }
  2989. if (that.CheckBoxListSelect[i].diid == 0) {
  2990. that.CheckBoxListSelect[i].diid = that.diid;
  2991. }
  2992. }
  2993. })
  2994. } else {
  2995. that.CheckBoxListSelect = [
  2996. {
  2997. "diid": that.diid,
  2998. "cbType": "Top",
  2999. "cbValues": ['DAY', 'DATE', 'ITIN', 'VA', 'VT', 'VF', 'VRD', 'T/G S', 'T/G WH', 'C/F M', 'L', 'D', 'SGR', 'SUITE', 'ACCO N', 'T/V', 'EF', 'B/R/F', 'TE', 'DRV T', 'P/C'] //"string"
  3000. },
  3001. {
  3002. "diid": that.diid,
  3003. "cbType": "Left",
  3004. "cbValues": ['签证', '机票', '保险', '火车票', '地接', '公务', '零用金'] //"string"
  3005. },
  3006. {
  3007. "diid": that.diid,
  3008. "cbType": "Right",
  3009. "cbValues": ['公务舱 SGR', '经济舱 SGR', '团组预算明细'] //"string"
  3010. }
  3011. ]
  3012. }
  3013. that.grouptitleinfo.visitStartDate = that.grouptitleinfo.visitStartDate.split(' ')[0];
  3014. that.grouptitleinfo.visitEndDate = that.grouptitleinfo.visitEndDate.split(' ')[0];
  3015. that.peopleNumber = that.grouptitleinfo.visitPNumber > 0 ? that.grouptitleinfo.visitPNumber : 1;
  3016. if (resp.data.data.groupCost.length > 0) {
  3017. that.tableData = resp.data.data.groupCost;
  3018. console.log(that.tableData);
  3019. for (var i = 0; i < that.tableData.length; i++) {
  3020. for (var prop in that.tableData[i]) {
  3021. console.log(that.tableData[i][prop]);
  3022. if (that.tableData[i][prop] == 0) {
  3023. that.tableData[i][prop] = ''
  3024. }
  3025. }
  3026. }
  3027. } else {
  3028. that.tableData = [
  3029. {
  3030. "diid": that.diid,
  3031. "day": "-",
  3032. "date": "",
  3033. "itin": "",
  3034. "carType": "",
  3035. "carCost": "",
  3036. "carNumber": "",
  3037. "carTiming": "",
  3038. "tgs": "",
  3039. "tgwh": "",
  3040. "tgn": "",
  3041. "tgof": "",
  3042. "tgm": "",
  3043. "tga": "",
  3044. "tgtf": "",
  3045. "tgef": "",
  3046. "cfs": "",
  3047. "cfm": "",
  3048. "cfof": "",
  3049. "b": "",
  3050. "l": "",
  3051. "d": "",
  3052. "tbr": "",
  3053. "sgr": "",
  3054. "jS_ES": "",
  3055. "suite": "",
  3056. "accon": "",
  3057. "tv": "",
  3058. "iL": "",
  3059. "if": "",
  3060. "ef": "",
  3061. "b_R_F": "",
  3062. "te": "",
  3063. "tgTips": "",
  3064. "drvTips": "",
  3065. "pc": "",
  3066. "tlf": "",
  3067. "ect": "",
  3068. "id": 1,
  3069. "gwCount": "",
  3070. "fyCount": ""
  3071. }
  3072. ]
  3073. }
  3074. if (resp.data.data.groupCostParameter.length > 0) {
  3075. var acostvalue = resp.data.data.groupCostParameter.filter(x => x.costType == 'A')[0];
  3076. if (acostvalue != undefined) {
  3077. that.AGroupCostParameter = acostvalue;
  3078. var result = Number(that.AGroupCostParameter.currency);
  3079. if (isNaN(result)) {
  3080. } else {
  3081. that.AGroupCostParameter.currency = result;
  3082. }
  3083. } else {
  3084. that.AGroupCostParameter = {
  3085. "id": 0,
  3086. "diId": 0,
  3087. "currency": "CNY",
  3088. "rate": 0,
  3089. "tax": 0,
  3090. "ffys": 0,
  3091. "hotelXS": 0,
  3092. "jjccb": 0,
  3093. "jjcxs": 0,
  3094. "jjcrs": 0,
  3095. "gwccb": 0,
  3096. "gwcxs": 0,
  3097. "gwcrs": 0,
  3098. "hcpcb": 0,
  3099. "hcpxs": 0,
  3100. "hcprs": 0,
  3101. "cpcb": 0,
  3102. "cpxs": 0,
  3103. "cprs": 0,
  3104. "bxcb": 0,
  3105. "bxxs": 25,
  3106. "bxrs": 0,
  3107. "hscb": 0,
  3108. "hsxs": 0,
  3109. "hsrs": 0,
  3110. "visaCB": 0,
  3111. "visaXS": 0,
  3112. "visaRS": 0,
  3113. "gwcb": 0,
  3114. "gwxs": 0,
  3115. "gwrs": 0,
  3116. "djcb": 0,
  3117. "djrs": 0,
  3118. "djxs": 0,
  3119. "sgrcb": 0,
  3120. "sgrNumber": 0,
  3121. "sgrxs": 0,
  3122. "tbrcb": 0,
  3123. "tbrNumber": 0,
  3124. "tbrxs": 0,
  3125. "jsescb": 0,
  3126. "jsesNumber": 0,
  3127. "jsesxs": 0,
  3128. "suitecb": 0,
  3129. "suiteNumber": 0,
  3130. "suitexs": 0,
  3131. "lyjcb": 0,
  3132. "lyjxs": 0,
  3133. "lyjrs": 0,
  3134. "isShare": 0,
  3135. "costType": "A",
  3136. "costTypeStartTime": "",
  3137. "costTypeendTime": "",
  3138. "costTypenumber": 0
  3139. };
  3140. }
  3141. var bcostvalue = resp.data.data.groupCostParameter.filter(x => x.costType == 'B')[0];
  3142. if (bcostvalue != undefined) {
  3143. that.BGroupCostParameter = bcostvalue;
  3144. } else {
  3145. that.BGroupCostParameter = {
  3146. "id": 0,
  3147. "diId": 0,
  3148. "currency": "",
  3149. "rate": 0,
  3150. "tax": 0,
  3151. "ffys": 0,
  3152. "hotelXS": 0,
  3153. "jjccb": 0,
  3154. "jjcxs": 0,
  3155. "jjcrs": 0,
  3156. "gwccb": 0,
  3157. "gwcxs": 0,
  3158. "gwcrs": 0,
  3159. "hcpcb": 0,
  3160. "hcpxs": 0,
  3161. "hcprs": 0,
  3162. "cpcb": 0,
  3163. "cpxs": 0,
  3164. "cprs": 0,
  3165. "bxcb": 0,
  3166. "bxxs": 25,
  3167. "bxrs": 0,
  3168. "hscb": 0,
  3169. "hsxs": 0,
  3170. "hsrs": 0,
  3171. "visaCB": 0,
  3172. "visaXS": 0,
  3173. "visaRS": 0,
  3174. "gwcb": 0,
  3175. "gwxs": 0,
  3176. "gwrs": 0,
  3177. "djcb": 0,
  3178. "djxs": 0,
  3179. "djrs": 0,
  3180. "sgrcb": 0,
  3181. "sgrNumber": 0,
  3182. "sgrxs": 0,
  3183. "tbrcb": 0,
  3184. "tbrNumber": 0,
  3185. "tbrxs": 0,
  3186. "jsescb": 0,
  3187. "jsesNumber": 0,
  3188. "jsesxs": 0,
  3189. "suitecb": 0,
  3190. "suiteNumber": 0,
  3191. "suitexs": 0,
  3192. "lyjcb": 0,
  3193. "lyjxs": 0,
  3194. "lyjrs": 0,
  3195. "isShare": 0,
  3196. "costType": "B",
  3197. "costTypeStartTime": "",
  3198. "costTypeendTime": "",
  3199. "costTypenumber": 0
  3200. };
  3201. }
  3202. if (resp.data.data.groupCostParameter.length > 1) {
  3203. that.costTypevalue = "B";
  3204. } else {
  3205. that.costTypevalue = "A";
  3206. }
  3207. if (that.AGroupCostParameter.costTypeStartTime) {
  3208. that.AGroupCostParameter.costTypeStartTime = new Date(that.AGroupCostParameter.costTypeStartTime);
  3209. }
  3210. if (that.AGroupCostParameter.costTypeendTime) {
  3211. that.AGroupCostParameter.costTypeendTime = new Date(that.AGroupCostParameter.costTypeendTime);
  3212. }
  3213. if (that.BGroupCostParameter.costTypeStartTime) {
  3214. that.BGroupCostParameter.costTypeStartTime = new Date(that.BGroupCostParameter.costTypeStartTime);
  3215. }
  3216. if (that.BGroupCostParameter.costTypeendTime) {
  3217. that.BGroupCostParameter.costTypeendTime = new Date(that.BGroupCostParameter.costTypeendTime);
  3218. }
  3219. } else {
  3220. that.AGroupCostParameter = {
  3221. "id": 0,
  3222. "diId": 0,
  3223. "currency": "CNY",
  3224. "rate": 0,
  3225. "tax": 0,
  3226. "ffys": 0,
  3227. "hotelXS": 0,
  3228. "jjccb": 0,
  3229. "jjcxs": 0,
  3230. "jjcrs": 0,
  3231. "gwccb": 0,
  3232. "gwcxs": 0,
  3233. "gwcrs": 0,
  3234. "hcpcb": 0,
  3235. "hcpxs": 0,
  3236. "hcprs": 0,
  3237. "cpcb": 0,
  3238. "cpxs": 0,
  3239. "cprs": 0,
  3240. "bxcb": 0,
  3241. "bxxs": 25,
  3242. "bxrs": 0,
  3243. "hscb": 0,
  3244. "hsxs": 0,
  3245. "hsrs": 0,
  3246. "visaCB": 0,
  3247. "visaXS": 0,
  3248. "visaRS": 0,
  3249. "gwcb": 0,
  3250. "gwxs": 0,
  3251. "gwrs": 0,
  3252. "djcb": 0,
  3253. "djrs": 0,
  3254. "djxs": 0,
  3255. "sgrcb": 0,
  3256. "sgrNumber": 0,
  3257. "sgrxs": 0,
  3258. "tbrcb": 0,
  3259. "tbrNumber": 0,
  3260. "tbrxs": 0,
  3261. "jsescb": 0,
  3262. "jsesNumber": 0,
  3263. "jsesxs": 0,
  3264. "suitecb": 0,
  3265. "suiteNumber": 0,
  3266. "suitexs": 0,
  3267. "lyjcb": 0,
  3268. "lyjxs": 0,
  3269. "lyjrs": 0,
  3270. "isShare": 0,
  3271. "costType": "A",
  3272. "costTypeStartTime": "",
  3273. "costTypeendTime": "",
  3274. "costTypenumber": 0
  3275. };
  3276. that.BGroupCostParameter = {
  3277. "id": 0,
  3278. "diId": 0,
  3279. "currency": "",
  3280. "rate": 0,
  3281. "tax": 0,
  3282. "ffys": 0,
  3283. "hotelXS": 0,
  3284. "jjccb": 0,
  3285. "jjcxs": 0,
  3286. "jjcrs": 0,
  3287. "gwccb": 0,
  3288. "gwcxs": 0,
  3289. "gwcrs": 0,
  3290. "hcpcb": 0,
  3291. "hcpxs": 0,
  3292. "hcprs": 0,
  3293. "cpcb": 0,
  3294. "cpxs": 0,
  3295. "cprs": 0,
  3296. "bxcb": 0,
  3297. "bxxs": 25,
  3298. "bxrs": 0,
  3299. "hscb": 0,
  3300. "hsxs": 0,
  3301. "hsrs": 0,
  3302. "visaCB": 0,
  3303. "visaXS": 0,
  3304. "visaRS": 0,
  3305. "gwcb": 0,
  3306. "gwxs": 0,
  3307. "gwrs": 0,
  3308. "djcb": 0,
  3309. "djxs": 0,
  3310. "djrs": 0,
  3311. "sgrcb": 0,
  3312. "sgrNumber": 0,
  3313. "sgrxs": 0,
  3314. "tbrcb": 0,
  3315. "tbrNumber": 0,
  3316. "tbrxs": 0,
  3317. "jsescb": 0,
  3318. "jsesNumber": 0,
  3319. "jsesxs": 0,
  3320. "suitecb": 0,
  3321. "suiteNumber": 0,
  3322. "suitexs": 0,
  3323. "lyjcb": 0,
  3324. "lyjxs": 0,
  3325. "lyjrs": 0,
  3326. "isShare": 0,
  3327. "costType": "B",
  3328. "costTypeStartTime": "",
  3329. "costTypeendTime": "",
  3330. "costTypenumber": 0
  3331. };
  3332. that.AGroupCostParameter.diId = that.diid;
  3333. that.BGroupCostParameter.diId = that.diid;
  3334. that.costTypevalue = 'A';
  3335. }
  3336. let hotelNumber = resp.data.data.hotelNumber;
  3337. if (hotelNumber.length > 0) {
  3338. for (var i = 0; i < hotelNumber.length; i++) {
  3339. //替换costTypeHotelNumbers ;
  3340. Array.forEach(that.costTypeHotelNumbers, (item, index) => {
  3341. if (hotelNumber[i]['type'] == item.type) {
  3342. that.$set(that.costTypeHotelNumbers, index, hotelNumber[i]);
  3343. }
  3344. })
  3345. }
  3346. } else {
  3347. that.costTypeHotelNumbers = [{
  3348. "sgr": 0,
  3349. "tbr": 0,
  3350. "jses": 0,
  3351. "suite": 0,
  3352. "type": "Default",
  3353. "diid": 0,
  3354. id: 0,
  3355. },
  3356. {
  3357. "sgr": 0,
  3358. "tbr": 0,
  3359. "jses": 0,
  3360. "suite": 0,
  3361. "type": "A",
  3362. "diid": 0,
  3363. id: 0,
  3364. },
  3365. {
  3366. "sgr": 0,
  3367. "tbr": 0,
  3368. "jses": 0,
  3369. "suite": 0,
  3370. "type": "B",
  3371. "diid": 0,
  3372. id: 0,
  3373. }]
  3374. }
  3375. if (resp.data.data.visaCountryInfoArr.length > 0) {
  3376. that.visaCountryInfoArr = resp.data.data.visaCountryInfoArr;
  3377. } else {
  3378. that.visaCountryInfoArr = [];
  3379. }
  3380. if (resp.data.data.baoPi.length > 0) {
  3381. //that.sheetDatal
  3382. const baoPi = resp.data.data.baoPi;
  3383. for (var i = 0; i < baoPi.length; i++) {
  3384. for (var j = 0; j < that.equalWhere.length; j++) {
  3385. let item = that.equalWhere[j];
  3386. for (var p in item) {
  3387. if (baoPi[i].type == p) {
  3388. ////console.log("key:" + p + "已经匹配 value:" + item[p]);
  3389. for (var m = 0; m < that.sheetDatal.length; m++) {
  3390. if (that.sheetDatal[m].EnLabel == item[p]) {
  3391. ////console.log(" 1 key:" + that.sheetDatal[m].EnLabel + "已经匹配 1 value:" + baoPi[i].price);
  3392. that.sheetDatal[m].childList[0].tips = baoPi[i].price;
  3393. }
  3394. }
  3395. }
  3396. }
  3397. }
  3398. }
  3399. var Meals = baoPi.filter(x => {
  3400. return x.type == "Meals"
  3401. })
  3402. var Hotel = baoPi.filter(x => {
  3403. return x.type == "Hotel"
  3404. })
  3405. var GongZa = baoPi.filter(x => {
  3406. return x.type == "GongZa"
  3407. })
  3408. var SumAirJJC = baoPi.filter(x => {
  3409. return x.type == "SumAirJJC"
  3410. })
  3411. var SumAirGWC = baoPi.filter(x => {
  3412. return x.type == "SumAirGWC"
  3413. })
  3414. if (SumAirJJC.length > 0) {
  3415. for (var i = 0; i < that.cabinDatal.length; i++) {
  3416. if (that.cabinDatal[i].label.indexOf('经济舱') != -1) {
  3417. that.cabinDatal[i].childList[3].tips = SumAirJJC[0].price
  3418. }
  3419. }
  3420. }
  3421. if (SumAirGWC.length > 0) {
  3422. for (var i = 0; i < that.cabinDatal.length; i++) {
  3423. if (that.cabinDatal[i].label.indexOf('公务舱') != -1) {
  3424. that.cabinDatal[i].childList[3].tips = SumAirGWC[0].price
  3425. }
  3426. }
  3427. }
  3428. if (Meals.length > 0) {
  3429. that.ShowBaoPi.push(Meals[0]);
  3430. }
  3431. if (Hotel.length > 0) {
  3432. that.ShowBaoPi.push(Hotel[0]);
  3433. }
  3434. if (GongZa.length > 0) {
  3435. that.ShowBaoPi.push(GongZa[0]);
  3436. }
  3437. } else {
  3438. for (var m = 0; m < that.sheetDatal.length; m++) {
  3439. if (that.sheetDatal[m].childList[0].tips) {
  3440. that.sheetDatal[m].childList[0].tips = "暂无!";
  3441. }
  3442. }
  3443. for (var i = 0; i < that.cabinDatal.length; i++) {
  3444. if (that.cabinDatal[i].label.indexOf('经济舱') != -1) {
  3445. that.cabinDatal[i].childList[3].tips = '暂无!'
  3446. }
  3447. if (that.cabinDatal[i].label.indexOf('公务舱') != -1) {
  3448. that.cabinDatal[i].childList[3].tips = '暂无!'
  3449. }
  3450. }
  3451. that.ShowBaoPi = [];
  3452. }
  3453. that.GivePeopleNumber();
  3454. }
  3455. that.inSelectChangeCheck();
  3456. that.costloading = false;
  3457. }).catch(err => {
  3458. that.costloading = false;
  3459. this.$message({
  3460. message: '网络异常!',
  3461. type: 'error'
  3462. });
  3463. })
  3464. },
  3465. groupChange() {
  3466. this.clearFormVerify();
  3467. this.loadData(this.diid);
  3468. },
  3469. save() {
  3470. return new Promise(async (resolve, reject) => {
  3471. if (this.costTypevalue == 'A') {
  3472. var sgrfilter = this.costTypeHotelNumbers.filter(x => {
  3473. return x.type == 'Default'
  3474. })[0];
  3475. var pNumber = 0;
  3476. //遍历 sgrfilter对象
  3477. for (var key in sgrfilter) {
  3478. var parNumber = Number(sgrfilter[key]);
  3479. if (isNaN(parNumber)) {
  3480. parNumber = 0;
  3481. } else {
  3482. if (key == 'tbr') {
  3483. pNumber += parNumber * 2;
  3484. }
  3485. if (key == 'sgr') {
  3486. pNumber += parNumber;
  3487. }
  3488. if (key == 'jses') {
  3489. pNumber += parNumber;
  3490. }
  3491. if (key == 'suite') {
  3492. pNumber += parNumber;
  3493. }
  3494. }
  3495. }
  3496. console.log(pNumber, 'pNumber-------------');
  3497. if (this.grouptitleinfo.visitPNumber != pNumber) {
  3498. this.$message.error('团组人数与房间人数不一致!')
  3499. return resolve(false);
  3500. }
  3501. }
  3502. var that = this;
  3503. var Data = { diid: this.diid, userid: this.userId };
  3504. var isTrue = await this.formVerify();
  3505. if (isTrue) {
  3506. Data.checkBoxs = this.CheckBoxListSelect.map(x => {
  3507. return {
  3508. diid: x.diid,
  3509. cbType: x.cbType,
  3510. cbValues: x.cbValues.join(',')
  3511. };
  3512. });
  3513. Data.groupCosts = this.tableData;
  3514. Data.costTypeHotelNumbers = this.costTypeHotelNumbers.map(x => {
  3515. return {
  3516. id: x.id,
  3517. sgr: x.sgr,
  3518. tbr: x.tbr,
  3519. jses: x.jses,
  3520. suite: x.suite,
  3521. type: x.type,
  3522. diid: that.diid
  3523. };
  3524. });
  3525. this.AGroupCostParameter.currency = this.AGroupCostParameter.currency.toString();
  3526. this.AGroupCostParameter.diId = this.diid;
  3527. this.BGroupCostParameter.diId = this.diid;
  3528. var Aparam = Object.assign({}, this.AGroupCostParameter);
  3529. var Bparam = Object.assign({}, this.BGroupCostParameter);
  3530. if (that.AGroupCostParameter.costTypeStartTime) {
  3531. Aparam.costTypeStartTime = this.addOneDay(that.AGroupCostParameter.costTypeStartTime, 0);
  3532. }
  3533. if (that.AGroupCostParameter.costTypeendTime) {
  3534. Aparam.costTypeendTime = this.addOneDay(that.AGroupCostParameter.costTypeendTime, 0);
  3535. }
  3536. if (that.BGroupCostParameter.costTypeStartTime) {
  3537. Bparam.costTypeStartTime = this.addOneDay(that.BGroupCostParameter.costTypeStartTime, 0);
  3538. }
  3539. if (that.BGroupCostParameter.costTypeendTime) {
  3540. Bparam.costTypeendTime = this.addOneDay(that.BGroupCostParameter.costTypeendTime, 0);
  3541. }
  3542. if (this.costTypevalue == "A") {
  3543. Data.groupCostParameters = [Aparam];
  3544. } else {
  3545. Data.groupCostParameters = [Aparam, Bparam];
  3546. }
  3547. var ResultCostArr = this.Dataformat();
  3548. Data.groupCosts = ResultCostArr;
  3549. ////console.log(Data, "save-------Data");
  3550. var that = this;
  3551. this.$axios.post('/api/Groups/SaveGroupCost', Data, {
  3552. headers: {
  3553. 'Authorization': that.token,
  3554. }
  3555. }).then(resp => {
  3556. ////console.log(resp.data.data, '------------------------------------');
  3557. if (resp.data.code == 200) {
  3558. this.$message({
  3559. message: '保存成功!',
  3560. type: 'success'
  3561. });
  3562. resolve(true);
  3563. } else {
  3564. this.$message.error('保存失败!' + resp.data.msg);
  3565. resolve(false);
  3566. }
  3567. var result = Number(that.AGroupCostParameter.currency);
  3568. if (isNaN(result)) {
  3569. } else {
  3570. that.AGroupCostParameter.currency = result;
  3571. }
  3572. })
  3573. } else {
  3574. this.$message.error('请输入完整!');
  3575. }
  3576. })
  3577. },
  3578. TopChange() {
  3579. },
  3580. calculateZCB(EnLabelParam) {
  3581. if (EnLabelParam == undefined) {
  3582. return 0.00;
  3583. }
  3584. var sum = 0.00;
  3585. if (this.AGroupCostParameter[EnLabelParam + 'CB'] != undefined) {
  3586. sum = (parseFloat(this.AGroupCostParameter[EnLabelParam + 'CB']) * parseInt(this.AGroupCostParameter[EnLabelParam + 'RS']));
  3587. } else if (this.AGroupCostParameter[EnLabelParam + 'cb'] != undefined) {
  3588. sum = (parseFloat(this.AGroupCostParameter[EnLabelParam + 'cb']) * parseInt(this.AGroupCostParameter[EnLabelParam + 'rs'] != undefined ? this.AGroupCostParameter[EnLabelParam + 'rs'] : this.AGroupCostParameter[EnLabelParam + 'Number']));
  3589. }
  3590. if (isNaN(sum)) {
  3591. sum = 0.00;
  3592. }
  3593. return sum.toFixed(2);
  3594. },
  3595. calculateDRBJ(EnLabelParam) {
  3596. if (EnLabelParam == undefined) {
  3597. return 0.00;
  3598. }
  3599. var sum = 0.00;
  3600. if (this.AGroupCostParameter[EnLabelParam + 'CB'] != undefined) {
  3601. sum = (parseFloat(this.AGroupCostParameter[EnLabelParam + 'CB']) * parseFloat(this.AGroupCostParameter[EnLabelParam + 'XS']));
  3602. } else if (this.AGroupCostParameter[EnLabelParam + 'cb'] != undefined) {
  3603. sum = (parseFloat(this.AGroupCostParameter[EnLabelParam + 'cb']) * parseFloat(this.AGroupCostParameter[EnLabelParam + 'xs']));
  3604. }
  3605. if (isNaN(sum)) {
  3606. sum = 0.00;
  3607. }
  3608. return sum.toFixed(2);
  3609. },
  3610. calculateZBJ(EnLabelParam) {
  3611. if (EnLabelParam == undefined) {
  3612. return 0.00;
  3613. }
  3614. var sum = 0.00;
  3615. var drbj = this.calculateDRBJ(EnLabelParam);
  3616. if (this.AGroupCostParameter[EnLabelParam + 'RS'] != undefined) {
  3617. sum = drbj * parseInt(this.AGroupCostParameter[EnLabelParam + 'RS']);
  3618. } else if (this.AGroupCostParameter[EnLabelParam + 'rs'] != undefined) {
  3619. sum = drbj * parseInt(this.AGroupCostParameter[EnLabelParam + 'rs']);
  3620. } else if (this.AGroupCostParameter[EnLabelParam + 'Number'] != undefined) {
  3621. sum = drbj * parseInt(this.AGroupCostParameter[EnLabelParam + 'Number']);
  3622. }
  3623. if (isNaN(sum)) {
  3624. sum = 0.00;
  3625. }
  3626. return sum.toFixed(2);
  3627. },
  3628. calculateDRLR(EnLabelParam) {
  3629. if (EnLabelParam == undefined) {
  3630. return 0.00;
  3631. }
  3632. var sum = 0.00;
  3633. var drbj = this.calculateDRBJ(EnLabelParam);
  3634. if (this.AGroupCostParameter[EnLabelParam + 'CB'] != undefined) {
  3635. sum = (drbj - parseFloat(this.AGroupCostParameter[EnLabelParam + 'CB']));
  3636. } else if (this.AGroupCostParameter[EnLabelParam + 'cb'] != undefined) {
  3637. sum = (drbj - parseFloat(this.AGroupCostParameter[EnLabelParam + 'cb']));
  3638. }
  3639. if (isNaN(sum)) {
  3640. sum = 0.00;
  3641. }
  3642. return sum.toFixed(2);
  3643. },
  3644. calculateZLR(EnLabelParam) {
  3645. if (EnLabelParam == undefined) {
  3646. return 0.00;
  3647. }
  3648. var sum = 0.00;
  3649. var drlr = this.calculateDRLR(EnLabelParam);
  3650. if (this.AGroupCostParameter[EnLabelParam + 'RS'] != undefined) {
  3651. sum = drlr * parseInt(this.AGroupCostParameter[EnLabelParam + 'RS']);
  3652. } else if (this.AGroupCostParameter[EnLabelParam + 'rs'] != undefined) {
  3653. sum = drlr * parseInt(this.AGroupCostParameter[EnLabelParam + 'rs']);
  3654. } else if (this.AGroupCostParameter[EnLabelParam + 'Number'] != undefined) {
  3655. sum = drlr * parseInt(this.AGroupCostParameter[EnLabelParam + 'Number']);
  3656. }
  3657. if (isNaN(sum)) {
  3658. sum = 0.00;
  3659. }
  3660. return sum.toFixed(2);
  3661. },
  3662. BcalculateZCB(EnLabelParam) {
  3663. if (EnLabelParam == undefined) {
  3664. return 0.00;
  3665. }
  3666. var sum = 0.00;
  3667. if (this.BGroupCostParameter[EnLabelParam + 'CB'] != undefined) {
  3668. sum = (parseFloat(this.BGroupCostParameter[EnLabelParam + 'CB']) * parseInt(this.BGroupCostParameter[EnLabelParam + 'RS']));
  3669. } else if (this.BGroupCostParameter[EnLabelParam + 'cb'] != undefined) {
  3670. sum = (parseFloat(this.BGroupCostParameter[EnLabelParam + 'cb']) * parseInt(this.BGroupCostParameter[EnLabelParam + 'rs'] != undefined ? this.BGroupCostParameter[EnLabelParam + 'rs'] : this.BGroupCostParameter[EnLabelParam + 'Number']));
  3671. }
  3672. if (isNaN(sum)) {
  3673. sum = 0.00;
  3674. }
  3675. return sum.toFixed(2);;
  3676. },
  3677. BcalculateDRBJ(EnLabelParam) {
  3678. if (EnLabelParam == undefined) {
  3679. return 0.00;
  3680. }
  3681. var sum = 0.00;
  3682. if (this.BGroupCostParameter[EnLabelParam + 'CB'] != undefined) {
  3683. sum = (parseFloat(this.BGroupCostParameter[EnLabelParam + 'CB']) * parseFloat(this.BGroupCostParameter[EnLabelParam + 'XS']));
  3684. } else if (this.BGroupCostParameter[EnLabelParam + 'cb'] != undefined) {
  3685. sum = (parseFloat(this.BGroupCostParameter[EnLabelParam + 'cb']) * parseFloat(this.BGroupCostParameter[EnLabelParam + 'xs']));
  3686. }
  3687. if (isNaN(sum)) {
  3688. sum = 0.00;
  3689. }
  3690. return sum.toFixed(2);;
  3691. },
  3692. BcalculateZBJ(EnLabelParam) {
  3693. if (EnLabelParam == undefined) {
  3694. return 0.00;
  3695. }
  3696. var sum = 0.00;
  3697. var drbj = this.BcalculateDRBJ(EnLabelParam);
  3698. if (this.BGroupCostParameter[EnLabelParam + 'RS'] != undefined) {
  3699. sum = drbj * parseInt(this.BGroupCostParameter[EnLabelParam + 'RS']);
  3700. } else if (this.BGroupCostParameter[EnLabelParam + 'rs'] != undefined) {
  3701. sum = drbj * parseInt(this.BGroupCostParameter[EnLabelParam + 'rs']);
  3702. } else if (this.BGroupCostParameter[EnLabelParam + 'Number'] != undefined) {
  3703. sum = drbj * parseInt(this.BGroupCostParameter[EnLabelParam + 'Number']);
  3704. }
  3705. if (isNaN(sum)) {
  3706. sum = 0.00;
  3707. }
  3708. return sum.toFixed(2);
  3709. },
  3710. BcalculateDRLR(EnLabelParam) {
  3711. if (EnLabelParam == undefined) {
  3712. return 0.00;
  3713. }
  3714. var sum = 0.00;
  3715. var drbj = this.BcalculateDRBJ(EnLabelParam);
  3716. if (this.BGroupCostParameter[EnLabelParam + 'CB'] != undefined) {
  3717. sum = drbj - parseFloat(this.BGroupCostParameter[EnLabelParam + 'CB']);
  3718. } else if (this.BGroupCostParameter[EnLabelParam + 'cb'] != undefined) {
  3719. sum = drbj - parseFloat(this.BGroupCostParameter[EnLabelParam + 'cb']);
  3720. }
  3721. if (isNaN(sum)) {
  3722. sum = 0.00;
  3723. }
  3724. return sum.toFixed(2);;
  3725. },
  3726. BcalculateZLR(EnLabelParam) {
  3727. if (EnLabelParam == undefined) {
  3728. return 0.00;
  3729. }
  3730. var sum = 0.00;
  3731. var drlr = this.BcalculateDRLR(EnLabelParam);
  3732. if (this.BGroupCostParameter[EnLabelParam + 'RS'] != undefined) {
  3733. sum = drlr * parseInt(this.BGroupCostParameter[EnLabelParam + 'RS']);
  3734. } else if (this.BGroupCostParameter[EnLabelParam + 'rs'] != undefined) {
  3735. sum = drlr * parseInt(this.BGroupCostParameter[EnLabelParam + 'rs']);
  3736. } else if (this.BGroupCostParameter[EnLabelParam + 'Number'] != undefined) {
  3737. sum = drlr * parseInt(this.BGroupCostParameter[EnLabelParam + 'Number']);
  3738. }
  3739. if (isNaN(sum)) {
  3740. sum = 0.00;
  3741. }
  3742. return sum.toFixed(2);;
  3743. },
  3744. handleCurrentChange(val) {
  3745. this.currentPage = val;
  3746. },
  3747. SelChange(row, oldrow) {
  3748. ////console.log(row, oldrow);
  3749. this.dialogSelectObject = row;
  3750. },
  3751. handleSizeChange(val) {
  3752. this.currentPage = 1;
  3753. this.pageSize = val;
  3754. },
  3755. CalculatedPrice() {
  3756. let rate = Number(this.AGroupCostParameter.rate);
  3757. let Djsum = 0;
  3758. let BDjsum = 0;
  3759. var that = this;
  3760. this.DJLables.forEach(function (item) {
  3761. that.sumTopPrice.forEach(function (item1) {
  3762. if (item == item1.label) {
  3763. var Aprice = Number(item1.Aprice);
  3764. if (!isNaN(Aprice)) {
  3765. Djsum += Aprice;
  3766. }
  3767. var Bprice = Number(item1.Bprice);
  3768. if (!isNaN(Bprice)) {
  3769. BDjsum += Bprice;
  3770. }
  3771. }
  3772. })
  3773. })
  3774. Djsum = Number((Djsum * rate).toFixed(2));
  3775. BDjsum = Number((BDjsum * rate).toFixed(2));
  3776. let GWsum = 0;
  3777. let BGWsum = 0;
  3778. this.GwLables.forEach(function (item) {
  3779. that.sumTopPrice.forEach(function (item1) {
  3780. if (item == item1.label) {
  3781. var Aprice = Number(item1.Aprice);
  3782. if (!isNaN(Aprice)) {
  3783. GWsum += Aprice;
  3784. }
  3785. var Bprice = Number(item1.Bprice);
  3786. if (!isNaN(Bprice)) {
  3787. BGWsum += Bprice;
  3788. }
  3789. }
  3790. })
  3791. })
  3792. GWsum = Number((GWsum * rate).toFixed(2));
  3793. BGWsum = Number((BGWsum * rate).toFixed(2));
  3794. let LYJsum = 0;
  3795. let BLYJsum = 0;
  3796. var lyjList = that.sumTopPrice.filter((x) => {
  3797. return x.label == 'P/C';
  3798. })
  3799. if (lyjList.length > 0) {
  3800. LYJsum = lyjList[0].Aprice;
  3801. BLYJsum = lyjList[0].Bprice;
  3802. }
  3803. LYJsum = isNaN(LYJsum) ? 0 : LYJsum;
  3804. BLYJsum = isNaN(BLYJsum) ? 0 : BLYJsum;
  3805. LYJsum = Number((LYJsum * rate).toFixed(2));
  3806. BLYJsum = Number((BLYJsum * rate).toFixed(2));
  3807. let SGRsum = 0;
  3808. let BSGRsum = 0;
  3809. var SGRList = that.sumTopPrice.filter((x) => {
  3810. return x.label == 'SGR';
  3811. })
  3812. if (SGRList.length > 0) {
  3813. SGRsum = SGRList[0].Aprice;
  3814. BSGRsum = SGRList[0].Bprice;
  3815. }
  3816. SGRsum = isNaN(SGRsum) ? 0 : SGRsum;
  3817. BSGRsum = isNaN(BSGRsum) ? 0 : BSGRsum;
  3818. SGRsum = (SGRsum * rate).toFixed(2);
  3819. BSGRsum = (BSGRsum * rate).toFixed(2);
  3820. let TBRsum = 0;
  3821. let BTBRsum = 0;
  3822. var TBRList = that.sumTopPrice.filter((x) => {
  3823. return x.label == 'TBR';
  3824. })
  3825. if (TBRList.length > 0) {
  3826. TBRsum = TBRList[0].Aprice;
  3827. BTBRsum = TBRList[0].Bprice;
  3828. }
  3829. TBRsum = isNaN(TBRsum) ? 0 : TBRsum;
  3830. BTBRsum = isNaN(BTBRsum) ? 0 : BTBRsum;
  3831. TBRsum = (TBRsum * rate).toFixed(2);
  3832. BTBRsum = (BTBRsum * rate).toFixed(2);
  3833. let JSESsum = 0;
  3834. let BJSESsum = 0;
  3835. var JSESList = that.sumTopPrice.filter((x) => {
  3836. return x.label == 'JS/ES';
  3837. })
  3838. if (JSESList.length > 0) {
  3839. JSESsum = JSESList[0].Aprice;
  3840. BJSESsum = JSESList[0].Bprice;
  3841. }
  3842. JSESsum = isNaN(JSESsum) ? 0 : JSESsum;
  3843. BJSESsum = isNaN(BJSESsum) ? 0 : BJSESsum;
  3844. JSESsum = JSESsum * rate;
  3845. BJSESsum = BJSESsum * rate;
  3846. let SUITEsum = 0;
  3847. let BSUITEsum = 0;
  3848. var SUITEList = that.sumTopPrice.filter((x) => {
  3849. return x.label == 'SUITE';
  3850. })
  3851. if (SUITEList.length > 0) {
  3852. SUITEsum = SUITEList[0].Aprice;
  3853. BSUITEsum = SUITEList[0].Bprice;
  3854. }
  3855. SUITEsum = isNaN(SUITEsum) ? 0 : SUITEsum;
  3856. BSUITEsum = isNaN(BSUITEsum) ? 0 : BSUITEsum;
  3857. SUITEsum = (SUITEsum * rate).toFixed(2);
  3858. BSUITEsum = (BSUITEsum * rate).toFixed(2);
  3859. // ////console.log(Djsum, GWsum, LYJsum, 'Djsum,GWsum,LYJsum');
  3860. // ////console.log(SGRsum, TBRsum, JSESsum, SUITEsum, 'SGRsum,TBRsum,JSESsum,SUITEsum');
  3861. var sgrfilter = this.costTypeHotelNumbers.filter(x => {
  3862. return x.type == 'Default'
  3863. })
  3864. let Bsgrfilter = {};
  3865. if (this.costTypevalue == 'B') {
  3866. sgrfilter = this.costTypeHotelNumbers.filter(x => {
  3867. return x.type == 'A'
  3868. })
  3869. Bsgrfilter = this.costTypeHotelNumbers.filter(x => {
  3870. return x.type == 'B'
  3871. })
  3872. Bsgrfilter = Bsgrfilter[0];
  3873. }
  3874. sgrfilter = sgrfilter[0];
  3875. let hotelRooms = {
  3876. "SGR": sgrfilter.sgr,
  3877. "TBR": sgrfilter.tbr,
  3878. "JSES": sgrfilter.jses,
  3879. "SUITE": sgrfilter.suite
  3880. };
  3881. let flights = {
  3882. "经济舱": this.AGroupCostParameter.jjcrs,
  3883. "公务舱": this.AGroupCostParameter.gwcrs
  3884. };
  3885. let result = {};
  3886. for (let flight of ["经济舱", "公务舱"]) {
  3887. if (flight === "经济舱") {
  3888. this.matchRooms(hotelRooms, flights, ["SGR", "TBR", "JSES", "SUITE"], flight, result);
  3889. } else if (flight === "公务舱") {
  3890. this.matchRooms(hotelRooms, flights, ["SUITE", "JSES", "SGR", "TBR"], flight, result);
  3891. }
  3892. }
  3893. var rightCheckArr = [];
  3894. if (this.costTypevalue == 'B') {
  3895. let BhotelRooms = {
  3896. "SGR": Bsgrfilter.sgr,
  3897. "TBR": Bsgrfilter.tbr,
  3898. "JSES": Bsgrfilter.jses,
  3899. "SUITE": Bsgrfilter.suite
  3900. };
  3901. let Bflights = {
  3902. "经济舱": this.BGroupCostParameter.jjcrs,
  3903. "公务舱": this.BGroupCostParameter.gwcrs
  3904. };
  3905. let Bresult = {};
  3906. for (let flight of ["经济舱", "公务舱"]) {
  3907. if (flight === "经济舱") {
  3908. this.matchRooms(BhotelRooms, Bflights, ["SGR", "TBR", "JSES", "SUITE"], flight, Bresult);
  3909. } else if (flight === "公务舱") {
  3910. this.matchRooms(BhotelRooms, Bflights, ["SUITE", "JSES", "SGR", "TBR"], flight, Bresult);
  3911. }
  3912. }
  3913. var BtxtJJCSGRRS = (Bresult.hasOwnProperty("经济舱SGR") ? Bresult["经济舱SGR"] : 0)
  3914. var BlblGWCSGRRS = (Bresult.hasOwnProperty("公务舱SGR") ? Bresult["公务舱SGR"] : 0)
  3915. var BtxtJJCTBRRS = (Bresult.hasOwnProperty("经济舱TBR") ? Bresult["经济舱TBR"] * 2 : 0)
  3916. var BtxtGWCJSESRS = (Bresult.hasOwnProperty("公务舱JSES") ? Bresult["公务舱JSES"] : 0)
  3917. var BJJCSUITERS = (Bresult.hasOwnProperty("经济舱SUITE") ? Bresult["经济舱SUITE"] : 0)
  3918. var BtxtGWCSUITERS = (Bresult.hasOwnProperty("公务舱SUITE") ? Bresult["公务舱SUITE"] : 0)
  3919. if (BtxtJJCSGRRS > 0) {
  3920. rightCheckArr.push('经济舱 SGR');
  3921. }
  3922. if (BlblGWCSGRRS > 0) {
  3923. rightCheckArr.push('公务舱 SGR');
  3924. }
  3925. if (BtxtJJCTBRRS > 0) {
  3926. rightCheckArr.push('经济舱 TBR');
  3927. }
  3928. if (BtxtGWCJSESRS > 0) {
  3929. rightCheckArr.push('公务舱 JSES');
  3930. }
  3931. if (BJJCSUITERS > 0) {
  3932. rightCheckArr.push('经济舱 SUITE');
  3933. }
  3934. if (BtxtGWCSUITERS > 0) {
  3935. rightCheckArr.push('公务舱 SUITE');
  3936. }
  3937. this.BcabinDatal[0].sheetInfo[0].toll = BtxtJJCTBRRS;
  3938. this.BcabinDatal[1].sheetInfo[0].toll = BtxtJJCSGRRS;
  3939. this.BcabinDatal[2].sheetInfo[0].toll = BlblGWCSGRRS;
  3940. this.BcabinDatal[3].sheetInfo[0].toll = BtxtGWCJSESRS;
  3941. this.BcabinDatal[4].sheetInfo[0].toll = BtxtGWCSUITERS;
  3942. this.BcabinDatal[5].sheetInfo[0].toll = BJJCSUITERS;
  3943. this.BGroupCostParameter.djcb = BDjsum;
  3944. this.BGroupCostParameter.gwcb = BGWsum;
  3945. this.BGroupCostParameter.lyjcb = BLYJsum;
  3946. this.BGroupCostParameter.sgrcb = BSGRsum;
  3947. this.BGroupCostParameter.tbrcb = BTBRsum;
  3948. this.BGroupCostParameter.jsescb = BJSESsum;
  3949. this.BGroupCostParameter.suitecb = BSUITEsum;
  3950. var BleftSum = this.BOtherCost();
  3951. let BJJCSGR = (BleftSum + Number(this.BGroupCostParameter.sgrcb) + Number(this.BGroupCostParameter.jjccb));
  3952. let BJJCTBR = BleftSum + (Number(this.BGroupCostParameter.tbrcb) / 2) + Number(this.BGroupCostParameter.jjccb);
  3953. let BJJCSUITE = BleftSum + Number(this.BGroupCostParameter.suitecb) + Number(this.BGroupCostParameter.jjccb);
  3954. let BGWCSUITE = (BleftSum + Number(this.BGroupCostParameter.suitecb) + Number(this.BGroupCostParameter.gwccb)).toFixed(2);
  3955. let BGWCSGR = BleftSum + Number(this.BGroupCostParameter.sgrcb) + Number(this.BGroupCostParameter.gwccb);
  3956. let BGWCJSES = BleftSum + Number(this.BGroupCostParameter.jsescb) + Number(this.BGroupCostParameter.gwccb);
  3957. BJJCSGR = BJJCSGR.toFixed(2);
  3958. var BrightSum = 0;
  3959. this.OtherCostPropertyBJ.forEach((x) => {
  3960. BrightSum += Number(that.BcalculateDRBJ(x));
  3961. })
  3962. let BJJCSGRDRBJ = (BrightSum + Number(that.BcalculateDRBJ('jjc')) + Number(that.BcalculateDRBJ('sgr'))).toFixed(2);
  3963. let BJJCTBRDRBJ = BrightSum + (Number(that.BcalculateDRBJ('tbr')) / 2) + Number(that.BcalculateDRBJ('jjc'));
  3964. let BJJCSUITEDRBJ = BrightSum + Number(that.BcalculateDRBJ('suite')) + Number(that.BcalculateDRBJ('jjc'));
  3965. let BGWCSUITEDRBJ = BrightSum + Number(that.BcalculateDRBJ('suite')) + Number(that.BcalculateDRBJ('gwc'));
  3966. let BGWCSGRDRBJ = BrightSum + Number(that.BcalculateDRBJ('sgr')) + Number(that.BcalculateDRBJ('gwc'));
  3967. let BGWCJSESDRBJ = BrightSum + Number(that.BcalculateDRBJ('jses')) + Number(that.BcalculateDRBJ('gwc'));
  3968. this.BcabinDatal[0].sheetInfo[0].costPerson = BJJCTBR;
  3969. this.BcabinDatal[0].sheetInfo[0].singleQuote = BJJCTBRDRBJ;
  3970. this.BcabinDatal[1].sheetInfo[0].costPerson = BJJCSGR;
  3971. this.BcabinDatal[1].sheetInfo[0].singleQuote = BJJCSGRDRBJ;
  3972. this.BcabinDatal[2].sheetInfo[0].costPerson = BGWCSGR;
  3973. this.BcabinDatal[2].sheetInfo[0].singleQuote = BGWCSGRDRBJ;
  3974. this.BcabinDatal[3].sheetInfo[0].costPerson = BGWCJSES;
  3975. this.BcabinDatal[3].sheetInfo[0].singleQuote = BGWCJSESDRBJ;
  3976. this.BcabinDatal[4].sheetInfo[0].costPerson = BGWCSUITE;
  3977. this.BcabinDatal[4].sheetInfo[0].singleQuote = BGWCSUITEDRBJ;
  3978. this.BcabinDatal[5].sheetInfo[0].costPerson = BJJCSUITE;
  3979. this.BcabinDatal[5].sheetInfo[0].singleQuote = BJJCSUITEDRBJ;
  3980. }
  3981. var txtJJCSGRRS = (result.hasOwnProperty("经济舱SGR") ? result["经济舱SGR"] : 0)
  3982. var lblGWCSGRRS = (result.hasOwnProperty("公务舱SGR") ? result["公务舱SGR"] : 0)
  3983. var txtJJCTBRRS = (result.hasOwnProperty("经济舱TBR") ? result["经济舱TBR"] * 2 : 0)
  3984. var txtGWCJSESRS = (result.hasOwnProperty("公务舱JSES") ? result["公务舱JSES"] : 0)
  3985. var JJCSUITERS = (result.hasOwnProperty("经济舱SUITE") ? result["经济舱SUITE"] : 0)
  3986. var txtGWCSUITERS = (result.hasOwnProperty("公务舱SUITE") ? result["公务舱SUITE"] : 0)
  3987. if (txtJJCSGRRS > 0) {
  3988. rightCheckArr.push('经济舱 SGR');
  3989. }
  3990. if (lblGWCSGRRS > 0) {
  3991. rightCheckArr.push('公务舱 SGR');
  3992. }
  3993. if (txtJJCTBRRS > 0) {
  3994. rightCheckArr.push('经济舱 TBR');
  3995. }
  3996. if (txtGWCJSESRS > 0) {
  3997. rightCheckArr.push('公务舱 JSES');
  3998. }
  3999. if (JJCSUITERS > 0) {
  4000. rightCheckArr.push('经济舱 SUITE');
  4001. }
  4002. if (txtGWCSUITERS > 0) {
  4003. rightCheckArr.push('公务舱 SUITE');
  4004. }
  4005. rightCheckArr.push('团组预算明细');
  4006. rightCheckArr = [...new Set(rightCheckArr)];
  4007. try {
  4008. console.log('rightCheckArr', rightCheckArr);
  4009. this.CheckBoxListSelect.filter(item => item.cbType == 'Right')[0].cbValues = rightCheckArr;
  4010. } catch (e) { }
  4011. this.cabinDatal[0].sheetInfo[0].toll = txtJJCTBRRS;
  4012. this.cabinDatal[1].sheetInfo[0].toll = txtJJCSGRRS;
  4013. this.cabinDatal[2].sheetInfo[0].toll = lblGWCSGRRS;
  4014. this.cabinDatal[3].sheetInfo[0].toll = txtGWCJSESRS;
  4015. this.cabinDatal[4].sheetInfo[0].toll = txtGWCSUITERS;
  4016. this.cabinDatal[5].sheetInfo[0].toll = JJCSUITERS;
  4017. this.AGroupCostParameter.djcb = Djsum;
  4018. this.AGroupCostParameter.gwcb = GWsum;
  4019. this.AGroupCostParameter.lyjcb = LYJsum;
  4020. this.AGroupCostParameter.sgrcb = SGRsum;
  4021. this.AGroupCostParameter.tbrcb = TBRsum;
  4022. this.AGroupCostParameter.jsescb = JSESsum;
  4023. this.AGroupCostParameter.suitecb = SUITEsum;
  4024. var leftSum = this.OtherCost();
  4025. let JJCSGR = (leftSum + Number(this.AGroupCostParameter.sgrcb) + Number(this.AGroupCostParameter.jjccb)).toFixed(2);
  4026. let JJCTBR = (leftSum + (Number(this.AGroupCostParameter.tbrcb) / 2) + Number(this.AGroupCostParameter.jjccb)).toFixed(2);
  4027. let JJCSUITE = (leftSum + Number(this.AGroupCostParameter.suitecb) + Number(this.AGroupCostParameter.jjccb)).toFixed(2);
  4028. let GWCSUITE = (leftSum + Number(this.AGroupCostParameter.suitecb) + Number(this.AGroupCostParameter.gwccb)).toFixed(2);
  4029. let GWCSGR = (leftSum + Number(this.AGroupCostParameter.sgrcb) + Number(this.AGroupCostParameter.gwccb)).toFixed(2);
  4030. let GWCJSES = (leftSum + Number(this.AGroupCostParameter.jsescb) + Number(this.AGroupCostParameter.gwccb)).toFixed(2);
  4031. //////console.log(JJCSGR, JJCTBR, JJCSUITE, GWCSUITE, GWCSGR, GWCJSES, '666--------------------------');
  4032. var rightSum = 0;
  4033. this.OtherCostPropertyBJ.forEach((x) => {
  4034. rightSum += Number(that.calculateDRBJ(x));
  4035. })
  4036. let JJCSGRDRBJ = (rightSum + Number(that.calculateDRBJ('jjc')) + Number(that.calculateDRBJ('sgr'))).toFixed(2);
  4037. let JJCTBRDRBJ = (rightSum + (Number(that.calculateDRBJ('tbr')) / 2) + Number(that.calculateDRBJ('jjc'))).toFixed(2);
  4038. let JJCSUITEDRBJ = (rightSum + Number(that.calculateDRBJ('suite')) + Number(that.calculateDRBJ('jjc'))).toFixed(2);
  4039. let GWCSUITEDRBJ = (rightSum + Number(that.calculateDRBJ('suite')) + Number(that.calculateDRBJ('gwc'))).toFixed(2);
  4040. let GWCSGRDRBJ = (rightSum + Number(that.calculateDRBJ('sgr')) + Number(that.calculateDRBJ('gwc'))).toFixed(2);
  4041. let GWCJSESDRBJ = (rightSum + Number(that.calculateDRBJ('jses')) + Number(that.calculateDRBJ('gwc'))).toFixed(2);
  4042. this.cabinDatal[0].sheetInfo[0].costPerson = JJCTBR;
  4043. this.cabinDatal[0].sheetInfo[0].singleQuote = JJCTBRDRBJ;
  4044. this.cabinDatal[1].sheetInfo[0].costPerson = JJCSGR;
  4045. this.cabinDatal[1].sheetInfo[0].singleQuote = JJCSGRDRBJ;
  4046. this.cabinDatal[2].sheetInfo[0].costPerson = GWCSGR;
  4047. this.cabinDatal[2].sheetInfo[0].singleQuote = GWCSGRDRBJ;
  4048. this.cabinDatal[3].sheetInfo[0].costPerson = GWCJSES;
  4049. this.cabinDatal[3].sheetInfo[0].singleQuote = GWCJSESDRBJ;
  4050. this.cabinDatal[4].sheetInfo[0].costPerson = GWCSUITE;
  4051. this.cabinDatal[4].sheetInfo[0].singleQuote = GWCSUITEDRBJ;
  4052. this.cabinDatal[5].sheetInfo[0].costPerson = JJCSUITE;
  4053. this.cabinDatal[5].sheetInfo[0].singleQuote = JJCSUITEDRBJ;
  4054. let groupCosts = 0;
  4055. let gtroupQuotes = 0;
  4056. for (var i = 0; i < this.cabinDatal.length; i++) {
  4057. var forNumber = Number(this.cabinDatal[i].sheetInfo[0]['toll']);
  4058. if (!isNaN(forNumber) && forNumber > 0) {
  4059. groupCosts += (Number(this.cabinDatal[i].sheetInfo[0]['costPerson']) * forNumber);
  4060. gtroupQuotes += (Number(this.cabinDatal[i].sheetInfo[0]['singleQuote']) * forNumber);
  4061. }
  4062. }
  4063. if (this.costTypevalue == 'B') {
  4064. for (var i = 0; i < this.BcabinDatal.length; i++) {
  4065. var forNumber = Number(this.BcabinDatal[i].sheetInfo[0]['toll']);
  4066. if (!isNaN(forNumber) && forNumber > 0) {
  4067. groupCosts += (Number(this.BcabinDatal[i].sheetInfo[0]['costPerson']) * forNumber);
  4068. gtroupQuotes += (Number(this.BcabinDatal[i].sheetInfo[0]['singleQuote']) * forNumber);
  4069. }
  4070. }
  4071. }
  4072. let groupProfit = gtroupQuotes - groupCosts;
  4073. var cabinDatalLast = this.cabinDatal.filter(function (x) {
  4074. return x.label == '团组预算明细'
  4075. })
  4076. groupCosts = groupCosts.toFixed(2);
  4077. gtroupQuotes = gtroupQuotes.toFixed(2);
  4078. groupProfit = groupProfit.toFixed(2);
  4079. cabinDatalLast[0].sheetInfo[0]['groupCosts'] = groupCosts;
  4080. cabinDatalLast[0].sheetInfo[0]['gtroupQuotes'] = gtroupQuotes;
  4081. cabinDatalLast[0].sheetInfo[0]['groupProfit'] = groupProfit;
  4082. //costTypeHotelNumbers{
  4083. // "sgr": 0,
  4084. // "tbr": 0,
  4085. // "jses": 0,
  4086. // "suite": 0,
  4087. // "type": "Default",
  4088. // "diid": 0,
  4089. // id: 0,
  4090. // }
  4091. //////console.log(groupCosts, gtroupQuotes, groupProfit, 'groupCosts, gtroupQuotes, groupProfit');
  4092. },
  4093. OtherCost() {
  4094. // txtVisaCost.Text +txtHCPCB.Text + txtCPCB.Text
  4095. // txtBXCB.Text +txtHSCB.Text) +lblDJDRCB.Text + lblGWDRCD.Text + lblLYJDRCB.Text
  4096. var that = this;
  4097. let sum = 0;
  4098. this.OtherCostProperty.forEach((x) => {
  4099. var param = that.AGroupCostParameter[x];
  4100. if (param != undefined) {
  4101. sum += Number(param);
  4102. }
  4103. })
  4104. return sum;
  4105. },
  4106. BOtherCost() {
  4107. // txtVisaCost.Text +txtHCPCB.Text + txtCPCB.Text
  4108. // txtBXCB.Text +txtHSCB.Text) +lblDJDRCB.Text + lblGWDRCD.Text + lblLYJDRCB.Text
  4109. var that = this;
  4110. let sum = 0;
  4111. this.OtherCostProperty.forEach((x) => {
  4112. var param;
  4113. if (x == 'visaCB' || x == 'bxcb') {
  4114. param = that.AGroupCostParameter[x];
  4115. } else {
  4116. param = that.BGroupCostParameter[x];
  4117. }
  4118. if (param != undefined) {
  4119. sum += Number(param);
  4120. }
  4121. })
  4122. return sum;
  4123. },
  4124. matchRooms(hotelRooms, flights, roomTypes, flightType, result) {
  4125. for (let roomType of roomTypes) {
  4126. while (hotelRooms[roomType] > 0 && flights[flightType] > 0) {
  4127. hotelRooms[roomType]--;
  4128. flights[flightType]--;
  4129. if (roomType === "TBR") {
  4130. flights[flightType]--; //双人间在减少1
  4131. }
  4132. if (result.hasOwnProperty(flightType + roomType)) {
  4133. result[flightType + roomType]++;
  4134. } else {
  4135. result[flightType + roomType] = 1;
  4136. }
  4137. }
  4138. }
  4139. },
  4140. NumberSetTime(number, index) {
  4141. console.log(number, index, this.grouptitleinfo.visitStartDate);
  4142. number = parseInt(number);
  4143. if (!isNaN(number)) {
  4144. var time = this.addOneDay(this.grouptitleinfo.visitStartDate, number - 1)
  4145. this.tableData[index].date = time;
  4146. } else {
  4147. this.tableData[index].date = '';
  4148. this.tableData[index].day = '';
  4149. }
  4150. },
  4151. addOneDay(dateString, number) {
  4152. if (!dateString) {
  4153. return "";
  4154. }
  4155. let date = new Date(dateString);
  4156. date.setDate(date.getDate() + number);
  4157. let year = date.getFullYear();
  4158. let month = date.getMonth() + 1;
  4159. let day = date.getDate();
  4160. month = month < 10 ? '0' + month : month;
  4161. day = day < 10 ? '0' + day : day;
  4162. return `${year}-${month}-${day}`;
  4163. },
  4164. costTypeSelect(val) {
  4165. ////console.log('costTypeSelect--------------------------------------------------------', val);
  4166. },
  4167. async formVerify() {
  4168. return new Promise((resolve, reject) => {
  4169. var forFormList = [];
  4170. if (this.costTypevalue == 'A') {
  4171. forFormList = ['inputs', 'DHotel'];
  4172. } else {
  4173. forFormList = ['inputs', 'AHotel', 'Asection', 'BHotel', 'Bsection'];
  4174. }
  4175. var that = this;
  4176. for (var i = 0; i < forFormList.length; i++) {
  4177. that.$refs[forFormList[i]].validate((valid) => {
  4178. if (valid) {
  4179. } else {
  4180. resolve(valid);
  4181. }
  4182. });
  4183. }
  4184. resolve(true);
  4185. })
  4186. },
  4187. clearFormVerify() {
  4188. var forFormList = ['inputs', 'AHotel', 'Asection', 'BHotel', 'Bsection', 'DHotel'];
  4189. this.$nextTick(() => {
  4190. for (var i = 0; i < forFormList.length; i++) {
  4191. this.$refs[forFormList[i]].resetFields();
  4192. }
  4193. })
  4194. },
  4195. topcheckboxChange(val, label) {
  4196. // console.log(val, label, 'topcheckboxChangeval');
  4197. var that = this;
  4198. if (!val) {
  4199. this.$confirm('此操作将清空整列数据, 是否继续?', '提示', {
  4200. confirmButtonText: '确定',
  4201. cancelButtonText: '取消',
  4202. type: 'warning'
  4203. }).then(() => {
  4204. if (label == 'SGR') {
  4205. this.costTypeHotelNumbers.filter(item => item.type == 'Default')[0].sgr = 0
  4206. }
  4207. if (label == 'TBR') {
  4208. this.costTypeHotelNumbers.filter(item => item.type == 'Default')[0].tbr = 0
  4209. }
  4210. if (label == 'JS/ES') {
  4211. this.costTypeHotelNumbers.filter(item => item.type == 'Default')[0].jses = 0
  4212. }
  4213. if (label == 'SUITE') {
  4214. this.costTypeHotelNumbers.filter(item => item.type == 'Default')[0].suite = 0
  4215. }
  4216. ////console.log('确定清空数据');
  4217. var fliterList = this.sumTopPrice.filter(x => x.label == label);
  4218. if (fliterList.length != 0) {
  4219. fliterList[0].Aprice = 0;
  4220. fliterList[0].Bprice = 0;
  4221. }
  4222. fliterList = that.tableLabel.filter(x => x.label == label);
  4223. if (fliterList.length != 0) {
  4224. var obj = {
  4225. "diid": that.diid,
  4226. "day": "-",
  4227. "date": "",
  4228. "itin": "",
  4229. "carType": "",
  4230. "carCost": "",
  4231. "carNumber": "",
  4232. "carTiming": "",
  4233. "tgs": "",
  4234. "tgwh": "",
  4235. "tgn": "",
  4236. "tgof": "",
  4237. "tgm": "",
  4238. "tga": "",
  4239. "tgtf": "",
  4240. "tgef": "",
  4241. "cfs": "",
  4242. "cfm": "",
  4243. "cfof": "",
  4244. "b": "",
  4245. "l": "",
  4246. "d": "",
  4247. "tbr": "",
  4248. "sgr": "",
  4249. "jS_ES": "",
  4250. "suite": "",
  4251. "accon": "",
  4252. "tv": "",
  4253. "iL": "",
  4254. "if": "",
  4255. "ef": "",
  4256. "b_R_F": "",
  4257. "te": "",
  4258. "tgTips": "",
  4259. "drvTips": "",
  4260. "pc": "",
  4261. "tlf": "",
  4262. "ect": "",
  4263. "id": 1,
  4264. "gwCount": "",
  4265. "fyCount": ""
  4266. };
  4267. var prop = fliterList[0].prop;
  4268. var initval = obj[prop];
  4269. for (var i = 0; i < that.tableData.length; i++) {
  4270. that.tableData[i][prop] = initval;
  4271. }
  4272. ////console.log(that.tableData, 'that.tableData数据');
  4273. }
  4274. this.$message({
  4275. message: '已清除!',
  4276. type: 'success',
  4277. offset: 50
  4278. });
  4279. }).catch(() => {
  4280. this.$message({
  4281. type: 'info',
  4282. message: '已取消操作'
  4283. });
  4284. if (!that.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.includes(label)) {
  4285. that.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.push(label);
  4286. }
  4287. });
  4288. }
  4289. },
  4290. GroupIsShare() {
  4291. this.$axios.post('/api/Groups/GroupIsShare', { diid: this.diid }, {
  4292. headers: {
  4293. 'Authorization': this.token,
  4294. }
  4295. }).then(resp => {
  4296. ////console.log(resp.data.data, '------------------------------------');
  4297. if (resp.data.code == 200) {
  4298. this.$message({
  4299. message: '操作成功!' + resp.data.msg,
  4300. type: 'success'
  4301. });
  4302. } else {
  4303. this.$message.error('操作失败!' + resp.data.msg);
  4304. }
  4305. })
  4306. },
  4307. GetPriceCheckWord() {
  4308. var that = this;
  4309. var airs = [
  4310. ];
  4311. var sgrfilter = this.costTypeHotelNumbers.filter(x => {
  4312. return x.type == 'Default'
  4313. })
  4314. let Bsgrfilter = {};
  4315. if (this.costTypevalue == 'B') {
  4316. sgrfilter = this.costTypeHotelNumbers.filter(x => {
  4317. return x.type == 'A'
  4318. })
  4319. Bsgrfilter = this.costTypeHotelNumbers.filter(x => {
  4320. return x.type == 'B'
  4321. })
  4322. Bsgrfilter = Bsgrfilter[0];
  4323. }
  4324. sgrfilter = sgrfilter[0];
  4325. let hotelRooms = {
  4326. "SGR": sgrfilter.sgr,
  4327. "TBR": sgrfilter.tbr,
  4328. "JSES": sgrfilter.jses,
  4329. "SUITE": sgrfilter.suite
  4330. };
  4331. let flights = {
  4332. "经济舱": this.AGroupCostParameter.jjcrs,
  4333. "公务舱": this.AGroupCostParameter.gwcrs
  4334. };
  4335. let result = {};
  4336. for (let flight of ["经济舱", "公务舱"]) {
  4337. if (flight === "经济舱") {
  4338. this.matchRooms(hotelRooms, flights, ["SGR", "TBR", "JSES", "SUITE"], flight, result);
  4339. } else if (flight === "公务舱") {
  4340. this.matchRooms(hotelRooms, flights, ["SUITE", "JSES", "SGR", "TBR"], flight, result);
  4341. }
  4342. }
  4343. if (this.costTypevalue == 'B') {
  4344. let BhotelRooms = {
  4345. "SGR": Bsgrfilter.sgr,
  4346. "TBR": Bsgrfilter.tbr,
  4347. "JSES": Bsgrfilter.jses,
  4348. "SUITE": Bsgrfilter.suite
  4349. };
  4350. let Bflights = {
  4351. "经济舱": this.BGroupCostParameter.jjcrs,
  4352. "公务舱": this.BGroupCostParameter.gwcrs
  4353. };
  4354. let Bresult = {};
  4355. for (let flight of ["经济舱", "公务舱"]) {
  4356. if (flight === "经济舱") {
  4357. this.matchRooms(BhotelRooms, Bflights, ["SGR", "TBR", "JSES", "SUITE"], flight, Bresult);
  4358. } else if (flight === "公务舱") {
  4359. this.matchRooms(BhotelRooms, Bflights, ["SUITE", "JSES", "SGR", "TBR"], flight, Bresult);
  4360. }
  4361. }
  4362. var BtxtJJCSGRRS = (Bresult.hasOwnProperty("经济舱SGR") ? Bresult["经济舱SGR"] : 0)
  4363. var BlblGWCSGRRS = (Bresult.hasOwnProperty("公务舱SGR") ? Bresult["公务舱SGR"] : 0)
  4364. var BtxtJJCTBRRS = (Bresult.hasOwnProperty("经济舱TBR") ? Bresult["经济舱TBR"] * 2 : 0)
  4365. var BtxtGWCJSESRS = (Bresult.hasOwnProperty("公务舱JSES") ? Bresult["公务舱JSES"] : 0)
  4366. var BJJCSUITERS = (Bresult.hasOwnProperty("经济舱SUITE") ? Bresult["经济舱SUITE"] : 0)
  4367. var BtxtGWCSUITERS = (Bresult.hasOwnProperty("公务舱SUITE") ? Bresult["公务舱SUITE"] : 0)
  4368. var BrightSum = 0;
  4369. this.OtherCostPropertyBJ.forEach((x) => {
  4370. BrightSum += Number(that.BcalculateDRBJ(x));
  4371. })
  4372. let BJJCSGRDRBJ = BrightSum + Number(that.BcalculateDRBJ('jjc')) + Number(that.BcalculateDRBJ('sgr'));
  4373. let BJJCTBRDRBJ = BrightSum + (Number(that.BcalculateDRBJ('tbr')) / 2) + Number(that.BcalculateDRBJ('jjc'));
  4374. let BJJCSUITEDRBJ = BrightSum + Number(that.BcalculateDRBJ('suite')) + Number(that.BcalculateDRBJ('jjc'));
  4375. let BGWCSUITEDRBJ = BrightSum + Number(that.BcalculateDRBJ('suite')) + Number(that.BcalculateDRBJ('gwc'));
  4376. let BGWCSGRDRBJ = BrightSum + Number(that.BcalculateDRBJ('sgr')) + Number(that.BcalculateDRBJ('gwc'));
  4377. let BGWCJSESDRBJ = BrightSum + Number(that.BcalculateDRBJ('jses')) + Number(that.BcalculateDRBJ('gwc'));
  4378. airs.push({
  4379. "code": "JJCTBR",
  4380. "number": BtxtJJCTBRRS,
  4381. "price": BJJCTBRDRBJ,
  4382. "costType": "B"
  4383. });
  4384. airs.push({
  4385. "code": "JJCSGR",
  4386. "number": BtxtJJCSGRRS,
  4387. "price": BJJCSGRDRBJ,
  4388. "costType": "B"
  4389. });
  4390. airs.push({
  4391. "code": "GWCSGR",
  4392. "number": BlblGWCSGRRS,
  4393. "price": BGWCSGRDRBJ,
  4394. "costType": "B"
  4395. });
  4396. airs.push({
  4397. "code": "GWCJSES",
  4398. "number": BtxtGWCJSESRS,
  4399. "price": BGWCJSESDRBJ,
  4400. "costType": "B"
  4401. });
  4402. airs.push({
  4403. "code": "GWCSUITE",
  4404. "number": BtxtGWCSUITERS,
  4405. "price": BGWCSUITEDRBJ,
  4406. "costType": "B"
  4407. });
  4408. airs.push({
  4409. "code": "JJCSUITE",
  4410. "number": BJJCSUITERS,
  4411. "price": BJJCSUITEDRBJ,
  4412. "costType": "B"
  4413. });
  4414. }
  4415. var txtJJCSGRRS = (result.hasOwnProperty("经济舱SGR") ? result["经济舱SGR"] : 0)
  4416. var lblGWCSGRRS = (result.hasOwnProperty("公务舱SGR") ? result["公务舱SGR"] : 0)
  4417. var txtJJCTBRRS = (result.hasOwnProperty("经济舱TBR") ? result["经济舱TBR"] * 2 : 0)
  4418. var txtGWCJSESRS = (result.hasOwnProperty("公务舱JSES") ? result["公务舱JSES"] : 0)
  4419. var JJCSUITERS = (result.hasOwnProperty("经济舱SUITE") ? result["经济舱SUITE"] : 0)
  4420. var txtGWCSUITERS = (result.hasOwnProperty("公务舱SUITE") ? result["公务舱SUITE"] : 0)
  4421. var rightSum = 0;
  4422. this.OtherCostPropertyBJ.forEach((x) => {
  4423. rightSum += Number(that.calculateDRBJ(x));
  4424. })
  4425. let JJCSGRDRBJ = (rightSum + Number(that.calculateDRBJ('jjc')) + Number(that.calculateDRBJ('sgr'))).toFixed(2);
  4426. let JJCTBRDRBJ = (rightSum + (Number(that.calculateDRBJ('tbr')) / 2) + Number(that.calculateDRBJ('jjc'))).toFixed(2);
  4427. let JJCSUITEDRBJ = (rightSum + Number(that.calculateDRBJ('suite')) + Number(that.calculateDRBJ('jjc'))).toFixed(2);
  4428. let GWCSUITEDRBJ = (rightSum + Number(that.calculateDRBJ('suite')) + Number(that.calculateDRBJ('gwc'))).toFixed(2);
  4429. let GWCSGRDRBJ = (rightSum + Number(that.calculateDRBJ('sgr')) + Number(that.calculateDRBJ('gwc'))).toFixed(2);
  4430. let GWCJSESDRBJ = (rightSum + Number(that.calculateDRBJ('jses')) + Number(that.calculateDRBJ('gwc'))).toFixed(2);
  4431. airs.push({
  4432. "code": "JJCTBR",
  4433. "number": txtJJCTBRRS,
  4434. "price": JJCTBRDRBJ,
  4435. "costType": "A"
  4436. });
  4437. airs.push({
  4438. "code": "JJCSGR",
  4439. "number": txtJJCSGRRS,
  4440. "price": JJCSGRDRBJ,
  4441. "costType": "A"
  4442. });
  4443. airs.push({
  4444. "code": "GWCSGR",
  4445. "number": lblGWCSGRRS,
  4446. "price": GWCSGRDRBJ,
  4447. "costType": "A"
  4448. });
  4449. airs.push({
  4450. "code": "GWCJSES",
  4451. "number": txtGWCJSESRS,
  4452. "price": GWCJSESDRBJ,
  4453. "costType": "A"
  4454. });
  4455. airs.push({
  4456. "code": "GWCSUITE",
  4457. "number": txtGWCSUITERS,
  4458. "price": GWCSUITEDRBJ,
  4459. "costType": "A"
  4460. });
  4461. airs.push({
  4462. "code": "JJCSUITE",
  4463. "number": JJCSUITERS,
  4464. "price": JJCSUITEDRBJ,
  4465. "costType": "A"
  4466. });
  4467. var that = this;
  4468. this.$axios.post('/api/Groups/ExportPriceCheckWordFile', { diid: this.diid, airs: airs }, {
  4469. headers: {
  4470. 'Authorization': this.token,
  4471. }
  4472. }).then(resp => {
  4473. ////console.log(resp, '------------------------------------');
  4474. try {
  4475. if (resp.data.code != 200) {
  4476. throw resp.data.msg;
  4477. }
  4478. var file = resp.data.data;
  4479. that.fileDownload(file.data, file.strFileName);
  4480. } catch (error) {
  4481. this.$message.error('操作失败!' + error.message);
  4482. }
  4483. })
  4484. },
  4485. fileDownload(data, filename) {
  4486. let blob = this.base64toBlob(data);
  4487. let link = document.createElement('a');
  4488. link.href = window.URL.createObjectURL(blob);
  4489. link.download = filename;
  4490. link.click();
  4491. },
  4492. base64toBlob(base64, type = 'application/octet-stream') {
  4493. const bstr = atob(base64);
  4494. let n = bstr.length;
  4495. const u8arr = new Uint8Array(n);
  4496. while (n--) {
  4497. u8arr[n] = bstr.charCodeAt(n);
  4498. }
  4499. return new Blob([u8arr], { type });
  4500. },
  4501. async GetGroupCostExcel() {
  4502. ////console.log(this.titleText, 'this.titleText');
  4503. var isTrue = await this.save();
  4504. if (!isTrue) {
  4505. this.$message.error('请检查数据!');
  4506. return;
  4507. }
  4508. var that = this;
  4509. var group = this.options.filter(function (x) {
  4510. return x.id == that.diid
  4511. })
  4512. if (group.length == 0) {
  4513. this.$message.error('请选择团组!' + resp.data.msg);
  4514. return;
  4515. }
  4516. var resultCurr = Number(this.AGroupCostParameter.currency);
  4517. if (isNaN(resultCurr)) {
  4518. resultCurr = this.AGroupCostParameter.currency;
  4519. } else {
  4520. for (let index = 0; index < this.currencyOption.length; index++) {
  4521. if (this.currencyOption[index].currencyId == resultCurr) {
  4522. resultCurr = this.currencyOption[index].currencyCode;
  4523. }
  4524. }
  4525. }
  4526. var data = {
  4527. diid: this.diid,
  4528. costType: this.costTypevalue,
  4529. title: {
  4530. groupNumber: Number(this.grouptitleinfo.visitPNumber),
  4531. teamName: group[0].groupName,
  4532. tax: this.AGroupCostParameter.tax,
  4533. currency: resultCurr,
  4534. rate: this.AGroupCostParameter.rate
  4535. },
  4536. leftInfo: {
  4537. },
  4538. rightInfo: {
  4539. },
  4540. titleModel: {
  4541. }
  4542. };
  4543. var leftObject = this.GetDomLeftValue();
  4544. var rightObject = this.GetDomRightValue();
  4545. data.leftInfo = leftObject;
  4546. data.rightInfo = rightObject;
  4547. data.titleModel = this.titleText;
  4548. ////console.log(data);
  4549. this.$axios.post('/api/Groups/ExportGroupCostExcelFile', data, {
  4550. headers: {
  4551. 'Authorization': this.token,
  4552. }
  4553. }).then(resp => {
  4554. ////console.log(resp, '------------------------------------');
  4555. if (resp.data.code == 200) {
  4556. var file = resp.data.data;
  4557. that.fileDownload(file.data, file.strFileName);
  4558. } else {
  4559. that.$message.error('操作失败!' + resp.data.msg);
  4560. }
  4561. })
  4562. },
  4563. GetDomLeftValue() {
  4564. var AllResult = [];
  4565. var boxDoms = document.querySelectorAll(".sheet-box .biaoge");
  4566. var titleClassName = 'el-table__header-wrapper';
  4567. var bodyClassName = 'el-table__body-wrapper';
  4568. var result = [];
  4569. for (var i = 0; i < boxDoms.length; i++) {
  4570. var chiBoxs = boxDoms[i].children[0].children;
  4571. var info = {};
  4572. info.index = i;
  4573. for (var j = 0; j < chiBoxs.length; j++) {
  4574. if (chiBoxs[j].className.indexOf(titleClassName) != -1) {
  4575. info.title = chiBoxs[j].querySelectorAll('thead tr th')[0].innerText;
  4576. } else if (chiBoxs[j].className.indexOf(bodyClassName) != -1) {
  4577. var title = info.title;
  4578. if (title.indexOf('酒店') != -1 || title.indexOf('地接') != -1 || title.indexOf('公务单人') != -1 || title.indexOf('零用金') != -1) {
  4579. info.cb = chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span').innerText : '0';
  4580. } else {
  4581. info.cb = chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('input').value : '0';
  4582. }
  4583. info.rs = chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input').value : '0';
  4584. info.xs = chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('input').value : '0';
  4585. }
  4586. }
  4587. result.push(info)
  4588. }
  4589. AllResult.push({ type: "A", leftinfoNumber: result })
  4590. if (this.costTypevalue == 'B') {
  4591. var boxDoms = document.querySelectorAll(".sheet-box .biaogeB");
  4592. var result = [];
  4593. for (var i = 0; i < boxDoms.length; i++) {
  4594. var chiBoxs = boxDoms[i].children[0].children;
  4595. var info = {};
  4596. info.index = i;
  4597. for (var j = 0; j < chiBoxs.length; j++) {
  4598. if (chiBoxs[j].className.indexOf(titleClassName) != -1) {
  4599. info.title = chiBoxs[j].querySelectorAll('thead tr th')[0].innerText;
  4600. } else if (chiBoxs[j].className.indexOf(bodyClassName) != -1) {
  4601. var title = info.title;
  4602. if (title.indexOf('酒店') != -1 || title.indexOf('地接') != -1 || title.indexOf('公务单人') != -1 || title.indexOf('零用金') != -1) {
  4603. info.cb = chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span').innerText : '0';
  4604. } else {
  4605. info.cb = chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('input').value : '0';
  4606. }
  4607. info.rs = chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input').value : '0';
  4608. info.xs = chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('input').value : '0';
  4609. }
  4610. }
  4611. result.push(info)
  4612. }
  4613. AllResult.push({ type: "B", leftinfoNumber: result })
  4614. }
  4615. return AllResult;
  4616. },
  4617. GetDomRightValue() {
  4618. var AllResult = [];
  4619. var boxDoms = document.querySelectorAll(".cabin-li .biaoge");
  4620. var titleClassName = 'el-table__header-wrapper';
  4621. var bodyClassName = 'el-table__body-wrapper';
  4622. var result = [];
  4623. for (var i = 0; i < boxDoms.length - 1; i++) {
  4624. var chiBoxs = boxDoms[i].children[1].children;
  4625. var info = {};
  4626. info.index = i;
  4627. for (var j = 0; j < chiBoxs.length; j++) {
  4628. if (chiBoxs[j].className.indexOf(titleClassName) != -1) {
  4629. info.title = boxDoms[i].children[0].innerText + chiBoxs[j].querySelectorAll('thead tr th')[0].innerText;
  4630. } else if (chiBoxs[j].className.indexOf(bodyClassName) != -1) {
  4631. info.cb = chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span').innerText : '0';
  4632. info.rs = chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input').value : '0';
  4633. info.xs = chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('span').innerText : '0';
  4634. info.bj = chiBoxs[j].querySelectorAll('tbody tr td')[3].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[3].querySelector('span').innerText : '0';
  4635. }
  4636. }
  4637. result.push(info)
  4638. }
  4639. AllResult.push({ type: "A", rightInfoNumber: result })
  4640. if (this.costTypevalue == 'B') {
  4641. var boxDoms = document.querySelectorAll(".cabin-li .biaogeB");
  4642. var result = [];
  4643. for (var i = 0; i < boxDoms.length; i++) {
  4644. var chiBoxs = boxDoms[i].children[1].children;
  4645. var info = {};
  4646. info.index = i;
  4647. for (var j = 0; j < chiBoxs.length; j++) {
  4648. if (chiBoxs[j].className.indexOf(titleClassName) != -1) {
  4649. info.title = boxDoms[i].children[0].innerText + chiBoxs[j].querySelectorAll('thead tr th')[0].innerText;
  4650. } else if (chiBoxs[j].className.indexOf(bodyClassName) != -1) {
  4651. info.cb = chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[0].querySelector('span').innerText : '0';
  4652. info.rs = chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input') ? chiBoxs[j].querySelectorAll('tbody tr td')[1].querySelector('input').value : '0';
  4653. info.xs = chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[2].querySelector('span').innerText : '0';
  4654. info.bj = chiBoxs[j].querySelectorAll('tbody tr td')[3].querySelector('span') ? chiBoxs[j].querySelectorAll('tbody tr td')[3].querySelector('span').innerText : '0';
  4655. }
  4656. }
  4657. result.push(info)
  4658. }
  4659. AllResult.push({ type: "B", rightInfoNumber: result })
  4660. }
  4661. return AllResult;
  4662. },
  4663. setLastTitle(list) {
  4664. let summaryRow = document.querySelectorAll('.el-table__footer-wrapper .cell');
  4665. for (var i = 0; i < summaryRow.length; i++) {
  4666. let summaryRowOne = summaryRow[i];
  4667. if (summaryRowOne.innerHTML == '总计:' || summaryRowOne.innerHTML == '——') {
  4668. } else {
  4669. summaryRowOne.setAttribute('title', list[i]);
  4670. }
  4671. }
  4672. },
  4673. GetClientWord() {
  4674. var that = this;
  4675. var data = {
  4676. "diid": this.diid,
  4677. "costType": this.costTypevalue,
  4678. "rate": this.AGroupCostParameter.rate,
  4679. "carGuides1": "",
  4680. "meal": "",
  4681. "subsidizedMeals": "",
  4682. "nightRepair": "",
  4683. "attractionsTickets": "",
  4684. "miscellaneousFees": "",
  4685. "aTip": "",
  4686. "tzZCost": "",
  4687. "leftInfo": '',
  4688. };
  4689. var vehicleResult = this.GetDJLableBJ(this.vehicleLables);
  4690. var DJMealResult = this.GetDJLableBJ(this.DJMeal);
  4691. var SubsidizedMealsResult = this.GetDJLableBJ(this.SubsidizedMeals);
  4692. var NightRepairResult = this.GetDJLableBJ(this.NightRepair);
  4693. var AttractionsTicketsResult = this.GetDJLableBJ(this.AttractionsTickets);
  4694. var DJMealResult = this.GetDJLableBJ(this.DJMeal);
  4695. var ATipResult = this.GetDJLableBJ(this.ATipResult);
  4696. data.leftInfo = this.GetDomLeftValue();
  4697. // vehicleLables: ['VF', 'T/G OF', 'T/G S', 'T/G TF', 'C/F OF'],
  4698. // DJMeal: ['B', 'L', 'D'],
  4699. // SubsidizedMeals: ['T/G M', 'C/F M'],
  4700. // NightRepair: ['T/G A'],
  4701. // AttractionsTickets: ['T/G EF', 'EF'],
  4702. // MiscellaneousFees: ['B/R/F', 'TE', 'T/L F'],
  4703. // ATip: ['T/G T', 'DRV T'],
  4704. if (this.costTypevalue === "B") {
  4705. data.carGuides1 = "RMB A段费用 " + vehicleResult.sum + " B段费用 RMB" + vehicleResult.Bsum;
  4706. data.meal = "RMB A段费用 " + DJMealResult.sum + " B段费用 RMB" + DJMealResult.Bsum;
  4707. data.subsidizedMeals = "RMB A段费用 " + SubsidizedMealsResult.sum + " B段费用 RMB" + SubsidizedMealsResult.Bsum;
  4708. data.nightRepair = "RMB A段费用 " + NightRepairResult.sum + " B段费用 RMB" + NightRepairResult.Bsum;
  4709. data.attractionsTickets = "RMB A段费用 " + AttractionsTicketsResult.sum + " B段费用 RMB" + AttractionsTicketsResult.Bsum;
  4710. data.miscellaneousFees = "RMB A段费用 " + DJMealResult.sum + " B段费用 RMB" + DJMealResult.Bsum;
  4711. data.aTip = "RMB A段费用 " + ATipResult.sum + " B段费用 RMB" + ATipResult.Bsum;
  4712. } else {
  4713. data.carGuides1 = "RMB " + vehicleResult.sum;
  4714. data.meal = "RMB " + DJMealResult.sum;
  4715. data.subsidizedMeals = "RMB " + SubsidizedMealsResult.sum;
  4716. data.nightRepair = "RMB " + NightRepairResult.sum;
  4717. data.attractionsTickets = "RMB " + AttractionsTicketsResult.sum;
  4718. data.miscellaneousFees = "RMB " + DJMealResult.sum;
  4719. data.aTip = "RMB " + ATipResult.sum;
  4720. }
  4721. var cabinDatalLast = this.cabinDatal.filter(function (x) {
  4722. return x.label == '团组预算明细'
  4723. })
  4724. data.tzZCost = cabinDatalLast[0].sheetInfo[0].gtroupQuotes;
  4725. this.$axios.post('/api/Groups/ExportClientWordFile', data, {
  4726. headers: {
  4727. 'Authorization': this.token,
  4728. }
  4729. }).then(resp => {
  4730. ////console.log(resp, '------------------------------------');
  4731. if (resp.data.code == 200) {
  4732. var file = resp.data.data;
  4733. that.fileDownload(file.data, file.strFileName);
  4734. } else {
  4735. that.$message.error('操作失败!' + resp.data.msg);
  4736. }
  4737. })
  4738. },
  4739. insertRow(index, rowParam, oper) {
  4740. var that = this;
  4741. var row = {
  4742. "diid": this.diid,
  4743. "day": rowParam.day,
  4744. "date": "",
  4745. "itin": "",
  4746. "carType": "",
  4747. "carCost": "",
  4748. "carNumber": "",
  4749. "carTiming": "",
  4750. "tgs": "",
  4751. "tgwh": "",
  4752. "tgn": "",
  4753. "tgof": "",
  4754. "tgm": "",
  4755. "tga": "",
  4756. "tgtf": "",
  4757. "tgef": "",
  4758. "cfs": "",
  4759. "cfm": "",
  4760. "cfof": "",
  4761. "b": "",
  4762. "l": "",
  4763. "d": "",
  4764. "tbr": "",
  4765. "sgr": "",
  4766. "jS_ES": "",
  4767. "suite": "",
  4768. "accon": "",
  4769. "tv": "",
  4770. "iL": "",
  4771. "if": "",
  4772. "ef": "",
  4773. "b_R_F": "",
  4774. "te": "",
  4775. "tgTips": "",
  4776. "drvTips": "",
  4777. "pc": "",
  4778. "tlf": "",
  4779. "ect": "",
  4780. "id": 1,
  4781. "gwCount": "",
  4782. "fyCount": ""
  4783. };
  4784. if (oper == 'UP') {
  4785. if (rowParam.date) {
  4786. row.date = this.addOneDay(rowParam.date, -1);
  4787. }
  4788. that.tableData.splice(index, 0, row)
  4789. } else {
  4790. if (rowParam.date) {
  4791. row.date = this.addOneDay(rowParam.date, 1);
  4792. }
  4793. that.tableData.splice(index + 1, 0, row)
  4794. }
  4795. ////console.log('that.tableData', that.tableData)
  4796. var thisDay = 1;
  4797. for (var i = 0; i < that.tableData.length; i++) {
  4798. ////console.log("iiiiiiiiiiiiiiii", i, Number(that.tableData.day))
  4799. if (Number(that.tableData[i].day) > 0) {
  4800. that.tableData[i].day = thisDay;
  4801. thisDay++;
  4802. }
  4803. }
  4804. },
  4805. Dataformat() {
  4806. var that = this;
  4807. var oldSoure = JSON.stringify(that.tableData);
  4808. var souer = {
  4809. "diid": this.diid,
  4810. "day": "-",
  4811. "date": "",
  4812. "itin": "",
  4813. "carType": "",
  4814. "carCost": 0,
  4815. "carNumber": 0,
  4816. "carTiming": 0,
  4817. "tgs": 0,
  4818. "tgwh": 0,
  4819. "tgn": 0,
  4820. "tgof": 0,
  4821. "tgm": 0,
  4822. "tga": 0,
  4823. "tgtf": 0,
  4824. "tgef": 0,
  4825. "cfs": 0,
  4826. "cfm": 0,
  4827. "cfof": 0,
  4828. "b": 0,
  4829. "l": 0,
  4830. "d": 0,
  4831. "tbr": 0,
  4832. "sgr": 0,
  4833. "jS_ES": 0,
  4834. "suite": 0,
  4835. "accon": "",
  4836. "tv": 0,
  4837. "iL": 0,
  4838. "if": 0,
  4839. "ef": 0,
  4840. "b_R_F": 0,
  4841. "te": 0,
  4842. "tgTips": 0,
  4843. "drvTips": 0,
  4844. "pc": 0,
  4845. "tlf": 0,
  4846. "ect": 0,
  4847. "id": 1,
  4848. "gwCount": "",
  4849. "fyCount": ""
  4850. };
  4851. var numberList = [];
  4852. for (var key in souer) {
  4853. if (typeof souer[key] == 'number') {
  4854. numberList.push(key);
  4855. }
  4856. }
  4857. ////console.log(numberList, "numberList!");
  4858. ////console.log(that.tableData, "that.tableData!");
  4859. for (var i = 0; i < that.tableData.length; i++) {
  4860. that.tableData[i].day = that.tableData[i].day.toString();
  4861. for (var j = 0; j < numberList.length; j++) {
  4862. if (that.tableData[i][numberList[j]] === "") {
  4863. ////console.log(i + "行数据异常!", numberList[j]);
  4864. that.tableData[i][numberList[j]] = 0;
  4865. }
  4866. }
  4867. }
  4868. var NewSoure = [...that.tableData];
  4869. that.tableData = JSON.parse(oldSoure);
  4870. return NewSoure;
  4871. },
  4872. dateChange(val, index) {
  4873. const regex = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/
  4874. if (!regex.test(val)) {
  4875. this.$message.error('日期格式不正确!应该为YYYY-MM-DD格式!');
  4876. this.tableData[index].date = "";
  4877. }
  4878. },
  4879. GetDJLableBJ(lableList) {
  4880. var that = this;
  4881. var result = { sum: 0, Bsum: 0 };
  4882. if (typeof lableList != "object" || lableList['length'] == undefined) {
  4883. return result
  4884. }
  4885. let Djsum = 0;
  4886. let BDjsum = 0;
  4887. for (var i = 0; i < lableList.length; i++) {
  4888. that.sumTopPrice.forEach(function (item1) {
  4889. if (lableList[i] == item1.label) {
  4890. var Aprice = Number(item1.Aprice);
  4891. if (!isNaN(Aprice)) {
  4892. Djsum += Aprice;
  4893. }
  4894. var Bprice = Number(item1.Bprice);
  4895. if (!isNaN(Bprice)) {
  4896. BDjsum += Bprice;
  4897. }
  4898. }
  4899. })
  4900. }
  4901. Djsum = Djsum * this.AGroupCostParameter.rate * this.AGroupCostParameter.djxs;
  4902. BDjsum = BDjsum * this.AGroupCostParameter.rate * this.BGroupCostParameter.djxs;
  4903. if (isNaN(Djsum)) {
  4904. Djsum = 0;
  4905. }
  4906. if (isNaN(BDjsum)) {
  4907. BDjsum = 0;
  4908. }
  4909. result.sum = Djsum.toFixed(2);
  4910. result.Bsum = BDjsum.toFixed(2);
  4911. return result;
  4912. },
  4913. handleChange(currentValue, oldValue) {
  4914. ////console.log(currentValue, oldValue);
  4915. if (currentValue == undefined) {
  4916. }
  4917. },
  4918. GetWeek(date) {
  4919. if (date) {
  4920. try {
  4921. var myDate = new Date(date);
  4922. var myDay = myDate.getDay();//获取存储当前日期
  4923. var weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
  4924. return weekday[myDay];
  4925. } catch (e) {
  4926. ////console.log("时间格式不正确!")
  4927. return "时间格式不正确!";
  4928. }
  4929. }
  4930. return '';
  4931. },
  4932. confirm() {
  4933. debugger;
  4934. this.outerVisible = false;
  4935. if (this.dialogSelectObject == null) {
  4936. this.dialogSelectObject = {};
  4937. }
  4938. if (Object.keys(this.dialogSelectObject).length != 0) {
  4939. const possibleDialogTitles = ['选择车导数据', '导游信息', '选择车数据', '景点信息'];
  4940. const indexBtn = possibleDialogTitles.indexOf(this.DialogTitle);
  4941. if (indexBtn != -1) {
  4942. if (indexBtn == 0) {
  4943. this.bindCD();
  4944. } else if (indexBtn == 1) {
  4945. this.bindDY();
  4946. } else if (indexBtn == 2) {
  4947. this.bindCSJ();
  4948. } else if (indexBtn == 3) {
  4949. this.bindJD();
  4950. }
  4951. }
  4952. }
  4953. this.dialogSelectObject = {};
  4954. },
  4955. bindCD() {
  4956. debugger;
  4957. var offer = this.dialogSelectObject.offer.match(/\d+/g) != null ? Number(this.dialogSelectObject.offer.match(/\d+/g)[0]) : 0;
  4958. var cgCost = this.dialogSelectObject.cgCost.match(/\d+/g) != null ? Number(this.dialogSelectObject.cgCost.match(/\d+/g)[0]) : 0;
  4959. var cgOvertimeFee = this.dialogSelectObject.cgOvertimeFee.match(/\d+/g) != null ? Number(this.dialogSelectObject.cgOvertimeFee.match(/\d+/g)[0]) : 0;
  4960. var overtimeFee = this.dialogSelectObject.overtimeFee.match(/\d+/g) != null ? Number(this.dialogSelectObject.overtimeFee.match(/\d+/g)[0]) : 0;
  4961. var runingTime = this.dialogSelectObject.runingTime.match(/\d+/g) != null ? Number(this.dialogSelectObject.runingTime.match(/\d+/g)[0]) : 0;
  4962. var row = this.tableData[this.rowIndex];
  4963. var carNumber = row.carNumber;
  4964. row['carCost'] = (carNumber * offer).toFixed(2);
  4965. row['tgs'] = cgCost.toFixed(2);
  4966. row['carTiming'] = runingTime.toFixed(2);
  4967. var carType = this.dialogSelectObject.city + "/" + this.dialogSelectObject.carType + "/" + this.dialogSelectObject.serviceType + "\n";
  4968. row['carType'] = carType;
  4969. },
  4970. bindDY() {
  4971. debugger;
  4972. var row = this.tableData[this.rowIndex];
  4973. var tgn = row.tgn;
  4974. var price = this.dialogSelectObject.price.match(/\d+/g) != null ? Number(this.dialogSelectObject.price.match(/\d+/g)[0]) : 0;
  4975. var translationPrice = this.dialogSelectObject.translationPrice.match(/\d+/g) != null ? Number(this.dialogSelectObject.translationPrice.match(/\d+/g)[0]) : 0;
  4976. var when = this.dialogSelectObject.when.match(/\d+/g) != null ? Number(this.dialogSelectObject.when.match(/\d+/g)[0]) : 0;
  4977. row['tgs'] = (tgn * price).toFixed(2);
  4978. row['if'] = translationPrice.toFixed(2);
  4979. row['tgwh'] = when.toFixed(2);
  4980. },
  4981. bindCSJ() {
  4982. debugger;
  4983. var row = this.tableData[this.rowIndex];
  4984. var carType = this.dialogSelectObject.city + "/" + this.dialogSelectObject.carType + "/" + this.dialogSelectObject.serviceType + "\n";
  4985. var toPrice = this.dialogSelectObject.price.match(/\d+/g) != null ? Number(this.dialogSelectObject.price.match(/\d+/g)[0]) : 0;
  4986. var when = this.dialogSelectObject.when.match(/\d+/g) != null ? Number(this.dialogSelectObject.when.match(/\d+/g)[0]) : 0;
  4987. row['carType'] = carType;
  4988. row['carCost'] = toPrice.toFixed(2);
  4989. row['carTiming'] = when.toFixed(2);
  4990. },
  4991. bindJD() {
  4992. debugger;
  4993. var row = this.tableData[this.rowIndex];
  4994. var Price = this.dialogSelectObject.price;
  4995. row['ef'] = Price.toFixed(2);
  4996. },
  4997. QueryRate() {
  4998. var url = "/api/Business/PostGroupTeamRateByDiIdAndCTableId"
  4999. var that = this
  5000. this.$axios({
  5001. method: 'post',
  5002. url: url,
  5003. headers: {
  5004. Authorization: 'Bearer ' + that.token
  5005. },
  5006. data: {
  5007. "portType": 1,
  5008. "diId": this.diid,
  5009. "cTable": 85
  5010. }
  5011. }).then(function (res) {
  5012. if (res.data.code == 200) {
  5013. //汇率
  5014. //console.log("汇率--", res.data.data);
  5015. that.currencyOption = res.data.data.teamRates;
  5016. }
  5017. })
  5018. },
  5019. changeCurrency(data) {
  5020. //console.log('data', data);
  5021. for (let index = 0; index < this.currencyOption.length; index++) {
  5022. if (this.currencyOption[index].currencyId == data) {
  5023. this.AGroupCostParameter.rate = this.currencyOption[index].rate;
  5024. break;
  5025. }
  5026. }
  5027. },
  5028. inSelectChangeCheck() {
  5029. //console.log('inSelectChangeCheck');
  5030. var arr = [];
  5031. var pusharr = [];
  5032. var topArr = [];
  5033. var topPushArr = [];
  5034. if (this.costTypevalue == 'A') {
  5035. var defaultP = this.costTypeHotelNumbers.filter(item => item.type == 'Default')[0];
  5036. if (defaultP.sgr == 0) {
  5037. arr.push('酒店SGR');
  5038. topArr.push('SGR')
  5039. } else {
  5040. pusharr.push('酒店SGR');
  5041. topPushArr.push('SGR')
  5042. }
  5043. if (defaultP.tbr == 0) {
  5044. arr.push('酒店TBR');
  5045. topArr.push('TBR')
  5046. } else {
  5047. pusharr.push('酒店TBR');
  5048. topPushArr.push('TBR')
  5049. }
  5050. if (defaultP.jses == 0) {
  5051. arr.push('酒店JSES');
  5052. topArr.push('JS/ES')
  5053. } else {
  5054. pusharr.push('酒店JSES');
  5055. topPushArr.push('JS/ES')
  5056. }
  5057. if (defaultP.suite == 0) {
  5058. topArr.push('SUITE')
  5059. arr.push('酒店SUITE');
  5060. }
  5061. else {
  5062. pusharr.push('酒店SUITE');
  5063. topPushArr.push('SUITE')
  5064. }
  5065. } else {
  5066. var HotelA = this.costTypeHotelNumbers.filter(item => item.type == 'A')[0];
  5067. var HotelB = this.costTypeHotelNumbers.filter(item => item.type == 'B')[0];
  5068. if (HotelA.sgr == 0 && HotelB.sgr == 0) { arr.push('酒店SGR'); } else {
  5069. pusharr.push('酒店SGR');
  5070. }
  5071. if (HotelA.tbr == 0 && HotelB.tbr == 0) { arr.push('酒店TBR'); } else {
  5072. pusharr.push('酒店TBR');
  5073. }
  5074. if (HotelA.jses == 0 && HotelB.jses == 0) { arr.push('酒店JSES'); } else {
  5075. pusharr.push('酒店JSES');
  5076. }
  5077. if (HotelA.suite == 0 && HotelB.suite == 0) { arr.push('酒店SUITE'); } else {
  5078. pusharr.push('酒店SUITE');
  5079. }
  5080. }
  5081. var leftCheck = this.CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues;
  5082. var topCheck = this.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues;
  5083. var resultArr = leftCheck.filter(item => !arr.includes(item));
  5084. var topResultArr = topCheck.filter(item => !topArr.includes(item));
  5085. resultArr = [...resultArr, ...pusharr];
  5086. resultArr = [...new Set(resultArr)];
  5087. //console.log('resultArr', resultArr);
  5088. topResultArr = [...topResultArr, ...topPushArr];
  5089. topResultArr = [...new Set(topResultArr)];
  5090. this.CheckBoxListSelect.filter(item => item.cbType == 'Left')[0].cbValues = resultArr;
  5091. this.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues = topResultArr;
  5092. },
  5093. GivePeopleNumber() {
  5094. var number = this.grouptitleinfo.visitPNumber;
  5095. if (this.AGroupCostParameter.visaRS == 0) {
  5096. this.AGroupCostParameter.visaRS = number;
  5097. }
  5098. if (this.AGroupCostParameter.bxrs == 0) {
  5099. this.AGroupCostParameter.bxrs = number;
  5100. }
  5101. if (this.AGroupCostParameter.djrs == 0) {
  5102. this.AGroupCostParameter.djrs = number;
  5103. }
  5104. if (this.AGroupCostParameter.lyjrs == 0) {
  5105. this.AGroupCostParameter.lyjrs = number;
  5106. }
  5107. if (this.AGroupCostParameter.gwrs == 0) {
  5108. this.AGroupCostParameter.gwrs = number;
  5109. }
  5110. },
  5111. lableSetPrice(lable, total, single) {
  5112. //遍历this.columnTotalData
  5113. for (var i = 0; i < this.columnTotalData.length; i++) {
  5114. if (this.columnTotalData[i].label == lable) {
  5115. this.columnTotalData[i].totalPrice = total;
  5116. this.columnTotalData[i].singlePrice = single;
  5117. break
  5118. }
  5119. }
  5120. },
  5121. BlableSetPrice(lable, total, single) {
  5122. for (var i = 0; i < this.columnTotalData.length; i++) {
  5123. if (this.columnTotalData[i].label == lable) {
  5124. var aT = Number(this.columnTotalData[i].totalPrice).toFixed(2);
  5125. var aS = Number(this.columnTotalData[i].singlePrice).toFixed(2);
  5126. if (!isNaN(aT)) {
  5127. this.columnTotalData[i].totalPrice = 'A段费用' + aT + '\r\n B段费用' + total;
  5128. }
  5129. if (!isNaN(aS)) {
  5130. this.columnTotalData[i].singlePrice = 'A段费用' + aS + '\r\n B段费用' + single;
  5131. }
  5132. break
  5133. }
  5134. }
  5135. },
  5136. },
  5137. updated() {
  5138. this.$emit('transfer', true)
  5139. },
  5140. destroyed() {
  5141. this.$emit('transfer', false)
  5142. clearInterval(this.autoSave);
  5143. },
  5144. mounted() {
  5145. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  5146. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
  5147. var costLoadData = localStorage.getItem('costLoadData');
  5148. const mm = 1000 * 60;
  5149. if (this.userId == 21) {
  5150. this.autoSave = setInterval(() => {
  5151. this.$message.success('自动保存中...');
  5152. setTimeout(() => {
  5153. this.save();
  5154. }, 100);
  5155. }, mm * 3);
  5156. }
  5157. document.querySelectorAll('.el-table__footer')[0].style.display = "none"
  5158. if (costLoadData) {
  5159. var JSONP = JSON.parse(costLoadData);
  5160. var diidP = Number(JSONP.diid);
  5161. this.loadData(isNaN(diidP) ? -1 : diidP);
  5162. } else {
  5163. this.loadData(-1);
  5164. }
  5165. window.Vue = this;
  5166. },
  5167. computed: {
  5168. defaultCostTypeHotelNumber() {
  5169. const defaultItems = this.costTypeHotelNumbers.filter(item => item.type == 'Default');
  5170. return defaultItems[0];
  5171. },
  5172. filterdialogSearchInput() {
  5173. var that = this;
  5174. return this.dialogTableData.filter(function (x) {
  5175. return x.city.indexOf(that.dialogSearchInput) != -1 || x.country.indexOf(that.dialogSearchInput) != -1;
  5176. })
  5177. },
  5178. columnWidth() {
  5179. console.log(this.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.length);
  5180. if (this.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.length < 22) {
  5181. return 74
  5182. }
  5183. else if (22 <= this.CheckBoxListSelect.filter(item => item.cbType == 'Top')[0].cbValues.length < 26) {
  5184. return 59
  5185. }
  5186. else {
  5187. return 55
  5188. }
  5189. },
  5190. ShowMeals() {
  5191. if (this.ShowBaoPi.length > 0) {
  5192. var result = this.ShowBaoPi.filter(x => x.type == 'Meals')[0];
  5193. if (result) {
  5194. return result.content;
  5195. } else {
  5196. return [];
  5197. }
  5198. }
  5199. return [];
  5200. },
  5201. ShowHotel() {
  5202. if (this.ShowBaoPi.length > 0) {
  5203. var result = this.ShowBaoPi.filter(x => x.type == 'Hotel')[0];
  5204. if (result) {
  5205. return result.content;
  5206. } else {
  5207. return [];
  5208. }
  5209. }
  5210. return [];
  5211. },
  5212. ShowGongZa() {
  5213. if (this.ShowBaoPi.length > 0) {
  5214. var result = this.ShowBaoPi.filter(x => x.type == 'GongZa')[0];
  5215. if (result) {
  5216. return result.content;
  5217. } else {
  5218. return [];
  5219. }
  5220. }
  5221. return [];
  5222. },
  5223. getCurr() {
  5224. var currStr = '';
  5225. var curr = this.AGroupCostParameter.currency;
  5226. var currResult = Number(curr);
  5227. if (isNaN(currResult)) {
  5228. currStr = curr;
  5229. } else {
  5230. for (let index = 0; index < this.currencyOption.length; index++) {
  5231. if (this.currencyOption[index].currencyId == currResult) {
  5232. currStr = this.currencyOption[index].currencyCode;
  5233. break;
  5234. }
  5235. }
  5236. }
  5237. return currStr;
  5238. },
  5239. }
  5240. }
  5241. </script>
  5242. <style lang="less" scoped>
  5243. /deep/ .el-table th.el-table__cell>.cell {
  5244. white-space: pre-wrap;
  5245. }
  5246. /deep/ .el-table--striped .el-table__body tr.el-table__row--striped td {
  5247. background: #F0F9FF;
  5248. }
  5249. </style>
  5250. <style>
  5251. .cost-box {
  5252. background-color: #fff;
  5253. padding: 10px;
  5254. box-shadow: 0 0 5px #0005;
  5255. border-radius: 10px;
  5256. }
  5257. .cost-box .el-button+.el-button {
  5258. margin-left: 0;
  5259. }
  5260. .fade-enter-active,
  5261. .fade-leave-active {
  5262. transition: opacity 1;
  5263. }
  5264. .fade-enter,
  5265. .fade-leave-to {
  5266. opacity: 0;
  5267. }
  5268. .cost-haed {
  5269. margin-bottom: 10px;
  5270. }
  5271. .ser-btn {
  5272. display: flex;
  5273. justify-content: space-between;
  5274. margin-bottom: 5px;
  5275. }
  5276. .cost-info {
  5277. display: flex;
  5278. }
  5279. .cost-info-li {
  5280. margin-right: 30px;
  5281. }
  5282. .cost-info-li label {
  5283. color: #606266;
  5284. font-size: 15px;
  5285. font-weight: 600;
  5286. }
  5287. .cost-info-li span {
  5288. color: #606266;
  5289. font-size: 14px;
  5290. }
  5291. .cost-box .el-checkbox-group {
  5292. margin: 5px 0;
  5293. }
  5294. .form-ss .el-checkbox {
  5295. width: 100px;
  5296. margin: 5px 0;
  5297. }
  5298. .sheet-box {
  5299. margin-top: 30px;
  5300. }
  5301. .cabin-box {
  5302. margin-top: 30px;
  5303. }
  5304. .biaoge,
  5305. .biaogeB {
  5306. margin-bottom: 30px;
  5307. }
  5308. .rapAddress {
  5309. overflow: hidden;
  5310. white-space: nowrap;
  5311. text-overflow: ellipsis;
  5312. }
  5313. .cost-box .cabin-box .cost-box .el-checkbox {
  5314. margin-right: 20px;
  5315. }
  5316. .cost-box .el-table .cell {
  5317. text-align: center;
  5318. padding-left: 5px;
  5319. padding-right: 5px;
  5320. font-size: 12px;
  5321. }
  5322. .figures-btn {
  5323. display: flex;
  5324. flex-direction: column;
  5325. align-items: center;
  5326. }
  5327. .figures-btn .el-button--mini {
  5328. width: 67px;
  5329. margin: 2px 0;
  5330. margin-left: 0;
  5331. }
  5332. .CostBShow .el-col-3 .el-form-item__content {
  5333. width: 60%;
  5334. }
  5335. .CostBShow .el-form-item__content {
  5336. width: 65%;
  5337. }
  5338. .CostBShow .el-date-editor--date {
  5339. width: 100%;
  5340. }
  5341. .Cost_topFlex .el-select {
  5342. width: 400px;
  5343. }
  5344. .hiddenElement {
  5345. visibility: hidden;
  5346. }
  5347. .cost-all .el-table__footer-wrapper .cell {
  5348. white-space: pre;
  5349. }
  5350. .cost-all .el-date-editor.el-input,
  5351. .el-date-editor.el-input__inner {
  5352. width: 100%;
  5353. }
  5354. .biaogeB .el-table .el-input--small {
  5355. width: 60%;
  5356. }
  5357. .biaogeKz .el-table .el-input--small {
  5358. width: 60%;
  5359. }
  5360. .czbtn {
  5361. width: 70px;
  5362. }
  5363. .tables .el-textarea {
  5364. font-size: 12px;
  5365. }
  5366. .tables .el-button--mini {
  5367. font-size: 12px;
  5368. }
  5369. .tables .el-textarea__inner {
  5370. padding: 0;
  5371. }
  5372. .tables .el-input--suffix .el-input__inner {
  5373. padding-right: 0px;
  5374. padding-left: 0px;
  5375. }
  5376. .tables .el-date-editor .el-icon-date {
  5377. display: none;
  5378. }
  5379. .form-ss .el-checkbox__label {
  5380. font-size: 12px;
  5381. }
  5382. .tables .el-input--mini {
  5383. font-size: 12px;
  5384. }
  5385. .tables .el-input__inner {
  5386. padding: 0;
  5387. text-align: center;
  5388. }
  5389. .sheet-box .el-table th.el-table__cell>.cell {
  5390. font-size: 12px;
  5391. }
  5392. .sheet-box .el-input__inner {
  5393. font-size: 12px;
  5394. }
  5395. .cost-all .el-form-item {
  5396. margin-bottom: 5px;
  5397. }
  5398. .cost-all input::-webkit-inner-spin-button {
  5399. -webkit-appearance: none !important;
  5400. }
  5401. .cost-all input::-webkit-outer-spin-button {
  5402. -webkit-appearance: none !important;
  5403. }
  5404. .cost-all input[type="number"] {
  5405. -moz-appearance: textfield;
  5406. }
  5407. .btntop:hover {
  5408. cursor: pointer;
  5409. color: #000;
  5410. }
  5411. .btnbottom:hover {
  5412. cursor: pointer;
  5413. color: #000;
  5414. }
  5415. .accon-ul {
  5416. position: absolute;
  5417. box-shadow: #0005 0 0 10px;
  5418. width: 200px;
  5419. z-index: 444;
  5420. background-color: #fff;
  5421. border-radius: 5px;
  5422. }
  5423. </style>