Cost.vue 199 KB

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