<style> .roomReservationsDetailsTalbe .el-button { padding: 5px; display: block; margin: 5px auto; font-size: 12px; } .rq_importNote { color: red; } .rq_disImNote { color: #ea6d6d; } </style> <template> <div> <div class="query-box" style="border-bottom: none;"> <ul> <li> <input v-if="IsOperation!=1" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" /> <span v-else style="color:red;font-size:14px;">已制单,不能在修改!</span> </li> </ul> </div> <div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " :style="{height: boxHeight + 'px'}" class="ownScrollbarStyle" ref="ownScrollbarStyle"> <table border="0" cellspacing="1" cellpadding="0" class="roomReservationsDetailsTalbe" v-loading="loading"> <tr> <th class="fz14" colspan="8">团队信息</th> <th class="fz14" colspan="13">地接操作信息</th> </tr> <tr> <th width="120">入住时间</th> <th width="180">酒店名称</th> <th width="120">机位总数<br />(Y/E/F)</th> <th width="80">占床/<br />不占床</th> <th width="80">实际<br />用房数</th> <th width="100">房间类型</th> <th width="70">房间数</th> <th width="70">房间<br />人数</th> <th width="170">修改酒店/供应商</th> <th width="80">房间<br />预定数</th> <th width="80">预定人数</th> <th width="80">尚差<br />房间数</th> <th width="80">单价/每人</th> <th width="80">免减人数</th> <th width="80">金额小计</th> <th width="80">返佣</th> <th width="100">金额总计</th> <th width="250">付款方式&订团号&备注</th> <th width="80">操作</th> </tr> <template v-for="(item,index) in list"> <template v-for="(subItem,subIndex) in item.HotelOrderList"> <tr v-for="(childItem,childIndex) in subItem.OrderDetailsList"> <td v-if="childIndex==0&&subIndex==0" :rowspan="5*item.HotelOrderList.length"> {{item.UseTimeStr}} </td> <!-- 酒店名称 --> <td v-if="childIndex==0" :rowspan="5"> <table class="hotelTable"> <tr> <td colspan="2"> <p class="link" style="word-break: normal;text-align:left;" :class="{'Hotel_red':subItem.HotelChangeState==3}" @click="goUrlR('HotelManagement',subItem.HotelId,'酒店管理')">{{subItem.HotelName}}</p> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="40"> 电话: </td> <td style="text-align:left"> {{subItem.Tel}} </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="40"> 地址: </td> <td style="text-align:left"> {{subItem.Address}} </td> </tr> </table> </td> <!-- 机位总数/(Y/E/F) --> <td v-if="childIndex==0" :rowspan="5"> <p class="link" @click="goUrlT('RegistrationList',item.TCID,'报名清单')"> {{flightTotal}}/{{subItem.HouseStatistics.RealityYSeatNum}}/{{subItem.HouseStatistics.RealityESeatNum}}/{{subItem.HouseStatistics.RealityFSeatNum}} </p> </td> <!-- 占床/不占床 --> <td v-if="childIndex==0" :rowspan="5"> <p class="link" @click="goUrlT('passengerHouse',item.TCID,'房间分配')"> {{subItem.HouseStatistics.NeedBed}}/{{subItem.HouseStatistics.NoNeedBed}}</p> </td> <!-- 实际用房数 --> <td v-if="childIndex==0" :rowspan="5"> {{subItem.HouseStatistics.RealityRoomNum}} </td> <!-- 房间类型 --> <td> {{subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeName}} </td> <!-- 房间数 --> <td> {{subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeCount}} </td> <!-- 房间人数 --> <td> {{subItem.HouseStatistics.HouseTypeList[childIndex].HouseGuestNum}} </td> <td v-if="childIndex==0" :rowspan="5"> <table class="hotelTable"> <tr> <td width="70" style="text-align:center;" colspan="2"> <span style="color:green">{{subItem.NewHotelName}}</span> <el-popover placement="right" width="540" trigger="click" v-model="subItem.isShowPop"> <comCheckHotel :ref="'comCheckHotel'+index+subIndex+''" v-on:childHotel="childHotelList" :UseDate="item.UseTimeStr" :Country="651"> </comCheckHotel> <el-button size="small" type="danger" :data-index="'comCheckHotel'+index+subIndex+''" slot="reference" style="cursor:pointer;" @click="getChildHotel(index,subIndex),subItem.isShowPop=true"> 酒店选择 </el-button> </el-popover> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;"> 供应商 </td> <td> <el-select class='w120 sel' v-model='subItem.SupplierId' filterable placeholder="请选择供应商"> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option v-for="(SupplierItem,Supplierindex) in SupplierList" :key="Supplierindex" :label="SupplierItem.Name" :value="SupplierItem.ID"> </el-option> </el-select> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td colspan="2"> <p style="padding-top: 5px;"> <a v-if="subItem.ContractUrl" target="_blank" :href="subItem.ContractUrl">手配书</a> </p> <el-upload :http-request="uploadFileBtnS" :multiple="false" :show-file-list="false" action=''> <el-button size="small" type="danger" @click='getItem(index, subIndex)'> {{!subItem.ContractUrl ? '上传手配书' : '重新上传手配书'}}</el-button> </el-upload> </td> </tr> </table> </td> <!-- 房间数 --> <td> <el-input class='w40 tcenter' maxlength="2" @keyup.native="checkPrice(childItem,'HouseTypeCount')" v-model='childItem.HouseTypeCount' :disabled="childIndex<4?true:false"></el-input> </td> <td> <el-input class='w40 tcenter' maxlength="2" @keyup.native="checkInteger(childItem,'BookNum')" @input="calculationPrice(subItem)" v-model='childItem.BookNum' :disabled="childIndex<4?true:false"> </el-input> </td> <!-- 尚差房间数 --> <td> <p class="pHouseStyle" :class="{colorRed:childItem.HouseTypeCount-subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeCount<0}"> {{childItem.HouseTypeCount-subItem.HouseStatistics.HouseTypeList[childIndex].HouseTypeCount}} </p> </td> <!-- 单价/每人 --> <td> <el-input @keyup.native="checkInteger(childItem,'UnitPrice')" class='w60 tcenter' @input="calculationPrice(subItem)" v-model='childItem.UnitPrice' :disabled="IsEditHotel==0?true:false"> </el-input> </td> <!-- 免减人数 --> <td> <el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'HotelDiscount')" v-model='childItem.HotelDiscount' @input="calculationPrice(subItem)"> </el-input> </td> <!-- 金额小计 --> <td style="white-space:nowrap;"> {{childItem.UnitPrice*(childItem.BookNum-childItem.HotelDiscount)}} </td> <!--返佣--> <td> <p class="pHouseStyle link"> <el-input class='w40' maxlength="2" @keyup.native="checkInteger(childItem,'RebateRatio')" v-model='childItem.RebateRatio' @input="calculationPrice(subItem)" :disabled="IsEditHotel==0?true:false"></el-input> % <span style="display:none;" class="spanlink" @click="goUrl('HotelInfo',childItem,'酒店管理')">设置</span> </p> </td> <!-- 金额总计 --> <td v-if="childIndex==0" :rowspan="5" style="white-space:nowrap;"> {{subItem.TotalPrice}} </td> <!-- 付款方式 --> <td v-if="childIndex==0" :rowspan="5"> <table class="hotelTable"> <tr> <td width="70" style="text-align:right;">订房状态:</td> <td> <el-select class='w135 sel' v-model='subItem.DMCState' :placeholder="$t('pub.pleaseSel')" :disabled="IsEditHotel==0?true:false"> <el-option label='请选择' :value='0'></el-option> <el-option label='确定' :value='1'></el-option> <el-option label='暂定' :value='2'></el-option> </el-select> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;">确认时间:</td> <td> <el-date-picker v-model='subItem.SureTime' class='w135' value-format="yyyy-MM-dd" type="date" :disabled="IsEditHotel==0?true:false"></el-date-picker> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;">税入/税别:</td> <td> <el-select class='w135 sel' v-model='subItem.TaxType' :placeholder="$t('pub.pleaseSel')" @change="calculationPrice(subItem)" :disabled="IsEditHotel==0?true:false"> <el-option label='请选择' :value='0'></el-option> <el-option label='税入' :value='1'></el-option> <el-option label='税别' :value='2'></el-option> </el-select> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;color:red">付款方式:</td> <td> <el-select class='w135 sel' v-model='subItem.DMCPayType' :placeholder="$t('pub.pleaseSel')" :disabled="IsEditHotel==0?true:false"> <el-option label='请选择' :value='0'></el-option> <el-option label='现付' :value='1'></el-option> <el-option label='签单' :value='2'></el-option> <el-option label='实物抵扣' :value='3'></el-option> <el-option label='预付' :value='4'></el-option> <el-option label='预付款抵扣' :value='5'></el-option> </el-select> </td> </tr> <tr style="display:none;"> <td colspan="2" style="height:5px;"></td> </tr> <tr style="display:none;"> <td width="70" style="text-align:right;">报账付款方式:</td> <td> <el-select class='w135 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')" :disabled="IsEditHotel==0?true:false"> <el-option label='请选择' :value='0'></el-option> <el-option label='现付' :value='1' v-if="subItem.PayStyleExt==1"></el-option> <el-option label='签单' :value='2' v-if="subItem.PayStyleExt==2"></el-option> <el-option label='实物抵扣' :value='3' v-if="subItem.PayStyleExt==3"></el-option> <el-option label='预付' :value='4' v-if="subItem.PayStyleExt==4"></el-option> <el-option label='预付款抵扣' :value='5' v-if="subItem.PayStyleExt==5"></el-option> <el-option label='公司合团支付' :value='6'></el-option> </el-select> </td> </tr> <tr v-show="subItem.PayStyle==6"> <td colspan="2" style="height:5px;"></td> </tr> <tr v-show="subItem.PayStyle==6"> <td width="70" style="text-align:right;">付款团号:</td> <td> <el-input class='w135' v-model='subItem.PayTypeTCNUM' :disabled="IsEditHotel==0?true:false"> </el-input> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;">订团号:</td> <td> <el-input class='w135' v-model='subItem.ReserveNo'></el-input> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;">提醒供应商:</td> <td> <el-select class='w135 sel' v-model='subItem.SupplierHotelStatus' :placeholder="$t('pub.pleaseSel')"> <el-option label='请选择' :value='0'></el-option> <el-option label='一般提醒' :value='1'></el-option> <el-option label='重要提醒' :value='2'></el-option> </el-select> </td> </tr> <tr> <td colspan="2" style="height:5px;"></td> </tr> <tr> <td width="70" style="text-align:right;">对供应商备注:</td> <td> <el-input type='textarea' class='w135' v-model='subItem.Remarks'></el-input> </td> </tr> <tr v-if="subItem.SupplierToDmcRemarks"> <td width="70" style="text-align:right;">供应商对地接备注:</td> <td> <span :class="{'rq_disImNote':subItem.SupplierToDmcHotelStatus==1&&DateMinus(subItem.SupplierToDmcHotelStatusTime)<=5,'rq_importNote':subItem.SupplierToDmcHotelStatus==2&&DateMinus(subItem.SupplierToDmcHotelStatusTime)<=5}"> {{subItem.SupplierToDmcRemarks}} </span> </td> </tr> </table> </td> <!-- 操作 --> <td v-if="childIndex==0" :rowspan="5"> <template v-if="subItem.OPState==1"> <span class="Hotel_red">OP-指定</span> </template> <template v-if="IsOperation!=1"> <el-tooltip class="item" effect="dark" content="保存" placement="top-start"> <el-button icon="iconfont icon-baocun1" @click="SaveSingle(subItem)" type="primary"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="新增" v-if="subItem.OPState!=1" placement="top-start"> <el-button @click='AddHotel(item,subIndex)' icon="iconfont icon-tianjia" type="primary"></el-button> </el-tooltip> <el-tooltip v-if="item.HotelOrderList.length>1 && subItem.OPState!=1" class="item" effect="dark" content="删除" placement="top-start"> <el-button type="primary" icon="iconfont icon-shanchu" @click='DeleteHotel(item,subIndex)'> </el-button> </el-tooltip> </template> <el-popover width="200" trigger="click" popper-class="Bus_HotelPop"> <commonHotelLog :ref="'comHotelLog'+index+subIndex+''"> </commonHotelLog> <div slot="reference" class="w80" style="cursor:pointer;text-decoration:underline;" @click="GetHotelLog(subItem,index,subIndex)">日志</div> </el-popover> </td> </tr> </template> </template> </table> </div> </div> </template> <script> import moment from 'moment' import comCheckHotel from "../commonPage/comCheckHotel.vue"; import commonHotelLog from "../commonPage/commonHotelLog.vue"; import commonPHlInfo from "../commonPage/commonPriceHotelInfo.vue"; export default { data() { return { defaultSelectValue: 0, list: [], roomList: [], TCNUM: '', flightTotal: 0, GuestNum: 0, hotelList: [], //创建人头像 CreateByPhoto: '', //创建人联系电话 CreateByAccount: '', //创建人姓名 CreateByName: '', //点击项 ClickItem: {}, offsetwidth: 0, parentEle: '', checkedIndex: '', checkedsubIndex: '', loading: false, boxHeight: 0, //供应商列表 SupplierList: [], ckedHotelId: 0, ckedHotelName: '', showHotelList: false, findex: 0, childIndex: 0, //修改酒店价格,付款方式权限[0-不能修改,1-有权限修改] IsEditHotel: 0, //0-可以操作,1-已制单,不能操作 IsOperation: 1, } }, components: { comCheckHotel, commonHotelLog, commonPHInfo: commonPHlInfo }, methods: { //调用子组件方法 GetHotelUsePriceList(HotelId, UseDay, index, hotelSubIndex) { let str = `dmccomPriceHotelInfo${index}${hotelSubIndex}`; this.$refs[str][0].getHotelPriceList(HotelId, UseDay); }, //调用子组件获取日志方法 GetHotelLog(subItem, index, hotelSubIndex) { let str = `comHotelLog${index}${hotelSubIndex}` this.$refs[str][0].getHotelLogsList(subItem.TCID, subItem.HotelId, subItem.CheckInDateStr); }, //获取子组件返回的数据 childHotelList(ckedObj) { //使用时间 var oldData = JSON.parse(JSON.stringify(this.list[this.findex].HotelOrderList[this.childIndex])); this.list.forEach(x => { x.HotelOrderList.forEach(y => { y.isShowPop = false; }) }); var useTime = oldData.CheckInDateStr; var hotelId = ckedObj.ID; var TCID = oldData.TCID; this.apipost('travel_get_GetHotelUsePriceListService_V2', { HotelId: hotelId, UseTime: useTime, TCID: TCID }, res => { if (res.data.resultCode == 1) { var objData = res.data.data; //库存不够 if (objData.isOverStock == 0) { if (objData.list && objData.list.length > 0) { var str = ""; objData.list.forEach((cItem, cIndex) => { str += (cIndex == 0 ? "" : ",") + cItem.TCNUM + "使用了" + cItem.LastUseNum + "间"; }); if (str != "") { this.Info(str); } } } //库存充足或没有酒店库存的情况 else if (objData.isOverStock == 1 || objData.isOverStock == -1) { this.list[this.findex].HotelOrderList[this.childIndex].Address = ckedObj.Address; this.list[this.findex].HotelOrderList[this.childIndex].NewHotelName = ckedObj.Name; this.list[this.findex].HotelOrderList[this.childIndex].Tel = ckedObj.Tel; this.list[this.findex].HotelOrderList[this.childIndex].NewHotelId = ckedObj.ID; this.list[this.findex].HotelOrderList[this.childIndex].PayStyle = ckedObj.PayStyle; this.list[this.findex].HotelOrderList[this.childIndex].PayStyleExt = ckedObj.PayStyle; this.list[this.findex].HotelOrderList[this.childIndex].OrderDetailsList.forEach(subItem => { subItem.UnitPrice = ckedObj.CostPrice; subItem.RebateRatio = ckedObj.RebateRatio; }); this.calculationPrice(this.list[this.findex].HotelOrderList[this.childIndex]); } } else { this.Error("请求参数错误!"); } }, err => {}) }, getChildHotel(index, subIndex) { this.findex = index; this.childIndex = subIndex; let str = `comCheckHotel${index}${subIndex}` this.$refs[str][0].getCheckHotel(); }, DateMinus(sDate) { var newDate = moment(sDate).format("YYYY-MM-DD"); var sdate = new Date(newDate.replace(/-/g, "/")); var now = new Date(); var days = now.getTime() - sdate.getTime(); var day = Math.abs(parseInt(days / (1000 * 60 * 60 * 24))); return day; }, getItem(index, subIndex) { this.checkedIndex = index this.checkedsubIndex = subIndex }, uploadFileBtnS(file) { //手配书上传 let that = this let newArr = [] newArr.push(file.file) let path = '/Upload/DMC/Hotel' this.$message.info('上传中...') this.UploadSelfFileT(path, newArr, x => { this.list[this.checkedIndex].HotelOrderList[this.checkedsubIndex].ContractUrl = this.domainManager() .ViittoFileUrl + x.data.FilePath this.$message.success(x.data.Message) let newlist = JSON.parse(JSON.stringify(this.list)) this.list = newlist this.$forceUpdate() }) }, //添加酒店 AddHotel(item, subIndex) { var subItem = JSON.parse(JSON.stringify(item.HotelOrderList[subIndex])); subItem.HotelId = 0; subItem.HotelName = ""; subItem.OrderID = 0; subItem.OrderDetailsList.forEach(childItem => { childItem.OrderDetailsId = 0; }); item.HotelOrderList.push(subItem); }, //删除酒店 DeleteHotel(item, subIndex) { var that = this; this.Confirm("是否删除?删除后将不能恢复", function () { var subItem = item.HotelOrderList[subIndex]; if (subItem.OrderID > 0) { that.apipost('dmcstatistics_post_DeleteHotelOrder', { ID: subItem.OrderID, TCID: subItem.TCID }, res => { if (res.data.resultCode == 1) { that.Success(res.data.message); that.getList(); item.HotelOrderList.splice(subIndex, 1); } else { that.Error(res.data.message); } }, err => {}) } else { item.HotelOrderList.splice(subIndex, 1); that.saveList(0); } }); }, //联系op downLoadPZ: function (src) { let dom = document.querySelector("#blankLink") dom.href = src dom.click() }, //删除 deleteFile(item, index) { item.ContractUrlArray.splice(index, 1); var str = ""; item.ContractUrlArray.forEach(subItem => { str += subItem + ","; }) item.ContractUrl = str != "" ? str.substring(0, str.length - 1) : str; }, openChart() { this.MsgBus.$emit('openChat', { account: this.CreateByAccount, alias: this.CreateByName, avatar: this.CreateByPhoto }) }, goUrl(path, obj, name) { this.$router.push({ path: path, query: { id: obj.HotelId, blank: "y", tab: name } }); }, goUrlR(path, obj, title) { this.$router.push({ name: path, query: { "ID": obj, blank: 'y', tab: title } }) }, goUrlT(path, obj, title) { this.$router.push({ name: path, query: { "id": obj, blank: 'y', tab: title } }) }, getList() { this.loading = true; this.apipost('dmcstatistics_get_GetHotelStaticsDetail_V2', { TCIDs: this.$route.query.id, NewCombinationNum: this.$route.query.NewCombinationNum }, res => { if (res.data.resultCode == 1) { this.IsOperation = res.data.data.IsOperation; this.IsEditHotel = res.data.data.IsEditHotel; let list = res.data.data.HotelOrderListReport; this.CreateBy = res.data.data.CreateBy; this.CreateByPhoto = res.data.data.CreateByPhoto; this.CreateByAccount = res.data.data.CreateByAccount; if (list != null && list.length > 0) { list.forEach(item => { item.HotelOrderList.forEach(subItem => { subItem.hotelList.push({ Name: subItem.NewHotelName, ID: subItem.NewHotelId }); this.calculationPrice(subItem); subItem.OrderDetailsList.forEach((x, index1) => { x.HouseTypeCount = x.HouseTypeCount.toString(); x.UnitPrice = x.UnitPrice.toString(); x.HotelDiscount = x.HotelDiscount.toString(); }) if (subItem.ReserveNo == '' || subItem.ReserveNo == null) { subItem.ReserveNo = this.$route.query.NewCombinationNum; } subItem.isShowPop = false; subItem.ckedHotelName = ""; }) }); this.list = list; this.$forceUpdate(); } } else { this.$message.error(res.data.message); } this.loading = false }, err => {}) }, calculationPrice(obj) { let totalPrice = 0; obj.OrderDetailsList.forEach(item => { //税别 if (obj.TaxType == 2) { totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item.RebateRatio / 100); } else { totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100); } }) obj.TotalPrice = totalPrice.toFixed(2); this.$forceUpdate(); }, getHotelList(obj) { this.apipost('hotel_post_GetHasStockHotelList', { //1-只查询有库存的酒店 IsMoreThanZero: 0, Country: "651", IsAllHotel: 1, sDate: obj.CheckInDateStr }, res => { if (res.data.resultCode == 1) { obj.hotelList = res.data.data; } else { this.$message.error(res.data.message); } }, err => {}) }, sendValue(obj) { if (obj.hotelList.length > 0) { let ckedObj = obj.hotelList.find(item => item.ID == obj.NewHotelId); obj.Address = ckedObj.Address; obj.Tel = ckedObj.Tel; obj.NewHotelName = ckedObj.Name; obj.PayStyle = ckedObj.PayStyle; obj.PayStyleExt = ckedObj.PayStyle; } else { obj.Address = ''; obj.Tel = ''; } }, saveList(type) { if (type == 0) { this.list.forEach(item => { item.HotelOrderList.forEach(subItem => { subItem.HotelOrderState = 0; }); }) } if (type == 1) { this.list.forEach(item => { item.HotelOrderList.forEach(subItem => { subItem.HotelOrderState = 1; }); }) } this.list.forEach(item => { item.HotelOrderList.forEach(subItem => { subItem.OrderDetailsList.forEach(y => { if (y.HouseTypeCount) { y.HouseTypeCount = parseFloat(y.HouseTypeCount); } else { y.HouseTypeCount = 0; } if (y.UnitPrice) { y.UnitPrice = parseInt(y.UnitPrice); } else { y.UnitPrice = 0; } if (y.HotelDiscount) { y.HotelDiscount = parseInt(y.HotelDiscount); } else { y.HotelDiscount = 0; } if (y.BookNum == "") { y.BookNum = 0; } if (y.RebateRatio == "") { y.RebateRatio = 0; } }) }); }) this.loading = true; this.apipost('dmcstatistics_get_SetHotelOrder', this.list, res => { this.loading = false; if (res.data.resultCode == 1) { this.getList(); this.Success(res.data.message); } else { this.Error(res.data.message); } }, err => {}) }, //单条保存 SaveSingle(item) { item.HotelOrderState = 1; this.list.forEach(item => { item.HotelOrderList.forEach(subItem => { subItem.OrderDetailsList.forEach(y => { if (y.HouseTypeCount) { y.HouseTypeCount = parseFloat(y.HouseTypeCount); } else { y.HouseTypeCount = 0; } if (y.UnitPrice) { y.UnitPrice = parseInt(y.UnitPrice); } else { y.UnitPrice = 0; } if (y.HotelDiscount) { y.HotelDiscount = parseInt(y.HotelDiscount); } else { y.HotelDiscount = 0; } if (y.BookNum == "") { y.BookNum = 0; } if (y.RebateRatio == "") { y.RebateRatio = 0; } }) }); }) let mag = { TotalList: this.list, SingleItem: item }; this.apipost('dmcstatistics_get_SetHotelOrder', this.list, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.getList(); } else { this.Error(res.data.message); } }, err => {}) }, //合同上传 uploadFileBtn(file) { if (file.file.size > 1024 * 1024 * 100) { this.$message.warning("文件大小不能超过100M!"); return; } let newArr = []; newArr.push(file.file); let path = "/Upload/DMC/"; this.$message.info("上传中..."); this.UploadSelfFileT(path, newArr, x => { var fileUrl = this.domainManager().ViittoFileUrl + x.data.FilePath; this.ClickItem.ContractUrlArray.push(fileUrl); var str = ""; this.ClickItem.ContractUrlArray.forEach(subItem => { str += subItem + ","; }) this.ClickItem.ContractUrl = str != "" ? str.substring(0, str.length - 1) : str; }); }, // 获取供应商 initSupplier() { this.apipost("supplier_post_GetAllList", { Type: 1, Country: 651 }, res => { if (res.data.resultCode === 1) { this.SupplierList = res.data.data; } }, err => {}); }, }, mounted() { this.TCNUM = this.$route.query.TCNUM; this.flightTotal = this.$route.query.flightTotal; this.GuestNum = this.$route.query.GuestNum; let width = window.innerWidth - 50; let height = window.innerHeight - 65 - 55; this.boxHeight = height; this.offsetwidth = width; this.initSupplier(); this.getList(); } } </script> <style> .roomReservationsDetailsTalbe { border-collapse: collapse; background: #fff; text-align: center; } .roomReservationsDetailsTalbe .el-button+.el-button { margin: 5px auto !important; } .roomReservationsDetailsTalbe tr th { background: #eee; height: 40px; font-size: 12px; color: #333; border: 1px solid #d1d1d1; } .roomReservationsDetailsTalbe tr td { font-size: 12px; border: 1px solid #d1d1d1; } .roomReservationsDetailsTalbe .pHouseStyle { border-bottom: 1px solid #ccc; height: 28px; line-height: 28px; } .roomReservationsDetailsTalbe tr td .colorRed { color: #E95252; } .roomReservationsDetailsTalbe tr td .pHouseStyle:last-child { border-bottom: none; } .roomReservationsDetailsTalbe tr td input { height: 20px !important; padding: 0 !important; text-align: center; } .roomReservationsDetailsTalbe tr td .sel input { height: 34px !important; padding-right: 20px !important; padding-left: 5px !important; font-size: 12px !important; } .roomReservationsDetailsTalbe tr td .link:hover { text-decoration: underline; cursor: pointer; } .roomReservationsDetailsTalbe .Hotel_red { color: red; } .roomReservationsDetailsTalbe .hotelTable { border: none; } .roomReservationsDetailsTalbe .hotelTable tr td { border: none; } </style>