HotelReservations.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672
  1. <template>
  2. <div>
  3. <div class="hotelr-all">
  4. <div class="hotelr-head">
  5. <div class="hotelr-head-li">
  6. <label>团组名称:</label>
  7. <el-select @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 }}</span>
  26. </div>
  27. <div class="hotelr-info-li">
  28. <label>起止日期:</label>
  29. <span>{{ delegationInfo.visitDate }}</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="50">
  41. </el-table-column>
  42. <el-table-column prop="reservationsNo" label="预定号" width="180">
  43. </el-table-column>
  44. <el-table-column prop="hotelName" label="酒店名称" width="180">
  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="180">
  51. <template slot-scope="scope">
  52. {{ scope.row.payMoney }}({{ scope.row.paymentCurrency }})
  53. </template>
  54. </el-table-column>
  55. <el-table-column prop="createUserName" label="操作人" width="120">
  56. </el-table-column>
  57. <el-table-column prop="createTime" label="操作时间" width="180">
  58. </el-table-column>
  59. <el-table-column prop="attachment" label="附 件" width="80">
  60. <template>
  61. <i>下载附件</i>
  62. </template>
  63. </el-table-column>
  64. <el-table-column prop="isAuditGMStr" label="是否审核" width="100">
  65. </el-table-column>
  66. <el-table-column prop="name" label="操 作" width="140">
  67. <template slot-scope="scope">
  68. <el-button-group>
  69. <el-button type="primary" size="mini" icon="el-icon-edit"
  70. @click="upDate(scope.$index, scope.row)"></el-button>
  71. <el-button type="danger" size="mini" icon="el-icon-delete"
  72. @click="del(scope.$index, scope.row)"></el-button>
  73. </el-button-group>
  74. </template>
  75. </el-table-column>
  76. <el-table-column prop="address" label="VOUCHER">
  77. <i>生成</i>
  78. </el-table-column>
  79. </el-table>
  80. <div class="block">
  81. <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
  82. :current-page="currentPage" :page-sizes="[3, 5, 7, 9]" :page-size="pageSize"
  83. layout="total, sizes, prev, pager, next" :total="tableDatas.length">
  84. </el-pagination>
  85. </div>
  86. </div>
  87. <div class="hotelr-form">
  88. <div class="form-head">
  89. <el-popover placement="right" trigger="hover">
  90. <el-table :data="gridData" border>
  91. <el-table-column width="150" property="date" label="日期"></el-table-column>
  92. <el-table-column width="100" property="name" label="姓名"></el-table-column>
  93. <el-table-column width="300" property="address" label="地址"></el-table-column>
  94. </el-table>
  95. <el-button slot="reference">移上提示每天详细房价</el-button>
  96. </el-popover>
  97. <div class="form-head-btn">
  98. <el-button type="primary">确认单</el-button>
  99. <el-button type="primary">预订成本</el-button>
  100. <el-button type="primary">新增切换</el-button>
  101. <el-button type="primary">保存设置</el-button>
  102. </div>
  103. </div>
  104. <div class="form-foundationone select-bz">
  105. <el-form :model="OpHotelReservationsData" :rules="rules" ref="OpHotelReservationsData"
  106. label-width="110px" class="demo-OpHotelReservationsData">
  107. <div style="display: flex;flex-wrap: wrap;">
  108. <el-form-item style="width:350px ;" label="客人类型" prop="gTId">
  109. <el-select size="medium" v-model="OpHotelReservationsData.gTId" placeholder="请选择客人类型">
  110. <el-option v-for="item in guestType" :key="item.id" :label="item.name" :value="item.id">
  111. </el-option>
  112. </el-select>
  113. </el-form-item>
  114. <el-form-item style="width:350px ;" label="计算费用币种" prop="region">
  115. <el-select size="medium" v-model="OpHotelReservationsData.budgetCurrency"
  116. placeholder="请选择币种">
  117. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  118. :value="item.id">
  119. </el-option>
  120. </el-select>
  121. </el-form-item>
  122. <el-form-item label="当前币种团组汇率" label-width="150px">
  123. <span>7.52</span>
  124. </el-form-item>
  125. </div>
  126. <div style="display: flex;flex-wrap: wrap;">
  127. <el-form-item style="width:350px ;" label="入住卷号码" prop="checkNumber">
  128. <el-input size="medium" type="text"
  129. v-model="OpHotelReservationsData.checkNumber"></el-input>
  130. </el-form-item>
  131. <el-form-item style="width:350px ;" label="预订网站" prop="reservationsWebsite">
  132. <el-select size="medium" v-model="OpHotelReservationsData.reservationsWebsite"
  133. placeholder="预订网站">
  134. <el-option v-for="item in bookingWebsite" :key="item.id" :label="item.name"
  135. :value="item.id">
  136. </el-option>
  137. </el-select>
  138. </el-form-item>
  139. <el-form-item style="width:350px ;" label="酒店确定号码" prop="determineNo">
  140. <el-input size="medium" type="text"
  141. v-model="OpHotelReservationsData.determineNo"></el-input>
  142. </el-form-item>
  143. </div>
  144. <div style="display: flex;flex-wrap: wrap;">
  145. <el-form-item style="width:100% ;" label="预订号码" prop="reservationsNo">
  146. <el-input :rows="1" type="textarea"
  147. v-model="OpHotelReservationsData.reservationsNo"></el-input>
  148. </el-form-item>
  149. </div>
  150. <div style="display: flex;flex-wrap: wrap;">
  151. <el-form-item style="width:350px ;" label="所在城市" prop="city">
  152. <el-input size="medium" type="text" v-model="OpHotelReservationsData.city"></el-input>
  153. </el-form-item>
  154. <el-form-item style="width:350px ;" label="酒店名称" prop="hotelName">
  155. <el-input size="medium" type="text" v-model="OpHotelReservationsData.hotelName"></el-input>
  156. </el-form-item>
  157. <el-form-item style="width:350px ;" label="酒店电话" prop="hotelTel">
  158. <el-input size="medium" type="text" v-model="OpHotelReservationsData.hotelTel"></el-input>
  159. </el-form-item>
  160. </div>
  161. <el-form-item label="酒店地址" prop="hotelAddress">
  162. <el-input :rows="1" type="textarea" v-model="OpHotelReservationsData.hotelAddress"></el-input>
  163. </el-form-item>
  164. <el-form-item label="客人姓名" prop="guestName">
  165. <el-input :rows="1" type="textarea" v-model="OpHotelReservationsData.guestName"></el-input>
  166. </el-form-item>
  167. <div class="remcss" style="display: flex;flex-wrap: wrap;">
  168. <el-form-item prop="checkInDate" style="width:350px ;" label="入住时间" required>
  169. <el-date-picker size="medium" type="date" placeholder="选择日期"
  170. v-model="OpHotelReservationsData.checkInDate" style="width: 100%;"></el-date-picker>
  171. </el-form-item>
  172. <el-form-item style="width:350px ;" label="离店时间" prop="checkOutDate">
  173. <el-date-picker size="medium" type="date" placeholder="选择时间"
  174. v-model="OpHotelReservationsData.checkOutDate" style="width: 100%;"></el-date-picker>
  175. </el-form-item>
  176. </div>
  177. <div style="display: flex;flex-wrap: wrap;">
  178. <el-form-item style="width:350px ;" label="酒店单间" prop="predictSingleRoom">
  179. <el-input-number style="width:100px ;" size="medium" :controls="false"
  180. v-model="OpHotelReservationsData.predictSingleRoom"></el-input-number>
  181. <span>间</span>
  182. </el-form-item>
  183. <el-form-item style="width:350px ;" label="酒店双间" prop="predictDoubleRoom">
  184. <el-input-number style="width:100px ;" size="medium" :controls="false"
  185. v-model="OpHotelReservationsData.predictDoubleRoom"></el-input-number>
  186. <span>间</span>
  187. </el-form-item>
  188. <el-form-item style="width:350px ;" label="酒店套房" prop="predictSuiteRoom">
  189. <el-input-number style="width:100px ;" size="medium" :controls="false"
  190. v-model="OpHotelReservationsData.predictSuiteRoom"></el-input-number>
  191. <span>间</span>
  192. </el-form-item>
  193. <el-form-item style="width:350px ;" label="其他房型" prop="predictOtherRoom">
  194. <el-input-number style="width:100px ;" size="medium" :controls="false"
  195. v-model="OpHotelReservationsData.predictOtherRoom"></el-input-number>
  196. <span>间</span>
  197. </el-form-item>
  198. </div>
  199. </el-form>
  200. </div>
  201. <div class="form-foundationone">
  202. <el-form :model="OpHotelReservationsData" :rules="rules" ref="OpHotelReservationsData"
  203. label-width="100px" class="demo-OpHotelReservationsData">
  204. <div style="display: flex;flex-wrap: wrap;">
  205. <el-form-item style="width:25% ;" label="酒店单间" prop="singleRoomCount">
  206. <el-input-number style="width:50px ;" size="medium" :controls="false"
  207. v-model="OpHotelReservationsData.singleRoomCount"></el-input-number>
  208. <span>间</span>
  209. <el-input-number style="width:80px ;" size="medium" :controls="false"
  210. v-model="OpHotelReservationsData.singleRoomPrice"></el-input-number>
  211. <span>单价</span>
  212. <el-select size="medium" v-model="OpHotelReservationsData.budgetCurrency"
  213. style="width: 80px;" :disabled="true" placeholder="">
  214. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  215. :value="item.id">
  216. </el-option>
  217. </el-select>
  218. </el-form-item>
  219. <el-form-item style="width:25% ;" label="酒店双间" prop="desc">
  220. <el-input-number style="width:50px ;" size="medium" :controls="false"
  221. v-model="OpHotelReservationsData.doubleRoomCount"></el-input-number>
  222. <span>间</span>
  223. <el-input-number style="width:80px ;" size="medium" :controls="false"
  224. v-model="OpHotelReservationsData.doubleRoomPrice"></el-input-number>
  225. <span>单价</span>
  226. <el-select size="medium" v-model="OpHotelReservationsData.budgetCurrency"
  227. style="width: 80px;" :disabled="true" placeholder="">
  228. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  229. :value="item.id">
  230. </el-option>
  231. </el-select>
  232. </el-form-item>
  233. <el-form-item style="width:25% ;" label="酒店套房" prop="suiteRoomCount">
  234. <el-input-number style="width:50px ;" size="medium" :controls="false"
  235. v-model="OpHotelReservationsData.suiteRoomCount"></el-input-number>
  236. <span>间</span>
  237. <el-input-number style="width:80px ;" size="medium" :controls="false"
  238. v-model="OpHotelReservationsData.suiteRoomPrice"></el-input-number>
  239. <span>单价</span>
  240. <el-select size="medium" v-model="OpHotelReservationsData.budgetCurrency"
  241. style="width: 80px;" :disabled="true" placeholder="">
  242. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  243. :value="item.id">
  244. </el-option>
  245. </el-select>
  246. </el-form-item>
  247. <el-form-item style="width:25% ;" label="其他房型" prop="otherRoomCount">
  248. <el-input-number style="width:50px ;" size="medium" :controls="false"
  249. v-model="OpHotelReservationsData.otherRoomCount"></el-input-number>
  250. <span>间</span>
  251. <el-input-number style="width:80px ;" size="medium" :controls="false"
  252. v-model="OpHotelReservationsData.fangnum"></el-input-number>
  253. <span>单价</span>
  254. <el-select size="medium" v-model="OpHotelReservationsData.otherRoomPrice"
  255. style="width: 80px;" :disabled="true" placeholder="">
  256. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  257. :value="item.id">
  258. </el-option>
  259. </el-select>
  260. </el-form-item>
  261. </div>
  262. <div style="display: flex;flex-wrap: wrap;">
  263. <el-form-item label-width="100px" style="width:350px ;" label="信用卡金额" prop="cardPrice">
  264. <el-input size="medium" type="text" v-model="OpHotelReservationsData.cardPrice"></el-input>
  265. </el-form-item>
  266. <el-form-item label-width="10px" prop="cTDId">
  267. <el-select size="medium" v-model="OpHotelReservationsData.cTDId" placeholder="请选择信用卡">
  268. <el-option v-for="item in bankCard" :key="item.id" :label="item.name" :value="item.id">
  269. </el-option>
  270. </el-select>
  271. </el-form-item>
  272. <el-form-item style="width:350px ;" label="地税" prop="governmentRent">
  273. <el-input-number :precision="2" style="width:100px ;" size="medium" :controls="false"
  274. v-model="OpHotelReservationsData.governmentRent"></el-input-number>
  275. <el-select style="width:100px ;" size="medium"
  276. v-model="OpHotelReservationsData.governmentRentCurrency" placeholder="请选择">
  277. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  278. :value="item.id">
  279. </el-option>
  280. </el-select>
  281. </el-form-item>
  282. <el-form-item style="width:350px ;" label="城市税" prop="cityTax">
  283. <el-input-number :precision="2" style="width:100px ;" size="medium" :controls="false"
  284. v-model="OpHotelReservationsData.fangnum"></el-input-number>
  285. <el-select style="width:100px ;" size="medium" v-model="OpHotelReservationsData.cityTax"
  286. placeholder="请选择">
  287. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  288. :value="item.id">
  289. </el-option>
  290. </el-select>
  291. </el-form-item>
  292. </div>
  293. <div style="display: flex;flex-wrap: wrap;">
  294. <el-form-item label-width="100px" style="width:350px ;" label="入住类型" prop="checkType">
  295. <el-select style="width: 100%;" size="medium" v-model="OpHotelReservationsData.checkType"
  296. placeholder="请选择入住人类型">
  297. <el-option v-for="item in CheckType" :key="item.value" :label="item.name"
  298. :value="item.value">
  299. </el-option>
  300. </el-select>
  301. </el-form-item>
  302. </div>
  303. <el-form-item label="房间说明" prop="roomExplanation">
  304. <el-input :rows="1" type="textarea"
  305. v-model="OpHotelReservationsData.roomExplanation"></el-input>
  306. </el-form-item>
  307. <el-form-item label="附件" prop="attachment">
  308. <input type="file" />
  309. </el-form-item>
  310. <el-form-item label="备注" prop="remark">
  311. <el-input :rows="3" type="textarea" v-model="OpHotelReservationsData.remark"></el-input>
  312. </el-form-item>
  313. </el-form>
  314. </div>
  315. <div class="form-foundationone">
  316. <div>付款信息</div>
  317. <el-form :model="OpHotelReservationsData" :rules="rules" ref="OpHotelReservationsData"
  318. label-width="100px" class="demo-OpHotelReservationsData">
  319. <div style="display: flex;flex-wrap: wrap;">
  320. <el-form-item style="width:350px ;" label="支付方式" prop="payDId">
  321. <el-select style="width: 100%;" size="medium" v-model="OpHotelReservationsData.payDId"
  322. placeholder="请选择支付方式">
  323. <el-option v-for="item in payment" :key="item.id" :label="item.name" :value="item.id">
  324. </el-option>
  325. </el-select>
  326. </el-form-item>
  327. <el-form-item style="width:350px ;" label="消费方式" prop="consumptionPatterns">
  328. <el-input size="medium" type="text"
  329. v-model="OpHotelReservationsData.consumptionPatterns"></el-input>
  330. </el-form-item>
  331. <el-form-item prop="consumptionDate" style="width:350px ;" label="消费日期" required>
  332. <el-date-picker size="medium" type="date" placeholder="选择日期"
  333. v-model="OpHotelReservationsData.consumptionDate" style="width: 100%;"></el-date-picker>
  334. </el-form-item>
  335. <el-form-item style="width:350px ;" label="付款金额" prop="cardPrices">
  336. <el-input-number :precision="2" style="width:100px ;" size="medium" :controls="false"
  337. v-model="OpHotelReservationsData.cardPrice"></el-input-number>
  338. <el-select style="width:100px ;" size="medium"
  339. v-model="OpHotelReservationsData.budgetCurrency" placeholder="请选择">
  340. <el-option v-for="item in currencyList" :key="item.id" :label="item.name"
  341. :value="item.id">
  342. </el-option>
  343. </el-select>
  344. </el-form-item>
  345. </div>
  346. <div style="display: flex;flex-wrap: wrap;">
  347. <el-form-item style="width:350px ;" label="卡类型" prop="cTDId">
  348. <el-select style="width: 100%;" size="medium" v-model="OpHotelReservationsData.cTDId"
  349. placeholder="请选择卡类型">
  350. <el-option v-for="item in bankCard" :key="item.id" :label="item.name" :value="item.id">
  351. </el-option>
  352. </el-select>
  353. </el-form-item>
  354. <el-form-item style="width:350px ;" label="银行卡号" prop="bankNo">
  355. <el-input size="medium" type="text" v-model="OpHotelReservationsData.bankNo"></el-input>
  356. </el-form-item>
  357. <el-form-item prop="cardholderName" style="width:350px ;" label="持卡人姓名" required>
  358. <el-input size="medium" type="text"
  359. v-model="OpHotelReservationsData.cardholderName"></el-input>
  360. </el-form-item>
  361. </div>
  362. <div style="display: flex;flex-wrap: wrap;">
  363. <el-form-item style="width:350px ;" label="收款方" prop="payee">
  364. <el-input size="medium" type="text" v-model="OpHotelReservationsData.payee"></el-input>
  365. </el-form-item>
  366. <el-form-item style="width:350px ;" label="费用标识" prop="orbitalPrivateTransfer">
  367. <el-select style="width: 100%;" size="medium"
  368. v-model="OpHotelReservationsData.orbitalPrivateTransfer" placeholder="请选择费用标识">
  369. <el-option label="公转" :value="0"></el-option>
  370. <el-option label="私转" :value="1"></el-option>
  371. </el-select>
  372. </el-form-item>
  373. </div>
  374. <el-form-item label="备注" prop="desc">
  375. <el-input :rows="3" type="textarea" v-model="OpHotelReservationsData.desc"></el-input>
  376. </el-form-item>
  377. </el-form>
  378. </div>
  379. </div>
  380. </div>
  381. </div>
  382. </template>
  383. <script>
  384. export default {
  385. data() {
  386. return {
  387. tableData: [],
  388. tableDatas: [],
  389. currentPage: 1, // 当前页码
  390. pageSize: 5,// 每页的数据条数
  391. gridData: [],
  392. loading: false,
  393. delegationInfoList: [],
  394. delegationInfo: {},
  395. guestType: [],//客人类型
  396. currencyList: [],//币种下拉框
  397. bankCard: [],//卡类型下拉框
  398. payment: [],//支付方式下拉框
  399. bookingWebsite: [],//预订网站
  400. CheckType: [
  401. {
  402. name: '客人房',
  403. value: '',
  404. },
  405. {
  406. name: '司机房',
  407. value: 'D',
  408. },
  409. {
  410. name: '导游房',
  411. value: 'G',
  412. },
  413. {
  414. name: '司机导游房',
  415. value: 'D&G',
  416. },
  417. ],
  418. OpHotelReservationsData: {
  419. status: 0,
  420. id: 0,
  421. diId: 0,
  422. gtId: 0,
  423. checkNumber: '',
  424. reservationsWebsite: 0,
  425. reservationsNo: '',
  426. determineNo: '',
  427. city: '',
  428. hotelName: '',
  429. hotelAddress: '',
  430. hotelTel: '',
  431. guestName: '',
  432. checkInDate: '',
  433. checkOutDate: '',
  434. budget: 0,
  435. budgetCurrency: '',
  436. singleRoomCount: 0,
  437. singleRoomPrice: 0,
  438. doubleRoomCount: 0,
  439. doubleRoomPrice: 0,
  440. suiteRoomCount: 0,
  441. suiteRoomPrice: 0,
  442. otherRoomCount: 0,
  443. otherRoomPrice: 0,
  444. roomExplanation: '',
  445. attachment: '',
  446. cardPrice: 0,
  447. isCardPrice: 0,
  448. predictSingleRoom: 0,
  449. predictDoubleRoom: 0,
  450. predictSuiteRoom: 0,
  451. predictOtherRoom: 0,
  452. governmentRent: 0,
  453. governmentRentCurrency: 0,
  454. cityTax: 0,
  455. cityTaxCurrency: 0,
  456. checkType: '',
  457. myProperty: 0,
  458. createUserId: 0,
  459. remark: '',
  460. payDId: '',
  461. consumptionPatterns: '',
  462. consumptionDate: '',
  463. ctdId: 0,
  464. companyBankNo: '',
  465. otherBankName: '',
  466. otherSideNo: '',
  467. otherSideName: '',
  468. bankNo: '',
  469. cardholderName: '',
  470. payee: '',
  471. orbitalPrivateTransfer: 0,
  472. cRemark: ''
  473. },
  474. rules: {
  475. checkInDate: [
  476. { type: 'date', required: true, message: '请选择日期', trigger: 'change' }
  477. ],
  478. },
  479. }
  480. },
  481. methods: {
  482. //每页条数改变时触发 选择一页显示多少行
  483. handleSizeChange(val) {
  484. this.currentPage = 1;
  485. this.pageSize = val;
  486. },
  487. //当前页改变时触发 跳转其他页
  488. handleCurrentChange(val) {
  489. this.currentPage = val;
  490. },
  491. HotelReservationsInitialize() {
  492. var url = "/api/Groups/HotelReservationsInitialize"
  493. var that = this
  494. this.$axios({
  495. method: 'post',
  496. url: url,
  497. headers: {
  498. Authorization: 'Bearer ' + this.token
  499. },
  500. data: {
  501. UserId: that.userId,
  502. }
  503. }).then(function (res) {
  504. if (res.data.code == 200) {
  505. debugger
  506. that.guestType = res.data.data.guestType//客人类型
  507. that.currencyList = res.data.data.currencyList//币种下拉框
  508. that.bankCard = res.data.data.bankCard//卡类型下拉框
  509. that.payment = res.data.data.payment//支付方式下拉框
  510. that.bookingWebsite = res.data.data.bookingWebsite//预订网站
  511. that.delegationInfoList = res.data.data.delegations;
  512. that.OpHotelReservationsData.diid = that.$route.query.diId
  513. if (that.OpHotelReservationsData.diid == undefined) {
  514. that.delegationInfo = that.delegationInfoList[0]
  515. that.OpHotelReservationsData.diid = that.delegationInfoList[0].id;
  516. that.VisitDate = that.dateFormat(that.delegationInfo.visitStartDate) + '至' + that.dateFormat(that.delegationInfo.visitEndDate);
  517. } else {
  518. for (let index = 0; index < that.delegationInfoList.length; index++) {
  519. debugger
  520. if (that.delegationInfoList[index].id == that.OpHotelReservationsData.diid) {
  521. that.delegationInfo = that.delegationInfoList[index];
  522. that.OpHotelReservationsData.diid = that.delegationInfoList[index].id;
  523. break;
  524. }
  525. }
  526. }
  527. that.HotelReservationsByDiId();
  528. }
  529. }).catch(function (error) {
  530. that.$message.error("网络错误,请稍后重试");
  531. });
  532. },
  533. delegationSelectChange() {
  534. for (let index = 0; index < this.delegationInfoList.length; index++) {
  535. debugger
  536. if (this.delegationInfoList[index].id == this.OpHotelReservationsData.diid) {
  537. this.delegationInfo = this.delegationInfoList[index];
  538. this.OpHotelReservationsData.diid = this.delegationInfoList[index].id;
  539. this.VisitDate = this.dateFormat(this.delegationInfo.visitStartDate) + '至' + this.dateFormat(this.delegationInfo.visitEndDate);
  540. break;
  541. }
  542. }
  543. this.HotelReservationsByDiId();
  544. },
  545. HotelReservationsByDiId() {
  546. var url = "/api/Groups/HotelReservationsByDiId"
  547. var that = this
  548. this.$axios({
  549. method: 'post',
  550. url: url,
  551. headers: {
  552. Authorization: 'Bearer ' + this.token
  553. },
  554. data: {
  555. pageIndex: 0,
  556. pageSize: 0,
  557. portType: 1,
  558. diId: that.OpHotelReservationsData.diid,
  559. }
  560. }).then(function (res) {
  561. if (res.data.code == 200) {
  562. that.tableDatas = res.data.data;
  563. that.tableData = that.tableDatas
  564. if (that.tableDatas.length != 0) {
  565. if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
  566. if (that.currentPage > 1) {
  567. that.currentPage = that.currentPage - 1;
  568. }
  569. }
  570. }
  571. }
  572. }).catch(function (error) {
  573. that.$message.error("网络错误,请稍后重试");
  574. });
  575. },
  576. submitForm(formName) {
  577. this.$refs[formName].validate((valid) => {
  578. if (valid) {
  579. alert('submit!');
  580. } else {
  581. console.log('error submit!!');
  582. return false;
  583. }
  584. });
  585. },
  586. resetForm(formName) {
  587. this.$refs[formName].resetFields();
  588. },
  589. },
  590. mounted() {
  591. this.token = JSON.parse(localStorage.getItem('userinif')).token;
  592. this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
  593. this.HotelReservationsInitialize();
  594. //this.AirTicketResList()
  595. }
  596. }
  597. </script>
  598. <style>
  599. .hotelr-all {
  600. background-color: #fff;
  601. padding: 10px;
  602. box-shadow: 0 0 5px #0005;
  603. border-radius: 10px;
  604. height: 100%;
  605. min-height: 840px;
  606. }
  607. .hotelr-head-li label {
  608. color: #606266;
  609. font-size: 15px;
  610. font-weight: 600;
  611. }
  612. .hotelr-head {
  613. display: flex;
  614. justify-content: space-between;
  615. }
  616. .hotelr-info {
  617. display: flex;
  618. margin-top: 10px;
  619. }
  620. .hotelr-info-li {
  621. margin-right: 30px;
  622. }
  623. .hotelr-info-li label {
  624. color: #606266;
  625. font-size: 15px;
  626. font-weight: 600;
  627. }
  628. .hotelr-info-li span {
  629. color: #606266;
  630. font-size: 14px;
  631. }
  632. .hotelr-table {
  633. margin-top: 10px;
  634. }
  635. .form-head {
  636. display: flex;
  637. justify-content: space-between;
  638. }
  639. .hotelr-form {
  640. margin-top: 20px;
  641. }
  642. .form-foundationone {
  643. margin-top: 10px;
  644. border-top: 2px solid #409EFF;
  645. padding-top: 20px;
  646. }
  647. .form-foundationone .el-form-item {
  648. margin-bottom: 12px;
  649. }
  650. .form-foundationone .el-form-item__error {
  651. top: 90%;
  652. }
  653. .select-bz .el-select {
  654. width: 100%;
  655. }
  656. </style>