HotelReservations.vue 126 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449
  1. <template>
  2. <div v-loading.fullscreen.lock="loading">
  3. <div class="hotelr-all">
  4. <div class="hotelr-head">
  5. <div class="hotelr-head-li">
  6. <label>团组名称:</label>
  7. <el-select style="width:220px" @change="delegationSelectChange" v-model="OpHotelReservationsData.diId" clearable filterable
  8. placeholder="请选择">
  9. <el-option v-for="item in delegationInfoList" :key="item.id" :label="item.teamName"
  10. :value="item.id">
  11. </el-option>
  12. </el-select>
  13. </div>
  14. <div class="hotelr-info">
  15. <div class="hotelr-info-li">
  16. <label>团 号:</label>
  17. <span>{{ delegationInfo.tourCode }}</span>
  18. </div>
  19. <div class="hotelr-info-li">
  20. <label>客 户:</label>
  21. <span>{{ delegationInfo.clientName }}</span>
  22. </div>
  23. <div class="hotelr-info-li">
  24. <label>出访国家:</label>
  25. <span>{{ delegationInfo.visitCountry|filter_city }}</span>
  26. </div>
  27. <div class="hotelr-info-li">
  28. <label>起止日期:</label>
  29. <span>{{ delegationInfo.visitStartDate|filter_time }}~{{delegationInfo.visitEndDate|filter_time}}</span>
  30. </div>
  31. <div class="hotelr-info-li">
  32. <label>天数/人数:</label>
  33. <span>{{ delegationInfo.visitDays }}/{{ delegationInfo.visitPNumber }}</span>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="hotelr-table">
  38. <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" border
  39. style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
  40. <el-table-column type="index" label="序号" width="55">
  41. </el-table-column>
  42. <!-- <el-table-column prop="reservationsNo" label="预定号">
  43. </el-table-column> -->
  44. <el-table-column prop="hotelName" label="酒店名称" width="">
  45. </el-table-column>
  46. <el-table-column prop="checkInDate" label="入住日期" width="120">
  47. </el-table-column>
  48. <el-table-column prop="checkOutDate" label="退房日期" width="120">
  49. </el-table-column>
  50. <el-table-column prop="payMoney" label="付款金额" width="">
  51. <template slot-scope="scope">
  52. {{ scope.row.payMoney.toFixed(2) }} ({{ scope.row.payCurrency }})
  53. </template>
  54. </el-table-column>
  55. <el-table-column prop="createUserName" label="操作人" width="90">
  56. </el-table-column>
  57. <el-table-column prop="createTime" label="操作时间" width="180">
  58. </el-table-column>
  59. <el-table-column prop="isAuditGMStr" label="是否审核" width="85">
  60. </el-table-column>
  61. <el-table-column prop="name" label="操 作" width="140">
  62. <template slot-scope="scope">
  63. <el-button type="primary" size="mini" icon="el-icon-edit"
  64. @click="PostHotelReservationsDetails(scope.$index, scope.row)"></el-button>
  65. <el-button type="danger" size="mini" icon="el-icon-delete"
  66. @click="delinif(scope.$index, scope.row)"></el-button>
  67. </template>
  68. </el-table-column>
  69. <!-- <el-table-column prop="address" label="VOUCHER" width="100">
  70. <template slot-scope="scope">
  71. <i @click="DownloadVOUCHER(scope.$index, scope.row)">生成</i>
  72. </template>
  73. </el-table-column> -->
  74. </el-table>
  75. <div class="block">
  76. <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
  77. :current-page="currentPage" :page-sizes="[3, 5, 7, 9]" :page-size="pageSize"
  78. layout="total, sizes, prev, pager, next" :total="tableDatas.length">
  79. </el-pagination>
  80. </div>
  81. </div>
  82. <div class="hotelr-form">
  83. <div class="form-head">
  84. <div style="display: flex;align-items: center;">
  85. <el-popover placement="right" trigger="hover">
  86. <div>币种:{{bizhong}}&nbsp;&nbsp;&nbsp;汇率:{{fournum(huilv)}}</div>
  87. <el-table :data="budgeting" border>
  88. <el-table-column width="50" property="day" label="天数"></el-table-column>
  89. <el-table-column width="100" property="date" label="日期"></el-table-column>
  90. <el-table-column width="300" property="accon" label="酒店名称"></el-table-column>
  91. <el-table-column width="300" property="itin" label="行程描述"></el-table-column>
  92. <el-table-column width="110" property="sgr" label="单人间(SGR)"></el-table-column>
  93. <el-table-column width="100" property="tbr" label="双人(TBR)"></el-table-column>
  94. <el-table-column width="100" property="jS_ES" label="套间(JS_ES)"></el-table-column>
  95. <el-table-column width="115" label="套房(SUITE)">
  96. <template slot-scope="scope">
  97. {{ townum(scope.row.suite) }}
  98. </template>
  99. </el-table-column>
  100. </el-table>
  101. <el-button slot="reference">移上提示每天详细房价</el-button>
  102. </el-popover>
  103. <!-- 客户名单 -->
  104. <el-popover
  105. placement="bottom"
  106. width="662"
  107. trigger="hover">
  108. <el-table max-height="600" border :data="rollcallarr">
  109. <el-table-column width="100" property="date" label="姓名">
  110. <template slot-scope="scope">
  111. {{ scope.row.lastName}}{{scope.row.firstName}}
  112. </template>
  113. </el-table-column>
  114. <el-table-column width="200" property="lastName" label="拼音">
  115. <template slot-scope="scope">
  116. {{ pinyingxing(scope.row.lastName) }}/{{ pinyingxing(scope.row.firstName) }}
  117. </template>
  118. </el-table-column>
  119. <el-table-column width="50" property="sex" label="性别">
  120. <template slot-scope="scope">
  121. {{ scope.row.sex==0?'男':'女'}}
  122. </template>
  123. </el-table-column>
  124. <el-table-column width="110" property="birthDay" label="生日">
  125. <template slot-scope="scope">
  126. {{ fgarr(scope.row.birthDay) }}
  127. </template>
  128. </el-table-column>
  129. <el-table-column width="200" property="idCardNo" label="身份证号码">
  130. <template slot-scope="scope">
  131. {{ scope.row.idCardNo }}
  132. </template>
  133. </el-table-column>
  134. </el-table>
  135. <el-button style="margin-left: 10px;" slot="reference">移上查看客户名单</el-button>
  136. <!-- <span slot="reference" style="cursor: pointer;margin-left: 20px;">"移上查看客户名单"</span> -->
  137. </el-popover>
  138. </div>
  139. <div class="form-head-btn">
  140. <el-button type="primary" @click="DownloadVOUCHER">VOUCHER</el-button>
  141. <el-button type="primary" @click="ConfirmWord">确认单</el-button>
  142. <el-button type="primary" @click="BookingCost">预订成本</el-button>
  143. <el-button type="primary" @click="AddToggle(1)">新增切换</el-button>
  144. <el-button type="primary" @click="AddBtn('RequiredParameters')">保存设置</el-button>
  145. </div>
  146. </div>
  147. <el-form :model="RequiredParameters" :rules="RequiredParametersRules"
  148. ref="RequiredParameters" label-width="110px" class="demo-OpHotelReservationsData">
  149. <div class="form-foundationone select-bz">
  150. <div style="display: flex;flex-wrap: wrap;">
  151. <el-form-item style="width:395px ;" label="客人类型" prop="TypeGuest">
  152. <el-select size="medium" v-model="RequiredParameters.TypeGuest" placeholder="请选择客人类型">
  153. <el-option v-for="item in guestType" :key="item.id" :label="item.name" :value="item.id">
  154. </el-option>
  155. </el-select>
  156. </el-form-item>
  157. <!-- <el-form-item style="width:395px ;" label="银行卡" prop="BankCards">
  158. <el-select size="medium" value-key="value" v-model="RequiredParameters.BankCards"
  159. placeholder="银支付信用卡行卡" @change="budgetCurrencyChange" >
  160. <el-option v-for="item in bankCard" :key="item.id" :label="item.name"
  161. :value="item.id">
  162. </el-option>
  163. </el-select>
  164. </el-form-item>
  165. <el-form-item label="当前团组汇率" >
  166. <span>{{ RequiredParameters.CurrentRate*1?RequiredParameters.CurrentRate.toFixed(4):RequiredParameters.CurrentRate}}</span>
  167. </el-form-item> -->
  168. <el-form-item style="width:395px ;" label="入住卷号码" prop="VoucherNumber">
  169. <el-input size="medium" type="text"
  170. v-model="RequiredParameters.VoucherNumber"></el-input>
  171. </el-form-item>
  172. <el-form-item style="width:395px ;" label="预订网站" prop="BookingWeb">
  173. <el-select size="medium" v-model="RequiredParameters.BookingWeb"
  174. placeholder="预订网站">
  175. <el-option v-for="item in bookingWebsite" :key="item.id" :label="item.name"
  176. :value="item.id">
  177. </el-option>
  178. </el-select>
  179. </el-form-item>
  180. <!-- <el-form-item style="width:790px ;" label="预订号码" prop="ReservationNumber">
  181. <el-input :rows="1" type="textarea" v-model="RequiredParameters.ReservationNumber"></el-input>
  182. </el-form-item> -->
  183. <el-form-item style="width:395px ;" label="酒店确定号码" prop="DetermineNumber">
  184. <el-input size="medium" type="text"
  185. v-model="RequiredParameters.DetermineNumber"></el-input>
  186. </el-form-item>
  187. <el-form-item style="width:395px ;" label="所在地区" prop="AreaId">
  188. <el-select size="medium" filterable @change="AreaIdchange" v-model="RequiredParameters.AreaId"
  189. placeholder="所在地区">
  190. <el-option v-for="item in countrys" :key="item.id" :label="item.country"
  191. :value="item.id">
  192. {{ item.cityname }}
  193. </el-option>
  194. </el-select>
  195. <!-- <el-input size="medium" type="text" v-model="RequiredParameters.AreaId"></el-input> -->
  196. </el-form-item>
  197. <el-form-item style="width:395px ;" label="所在城市" prop="LocationCity">
  198. <el-input size="medium" type="text" v-model="RequiredParameters.LocationCity"></el-input>
  199. </el-form-item>
  200. <el-form-item style="width:395px ;" label="酒店名称" prop="HotelName">
  201. <el-input size="medium" type="text" v-model="RequiredParameters.HotelName"></el-input>
  202. </el-form-item>
  203. <el-form-item style="width:395px ;" label="酒店电话" prop="HotelPhone">
  204. <el-input size="medium" type="text" v-model="RequiredParameters.HotelPhone"></el-input>
  205. </el-form-item>
  206. </div>
  207. <el-form-item label="酒店地址" prop="HotelAddress">
  208. <el-input :rows="1" type="textarea" v-model="RequiredParameters.HotelAddress"></el-input>
  209. </el-form-item>
  210. <el-form-item label="客人姓名" prop="GuestName">
  211. <el-select
  212. size="medium"
  213. style="width: 100%;"
  214. v-model="RequiredParameters.GuestName"
  215. multiple
  216. filterable
  217. allow-create
  218. default-first-option
  219. @change="selectchg"
  220. placeholder="请选择人员">
  221. <el-option
  222. v-for="item in GuestNamelist"
  223. :key="item.id"
  224. :label="item.lastName+item.firstName"
  225. :value="item.id">
  226. </el-option>
  227. </el-select>
  228. <!-- <el-input :rows="1" type="textarea" v-model="RequiredParameters.GuestName"></el-input> -->
  229. </el-form-item>
  230. <div class="remcss" style="display: flex;flex-wrap: wrap;">
  231. <el-form-item prop="OnTime" style="width:395px ;" label="入住时间" required>
  232. <el-date-picker value-format="yyyy-MM-dd" @change="CalculateAmount" size="medium" type="date" placeholder="选择日期"
  233. v-model="RequiredParameters.OnTime" style="width: 100%;"></el-date-picker>
  234. </el-form-item>
  235. <el-form-item style="width:395px ;" label="离店时间" prop="OutTime">
  236. <el-date-picker value-format="yyyy-MM-dd" @change="CalculateAmount" size="medium" type="date" placeholder="选择时间"
  237. v-model="RequiredParameters.OutTime" style="width: 100%;"></el-date-picker>
  238. </el-form-item>
  239. <el-form-item style="width:395px ;" label="入住类型" prop="TypeStay">
  240. <el-select style="width: 100%;" size="medium" v-model="RequiredParameters.TypeStay"
  241. placeholder="请选择入住人类型">
  242. <el-option v-for="item in CheckType" :key="item.id" :label="item.name"
  243. :value="item.id">
  244. </el-option>
  245. </el-select>
  246. </el-form-item>
  247. </div>
  248. <el-form-item label="房间说明" prop="RoomExplain">
  249. <el-input :rows="1" type="textarea" v-model="RequiredParameters.RoomExplain"></el-input>
  250. </el-form-item>
  251. <el-form-item label="备注">
  252. <el-input :rows="3" type="textarea" v-model="RequiredParameters.Remark"></el-input>
  253. </el-form-item>
  254. </div>
  255. <div class="form-foundationone">
  256. <div class="Exchangerate-box">
  257. <div v-for="(item,index) in currencyarrss" :key="index">
  258. {{item.currencyCode}}:&nbsp;{{item.rate}}
  259. </div>
  260. </div>
  261. <div style="display: flex;flex-wrap: wrap;">
  262. <el-form-item style="width:395px ;" label="酒店单间">
  263. <el-input-number :controls="false" @change="CalculateAmount" style="width:50px ;" size="medium"
  264. v-model="TwoParameters.singleroomsNum"></el-input-number>
  265. <span>间</span>
  266. <el-input-number @change="CalculateAmount" class="fjprice" style="width:80px;" :precision="2" :controls="false" size="medium" v-model="TwoParameters.singleroomsPrice">
  267. </el-input-number>
  268. <span>单价</span>
  269. <el-select size="medium" filterable @change="selectroomCurrency" v-model="TwoParameters.singleroomsCurrency"
  270. style="width: 80px;" placeholder="">
  271. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  272. :value="item.currencyId">
  273. </el-option>
  274. </el-select>
  275. </el-form-item>
  276. <el-form-item style="width:395px ;" label="酒店双间">
  277. <el-input-number :controls="false" @change="CalculateAmount" style="width:50px ;" size="medium"
  278. v-model="TwoParameters.doubleroomNum"></el-input-number>
  279. <span>间</span>
  280. <el-input-number @change="CalculateAmount" class="fjprice" style="width:80px;" :precision="2" size="medium" :controls="false" v-model="TwoParameters.doubleroomPrice">
  281. </el-input-number>
  282. <!-- <el-input style="width:80px ;" size="medium"
  283. v-model="TwoParameters.doubleroomPrice"></el-input> -->
  284. <span>单价</span>
  285. <el-select size="medium" filterable @change="selectroomCurrency" v-model="TwoParameters.doubleroomCurrency"
  286. style="width: 80px;" placeholder="">
  287. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  288. :value="item.currencyId">
  289. </el-option>
  290. </el-select>
  291. </el-form-item>
  292. <el-form-item style="width:395px ;" label="酒店套房">
  293. <el-input-number :controls="false" @change="CalculateAmount" style="width:50px ;" size="medium"
  294. v-model="TwoParameters.suiteNum"></el-input-number>
  295. <span>间</span>
  296. <el-input-number @change="CalculateAmount" class="fjprice" style="width:80px;" :precision="2" size="medium" :controls="false" v-model="TwoParameters.suitePrice">
  297. </el-input-number>
  298. <!-- <el-input style="width:80px ;" size="medium"
  299. v-model="TwoParameters.suitePrice"></el-input> -->
  300. <span>单价</span>
  301. <el-select size="medium" filterable @change="selectroomCurrency" v-model="TwoParameters.suiteCurrency"
  302. style="width: 80px;" placeholder="">
  303. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  304. :value="item.currencyId">
  305. </el-option>
  306. </el-select>
  307. </el-form-item>
  308. <el-form-item style="width:395px ;" label="其他房型">
  309. <el-input-number :controls="false" @change="CalculateAmount" style="width:50px ;" size="medium"
  310. v-model="TwoParameters.otherroomNum"></el-input-number>
  311. <span>间</span>
  312. <el-input-number @change="CalculateAmount" class="fjprice" style="width:80px;" :precision="2" size="medium" :controls="false" v-model="TwoParameters.otherroomPrice">
  313. </el-input-number>
  314. <!-- <el-input style="width:80px ;" size="medium"
  315. v-model="TwoParameters.otherroomPrice"></el-input> -->
  316. <span>单价</span>
  317. <el-select size="medium" filterable @change="selectroomCurrency" v-model="TwoParameters.otherroomCurrency"
  318. style="width: 80px;" placeholder="">
  319. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  320. :value="item.currencyId">
  321. </el-option>
  322. </el-select>
  323. </el-form-item>
  324. <el-form-item style="width:395px;" label="酒店房费">
  325. <el-input-number class="fjprice" style="width: 50%;" :precision="2" size="medium" :controls="false" v-model="TwoParameters.amount"></el-input-number>
  326. <!-- <el-input size="medium" type="text" v-model="TwoParameters.amount" style="width: 50%;" @change="bankCardPriceChange"></el-input> -->
  327. <el-input disabled size="medium" type="text" v-model="TwoParameters.credit" style="width: 43%;"></el-input>
  328. </el-form-item>
  329. <el-form-item style="width:395px ;" label="房费地接代付">
  330. <el-switch @change="Payforselection(roomtaxobj.priceType,roomtaxobj.isOppay)" v-model="roomtaxobj.isOppay"></el-switch>
  331. </el-form-item>
  332. <div style="width: 395px;">
  333. <el-form-item label="支付方式:" label-width="110px">
  334. <el-select v-model="roomtaxobj.payDId" placeholder="支付方式"
  335. style="width: 100%;">
  336. <el-option v-for="item in payment" :key="item.id" :label="item.name "
  337. :value="item.id">
  338. </el-option>
  339. </el-select>
  340. </el-form-item>
  341. </div>
  342. <div style="width: 395px;">
  343. <el-form-item label="消费方式:" label-width="110px">
  344. <el-input placeholder="消费方式" v-model="roomtaxobj.consumptionPatterns">
  345. </el-input>
  346. </el-form-item>
  347. </div>
  348. <div style="width: 395px;">
  349. <el-form-item label="消费日期:" label-width="110px">
  350. <el-date-picker value-format="yyyy-MM-dd" v-model="roomtaxobj.consumptionDate" placeholder="消费日期"
  351. type="date" style="width: 100%;">
  352. </el-date-picker>
  353. </el-form-item>
  354. </div>
  355. <div v-if="roomtaxobj.payDId == 72" style="width: 395px;">
  356. <el-form-item label="卡类型:" label-width="110px">
  357. <el-select v-model="roomtaxobj.ctdId" placeholder="卡类型"
  358. style="width: 100%;" @change="changecardtype">
  359. <el-option v-for="item in bankCard" :key="item.id" :label="item.name"
  360. :value="item.id">
  361. </el-option>
  362. </el-select>
  363. </el-form-item>
  364. </div>
  365. <div v-if="roomtaxobj.payDId == 72" style="width: 395px;">
  366. <el-form-item label="银行卡号:" label-width="110px">
  367. <el-input placeholder="银行卡号" v-model="roomtaxobj.bankNo"
  368. :disabled="true">
  369. </el-input>
  370. </el-form-item>
  371. </div>
  372. <div v-if="roomtaxobj.payDId == 72" style="width: 395px;">
  373. <el-form-item label="持卡人姓名:" label-width="110px">
  374. <el-input placeholder="持卡人姓名" v-model="roomtaxobj.cardholderName"
  375. :disabled="true">
  376. </el-input>
  377. </el-form-item>
  378. </div>
  379. <div v-if="roomtaxobj.payDId == 73" style="width: 395px;">
  380. <el-form-item label="公司银行账号:" label-width="110px">
  381. <el-input placeholder="公司银行账号" v-model="roomtaxobj.companyBankNo">
  382. </el-input>
  383. </el-form-item>
  384. </div>
  385. <div v-if="roomtaxobj.payDId == 73" style="width: 395px;">
  386. <el-form-item label="对方开户行:" label-width="110px">
  387. <el-input placeholder="对方开户行:" v-model="roomtaxobj.otherBankName">
  388. </el-input>
  389. </el-form-item>
  390. </div>
  391. <div v-if="roomtaxobj.payDId == 73" style="width: 395px;">
  392. <el-form-item label="对方银行卡号:" label-width="110px">
  393. <el-input placeholder="对方银行卡号" v-model="roomtaxobj.otherSideNo">
  394. </el-input>
  395. </el-form-item>
  396. </div>
  397. <div v-if="roomtaxobj.payDId == 73" style="width: 395px;">
  398. <el-form-item label="对方姓名:" label-width="110px">
  399. <el-input placeholder="对方姓名" v-model="roomtaxobj.otherSideName">
  400. </el-input>
  401. </el-form-item>
  402. </div>
  403. <div v-if="roomtaxobj.payDId == 83||roomtaxobj.payDId == 1067||roomtaxobj.payDId == 1068" style="width: 395px;">
  404. <el-form-item label="对方开户行:" label-width="110px">
  405. <el-input placeholder="对方开户行" v-model="roomtaxobj.otherBankName">
  406. </el-input>
  407. </el-form-item>
  408. </div>
  409. <div v-if="roomtaxobj.payDId == 83||roomtaxobj.payDId == 1067||roomtaxobj.payDId == 1068" style="width: 395px;">
  410. <el-form-item label="对方银行卡号:" label-width="110px">
  411. <el-input placeholder="对方银行卡号" v-model="roomtaxobj.otherSideNo">
  412. </el-input>
  413. </el-form-item>
  414. </div>
  415. <div v-if="roomtaxobj.payDId == 83||roomtaxobj.payDId == 1067||roomtaxobj.payDId == 1068" style="width: 395px;">
  416. <el-form-item label="对方姓名:" label-width="110px">
  417. <el-input placeholder="对方姓名" v-model="roomtaxobj.otherSideName">
  418. </el-input>
  419. </el-form-item>
  420. </div>
  421. <div style="width: 395px;">
  422. <el-form-item label="收款方:" label-width="110px">
  423. <el-input placeholder="收款方" v-model="roomtaxobj.payee">
  424. </el-input>
  425. </el-form-item>
  426. </div>
  427. <div style="width: 395px;">
  428. <el-form-item label="费用标识:" label-width="110px">
  429. <el-select v-model="roomtaxobj.orbitalPrivateTransfer" placeholder="费用标识"
  430. style="width: 100%;">
  431. <el-option key="-1" label="未选择" :value=-1>
  432. </el-option>
  433. <el-option key="0" label="公转" :value=0>
  434. </el-option>
  435. <el-option key="1" label="私转" :value=1>
  436. </el-option>
  437. </el-select>
  438. </el-form-item>
  439. </div>
  440. </div>
  441. <div class="payment-detail" style="display: flex;flex-wrap: wrap;">
  442. <el-form-item style="width:395px ;" label="城市税">
  443. <el-input-number :controls="false" :precision="2" style="width:50% ;" size="medium"
  444. v-model="TwoParameters.CitytaxPrice" @change="AmountPayment"></el-input-number>
  445. <el-select style="width:43% ;" size="medium"
  446. v-model="TwoParameters.CitytaxCurrency" placeholder="请选择" clearable filterable
  447. @change="AmountPayment">
  448. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  449. :value="item.currencyId">
  450. </el-option>
  451. </el-select>
  452. </el-form-item>
  453. <el-form-item style="width:395px ;" label="城市税地接代付">
  454. <el-switch @change="Payforselection(Citytaxobj.priceType,Citytaxobj.isOppay)" v-model="Citytaxobj.isOppay"></el-switch>
  455. </el-form-item>
  456. <div style="width: 395px;">
  457. <el-form-item label="支付方式:" label-width="110px">
  458. <el-select v-model="Citytaxobj.payDId" placeholder="支付方式"
  459. style="width: 100%;">
  460. <el-option v-for="item in payment" :key="item.id" :label="item.name"
  461. :value="item.id">
  462. </el-option>
  463. </el-select>
  464. </el-form-item>
  465. </div>
  466. <div style="width: 395px;">
  467. <el-form-item label="消费方式:" label-width="110px">
  468. <el-input placeholder="消费方式" v-model="Citytaxobj.consumptionPatterns">
  469. </el-input>
  470. </el-form-item>
  471. </div>
  472. <div style="width: 395px;">
  473. <el-form-item label="消费日期:" label-width="110px">
  474. <el-date-picker value-format="yyyy-MM-dd" v-model="Citytaxobj.consumptionDate" placeholder="消费日期"
  475. type="date" style="width: 100%;">
  476. </el-date-picker>
  477. </el-form-item>
  478. </div>
  479. <div v-if="Citytaxobj.payDId == 72" style="width: 395px;">
  480. <el-form-item label="卡类型:" label-width="110px">
  481. <el-select v-model="Citytaxobj.ctdId" placeholder="卡类型"
  482. style="width: 100%;" @change="citychangecardtype">
  483. <el-option v-for="item in bankCard" :key="item.id" :label="item.name"
  484. :value="item.id">
  485. </el-option>
  486. </el-select>
  487. </el-form-item>
  488. </div>
  489. <div v-if="Citytaxobj.payDId == 72" style="width: 395px;">
  490. <el-form-item label="银行卡号:" label-width="110px">
  491. <el-input placeholder="银行卡号" v-model="Citytaxobj.bankNo"
  492. :disabled="true">
  493. </el-input>
  494. </el-form-item>
  495. </div>
  496. <div v-if="Citytaxobj.payDId == 72" style="width: 395px;">
  497. <el-form-item label="持卡人姓名:" label-width="110px">
  498. <el-input placeholder="持卡人姓名" v-model="Citytaxobj.cardholderName"
  499. :disabled="true">
  500. </el-input>
  501. </el-form-item>
  502. </div>
  503. <div v-if="Citytaxobj.payDId == 73" style="width: 395px;">
  504. <el-form-item label="公司银行账号:" label-width="110px">
  505. <el-input placeholder="公司银行账号" v-model="Citytaxobj.companyBankNo">
  506. </el-input>
  507. </el-form-item>
  508. </div>
  509. <div v-if="Citytaxobj.payDId == 73" style="width: 395px;">
  510. <el-form-item label="对方开户行:" label-width="110px">
  511. <el-input placeholder="对方开户行:" v-model="Citytaxobj.otherBankName">
  512. </el-input>
  513. </el-form-item>
  514. </div>
  515. <div v-if="Citytaxobj.payDId == 73" style="width: 395px;">
  516. <el-form-item label="对方银行卡号:" label-width="110px">
  517. <el-input placeholder="对方银行卡号" v-model="Citytaxobj.otherSideNo">
  518. </el-input>
  519. </el-form-item>
  520. </div>
  521. <div v-if="Citytaxobj.payDId == 73" style="width: 395px;">
  522. <el-form-item label="对方姓名:" label-width="110px">
  523. <el-input placeholder="对方姓名" v-model="Citytaxobj.otherSideName">
  524. </el-input>
  525. </el-form-item>
  526. </div>
  527. <div v-if="Citytaxobj.payDId == 83||Citytaxobj.payDId == 1067||Citytaxobj.payDId == 1068" style="width: 395px;">
  528. <el-form-item label="对方开户行:" label-width="110px">
  529. <el-input placeholder="对方开户行" v-model="Citytaxobj.otherBankName">
  530. </el-input>
  531. </el-form-item>
  532. </div>
  533. <div v-if="Citytaxobj.payDId == 83||Citytaxobj.payDId == 1067||Citytaxobj.payDId == 1068" style="width: 395px;">
  534. <el-form-item label="对方银行卡号:" label-width="110px">
  535. <el-input placeholder="对方银行卡号" v-model="Citytaxobj.otherSideNo">
  536. </el-input>
  537. </el-form-item>
  538. </div>
  539. <div v-if="Citytaxobj.payDId == 83||Citytaxobj.payDId == 1067||Citytaxobj.payDId == 1068" style="width: 395px;">
  540. <el-form-item label="对方姓名:" label-width="110px">
  541. <el-input placeholder="对方姓名" v-model="Citytaxobj.otherSideName">
  542. </el-input>
  543. </el-form-item>
  544. </div>
  545. <div style="width: 395px;">
  546. <el-form-item label="收款方:" label-width="110px">
  547. <el-input placeholder="收款方" v-model="Citytaxobj.payee">
  548. </el-input>
  549. </el-form-item>
  550. </div>
  551. <div style="width: 395px;">
  552. <el-form-item label="费用标识:" label-width="110px">
  553. <el-select v-model="Citytaxobj.orbitalPrivateTransfer" placeholder="费用标识"
  554. style="width: 100%;">
  555. <el-option key="-1" label="未选择" :value=-1>
  556. </el-option>
  557. <el-option key="0" label="公转" :value=0>
  558. </el-option>
  559. <el-option key="1" label="私转" :value=1>
  560. </el-option>
  561. </el-select>
  562. </el-form-item>
  563. </div>
  564. </div>
  565. <div class="payment-detail" style="display: flex;flex-wrap: wrap;">
  566. <el-form-item style="width:395px ;" label="地税">
  567. <el-input-number :controls="false" :precision="2" style="width:50% ;" size="medium"
  568. v-model="TwoParameters.RentPrice"
  569. @change="AmountPayment"></el-input-number>
  570. <el-select style="width:43% ;" size="medium"
  571. v-model="TwoParameters.RentCurrency" placeholder="请选择" clearable
  572. filterable @change="AmountPayment">
  573. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  574. :value="item.currencyId">
  575. </el-option>
  576. </el-select>
  577. </el-form-item>
  578. <el-form-item style="width:395px ;" label="地税地接代付">
  579. <el-switch @change="Payforselection(landtaxobj.priceType,landtaxobj.isOppay)" v-model="landtaxobj.isOppay"></el-switch>
  580. </el-form-item>
  581. <div style="width: 395px;">
  582. <el-form-item label="支付方式:" label-width="110px">
  583. <el-select v-model="landtaxobj.payDId" placeholder="支付方式"
  584. style="width: 100%;">
  585. <el-option v-for="item in payment" :key="item.id" :label="item.name"
  586. :value="item.id">
  587. </el-option>
  588. </el-select>
  589. </el-form-item>
  590. </div>
  591. <div style="width: 395px;">
  592. <el-form-item label="消费方式:" label-width="110px">
  593. <el-input placeholder="消费方式" v-model="landtaxobj.consumptionPatterns">
  594. </el-input>
  595. </el-form-item>
  596. </div>
  597. <div style="width: 395px;">
  598. <el-form-item label="消费日期:" label-width="110px">
  599. <el-date-picker value-format="yyyy-MM-dd" v-model="landtaxobj.consumptionDate" placeholder="消费日期"
  600. type="date" style="width: 100%;">
  601. </el-date-picker>
  602. </el-form-item>
  603. </div>
  604. <div v-if="landtaxobj.payDId == 72" style="width: 395px;">
  605. <el-form-item label="卡类型:" label-width="110px">
  606. <el-select v-model="landtaxobj.ctdId" placeholder="卡类型"
  607. style="width: 100%;" @change="landchangecardtype">
  608. <el-option v-for="item in bankCard" :key="item.id" :label="item.name"
  609. :value="item.id">
  610. </el-option>
  611. </el-select>
  612. </el-form-item>
  613. </div>
  614. <div v-if="landtaxobj.payDId == 72" style="width: 395px;">
  615. <el-form-item label="银行卡号:" label-width="110px">
  616. <el-input placeholder="银行卡号" v-model="landtaxobj.bankNo"
  617. :disabled="true">
  618. </el-input>
  619. </el-form-item>
  620. </div>
  621. <div v-if="landtaxobj.payDId == 72" style="width: 395px;">
  622. <el-form-item label="持卡人姓名:" label-width="110px">
  623. <el-input placeholder="持卡人姓名" v-model="landtaxobj.cardholderName"
  624. :disabled="true">
  625. </el-input>
  626. </el-form-item>
  627. </div>
  628. <div v-if="landtaxobj.payDId == 73" style="width: 395px;">
  629. <el-form-item label="公司银行账号:" label-width="110px">
  630. <el-input placeholder="公司银行账号" v-model="landtaxobj.companyBankNo">
  631. </el-input>
  632. </el-form-item>
  633. </div>
  634. <div v-if="landtaxobj.payDId == 73" style="width: 395px;">
  635. <el-form-item label="对方开户行:" label-width="110px">
  636. <el-input placeholder="对方开户行:" v-model="landtaxobj.otherBankName">
  637. </el-input>
  638. </el-form-item>
  639. </div>
  640. <div v-if="landtaxobj.payDId == 73" style="width: 395px;">
  641. <el-form-item label="对方银行卡号:" label-width="110px">
  642. <el-input placeholder="对方银行卡号" v-model="landtaxobj.otherSideNo">
  643. </el-input>
  644. </el-form-item>
  645. </div>
  646. <div v-if="landtaxobj.payDId == 73" style="width: 395px;">
  647. <el-form-item label="对方姓名:" label-width="110px">
  648. <el-input placeholder="对方姓名" v-model="landtaxobj.otherSideName">
  649. </el-input>
  650. </el-form-item>
  651. </div>
  652. <div v-if="landtaxobj.payDId == 83||landtaxobj.payDId == 1067||landtaxobj.payDId == 1068" style="width: 395px;">
  653. <el-form-item label="对方开户行:" label-width="110px">
  654. <el-input placeholder="对方开户行" v-model="landtaxobj.otherBankName">
  655. </el-input>
  656. </el-form-item>
  657. </div>
  658. <div v-if="landtaxobj.payDId == 83||landtaxobj.payDId == 1067||landtaxobj.payDId == 1068" style="width: 395px;">
  659. <el-form-item label="对方银行卡号:" label-width="110px">
  660. <el-input placeholder="对方银行卡号" v-model="landtaxobj.otherSideNo">
  661. </el-input>
  662. </el-form-item>
  663. </div>
  664. <div v-if="landtaxobj.payDId == 83||landtaxobj.payDId == 1067||landtaxobj.payDId == 1068" style="width: 395px;">
  665. <el-form-item label="对方姓名:" label-width="110px">
  666. <el-input placeholder="对方姓名" v-model="landtaxobj.otherSideName">
  667. </el-input>
  668. </el-form-item>
  669. </div>
  670. <div style="width: 395px;">
  671. <el-form-item label="收款方:" label-width="110px">
  672. <el-input placeholder="收款方" v-model="landtaxobj.payee">
  673. </el-input>
  674. </el-form-item>
  675. </div>
  676. <div style="width: 395px;">
  677. <el-form-item label="费用标识:" label-width="110px">
  678. <el-select v-model="landtaxobj.orbitalPrivateTransfer" placeholder="费用标识"
  679. style="width: 100%;">
  680. <el-option key="-1" label="未选择" :value=-1>
  681. </el-option>
  682. <el-option key="0" label="公转" :value=0>
  683. </el-option>
  684. <el-option key="1" label="私转" :value=1>
  685. </el-option>
  686. </el-select>
  687. </el-form-item>
  688. </div>
  689. </div>
  690. <div class="payment-detail" style="display: flex;flex-wrap: wrap;">
  691. <el-form-item style="width:395px ;" label="酒店早餐">
  692. <el-input-number :controls="false" :precision="2" style="width:50% ;" size="medium"
  693. v-model="TwoParameters.breakfastPrice"
  694. @change="AmountPayment"></el-input-number>
  695. <el-select style="width:43% ;" size="medium"
  696. v-model="TwoParameters.breakfastCurrency" placeholder="请选择" clearable
  697. filterable @change="AmountPayment">
  698. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  699. :value="item.currencyId">
  700. </el-option>
  701. </el-select>
  702. </el-form-item>
  703. <el-form-item style="width:395px ;" label="早餐地接代付">
  704. <el-switch @change="Payforselection(Hotelbreakfastobj.priceType,Hotelbreakfastobj.isOppay)" v-model="Hotelbreakfastobj.isOppay"></el-switch>
  705. </el-form-item>
  706. <div style="width: 395px;">
  707. <el-form-item label="支付方式:" label-width="110px">
  708. <el-select v-model="Hotelbreakfastobj.payDId" placeholder="支付方式"
  709. style="width: 100%;">
  710. <el-option v-for="item in payment" :key="item.id" :label="item.name"
  711. :value="item.id">
  712. </el-option>
  713. </el-select>
  714. </el-form-item>
  715. </div>
  716. <div style="width: 395px;">
  717. <el-form-item label="消费方式:" label-width="110px">
  718. <el-input placeholder="消费方式" v-model="Hotelbreakfastobj.consumptionPatterns">
  719. </el-input>
  720. </el-form-item>
  721. </div>
  722. <div style="width: 395px;">
  723. <el-form-item label="消费日期:" label-width="110px">
  724. <el-date-picker value-format="yyyy-MM-dd" v-model="Hotelbreakfastobj.consumptionDate" placeholder="消费日期"
  725. type="date" style="width: 100%;">
  726. </el-date-picker>
  727. </el-form-item>
  728. </div>
  729. <div v-if="Hotelbreakfastobj.payDId == 72" style="width: 395px;">
  730. <el-form-item label="卡类型:" label-width="110px">
  731. <el-select v-model="Hotelbreakfastobj.ctdId" placeholder="卡类型"
  732. style="width: 100%;" @change="Hotelchangecardtype">
  733. <el-option v-for="item in bankCard" :key="item.id" :label="item.name"
  734. :value="item.id">
  735. </el-option>
  736. </el-select>
  737. </el-form-item>
  738. </div>
  739. <div v-if="Hotelbreakfastobj.payDId == 72" style="width: 395px;">
  740. <el-form-item label="银行卡号:" label-width="110px">
  741. <el-input placeholder="银行卡号" v-model="Hotelbreakfastobj.bankNo"
  742. :disabled="true">
  743. </el-input>
  744. </el-form-item>
  745. </div>
  746. <div v-if="Hotelbreakfastobj.payDId == 72" style="width: 395px;">
  747. <el-form-item label="持卡人姓名:" label-width="110px">
  748. <el-input placeholder="持卡人姓名" v-model="Hotelbreakfastobj.cardholderName"
  749. :disabled="true">
  750. </el-input>
  751. </el-form-item>
  752. </div>
  753. <div v-if="Hotelbreakfastobj.payDId == 73" style="width: 395px;">
  754. <el-form-item label="公司银行账号:" label-width="110px">
  755. <el-input placeholder="公司银行账号" v-model="Hotelbreakfastobj.companyBankNo">
  756. </el-input>
  757. </el-form-item>
  758. </div>
  759. <div v-if="Hotelbreakfastobj.payDId == 73" style="width: 395px;">
  760. <el-form-item label="对方开户行:" label-width="110px">
  761. <el-input placeholder="对方开户行:" v-model="Hotelbreakfastobj.otherBankName">
  762. </el-input>
  763. </el-form-item>
  764. </div>
  765. <div v-if="Hotelbreakfastobj.payDId == 73" style="width: 395px;">
  766. <el-form-item label="对方银行卡号:" label-width="110px">
  767. <el-input placeholder="对方银行卡号" v-model="Hotelbreakfastobj.otherSideNo">
  768. </el-input>
  769. </el-form-item>
  770. </div>
  771. <div v-if="Hotelbreakfastobj.payDId == 73" style="width: 395px;">
  772. <el-form-item label="对方姓名:" label-width="110px">
  773. <el-input placeholder="对方姓名" v-model="Hotelbreakfastobj.otherSideName">
  774. </el-input>
  775. </el-form-item>
  776. </div>
  777. <div v-if="Hotelbreakfastobj.payDId == 83||Hotelbreakfastobj.payDId == 1067||Hotelbreakfastobj.payDId == 1068" style="width: 395px;">
  778. <el-form-item label="对方开户行:" label-width="110px">
  779. <el-input placeholder="对方开户行" v-model="Hotelbreakfastobj.otherBankName">
  780. </el-input>
  781. </el-form-item>
  782. </div>
  783. <div v-if="Hotelbreakfastobj.payDId == 83||Hotelbreakfastobj.payDId == 1067||Hotelbreakfastobj.payDId == 1068" style="width: 395px;">
  784. <el-form-item label="对方银行卡号:" label-width="110px">
  785. <el-input placeholder="对方银行卡号" v-model="Hotelbreakfastobj.otherSideNo">
  786. </el-input>
  787. </el-form-item>
  788. </div>
  789. <div v-if="Hotelbreakfastobj.payDId == 83||Hotelbreakfastobj.payDId == 1067||Hotelbreakfastobj.payDId == 1068" style="width: 395px;">
  790. <el-form-item label="对方姓名:" label-width="110px">
  791. <el-input placeholder="对方姓名" v-model="Hotelbreakfastobj.otherSideName">
  792. </el-input>
  793. </el-form-item>
  794. </div>
  795. <div style="width: 395px;">
  796. <el-form-item label="收款方:" label-width="110px">
  797. <el-input placeholder="收款方" v-model="Hotelbreakfastobj.payee">
  798. </el-input>
  799. </el-form-item>
  800. </div>
  801. <div style="width: 395px;">
  802. <el-form-item label="费用标识:" label-width="110px">
  803. <el-select v-model="Hotelbreakfastobj.orbitalPrivateTransfer" placeholder="费用标识"
  804. style="width: 100%;">
  805. <el-option key="-1" label="未选择" :value=-1>
  806. </el-option>
  807. <el-option key="0" label="公转" :value=0>
  808. </el-option>
  809. <el-option key="1" label="私转" :value=1>
  810. </el-option>
  811. </el-select>
  812. </el-form-item>
  813. </div>
  814. </div>
  815. <div class="payment-detail" style="display: flex;flex-wrap: wrap;">
  816. <div style="width: 395px;">
  817. <el-form-item label="付款金额:" label-width="110px">
  818. <el-input disabled placeholder="付款金额" v-model="Paymentinfor.paymentAmount"
  819. style="width: 52%;">
  820. </el-input>
  821. <el-select disabled v-model="Paymentinfor.paymentCurrency" style="width: 45%;"
  822. filterable>
  823. <el-option v-for="item in currencyList" :key="item.currencyId" :label="item.currencyCode"
  824. :value="item.currencyId">
  825. </el-option>
  826. </el-select>
  827. </el-form-item>
  828. </div>
  829. </div>
  830. <!-- <div v-if="Paymentinfor.paymentMethods == 72">
  831. <div style="display: flex;flex-wrap: wrap;">
  832. </div>
  833. </div> -->
  834. <!-- <div v-else-if="Paymentinfor.paymentMethods == 73">
  835. <div style="display: flex;flex-wrap: wrap;">
  836. </div>
  837. </div> -->
  838. <!-- <div v-else-if="Paymentinfor.paymentMethods == 83||Paymentinfor.paymentMethods == 1067||Paymentinfor.paymentMethods == 1068">
  839. <div style="display: flex;flex-wrap: wrap;">
  840. </div>
  841. </div> -->
  842. <!-- <div style="display:flex;flex-wrap: wrap;">
  843. </div> -->
  844. <div style="display: flex;">
  845. <div style="width: 100%;">
  846. <el-form-item label="备 注:" label-width="110px">
  847. <el-input type="textarea" :rows="5" placeholder="备注"
  848. v-model="Paymentinfor.remarks"></el-input>
  849. </el-form-item>
  850. </div>
  851. </div>
  852. </div>
  853. </el-form>
  854. </div>
  855. </div>
  856. </div>
  857. </template>
  858. <script>
  859. import { el } from '@fullcalendar/core/internal-common';
  860. import { set } from 'vue';
  861. import {debounce} from '../../store/statice'
  862. import { pinyin } from 'pinyin-pro';
  863. export default {
  864. data() {
  865. return {
  866. userId:0,
  867. cTable:0,
  868. pageId:0,
  869. tableData: [],
  870. tableDatas: [],
  871. currentPage: 1, // 当前页码
  872. pageSize: 5,// 每页的数据条数
  873. gridData: [],
  874. uploadURL: "http://132.232.92.186:8888/api/Groups/UploadHotel",
  875. projectName: "",
  876. uploadFiles: [],//上传的文件列表
  877. DelfileName: "",
  878. headers: {
  879. Authorization: JSON.parse(localStorage.getItem('userinif')).token,
  880. },
  881. loading:false,
  882. modifieds:0,//能否修改
  883. Rate: '1',
  884. loading: false,
  885. isAuditGM: 0,
  886. delegationInfoList: [],
  887. delegationInfo: {},
  888. guestType: [],//客人类型
  889. currencyList: [],//币种下拉框
  890. bankCard: [],//卡类型下拉框
  891. payment: [],//支付方式下拉框
  892. bookingWebsite: [],//预订网站
  893. CheckType: [],
  894. CardCurrency: '',
  895. currencySingle: { id: 836, name: 'CNY', remark: '人民币' },
  896. inifid:0,
  897. // staydays:1,//入住天数i'an'ting
  898. GuestNamelist:[],//客人名单
  899. GuestNameval:[],
  900. //必填参数
  901. RequiredParameters:{
  902. TypeGuest:'',//客人类型
  903. BankCards:'',//银行卡
  904. CurrentRate:'',//当前团组汇率
  905. VoucherNumber:'',//入住卷号码
  906. BookingWeb:'',//预订网站
  907. ReservationNumber:'',//预订号码
  908. DetermineNumber:'',//酒店确定号码
  909. AreaId:'',//所在地区
  910. LocationCity:'',//所在城市
  911. HotelName:'',//酒店名称
  912. HotelPhone:'',//酒店电话
  913. HotelAddress:'',//酒店地址
  914. GuestName:'',//客人姓名
  915. OnTime:'',//入住时间
  916. OutTime:'',//离店时间
  917. TypeStay:'',//入住类型
  918. RoomExplain:'',//房间说明
  919. Remark:'',//备注
  920. },
  921. //二阶段参数
  922. TwoParameters:{
  923. singleroomsNum:0,//单间数
  924. singleroomsPrice:0,//酒店单间单价
  925. singleroomsCurrency:'',//单间单价币种
  926. doubleroomNum:0,//双间数
  927. doubleroomPrice:0,//酒店双间单价
  928. doubleroomCurrency:'',//双间单价币种
  929. suiteNum:0,//套房间数
  930. suitePrice:0,//酒店套房单价
  931. suiteCurrency:'',//套房单价币种
  932. otherroomNum:0,//其他数
  933. otherroomPrice:0,//酒店其他单价
  934. otherroomCurrency:'',//其他单价币种
  935. amount:0,//信用卡金额
  936. credit:'',//信用卡
  937. breakfastPrice:0,//酒店早餐价格
  938. breakfastCurrency:'',//酒店早餐单价币种
  939. resource:false,//酒店早餐是否为地接代付
  940. RentPrice:0,//地税价格
  941. RentCurrency:'',//地税单价币种
  942. CitytaxPrice:0,//城市税价格
  943. CitytaxCurrency:'',//城市税单价币种
  944. },
  945. //付款信息
  946. Paymentinfor:{
  947. paymentMethods:0,//支付方式
  948. consumptionPatterns:'',//消费方式
  949. purchaseDate:'',//消费日期
  950. paymentAmount:0,//付款金额
  951. paymentCurrency:0,//付款币种
  952. beneficiary:'',//收款方
  953. expenseid:0,//费用标识
  954. remarks:'',//备 注
  955. //刷卡
  956. cardtype:'',//卡类型:
  957. cardnumber:'',//银行卡号
  958. cardname:'',//持卡人姓名
  959. //转账
  960. transferbanknumber:'',//公司银行账号
  961. transferbank:'',//对方开户行
  962. transfercardnumber:'',//对方银行卡号
  963. transfername:'',//对方姓名
  964. //汇款
  965. remittancebank:'',//对方开户行
  966. remittancecardnumber:'',//对方银行卡号
  967. remittancename:'',//对方姓名
  968. },
  969. countrys:[],
  970. OpHotelReservationsData: {
  971. diId: 0,
  972. },
  973. //必填验证
  974. RequiredParametersRules: {
  975. TypeGuest: [
  976. { required: true, message: '请选择客人类型', trigger: ['blur', 'change'] }
  977. ],
  978. BankCards: [
  979. { required: true, message: '请选择银行卡', trigger: ['blur', 'change'] }
  980. ],
  981. VoucherNumber: [
  982. { required: true, message: '请输入入住卷号码', trigger: ['blur', 'change'] }
  983. ],
  984. BookingWeb: [
  985. { required: true, message: '请选择预订网站', trigger: ['blur', 'change'] }
  986. ],
  987. ReservationNumber: [
  988. { required: true, message: '请输入预订号码', trigger: ['blur', 'change'] }
  989. ],
  990. DetermineNumber: [
  991. { required: true, message: '请输入酒店确定号码', trigger: ['blur', 'change'] }
  992. ],
  993. AreaId: [
  994. { required: true, message: '选择所在地区', trigger: ['blur', 'change'] }
  995. ],
  996. LocationCity: [
  997. { required: true, message: '请输入所在城市', trigger: ['blur', 'change'] }
  998. ],
  999. HotelName: [
  1000. { required: true, message: '请输入酒店名称', trigger: ['blur', 'change'] }
  1001. ],
  1002. HotelPhone: [
  1003. { required: true, message: '请输入酒店电话', trigger: ['blur', 'change'] }
  1004. ],
  1005. HotelAddress: [
  1006. { required: true, message: '请输入酒店地址', trigger: ['blur', 'change'] }
  1007. ],
  1008. GuestName: [
  1009. { required: true, message: '请输入客人姓名', trigger: ['blur'] }
  1010. ],
  1011. OnTime: [
  1012. { required: true, message: '请选择入住时间', trigger: ['blur', 'change'] }
  1013. ],
  1014. OutTime: [
  1015. { required: true, message: '请选择离店时间', trigger: ['blur', 'change'] }
  1016. ],
  1017. TypeStay: [
  1018. { required: true, message: '请选择入住类型', trigger: ['blur', 'change'] }
  1019. ],
  1020. RoomExplain: [
  1021. { required: true, message: '请输入房间说明', trigger: ['blur', 'change'] }
  1022. ],
  1023. Remark: [
  1024. { required: true, message: '请输入备注', trigger: ['blur', 'change'] }
  1025. ],
  1026. },
  1027. budgeting:[],
  1028. bizhong:'',
  1029. huilv:0,
  1030. //房费
  1031. roomtaxobj:{
  1032. id:0,
  1033. diId:0,
  1034. hrId:0,
  1035. priceType:1,
  1036. price:0,
  1037. currency:0,
  1038. rate:0,
  1039. isOppay:0,
  1040. payDId:0,
  1041. consumptionPatterns:'',
  1042. consumptionDate:'',
  1043. ctdId:0,
  1044. bankNo:'',
  1045. cardholderName:'',
  1046. companyBankNo:'',
  1047. otherBankName:'',
  1048. otherSideNo:'',
  1049. otherSideName:'',
  1050. payee:'',
  1051. orbitalPrivateTransfer:0,
  1052. },
  1053. //城市税
  1054. Citytaxobj:{
  1055. id:0,
  1056. diId:0,
  1057. hrId:0,
  1058. priceType:4,
  1059. price:0,
  1060. currency:0,
  1061. rate:0,
  1062. isOppay:0,
  1063. payDId:0,
  1064. consumptionPatterns:'',
  1065. consumptionDate:'',
  1066. ctdId:0,
  1067. bankNo:'',
  1068. cardholderName:'',
  1069. companyBankNo:'',
  1070. otherBankName:'',
  1071. otherSideNo:'',
  1072. otherSideName:'',
  1073. payee:'',
  1074. orbitalPrivateTransfer:0,
  1075. },
  1076. //地税
  1077. landtaxobj:{
  1078. id:0,
  1079. diId:0,
  1080. hrId:0,
  1081. priceType:3,
  1082. price:0,
  1083. currency:0,
  1084. rate:0,
  1085. isOppay:0,
  1086. payDId:0,
  1087. consumptionPatterns:'',
  1088. consumptionDate:'',
  1089. ctdId:0,
  1090. bankNo:'',
  1091. cardholderName:'',
  1092. companyBankNo:'',
  1093. otherBankName:'',
  1094. otherSideNo:'',
  1095. otherSideName:'',
  1096. payee:'',
  1097. orbitalPrivateTransfer:0,
  1098. },
  1099. //酒店早餐
  1100. Hotelbreakfastobj:{
  1101. id:0,
  1102. diId:0,
  1103. hrId:0,
  1104. priceType:2,
  1105. price:0,
  1106. currency:0,
  1107. rate:0,
  1108. isOppay:0,
  1109. payDId:0,
  1110. consumptionPatterns:'',
  1111. consumptionDate:'',
  1112. ctdId:0,
  1113. bankNo:'',
  1114. cardholderName:'',
  1115. companyBankNo:'',
  1116. otherBankName:'',
  1117. otherSideNo:'',
  1118. otherSideName:'',
  1119. payee:'',
  1120. orbitalPrivateTransfer:0,
  1121. },
  1122. currencyarrs:[],
  1123. currencyarrss:[],
  1124. rollcallarr:[],
  1125. }
  1126. },
  1127. methods: {
  1128. //拼音
  1129. pinyingxing(val){
  1130. return pinyin(val, { toneType: 'none' }).toUpperCase();
  1131. },
  1132. //fenge
  1133. fgarr(val){
  1134. val=val+""
  1135. return val.split(' ')[0]
  1136. },
  1137. //保留两位小数
  1138. townum(val){
  1139. return val.toFixed(2)
  1140. },
  1141. //保留4位小数
  1142. fournum(val){
  1143. return val.toFixed(4)
  1144. },
  1145. //获取成本提示
  1146. getcostbudgeting(){
  1147. this.budgeting=[];
  1148. var url = "/api/Groups/PostGroupCostModulePrompt"
  1149. var that = this
  1150. this.$axios({
  1151. method: 'post',
  1152. url: url,
  1153. headers: {
  1154. Authorization: 'Bearer ' + this.token
  1155. },
  1156. data: {
  1157. userId: that.userId,
  1158. diId: that.OpHotelReservationsData.diId,
  1159. cTable:that.cTable,
  1160. }
  1161. }).then(function (res) {
  1162. if (res.data.code == 200) {
  1163. that.budgeting=res.data.data.modulePromptInfos[0].data;
  1164. that.bizhong=res.data.data.modulePromptInfos[0].currencyCode;
  1165. that.huilv=res.data.data.modulePromptInfos[0].rate;
  1166. } else {
  1167. // that.$message.error(res.data.msg);
  1168. }
  1169. })
  1170. },
  1171. //每页条数改变时触发 选择一页显示多少行
  1172. handleSizeChange(val) {
  1173. this.currentPage = 1;
  1174. this.pageSize = val;
  1175. },
  1176. //当前页改变时触发 跳转其他页
  1177. handleCurrentChange(val) {
  1178. this.currentPage = val;
  1179. },
  1180. AreaIdchange(val){
  1181. var obj = {}
  1182. obj = this.countrys.find(function (i) {
  1183. return i.id === val;
  1184. });
  1185. this.RequiredParameters.LocationCity=obj.city;
  1186. },
  1187. //获取客户名单info
  1188. PostTourClientListByDiId(val) {
  1189. this.rollcallarr=[];
  1190. var that = this
  1191. var url = "/api/Groups/PostTourClientListByDiId"
  1192. this.$axios({
  1193. method: 'post',
  1194. url: url,
  1195. headers: {
  1196. Authorization: 'Bearer ' + that.token
  1197. },
  1198. data: {
  1199. portType:1,
  1200. diid: val?val:that.OpHotelReservationsData.diId,
  1201. pageId:104,
  1202. userId:233
  1203. }
  1204. }).then(function (res) {
  1205. if (res.data.code == 200) {
  1206. that.rollcallarr=res.data.data;
  1207. } else {
  1208. that.$message.error(res.data.msg);
  1209. }
  1210. })
  1211. },
  1212. //获取ctable
  1213. PostPageLinkCTable() {
  1214. var url = "/api/Business/PostPageLinkCTable"
  1215. var that = this
  1216. this.$axios({
  1217. method: 'post',
  1218. url: url,
  1219. headers: {
  1220. Authorization: 'Bearer ' + this.token
  1221. },
  1222. data: {
  1223. pageId:that.pageId
  1224. }
  1225. }).then(function (res) {
  1226. if (res.data.code == 200) {
  1227. that.cTable=res.data.data.cTable;
  1228. that.PostGroupListByCTableAndUserId();
  1229. }else{
  1230. that.$message({
  1231. message:"获取cTable失败",
  1232. duration:3000,
  1233. type:"error"
  1234. });
  1235. }
  1236. }).catch(function (error) {
  1237. that.$message.error("获取cTable失败");
  1238. });
  1239. },
  1240. //获取团组
  1241. PostGroupListByCTableAndUserId() {
  1242. var url = "/api/Business/PostGroupListByCTableAndUserId"
  1243. var that = this
  1244. this.$axios({
  1245. method: 'post',
  1246. url: url,
  1247. headers: {
  1248. Authorization: 'Bearer ' + this.token
  1249. },
  1250. data: {
  1251. portType: 1,
  1252. pageIndex: 1,
  1253. pageSize:99999,
  1254. userId: that.userId,
  1255. cTable:that.cTable
  1256. }
  1257. }).then(function (res) {
  1258. if (res.data.code == 200) {
  1259. if(res.data.data.length==0){
  1260. that.OpHotelReservationsData.diId='无团组权限!'
  1261. that.$message({
  1262. message:"无任何团组权限,请联系管理员添加团组!",
  1263. duration:5000,
  1264. type:"warning"
  1265. });
  1266. }
  1267. if(that.OpHotelReservationsData.diId==0){
  1268. that.OpHotelReservationsData.diId=res.data.data[0].id
  1269. }
  1270. that.delegationInfoList = res.data.data;
  1271. for(var x=0;x<res.data.data.length;x++){
  1272. if(that.OpHotelReservationsData.diId==res.data.data[x].id){
  1273. that.delegationInfo=res.data.data[x]
  1274. }
  1275. }
  1276. setTimeout(function() {
  1277. that.getcostbudgeting()
  1278. }, 100);
  1279. that.PostHotelReservationsItemsByDiId()
  1280. setTimeout(function() {
  1281. that.PostTourClientListByDiId();
  1282. }, 200);
  1283. // that.PostHotelReservationsBasicsDataInit()
  1284. // that.delegationInfo=
  1285. }
  1286. }).catch(function (error) {
  1287. that.$message.error("获取团组失败");
  1288. });
  1289. },
  1290. //获取酒店表格
  1291. PostHotelReservationsItemsByDiId() {
  1292. this.loading=true;
  1293. var url = "/api/Groups/PostHotelReservationsItemsByDiId"
  1294. var that = this
  1295. that.tableDatas=[];
  1296. this.$axios({
  1297. method: 'post',
  1298. url: url,
  1299. headers: {
  1300. Authorization: 'Bearer ' + this.token
  1301. },
  1302. data: {
  1303. portType:1,
  1304. userId:that.userId,
  1305. pageId:that.pageId,
  1306. diId:that.OpHotelReservationsData.diId
  1307. }
  1308. }).then(function (res) {
  1309. if (res.data.code == 200) {
  1310. setTimeout(function () {
  1311. that.PostHotelReservationsBasicsDataInit()
  1312. },500)
  1313. that.tableDatas=res.data.data;
  1314. }
  1315. }).catch(function (error) {
  1316. that.loading=false;
  1317. that.$message.error("获取酒店表格失败");
  1318. });
  1319. },
  1320. //选择客人姓名
  1321. selectchg(){
  1322. console.log(this.RequiredParameters.GuestName)
  1323. },
  1324. //酒店预订 基础数据
  1325. PostHotelReservationsBasicsDataInit() {
  1326. this.GuestNamelist=[];
  1327. var url = "/api/Groups/PostHotelReservationsBasicsDataInit"
  1328. var that = this
  1329. this.$axios({
  1330. method: 'post',
  1331. url: url,
  1332. headers: {
  1333. Authorization: 'Bearer ' + this.token
  1334. },
  1335. data: {
  1336. portType:1,
  1337. userId:that.userId,
  1338. pageId:that.pageId,
  1339. diId:that.OpHotelReservationsData.diId
  1340. }
  1341. }).then(function (res) {
  1342. if (res.data.code == 200) {
  1343. let countryss=[];
  1344. for (let i = 0; i < res.data.data.countrys.length; i++) {
  1345. res.data.data.countrys[i]['cityname'] = res.data.data.countrys[i].country + '-' + res.data.data.countrys[i].city;
  1346. countryss.push(res.data.data.countrys[i]);
  1347. }
  1348. that.countrys=countryss;
  1349. that.GuestNamelist=res.data.data.guestName;
  1350. that.guestType=res.data.data.guestType;
  1351. if(that.guestType){
  1352. that.RequiredParameters.TypeGuest=that.guestType[0].id;//客人类型
  1353. }
  1354. that.RequiredParameters.VoucherNumber=res.data.data.checkVolumeNo;
  1355. that.bankCard=res.data.data.bankCard;
  1356. if(that.bankCard){
  1357. that.RequiredParameters.BankCards=that.bankCard[0].id;//银行卡
  1358. that.roomtaxobj.ctdId=that.bankCard[0].id;
  1359. that.Citytaxobj.ctdId=that.bankCard[0].id;
  1360. that.landtaxobj.ctdId=that.bankCard[0].id;
  1361. that.Hotelbreakfastobj.ctdId=that.bankCard[0].id;
  1362. that.changecardtype(that.roomtaxobj.ctdId);
  1363. that.citychangecardtype(that.Citytaxobj.ctdId);
  1364. that.landchangecardtype(that.landtaxobj.ctdId);
  1365. that.Hotelchangecardtype(that.Hotelbreakfastobj.ctdId);
  1366. that.TwoParameters.credit='币种'+'('+that.bankCard[0].currency+')';//银行卡
  1367. }
  1368. that.bookingWebsite=res.data.data.bookingWebsite;
  1369. if(that.bookingWebsite){
  1370. that.RequiredParameters.BookingWeb=that.bookingWebsite[0].id;//预订网站
  1371. }
  1372. that.CheckType=res.data.data.checkPerson;
  1373. if(that.CheckType){
  1374. that.RequiredParameters.TypeStay=that.CheckType[0].id;//预订网站
  1375. }
  1376. that.currencyList = res.data.data.currencyList//币种下拉框
  1377. let ass=that.currencyList.find(ass=>{
  1378. return ass.currencyCode==that.bankCard[0].currency
  1379. })
  1380. if(ass){
  1381. for(var i=0;i<that.currencyList.length;i++){
  1382. if(that.bankCard[0].currency==that.currencyList[i].currencyCode){
  1383. that.RequiredParameters.CurrentRate=that.currencyList[i].rate;//当前团组汇率
  1384. that.TwoParameters.singleroomsCurrency=that.currencyList[i].currencyId;
  1385. that.TwoParameters.doubleroomCurrency=that.currencyList[i].currencyId;
  1386. that.TwoParameters.suiteCurrency=that.currencyList[i].currencyId;
  1387. that.TwoParameters.otherroomCurrency=that.currencyList[i].currencyId;
  1388. that.TwoParameters.breakfastCurrency=that.currencyList[i].currencyId;
  1389. that.TwoParameters.RentCurrency=that.currencyList[i].currencyId;
  1390. that.TwoParameters.CitytaxCurrency=that.currencyList[i].currencyId;
  1391. that.Paymentinfor.paymentCurrency=that.currencyList[i].currencyId;
  1392. }
  1393. }
  1394. }else{
  1395. that.RequiredParameters.CurrentRate='当前团组未设置此币种汇率!';//当前团组汇率
  1396. }
  1397. that.payment = res.data.data.payment//支付方式下拉框
  1398. if(that.payment){
  1399. that.roomtaxobj.payDId=that.payment[0].id;//支付方式
  1400. that.Citytaxobj.payDId=that.payment[0].id;//城市税支付方式
  1401. that.landtaxobj.payDId=that.payment[0].id;//地税支付方式
  1402. that.Hotelbreakfastobj.payDId=that.payment[0].id;//酒店早餐支付方式
  1403. }
  1404. that.loading=false;
  1405. }
  1406. }).catch(function (error) {
  1407. that.loading=false;
  1408. that.$message.error("获取基础数据失败");
  1409. });
  1410. },
  1411. //银行卡值改变
  1412. budgetCurrencyChange(val) {
  1413. var CScurrency='';
  1414. this.roomtaxobj.ctdId=val
  1415. this.Citytaxobj.ctdId=val
  1416. this.landtaxobj.ctdId=val
  1417. this.Hotelbreakfastobj.ctdId=val
  1418. this.changecardtype(val);
  1419. this.landchangecardtype(val);
  1420. this.Hotelchangecardtype(val);
  1421. this.citychangecardtype(val);
  1422. for(var i=0;i<this.bankCard.length;i++){
  1423. if(val==this.bankCard[i].id){
  1424. CScurrency=this.bankCard[i].currency
  1425. this.TwoParameters.credit='币种'+'('+this.bankCard[i].currency+')'
  1426. }
  1427. }
  1428. let ass=this.currencyList.find(ass=>{
  1429. return ass.currencyCode==CScurrency
  1430. })
  1431. if(ass){
  1432. for(var i=0;i<this.currencyList.length;i++){
  1433. if(CScurrency==this.currencyList[i].currencyCode){
  1434. this.RequiredParameters.CurrentRate=this.currencyList[i].rate;//当前团组汇率
  1435. this.TwoParameters.singleroomsCurrency=this.currencyList[i].currencyId;
  1436. this.TwoParameters.doubleroomCurrency=this.currencyList[i].currencyId;
  1437. this.TwoParameters.suiteCurrency=this.currencyList[i].currencyId;
  1438. this.TwoParameters.otherroomCurrency=this.currencyList[i].currencyId;
  1439. this.TwoParameters.breakfastCurrency=this.currencyList[i].currencyId;
  1440. this.TwoParameters.RentCurrency=this.currencyList[i].currencyId;
  1441. this.TwoParameters.CitytaxCurrency=this.currencyList[i].currencyId;
  1442. this.Paymentinfor.paymentCurrency=this.currencyList[i].currencyId;
  1443. }
  1444. }
  1445. }else{
  1446. this.RequiredParameters.CurrentRate='当前团组未设置此币种汇率!';//当前团组汇率
  1447. this.TwoParameters.singleroomsCurrency='暂无';
  1448. this.TwoParameters.doubleroomCurrency='暂无';
  1449. this.TwoParameters.suiteCurrency='暂无';
  1450. this.TwoParameters.otherroomCurrency='暂无';
  1451. this.TwoParameters.breakfastCurrency='暂无';
  1452. this.TwoParameters.RentCurrency='暂无';
  1453. this.TwoParameters.CitytaxCurrency='暂无';
  1454. this.Paymentinfor.paymentCurrency='暂无';
  1455. }
  1456. this.CalculateAmount()
  1457. },
  1458. //地税卡类型切换
  1459. landchangecardtype(val){
  1460. for(var i=0;i<this.bankCard.length;i++){
  1461. if(val==this.bankCard[i].id){
  1462. this.landtaxobj.bankNo=this.bankCard[i].remark;
  1463. this.landtaxobj.cardholderName=this.bankCard[i].cardholder;
  1464. }
  1465. }
  1466. },
  1467. //酒店早餐卡类型切换
  1468. Hotelchangecardtype(val){
  1469. for(var i=0;i<this.bankCard.length;i++){
  1470. if(val==this.bankCard[i].id){
  1471. this.Hotelbreakfastobj.bankNo=this.bankCard[i].remark;
  1472. this.Hotelbreakfastobj.cardholderName=this.bankCard[i].cardholder;
  1473. }
  1474. }
  1475. },
  1476. //城市税卡类型切换
  1477. citychangecardtype(val){
  1478. for(var i=0;i<this.bankCard.length;i++){
  1479. if(val==this.bankCard[i].id){
  1480. this.Citytaxobj.bankNo=this.bankCard[i].remark;
  1481. this.Citytaxobj.cardholderName=this.bankCard[i].cardholder;
  1482. }
  1483. }
  1484. },
  1485. //卡切换
  1486. changecardtype(val){
  1487. for(var i=0;i<this.bankCard.length;i++){
  1488. if(val==this.bankCard[i].id){
  1489. this.roomtaxobj.bankNo=this.bankCard[i].remark;
  1490. this.roomtaxobj.cardholderName=this.bankCard[i].cardholder;
  1491. }
  1492. }
  1493. },
  1494. //详情
  1495. PostHotelReservationsDetails(index,row) {
  1496. this.modifieds=row.isAuditGM;
  1497. this.inifid=row.id;
  1498. var url = "/api/Groups/PostHotelReservationsDetails"
  1499. var that = this
  1500. this.$axios({
  1501. method: 'post',
  1502. url: url,
  1503. headers: {
  1504. Authorization: 'Bearer ' + this.token
  1505. },
  1506. data: {
  1507. portType:1,
  1508. userId:that.userId,
  1509. pageId:that.pageId,
  1510. diId:that.OpHotelReservationsData.diId,
  1511. id:row.id
  1512. }
  1513. }).then(function (res) {
  1514. if (res.data.code == 200) {
  1515. //必填参数
  1516. that.RequiredParameters.TypeGuest=res.data.data.gtId;//客人类型
  1517. that.RequiredParameters.BankCards=res.data.data.ctdId;//银行卡
  1518. // for(let l=0;l<that.bankCard.length;l++){
  1519. // if(that.bankCard[l].id==that.RequiredParameters.BankCards){
  1520. // that.TwoParameters.credit=that.bankCard[l].name+'('+that.bankCard[l].currency+')'
  1521. // for(let f=0;f<that.currencyList.length;f++){
  1522. // if(that.bankCard[l].currency==that.currencyList[f].currencyCode){
  1523. // that.RequiredParameters.CurrentRate=that.currencyList[f].rate
  1524. // }
  1525. // }
  1526. // }
  1527. // }
  1528. that.RequiredParameters.VoucherNumber=res.data.data.checkNumber;//入住卷号码
  1529. that.RequiredParameters.BookingWeb=res.data.data.reservationsWebsite;//预订网站
  1530. that.RequiredParameters.ReservationNumber=res.data.data.reservationsNo;//预订号码
  1531. that.RequiredParameters.DetermineNumber=res.data.data.determineNo;//酒店确定号码
  1532. that.RequiredParameters.AreaId=res.data.data.areaId;//所在城市
  1533. that.RequiredParameters.LocationCity=res.data.data.city;//所在城市
  1534. that.RequiredParameters.HotelName=res.data.data.hotelName;//酒店名称
  1535. that.RequiredParameters.HotelPhone=res.data.data.hotelTel;//酒店电话
  1536. that.RequiredParameters.HotelAddress=res.data.data.hotelAddress;//酒店地址
  1537. that.RequiredParameters.GuestName=(res.data.data.guestName.split(",")).map(Number);//客人姓名
  1538. that.RequiredParameters.OnTime=new Date(res.data.data.checkInDate);//入住时间
  1539. that.RequiredParameters.OutTime=new Date(res.data.data.checkOutDate);//离店时间
  1540. that.RequiredParameters.TypeStay=res.data.data.checkType==0?'':res.data.data.checkType;//入住类型
  1541. that.RequiredParameters.RoomExplain=res.data.data.roomExplanation;//房间说明
  1542. that.RequiredParameters.Remark=res.data.data.hotelRemark;//备注
  1543. //二阶段参数
  1544. that.TwoParameters.singleroomsNum=res.data.data.singleRoomCount//单间数
  1545. that.TwoParameters.singleroomsPrice=res.data.data.singleRoomPrice//酒店单间单价
  1546. that.TwoParameters.doubleroomNum=res.data.data.doubleRoomCount//双间数
  1547. that.TwoParameters.doubleroomPrice=res.data.data.doubleRoomPrice//酒店双间单价
  1548. that.TwoParameters.suiteNum=res.data.data.suiteRoomCount//套房间数
  1549. that.TwoParameters.suitePrice=res.data.data.suiteRoomPrice//酒店套房单价
  1550. that.TwoParameters.otherroomNum=res.data.data.otherRoomCount//其他数
  1551. that.TwoParameters.otherroomPrice=res.data.data.otherRoomPrice//酒店其他单价
  1552. //付款信息
  1553. that.Paymentinfor.paymentMethods=res.data.data.payDId//支付方式
  1554. that.Paymentinfor.consumptionPatterns=res.data.data.consumptionPatterns//消费方式
  1555. that.Paymentinfor.purchaseDate=res.data.data.consumptionDate//消费日期
  1556. // that.$set(that.Paymentinfor,'purchaseDate',res.data.data.consumptionDate)//消费日期
  1557. // console.log(that.Paymentinfor.purchaseDate)
  1558. that.Paymentinfor.paymentAmount=res.data.data.payMoney.toFixed(2)//付款金额
  1559. that.Paymentinfor.paymentCurrency=res.data.data.paymentCurrency//付款币种
  1560. //刷卡
  1561. that.Paymentinfor.cardtype=res.data.data.ctdId//卡类型
  1562. that.Paymentinfor.cardnumber=res.data.data.bankNo//银行卡号
  1563. that.Paymentinfor.cardname=res.data.data.cardholderName//持卡人姓名
  1564. //转账
  1565. that.Paymentinfor.transferbank=res.data.data.otherBankName//对方开户行
  1566. that.Paymentinfor.transfercardnumber=res.data.data.otherSideNo//对方银行卡号
  1567. that.Paymentinfor.transfername=res.data.data.otherSideName//对方姓名
  1568. //汇款
  1569. that.Paymentinfor.remittancebank=res.data.data.otherBankName//对方开户行
  1570. that.Paymentinfor.remittancecardnumber=res.data.data.otherSideNo//对方银行卡号
  1571. that.Paymentinfor.remittancename=res.data.data.otherSideName//对方姓名
  1572. that.Paymentinfor.beneficiary=res.data.data.payee//收款方
  1573. that.Paymentinfor.expenseid=res.data.data.orbitalPrivateTransfer//费用标识
  1574. that.Paymentinfor.remarks=res.data.data.ccpRemark//备 注
  1575. //之前代码未改
  1576. for (let x = 0; x < res.data.data.contents.length; x++) {
  1577. if(res.data.data.contents[x].priceType==1){
  1578. that.roomtaxobj=res.data.data.contents[x];
  1579. that.roomtaxobj.isOppay=that.roomtaxobj.isOppay==0?false:true;
  1580. that.TwoParameters.amount= that.roomtaxobj.price//信用卡金额
  1581. that.TwoParameters.singleroomsCurrency=that.roomtaxobj.currency
  1582. that.TwoParameters.doubleroomCurrency=that.roomtaxobj.currency
  1583. that.TwoParameters.suiteCurrency=that.roomtaxobj.currency
  1584. that.TwoParameters.otherroomCurrency=that.roomtaxobj.currency
  1585. for(var i=0;i<that.currencyList.length;i++){
  1586. if(that.roomtaxobj.currency==that.currencyList[i].currencyId){
  1587. that.RequiredParameters.CurrentRate=that.currencyList[i].rate
  1588. that.TwoParameters.credit='币种'+'('+that.currencyList[i].currencyCode+')'
  1589. }
  1590. }
  1591. }
  1592. if(res.data.data.contents[x].priceType==2){
  1593. that.Hotelbreakfastobj=res.data.data.contents[x];
  1594. that.Hotelbreakfastobj.isOppay=that.Hotelbreakfastobj.isOppay==0?false:true;
  1595. that.TwoParameters.breakfastPrice=that.Hotelbreakfastobj.price//酒店早餐价格
  1596. that.TwoParameters.breakfastCurrency=that.Hotelbreakfastobj.currency//酒店早餐单价币种
  1597. }
  1598. if(res.data.data.contents[x].priceType==3){
  1599. that.landtaxobj=res.data.data.contents[x];
  1600. that.landtaxobj.isOppay=that.landtaxobj.isOppay==0?false:true;
  1601. that.TwoParameters.RentPrice=that.landtaxobj.price//地税价格
  1602. that.TwoParameters.RentCurrency=that.landtaxobj.currency//地税单价币种
  1603. }
  1604. if(res.data.data.contents[x].priceType==4){
  1605. that.Citytaxobj=res.data.data.contents[x];
  1606. that.Citytaxobj.isOppay=that.Citytaxobj.isOppay==0?false:true;
  1607. that.TwoParameters.CitytaxPrice=that.Citytaxobj.price//城市税价格
  1608. that.TwoParameters.CitytaxCurrency=that.Citytaxobj.currency//城市税单价币种
  1609. }
  1610. }
  1611. // that.budgetCurrencyChange(that.RequiredParameters.BankCards)
  1612. // that.CalculateAmount();
  1613. // that.AmountPayment();
  1614. }
  1615. }).catch(function (error) {
  1616. that.$message.error("获取详情失败");
  1617. });
  1618. },
  1619. //房费币种选择
  1620. selectroomCurrency(val){
  1621. this.TwoParameters.singleroomsCurrency=val;
  1622. this.TwoParameters.doubleroomCurrency=val;
  1623. this.TwoParameters.suiteCurrency=val;
  1624. this.TwoParameters.otherroomCurrency=val;
  1625. for(var i=0;i<this.currencyList.length;i++){
  1626. if(val==this.currencyList[i].currencyId){
  1627. // CScurrency=this.bankCard[i].currency
  1628. this.RequiredParameters.CurrentRate=this.currencyList[i].rate
  1629. this.TwoParameters.credit='币种'+'('+this.currencyList[i].currencyCode+')'
  1630. }
  1631. }
  1632. this.CalculateAmount()
  1633. },
  1634. //转换日期
  1635. transferdate(val){
  1636. var today = new Date(val);
  1637. var DD = String(today.getDate()).padStart(2, '0'); // 获取日
  1638. var MM = String(today.getMonth() + 1).padStart(2, '0'); //获取月份,1 月为 0
  1639. var yyyy = today.getFullYear(); // 获取年
  1640. return yyyy+'-'+MM+'-'+DD
  1641. },
  1642. //新增修改api
  1643. PostHotelReservationsAddOrEdit() {
  1644. var guestNametext='';
  1645. for(let a=0;a<this.RequiredParameters.GuestName.length;a++){
  1646. guestNametext += this.RequiredParameters.GuestName[a]+','
  1647. }
  1648. //未修改前代码,房费参数赋值
  1649. this.roomtaxobj.price=this.TwoParameters.amount;
  1650. this.roomtaxobj.currency=this.TwoParameters.otherroomCurrency;
  1651. this.roomtaxobj.isOppay=this.roomtaxobj.isOppay==false?0:1;
  1652. for(let b=0;b<this.currencyList.length;b++){
  1653. if(this.roomtaxobj.currency==this.currencyList[b].currencyId){
  1654. this.roomtaxobj.rate=this.currencyList[b].rate
  1655. }
  1656. }
  1657. //未修改前代码,城市税参数赋值
  1658. this.Citytaxobj.price=this.TwoParameters.CitytaxPrice;
  1659. this.Citytaxobj.currency=this.TwoParameters.CitytaxCurrency;
  1660. this.Citytaxobj.isOppay=this.Citytaxobj.isOppay==false?0:1;
  1661. for(let b=0;b<this.currencyList.length;b++){
  1662. if(this.Citytaxobj.currency==this.currencyList[b].currencyId){
  1663. this.Citytaxobj.rate=this.currencyList[b].rate
  1664. }
  1665. }
  1666. //未修改前代码,地税参数赋值
  1667. this.landtaxobj.price=this.TwoParameters.RentPrice;
  1668. this.landtaxobj.currency=this.TwoParameters.RentCurrency;
  1669. this.landtaxobj.isOppay=this.landtaxobj.isOppay==false?0:1;
  1670. for(let b=0;b<this.currencyList.length;b++){
  1671. if(this.landtaxobj.currency==this.currencyList[b].currencyId){
  1672. this.landtaxobj.rate=this.currencyList[b].rate
  1673. }
  1674. }
  1675. //未修改前代码,酒店早餐参数赋值
  1676. this.Hotelbreakfastobj.price=this.TwoParameters.breakfastPrice;
  1677. this.Hotelbreakfastobj.currency=this.TwoParameters.breakfastCurrency;
  1678. this.Hotelbreakfastobj.isOppay=this.Hotelbreakfastobj.isOppay==false?0:1;
  1679. for(let b=0;b<this.currencyList.length;b++){
  1680. if(this.Hotelbreakfastobj.currency==this.currencyList[b].currencyId){
  1681. this.Hotelbreakfastobj.rate=this.currencyList[b].rate
  1682. }
  1683. }
  1684. if(this.roomtaxobj.payDId!=72){
  1685. this.roomtaxobj.ctdId=0;
  1686. this.roomtaxobj.bankNo='';
  1687. this.roomtaxobj.cardholderName='';
  1688. }
  1689. if(this.Citytaxobj.payDId!=72){
  1690. this.Citytaxobj.ctdId=0;
  1691. this.Citytaxobj.bankNo='';
  1692. this.Citytaxobj.cardholderName='';
  1693. }
  1694. if(this.landtaxobj.payDId!=72){
  1695. this.landtaxobj.ctdId=0;
  1696. this.landtaxobj.bankNo='';
  1697. this.landtaxobj.cardholderName='';
  1698. }
  1699. if(this.Hotelbreakfastobj.payDId!=72){
  1700. this.Hotelbreakfastobj.ctdId=0;
  1701. this.Hotelbreakfastobj.bankNo='';
  1702. this.Hotelbreakfastobj.cardholderName='';
  1703. }
  1704. if(this.roomtaxobj.price>0){
  1705. if (this.roomtaxobj.consumptionDate==""||this.roomtaxobj.consumptionDate==null) {
  1706. return this.$message.error("酒店房费有消费金额,请检查消费日期是否填写");
  1707. }
  1708. }
  1709. if(this.Citytaxobj.price>0){
  1710. if (this.Citytaxobj.consumptionDate==""||this.Citytaxobj.consumptionDate==null) {
  1711. return this.$message.error("城市税有消费金额,请检查消费日期是否填写");
  1712. }
  1713. }
  1714. if(this.landtaxobj.price>0){
  1715. if (this.landtaxobj.consumptionDate==""||this.landtaxobj.consumptionDate==null) {
  1716. return this.$message.error("地税有消费金额,请检查消费日期是否填写");
  1717. }
  1718. }
  1719. if(this.Hotelbreakfastobj.price>0){
  1720. if (this.Hotelbreakfastobj.consumptionDate==""||this.Hotelbreakfastobj.consumptionDate==null) {
  1721. return this.$message.error("酒店早餐有消费金额,请检查消费日期是否填写");
  1722. }
  1723. }
  1724. this.loading=true;
  1725. var url = "/api/Groups/PostHotelReservationsAddOrEdit"
  1726. var that = this
  1727. this.$axios({
  1728. method: 'post',
  1729. url: url,
  1730. headers: {
  1731. Authorization: 'Bearer ' + this.token
  1732. },
  1733. data: {
  1734. portType:1,
  1735. userId:that.userId,//用户Id
  1736. pageId:that.pageId,//页面Id
  1737. id:that.inifid,//Id
  1738. diId:that.OpHotelReservationsData.diId,//团组Id
  1739. gtId:that.RequiredParameters.TypeGuest,//客人类型 Id
  1740. ctdId:that.RequiredParameters.BankCards,//信用卡类型
  1741. checkNumber:that.RequiredParameters.VoucherNumber,//入住卷号
  1742. reservationsWebsite:that.RequiredParameters.BookingWeb,//预订网站
  1743. reservationsNo:that.RequiredParameters.ReservationNumber,//预订号码
  1744. determineNo:that.RequiredParameters.DetermineNumber,//酒店确定号码
  1745. areaId:that.RequiredParameters.AreaId,//城市
  1746. city:that.RequiredParameters.LocationCity,//城市
  1747. hotelName:that.RequiredParameters.HotelName,//酒店名称
  1748. hotelTel:that.RequiredParameters.HotelPhone,//酒店电话
  1749. hotelAddress:that.RequiredParameters.HotelAddress,//酒店地址
  1750. guestName:guestNametext.substring(0, guestNametext.length - 1),//客户名称
  1751. checkInDate:that.transferdate(that.RequiredParameters.OnTime),//入住时间
  1752. checkOutDate:that.transferdate(that.RequiredParameters.OutTime),//离店时间
  1753. checkType:that.RequiredParameters.TypeStay,//房间入住人类型
  1754. roomExplanation:that.RequiredParameters.RoomExplain,//房间说明
  1755. hotelRemark:that.RequiredParameters.Remark,//酒店备注
  1756. singleRoomPrice:that.TwoParameters.singleroomsPrice,//单间价格
  1757. singleRoomCount:that.TwoParameters.singleroomsNum,//单间数量
  1758. doubleRoomPrice:that.TwoParameters.doubleroomPrice,//双间价格
  1759. doubleRoomCount:that.TwoParameters.doubleroomNum,//双间数量
  1760. suiteRoomPrice:that.TwoParameters.suitePrice,//套房价格
  1761. suiteRoomCount:that.TwoParameters.suiteNum,//套房数量
  1762. otherRoomPrice:that.TwoParameters.otherroomPrice,//其他房间价格
  1763. otherRoomCount:that.TwoParameters.otherroomNum,//其他房间数量
  1764. cardPrice:that.Paymentinfor.paymentAmount,//付款金额
  1765. cardPriceCurrency:that.Paymentinfor.paymentCurrency,//付款币种
  1766. contents:[
  1767. that.roomtaxobj,
  1768. that.Citytaxobj,
  1769. that.landtaxobj,
  1770. that.Hotelbreakfastobj
  1771. ],
  1772. }
  1773. }).then(function (res) {
  1774. if (res.data.code == 200) {
  1775. that.$message({
  1776. type: 'success',
  1777. message: res.data.msg,
  1778. duration:'3000'
  1779. });
  1780. that.PostHotelReservationsItemsByDiId()
  1781. setTimeout(() => {
  1782. that.AddToggle();
  1783. that.loading=false;
  1784. }, 500);
  1785. }else{
  1786. that.$message.error(res.data.msg);
  1787. that.loading=false;
  1788. }
  1789. }).catch(function (error) {
  1790. that.$message.error("新增或修改失败");
  1791. that.loading=false;
  1792. });
  1793. },
  1794. //代付选中
  1795. Payforselection(val,val2){
  1796. if(val==1){
  1797. if(val2==true){
  1798. this.roomtaxobj.payDId=73;
  1799. }else{
  1800. this.roomtaxobj.payDId=72;
  1801. }
  1802. }
  1803. if(val==2){
  1804. if(val2==true){
  1805. this.Hotelbreakfastobj.payDId=73;
  1806. }else{
  1807. this.Hotelbreakfastobj.payDId=72;
  1808. }
  1809. }
  1810. if(val==3){
  1811. if(val2==true){
  1812. this.landtaxobj.payDId=73;
  1813. }else{
  1814. this.landtaxobj.payDId=72;
  1815. }
  1816. }
  1817. if(val==4){
  1818. if(val2==true){
  1819. this.Citytaxobj.payDId=73;
  1820. }else{
  1821. this.Citytaxobj.payDId=72;
  1822. }
  1823. }
  1824. },
  1825. //保存
  1826. AddBtn:debounce(function(RequiredParameters) {
  1827. if(this.RequiredParameters.CurrentRate=="当前团组未设置此币种汇率!"){
  1828. this.$alert('当前团组未设置此币种汇率,请前往设置!', '警告', {
  1829. confirmButtonText: '确定',
  1830. callback: action => {
  1831. this.$message({
  1832. type: 'info',
  1833. message: `action: ${ action }`
  1834. });
  1835. }
  1836. });
  1837. return
  1838. }
  1839. // console.log(this.Paymentinfor.purchaseDate)
  1840. this.CalculateAmount()
  1841. this.$refs[RequiredParameters].validate((valid) => {
  1842. if (valid) {
  1843. if(this.inifid==0){
  1844. if(this.modifieds==1){
  1845. this.$message.error("已被审核,无法修改此条数据");
  1846. }else{
  1847. this.PostHotelReservationsAddOrEdit();
  1848. }
  1849. }else{
  1850. if(this.modifieds==1){
  1851. this.$message.error("已被审核,无法修改此条数据");
  1852. }else{
  1853. this.PostHotelReservationsAddOrEdit();
  1854. }
  1855. }
  1856. } else {
  1857. this.$message({
  1858. showClose: true,
  1859. message: '请填写完红框内的信息!',
  1860. type: 'error',
  1861. duration:'3000'
  1862. });
  1863. return false;
  1864. }
  1865. });
  1866. },1000,true),
  1867. //预定成本
  1868. BookingCost(){
  1869. var url = "/api/Groups/PostHotelReservationsPredictedCostFileDownload"
  1870. var that = this
  1871. this.$axios({
  1872. method: 'post',
  1873. url: url,
  1874. headers: {
  1875. Authorization: 'Bearer ' + that.token
  1876. },
  1877. data: {
  1878. portType: 1 ,
  1879. userId: that.userId ,
  1880. pageId: that.pageId ,
  1881. diId: that.OpHotelReservationsData.diId ,
  1882. }
  1883. }).then(function (res) {
  1884. if (res.data.code == 200) {
  1885. window.location.href = res.data.data
  1886. } else {
  1887. that.$message.error(res.data.msg);
  1888. }
  1889. }).catch(function (error) {
  1890. that.$message.error("接口错误,请联系信息部!");
  1891. });
  1892. },
  1893. //删除
  1894. delinif(index,row){
  1895. if(row.isAuditGM!=1){
  1896. this.$confirm('此操作将删除此条数据,是否确认', '提示', {
  1897. confirmButtonText: '确定',
  1898. cancelButtonText: '取消',
  1899. type: 'warning'
  1900. }).then(() => {
  1901. var url = "/api/Groups/PostHotelReservationsDel"
  1902. var that = this
  1903. this.$axios({
  1904. method: 'post',
  1905. url: url,
  1906. headers: {
  1907. Authorization: 'Bearer ' + this.token
  1908. },
  1909. data: {
  1910. portType:1,
  1911. userId:that.userId,
  1912. pageId:that.pageId,
  1913. id:row.id,
  1914. diId:that.OpHotelReservationsData.diId
  1915. }
  1916. }).then(function (res) {
  1917. if (res.data.code == 200) {
  1918. that.$message({
  1919. type: 'success',
  1920. message: '删除成功!'
  1921. });
  1922. that.PostHotelReservationsItemsByDiId()
  1923. }
  1924. }).catch(function (error) {
  1925. that.$message.error("删除失败");
  1926. });
  1927. }).catch(() => {
  1928. });
  1929. }else{
  1930. this.$message.error("已被审核,无法删除此条数据");
  1931. }
  1932. },
  1933. //新增切换
  1934. AddToggle(val){
  1935. this.modifieds=0;
  1936. this.inifid=0;
  1937. //必填参数
  1938. this.RequiredParameters={
  1939. TypeGuest:'',//客人类型
  1940. BankCards:'',//银行卡
  1941. CurrentRate:'',//当前团组汇率
  1942. VoucherNumber:'',//入住卷号码
  1943. BookingWeb:'',//预订网站
  1944. ReservationNumber:'',//预订号码
  1945. DetermineNumber:'',//酒店确定号码
  1946. AreaId:'',//所在地区
  1947. LocationCity:'',//所在城市
  1948. HotelName:'',//酒店名称
  1949. HotelPhone:'',//酒店电话
  1950. HotelAddress:'',//酒店地址
  1951. GuestName:'',//客人姓名
  1952. OnTime:'',//入住时间
  1953. OutTime:'',//离店时间
  1954. TypeStay:'',//入住类型
  1955. RoomExplain:'',//房间说明
  1956. Remark:'',//备注
  1957. },
  1958. //二阶段参数
  1959. this.TwoParameters={
  1960. singleroomsNum:0,//单间数
  1961. singleroomsPrice:0,//酒店单间单价
  1962. singleroomsCurrency:'',//单间单价币种
  1963. doubleroomNum:0,//双间数
  1964. doubleroomPrice:0,//酒店双间单价
  1965. doubleroomCurrency:'',//双间单价币种
  1966. suiteNum:0,//套房间数
  1967. suitePrice:0,//酒店套房单价
  1968. suiteCurrency:'',//套房单价币种
  1969. otherroomNum:0,//其他数
  1970. otherroomPrice:0,//酒店其他单价
  1971. otherroomCurrency:'',//其他单价币种
  1972. amount:0,//信用卡金额
  1973. credit:'',//信用卡
  1974. breakfastPrice:0,//酒店早餐价格
  1975. breakfastCurrency:'',//酒店早餐单价币种
  1976. resource:false,//酒店早餐是否为地接代付
  1977. RentPrice:0,//地税价格
  1978. RentCurrency:'',//地税单价币种
  1979. CitytaxPrice:0,//城市税价格
  1980. CitytaxCurrency:'',//城市税单价币种
  1981. },
  1982. //付款信息
  1983. this.Paymentinfor={
  1984. paymentMethods:0,//支付方式
  1985. consumptionPatterns:'',//消费方式
  1986. purchaseDate:'',//消费日期
  1987. paymentAmount:0,//付款金额
  1988. paymentCurrency:0,//付款币种
  1989. beneficiary:'',//收款方
  1990. expenseid:-1,//费用标识
  1991. remarks:'',//备 注
  1992. //刷卡
  1993. cardtype:'',//卡类型:
  1994. cardnumber:'',//银行卡号
  1995. cardname:'',//持卡人姓名
  1996. //转账
  1997. transferbanknumber:'',//公司银行账号
  1998. transferbank:'',//对方开户行
  1999. transfercardnumber:'',//对方银行卡号
  2000. transfername:'',//对方姓名
  2001. //汇款
  2002. remittancebank:'',//对方开户行
  2003. remittancecardnumber:'',//对方银行卡号
  2004. remittancename:'',//对方姓名
  2005. }
  2006. //房费
  2007. this.roomtaxobj={
  2008. id:0,
  2009. diId:0,
  2010. hrId:0,
  2011. priceType:1,
  2012. price:0,
  2013. currency:0,
  2014. rate:0,
  2015. isOppay:0,
  2016. payDId:0,
  2017. consumptionPatterns:'',
  2018. consumptionDate:'',
  2019. ctdId:0,
  2020. bankNo:'',
  2021. cardholderName:'',
  2022. companyBankNo:'',
  2023. otherBankName:'',
  2024. otherSideNo:'',
  2025. otherSideName:'',
  2026. payee:'',
  2027. orbitalPrivateTransfer:0,
  2028. }
  2029. //城市税
  2030. this.Citytaxobj={
  2031. id:0,
  2032. diId:0,
  2033. hrId:0,
  2034. priceType:4,
  2035. price:0,
  2036. currency:0,
  2037. rate:0,
  2038. isOppay:0,
  2039. payDId:0,
  2040. consumptionPatterns:'',
  2041. consumptionDate:'',
  2042. ctdId:0,
  2043. bankNo:'',
  2044. cardholderName:'',
  2045. companyBankNo:'',
  2046. otherBankName:'',
  2047. otherSideNo:'',
  2048. otherSideName:'',
  2049. payee:'',
  2050. orbitalPrivateTransfer:0,
  2051. }
  2052. //地税
  2053. this.landtaxobj={
  2054. id:0,
  2055. diId:0,
  2056. hrId:0,
  2057. priceType:3,
  2058. price:0,
  2059. currency:0,
  2060. rate:0,
  2061. isOppay:0,
  2062. payDId:0,
  2063. consumptionPatterns:'',
  2064. consumptionDate:'',
  2065. ctdId:0,
  2066. bankNo:'',
  2067. cardholderName:'',
  2068. companyBankNo:'',
  2069. otherBankName:'',
  2070. otherSideNo:'',
  2071. otherSideName:'',
  2072. payee:'',
  2073. orbitalPrivateTransfer:0,
  2074. }
  2075. //酒店早餐
  2076. this.Hotelbreakfastobj={
  2077. id:0,
  2078. diId:0,
  2079. hrId:0,
  2080. priceType:2,
  2081. price:0,
  2082. currency:0,
  2083. rate:0,
  2084. isOppay:0,
  2085. payDId:0,
  2086. consumptionPatterns:'',
  2087. consumptionDate:'',
  2088. ctdId:0,
  2089. bankNo:'',
  2090. cardholderName:'',
  2091. companyBankNo:'',
  2092. otherBankName:'',
  2093. otherSideNo:'',
  2094. otherSideName:'',
  2095. payee:'',
  2096. orbitalPrivateTransfer:0,
  2097. }
  2098. if (this.$refs.RequiredParameters){
  2099. this.$nextTick(() => {
  2100. this.$refs['RequiredParameters'].clearValidate();
  2101. })
  2102. }
  2103. if(val==1){
  2104. this.PostHotelReservationsBasicsDataInit();
  2105. }
  2106. },
  2107. //计算日期
  2108. CalculateTade(){
  2109. var times=' 00:00:00'
  2110. if(this.RequiredParameters.OutTime!=''&&this.RequiredParameters.OnTime!=''){
  2111. if(this.RequiredParameters.OnTime>=this.RequiredParameters.OutTime){
  2112. this.$confirm('离店日期不能小于入住日期', '提示', {
  2113. confirmButtonText: '确定',
  2114. cancelButtonText: '取消',
  2115. type: 'warning'
  2116. }).then(() => {
  2117. this.RequiredParameters.OutTime="";
  2118. }).catch(() => {
  2119. });
  2120. return
  2121. }
  2122. var post=new Date(this.transferdate(this.RequiredParameters.OutTime)+times);
  2123. var prior=new Date(this.transferdate(this.RequiredParameters.OnTime)+times);
  2124. return (post-prior)/(1*24*60*60*1000)
  2125. }else{
  2126. return 1
  2127. }
  2128. },
  2129. //计算信用卡金额
  2130. CalculateAmount(){
  2131. var compute=0
  2132. compute=((this.TwoParameters.singleroomsNum*this.TwoParameters.singleroomsPrice)+(this.TwoParameters.doubleroomNum*this.TwoParameters.doubleroomPrice)+(this.TwoParameters.suiteNum*this.TwoParameters.suitePrice)+(this.TwoParameters.otherroomNum*this.TwoParameters.otherroomPrice))*this.CalculateTade()
  2133. this.TwoParameters.amount=compute
  2134. this.AmountPayment()
  2135. },
  2136. //付款金额
  2137. AmountPayment(){
  2138. if(this.TwoParameters.suiteCurrency!=this.TwoParameters.RentCurrency||this.TwoParameters.suiteCurrency!=this.TwoParameters.CitytaxCurrency||this.TwoParameters.suiteCurrency!=this.TwoParameters.breakfastCurrency){
  2139. this.Paymentinfor.paymentCurrency=836;
  2140. var dishui=0;
  2141. var chengshishui=0;
  2142. var zaocan=0;
  2143. if(this.TwoParameters.suiteCurrency!=this.TwoParameters.RentCurrency){
  2144. for(let i =0;i<this.currencyList.length;i++){
  2145. if(this.TwoParameters.RentCurrency==this.currencyList[i].currencyId){
  2146. dishui=this.TwoParameters.RentPrice*this.currencyList[i].rate
  2147. }
  2148. }
  2149. }else{
  2150. dishui=this.TwoParameters.RentPrice*this.RequiredParameters.CurrentRate
  2151. }
  2152. if(this.TwoParameters.suiteCurrency!=this.TwoParameters.CitytaxCurrency){
  2153. for(let i =0;i<this.currencyList.length;i++){
  2154. if(this.TwoParameters.CitytaxCurrency==this.currencyList[i].currencyId){
  2155. chengshishui=this.TwoParameters.CitytaxPrice*this.currencyList[i].rate
  2156. }
  2157. }
  2158. }else{
  2159. chengshishui=this.TwoParameters.CitytaxPrice*this.RequiredParameters.CurrentRate
  2160. }
  2161. if(this.TwoParameters.suiteCurrency!=this.TwoParameters.breakfastCurrency){
  2162. for(let i =0;i<this.currencyList.length;i++){
  2163. if(this.TwoParameters.breakfastCurrency==this.currencyList[i].currencyId){
  2164. zaocan=this.TwoParameters.breakfastPrice*this.currencyList[i].rate
  2165. }
  2166. }
  2167. }else{
  2168. zaocan=this.TwoParameters.breakfastPrice*this.RequiredParameters.CurrentRate
  2169. }
  2170. // console.log(dishui,chengshishui,zaocan)
  2171. this.Paymentinfor.paymentAmount=(dishui+chengshishui+zaocan+(this.TwoParameters.amount*this.RequiredParameters.CurrentRate)).toFixed(2)
  2172. }else{
  2173. this.Paymentinfor.paymentCurrency=this.TwoParameters.RentCurrency
  2174. this.Paymentinfor.paymentAmount=(this.TwoParameters.RentPrice+this.TwoParameters.CitytaxPrice+this.TwoParameters.breakfastPrice+this.TwoParameters.amount).toFixed(2)
  2175. }
  2176. },
  2177. //切换团组
  2178. delegationSelectChange(val) {
  2179. var that = this
  2180. this.delegationInfo=[];
  2181. this.PostGroupListByCTableAndUserId();
  2182. this.AddToggle();
  2183. this.getcostbudgeting();
  2184. // setTimeout(function () {
  2185. // that.PostTourClientListByDiId(val);
  2186. // },500)
  2187. },
  2188. DownloadVOUCHER(index,row) {
  2189. var url = "/api/Groups/PostHotelReservationsCreateVoucherBatchNew"
  2190. var that = this
  2191. this.$axios({
  2192. method: 'post',
  2193. url: url,
  2194. headers: {
  2195. Authorization: 'Bearer ' + that.token
  2196. },
  2197. data: {
  2198. portType: 1 ,
  2199. userId: that.userId ,
  2200. pageId: that.pageId ,
  2201. diId: that.OpHotelReservationsData.diId ,
  2202. id: 0
  2203. }
  2204. }).then(function (res) {
  2205. if (res.data.code == 200) {
  2206. window.location.href = res.data.data
  2207. } else {
  2208. that.$message.error(res.data.msg);
  2209. }
  2210. }).catch(function (error) {
  2211. that.$message.error("网络错误,请稍后重试");
  2212. });
  2213. },
  2214. ConfirmWord() {
  2215. var url = "/api/Groups/PostHotelReservationsConfirmationSlip"
  2216. var that = this
  2217. this.$axios({
  2218. method: 'post',
  2219. url: url,
  2220. headers: {
  2221. Authorization: 'Bearer ' + that.token
  2222. },
  2223. data: {
  2224. portType: 1 ,
  2225. userId: that.userId ,
  2226. pageId: that.pageId ,
  2227. diId: that.OpHotelReservationsData.diId ,
  2228. }
  2229. }).then(function (res) {
  2230. if (res.data.code == 200) {
  2231. window.location.href = res.data.data
  2232. } else {
  2233. that.$message.error(res.data.msg);
  2234. }
  2235. }).catch(function (error) {
  2236. that.$message.error("网络错误,请稍后重试");
  2237. });
  2238. },
  2239. },
  2240. filters:{
  2241. filter_city(value){
  2242. if(value){
  2243. return value.replaceAll('|','、')
  2244. }
  2245. },
  2246. filter_time(value){
  2247. if(value){
  2248. return value.split(" ")[0]
  2249. }
  2250. }
  2251. },
  2252. watch:{
  2253. CalculateTade:function(a,b){
  2254. // console.log(a,b)
  2255. },
  2256. 'TwoParameters.singleroomsCurrency': {
  2257. handler (val) {
  2258. this.currencyarrss=[];
  2259. this.currencyarrs[0]=val;
  2260. var arr=Array.from(new Set(this.currencyarrs));
  2261. console.log(arr);
  2262. for(let i=0;i<this.currencyList.length;i++){
  2263. for(let j=0;j<arr.length;j++){
  2264. if(arr[j]==this.currencyList[i].currencyId){
  2265. this.currencyarrss.push(this.currencyList[i])
  2266. }
  2267. }
  2268. }
  2269. this.currencyarrss=Array.from(new Set(this.currencyarrss));
  2270. }
  2271. },
  2272. 'TwoParameters.breakfastCurrency': {
  2273. handler (val) {
  2274. this.currencyarrss=[];
  2275. this.currencyarrs[1]=val;
  2276. var arr=Array.from(new Set(this.currencyarrs));
  2277. console.log(arr);
  2278. for(let i=0;i<this.currencyList.length;i++){
  2279. for(let j=0;j<arr.length;j++){
  2280. if(arr[j]==this.currencyList[i].currencyId){
  2281. this.currencyarrss.push(this.currencyList[i])
  2282. }
  2283. }
  2284. }
  2285. this.currencyarrss=Array.from(new Set(this.currencyarrss));
  2286. }
  2287. },
  2288. 'TwoParameters.RentCurrency': {
  2289. handler (val) {
  2290. this.currencyarrss=[];
  2291. this.currencyarrs[2]=val;
  2292. var arr=Array.from(new Set(this.currencyarrs));
  2293. console.log(arr);
  2294. for(let i=0;i<this.currencyList.length;i++){
  2295. for(let j=0;j<arr.length;j++){
  2296. if(arr[j]==this.currencyList[i].currencyId){
  2297. this.currencyarrss.push(this.currencyList[i])
  2298. }
  2299. }
  2300. }
  2301. this.currencyarrss=Array.from(new Set(this.currencyarrss));
  2302. }
  2303. },
  2304. 'TwoParameters.CitytaxCurrency': {
  2305. handler (val) {
  2306. this.currencyarrss=[];
  2307. this.currencyarrs[3]=val;
  2308. var arr=Array.from(new Set(this.currencyarrs));
  2309. console.log(arr);
  2310. for(let i=0;i<this.currencyList.length;i++){
  2311. for(let j=0;j<arr.length;j++){
  2312. if(arr[j]==this.currencyList[i].currencyId){
  2313. this.currencyarrss.push(this.currencyList[i])
  2314. }
  2315. }
  2316. }
  2317. this.currencyarrss=Array.from(new Set(this.currencyarrss));
  2318. }
  2319. },
  2320. },
  2321. mounted() {
  2322. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  2323. this.pageId=Number(localStorage.getItem('indexs').split('-')[1]);//页面id
  2324. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  2325. this.PostPageLinkCTable();
  2326. // this.PostHotelReservationsItemsByDiId()
  2327. // this.HotelReservationsInitialize();
  2328. //this.AirTicketResList()
  2329. }
  2330. }
  2331. </script>
  2332. <style>
  2333. .hotelr-all {
  2334. background-color: #fff;
  2335. padding: 10px;
  2336. box-shadow: 0 0 5px #0005;
  2337. border-radius: 10px;
  2338. height: 100%;
  2339. min-height: 830px;
  2340. }
  2341. .hotelr-all .block {
  2342. margin-top: 10px;
  2343. }
  2344. .hotelr-head-li label {
  2345. color: #606266;
  2346. font-size: 15px;
  2347. font-weight: 600;
  2348. }
  2349. .hotelr-head {
  2350. display: flex;
  2351. justify-content: space-between;
  2352. }
  2353. .hotelr-info {
  2354. display: flex;
  2355. margin-top: 10px;
  2356. }
  2357. .hotelr-info-li {
  2358. margin-right: 30px;
  2359. }
  2360. .hotelr-info-li label {
  2361. color: #606266;
  2362. font-size: 15px;
  2363. font-weight: 600;
  2364. }
  2365. .hotelr-info-li span {
  2366. color: #606266;
  2367. font-size: 14px;
  2368. }
  2369. .hotelr-table {
  2370. margin-top: 10px;
  2371. }
  2372. .form-head {
  2373. display: flex;
  2374. justify-content: space-between;
  2375. }
  2376. .hotelr-form {
  2377. margin-top: 20px;
  2378. }
  2379. .fjprice.el-input-number.is-without-controls .el-input__inner {
  2380. padding-left: 2px;
  2381. padding-right: 2px;
  2382. }
  2383. .form-foundationone {
  2384. margin-top: 10px;
  2385. border-top: 2px solid #409EFF;
  2386. padding-top: 10px;
  2387. }
  2388. .form-foundationone .el-form-item {
  2389. margin-bottom: 12px;
  2390. }
  2391. .form-foundationone .el-form-item__error {
  2392. top: 90%;
  2393. }
  2394. .select-bz .el-select {
  2395. width: 100%;
  2396. }
  2397. .payment-detail{
  2398. border-top: #0002 1px solid;
  2399. padding-top: 10px;
  2400. }
  2401. .Exchangerate-box{
  2402. display: flex;
  2403. flex-wrap: wrap;
  2404. padding: 0 40px;
  2405. margin-bottom: 10px;
  2406. font-size: 14px;
  2407. color: red;
  2408. }
  2409. .Exchangerate-box div{
  2410. width: 120px;
  2411. }
  2412. </style>