<template> <div> <div class="query-box dmcMain" style="border-bottom: none;"> <ul> <li> <span> <em>线路</em> <el-select v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')" @change="getLinePlaceList()"> <el-option label="不限" :value='0'></el-option> <el-option v-for="item in queryCommonData.LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'> </el-option> </el-select> </span> </li> <li> <span> <em>{{$t('Operation.Op_Country')}}/{{$t('system.query_dest')}}</em> <el-select v-model="msg.PlaceID" filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList()"> <el-option :label="$t('pub.unlimitedSel')" :value="0"></el-option> <el-option v-for="item in queryCommonData.PlaceList" :label="item.PlaceName" :value="item.PlaceID" :key="item.LtID"></el-option> </el-select> </span> </li> <li> <span> <em>系列</em> <el-select v-model="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')"> <el-option label="不限" :value='0'></el-option> <el-option v-for="item in queryCommonData.LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'> </el-option> </el-select> </span> </li> <li> <span> <em>团号</em> <el-input v-model='msg.TCNUM'></el-input> </span> </li> <li><span><em>日期</em> <el-date-picker v-model='msg.StartDate' class='w135' value-format="yyyy-MM-dd" type="date" :picker-options="pickerBeginDateBefore"></el-date-picker> - <el-date-picker v-model='msg.EndDate' class='w135' value-format="yyyy-MM-dd" type="date" :picker-options="pickerBeginDateAfter"></el-date-picker> </span> </li> <li><span> <em>状态</em> <el-select v-model='msg.PriceStatus'> <el-option :label="$t('pub.unlimitedSel')" :value="0"></el-option> <el-option v-for="team in $tripUtils.TeamStatesList.TeamStates" :label="team.Name" :key="team.Id" :value="team.Id" v-if="team.Id==1 || team.Id==3"></el-option> </el-select> </span> </li> <li> <span> <em>航空公司</em> <el-select v-model="msg.AirLineId" filterable :placeholder="$t('system.ph_buxian')"> <el-option :label="$t('system.ph_buxian')" :value="0"> </el-option> <el-option v-for="item in queryCommonData.AirlineList" :key="item.AirLineId" :label="item.AlName" :value="item.AirLineId"></el-option> </el-select> </span> </li> <li> <span> <em>OP</em> <el-select v-model="msg.CreateBy" filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value="0"> </el-option> <el-option v-for="item in queryCommonData.EmployeeList" :label="item.EmName" :value="item.EmployeeId" :key="item.EmployeeId"></el-option> </el-select> </span> </li> <li> <span> <em>地接团号</em> <el-input v-model='msg.CombinationNum'></el-input> </span> </li> <li> <span> <em>出团公司</em> <el-select v-model="msg.OutBranchIds" filterable multiple class="multiple_input" :placeholder="$t('pub.pleaseSel')"> <el-option v-for="item in queryCommonData.BranchList" :label='item.BName' :value='item.Id' :key='item.Id'> </el-option> </el-select> </span> </li> <li> <span> <em>领队类型</em> <el-select v-model="msg.LeaderType" class="multiple_input" :placeholder="$t('pub.pleaseSel')" @change="GetLeaderList()"> <el-option label='请选择' :value='0' :key='0'> </el-option> <el-option label='领队' :value='1' :key='1'> </el-option> <el-option label='领兼导' :value='2' :key='2'> </el-option> <el-option label='导游' :value='3' :key='3'> </el-option> </el-select> </span> </li> <li> <span> <em>领队/导游</em> <el-select v-model="msg.QLeaderId" filterable class="multiple_input" :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value="0"> </el-option> <el-option v-for="item in LeaderList" :label='item.Name' :value='item.ID' :key='item.ID'> </el-option> </el-select> </span> </li> <li> <span> <em>酒店状态</em> <el-select v-model="msg.HotelStatus" :placeholder="$t('pub.pleaseSel')" filterable> <el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option> <el-option label="全部OK" :value='100'></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-option label="暂定六晚" :value='6'></el-option> <el-option label="暂定七晚以上" :value='7'></el-option> </el-select> </span> </li> <li> <input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()" /> </li> </ul> </div> <div class="mt10 fz14 color333 dmcTotalIconStyle"> 已确定:<span style="color:#4BCA81 ;">√</span>待确定:<span style="color: #E95252;">O</span>未处理:<span style="color:#E95252 ;">X</span> </div> <div style="width: 100%; overflow-x: auto;padding-bottom: 10px; margin-top: 10px; " class="ownScrollbarStyle"> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination> <table border="0" cellspacing="1" cellpadding="0" class="dmcTotalTable" v-loading="loading"> <tr> <th colspan="11">公司通用信息</th> <th colspan="6">团队需求表</th> <th colspan="10">地接op操作</th> </tr> <tr> <th width="130">序号</th> <th width="75">出团公司</th> <th width="75">出发地</th> <th width="80">航班时间</th> <th width="125">公司团号</th> <th width="75">线路<br />负责人</th> <th width="75">进出点</th> <th width="70">订单人数</th> <th width="100">机位总数<br />(Y/E/F/单地接)</th> <th width="60">领队</th> <th width="60">导游</th> <th width="60">已开票</th> <th width="60">分房表</th> <th width="60">旅客名单</th> <th width="60">出团<br />通知书</th> <th width="60">导游<br />计划表</th> <th width="60">领队<br />交接表</th> <th width="60">用款<br />计划</th> <th width="60">酒店</th> <th width="60">门票</th> <th width="60">餐食</th> <th width="60">车辆</th> <th width="60">领队<br />报账</th> <th width="60">合团分房</th> <th width="60">领队人头费</th> <th width="120">操作</th> </tr> <tbody v-for="(outItem,outindex) in list" :class="{dmcTotalSplitTrCss:outindex%2!=0}"> <template v-for="(item,index) in outItem.PriceCommonList"> <tr> <td :rowspan="2*outItem.PriceCommonList.length" v-if='index==0'> {{outItem.NewCombinationNum}} </td> <td> {{item.OutBranchName}} </td> <td> {{item.StartCityName}} </td> <td> <div class="w120"> {{item.FlightDate}} <el-popover popper-class="dmcTotalTable_tripDetails" width="550" trigger="click"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="_color_666" style="text-align:center;"> <th width="60">{{$t('Airticket.Air_segment')}}</th> <th width="80">{{$t('system.query_flightNum')}}</th> <th width="150">起飞时间</th> <th width="150">到达时间</th> <th width="100">经停城市</th> </tr> <tr v-for="(ds,din) in item.FlightList" :key="din" style="text-align:center;"> <td class="_d_name _color_666"> <span v-if="din==0">{{$t('Airticket.Air_go')}}</span> <span v-else-if="din==item.FlightList.length-1">{{$t('Airticket.Air_returnTrip')}}</span> <span v-else-if="din>0 && din!=item.FlightList.length-1">{{$t('Airticket.Air_transit')}}</span> </td> <td> <div>{{ds.Flight_number}}</div> <div style="margin-top:5px;">{{ds.AlName}}</div> </td> <td> <div>{{ds.FlightDateStr}} {{ds.Departure_time}}</div> <div style="margin-top:5px;">{{ds.dName}}</div> </td> <td> <div>{{ds.FlightArrivalTime}} {{ds.Arrival_time}}</div> <div style="margin-top:5px;">{{ds.aName}}</div> </td> <td>{{ds.StopoverName}}</td> </tr> </table> <el-button slot="reference" class="normalBtn mt5 restaurantDetails" style='height:20px; padding: 0 8px; background: #2AAEF2; border-color: #2AAEF2;'>详情</el-button> </el-popover> </div> </td> <td> <div class="link"> <p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.TCNUMS}}({{item.TCID}})</p> </div> </td> <td> {{item.CreateByName}} </td> <td> {{item.InOut}} </td> <td> {{item.OrderGuestNum}} </td> <td> <div class="link"> <p @click="goUrlT('RegistrationList',item.TCIDS,'报名清单')"> {{item.TotalSeat}}/{{item.YSeatNum}}/{{item.ESeatNum}}/{{item.FSeatNum}}/{{item.SingleDMNum}} </p> </div> </td> <td> <div class="link"> <p v-if='!item.LeaderName' @click="goUrlT('RegistrationList',item.TCID,'报名清单')">配置领队</p> <p v-else @click="goUrlT('RegistrationList',item.TCID,'报名清单')"> {{item.LeaderName}}{{getLeaderTypeStr(item.LeaderGuidClass)}}</p> </div> </td> <td> <div class="link"> <p v-if='!item.GuideName' @click="goUrlT('leaderArrangement',item.TCID,'带团安排')">带团安排</p> <p v-else @click="goUrlT('leaderArrangement',item.TCID,'带团安排')">{{item.GuideName}}</p> </div> </td> <td> <div class="fz16 fbold"> <span style="color: #4BCA81;" v-if="item.MakeInvoice==1">√</span> <span class="colorE95252" v-else>{{item.MakeInvoice=='-1'?"x":"O"}}</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrlT('TravelPassengerList2',item.TCID,'旅客名单')"> <span style="color: #4BCA81;" v-if="item.HouseResult==1">√</span> <span class="colorE95252" v-else>{{item.HouseResult=='-1'?"x":"O"}}</span> </div> </td> <td> <a style="text-decoration:underline;cursor:pointer;" title="点击下载旅客名单" @click="DownLoadGuestList(item,outItem,index)">出境名单</a> </td> <td> <div class="fz16 fbold linkspan"> <span @click="toTrip(item)" style="color: #4BCA81;" v-if="item.OutNotice==1">√</span> <span class="colorE95252" @click="toTrip(item)" v-else>{{item.OutNotice=='-1'?"x":"O"}}</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrlT('groundOperation',outItem.TCIDS,outItem,'导游计划表')"> <span style="color: #4BCA81;" v-if="item.LeaderPlan==1">√</span> <span class="colorE95252" v-else>{{item.LeaderPlan=='-1'?"x":"O"}}</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrlT('LeaderHander',item.TCID,outItem,'领队交接表')"> <span style="color: #4BCA81;" v-if="item.Associate==1">√</span> <span class="colorE95252" v-else>{{item.Associate=='-1'?"x":"O"}}</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrlLeaderIsApply('leaderReimbursement',item,outItem,'用款计划')"> <span style="color: #4BCA81;" v-if="item.UseMoney==1">√</span> <span class="colorE95252" v-else>{{item.UseMoney=='-1'?"x":"O"}}</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrl('roomReservationsDetails',item,outItem,'订房详情')"> <span style="color: #4BCA81;" v-if="item.HotelResult==1">√</span> <span class="colorE95252" v-else>{{item.HotelResult=='-1'?"x":"O"}}</span> </div> <p v-if="item.LineId==14 && item.PriceHotelResult && item.PriceHotelResult.length>0"> <el-popover width="1100" trigger="click" popper-class="DMC_HotelPop"> <commonHotelInfo :HotelObj="item.PriceHotelResult" :showHotelObj="showHotelObj" :TCID="item.TCID" :DMCNum="item.DMCNum" :TCNUM="item.TCNUMS" @SetShouPeiShu="SetShouPeiShu(item.TCID,item.ShouPeiStatus)"></commonHotelInfo> <span slot="reference" class="price" style="cursor:pointer;text-decoration:underline;">酒店信息</span> </el-popover> </p> </td> <td> <div class="fz16 fbold linkspan" @click="goUrl('admissionStatisticsDetails',item,outItem,'门票详情')"> <span style="color: #4BCA81;" v-if="item.TicketsResult==1">√</span> <span class="colorE95252" v-else>{{item.TicketsResult=='-1'?"x":"O"}}</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrl('bookDinnerStatisticsDetails',item,outItem,'餐厅详情')"> <span style="color: #4BCA81;" v-if="item.FoodsResult==1">√</span> <span class="colorE95252" v-else>{{item.FoodsResult=='-1'?"x":"O"}}</span> </div> <a style="text-decoration:underline;cursor:pointer;" title="点击下载旅客名单" @click="DownLoadDinner(item)">餐配下载</a> </td> <td> <div class="fz16 fbold linkspan"> <span style="color: #4BCA81;" @click="goUrlBus('BusInfo',item,outItem,'车配信息')" v-if="item.BusResult==1">√</span> <span class="colorE95252" @click="goUrlBus('BusInfo',item,outItem,'车配信息')" v-else>{{item.BusResult=='-1'?"x":"O"}}</span> <span @click="GoShoupei(outItem)" style="cursor:pointer;text-decoration:underline;display:block;color:#666;font-size:12px;">车辆信息</span> </div> </td> <td> <div class="fz16 fbold linkspan" @click="goUrlLeaderIsApply('leaderPay2',item,outItem,'领队报账')"> <span style="color: #4BCA81;" v-if="item.LeaderIsApply==2">√</span> <span class="colorE95252" v-else>{{item.LeaderIsApply=='0'?"x":"O"}}</span> </div> </td> <td :rowspan="2*outItem.PriceCommonList.length" v-if='index==0'> <div class="fz16 fbold linkspan" @click="goUrlLeaderIsApply('TravelPassengerList3',item,outItem,'合团分房表')" v-if="outItem.PriceCommonList.length > 1"> <span style="color: #4BCA81;" v-if="item.LeaderIsApply==2">√</span> <span class="colorE95252" v-else>{{item.LeaderIsApply=='0'?"x":"O"}}</span> </div> </td> <td :rowspan="2*outItem.PriceCommonList.length" v-if='index==0' style="width: 150px;"> <el-popover width="100" trigger="click" popper-class="DMC_HotelPop"> <table style="width: 100%;" border="0" cellspacing="1" class="dmcTotalTable"> <tr> <th>单号</th> <th>金额</th> </tr> <tr v-for="(fnc, findex) in outItem.FinanceIds"> <td class="cursorpointer text-decoration" @click="goFncUrl('FinancialDocumentsDetail', fnc.FinanceId)">{{fnc.FinanceId}}</td> <td>{{moneyFormat(fnc.OriginalMoney)}}</td> </tr> </table> <span slot="reference" style="cursor:pointer;text-decoration:underline;">{{outItem.TotalPrice}}</span> </el-popover> </td> <td> <div style="width: 150px;"> <el-button-group> <el-tooltip class="item" effect="dark" content="地接信息" placement="top-start"> <el-popover placement="bottom" width="300" trigger="click"> <table> <tr> <td style="text-align:right;width:80px;">地接团号:</td> <td> <el-input class='mt10' v-model='NumObj.DMCNum' type='text'></el-input> </td> </tr> <tr> <td colspan="2"> 此团号会带到,房、餐、车、景点使用.并且会显示在组团团控列表 </td> </tr> <tr> <td style="text-align:right;width:80px;">订房状态:</td> <td> <el-select v-model="NumObj.IsBookTeam"> <el-option label="请选择" :key="0" :value="0"></el-option> <el-option label="订房" :key="1" :value="1"></el-option> <el-option label="取消订房" :key="2" :value="2"></el-option> </el-select> </td> </tr> <tr> <td style="text-align:right;">备注:</td> <td> <el-input class='mt10' v-model='NumObj.remarkString' type='textarea'></el-input> </td> </tr> <tr> <td colspan="2"> 此备注会带到组团团控列表. </td> </tr> <tr> <td style="text-align:right;">供应商备注:</td> <td> <el-input class='mt10' v-model='NumObj.SupplierRemarks' type='textarea'></el-input> </td> </tr> <tr> <td colspan="2"> 此备注会带到供应商订房查询列表. </td> </tr> </table> <p class="alcenter mt10"> <input type="button" value="保存" @click="saveRemark" class="normalBtn" /> </p> <el-button type="primary" icon="iconfont icon-beizhu" slot="reference" @click='CkedItem(item,outItem.TCIDS)' style="background:#AD9AF6; border-color:#AD9AF6; border-radius: 0;"></el-button> </el-popover> </el-tooltip> <el-tooltip class="item" effect="dark" content="收付款" placement="top-start"> <el-button icon="iconfont icon-shoufukuan" @click="goUrlT('teamRevenueExpenditure',item.TCID,'团队收支')" type="primary" style="background:#00C6FF; border-color:#00C6FF"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="联系OP" placement="top-start"> <el-button @click='openChart(item)' icon="iconfont icon-wechat" type="primary" style="background:#6DD875; border-color:#6DD875"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="酒店操作" placement="top-start" v-if="item.LineId==14"> <el-popover placement="bottom" width="300" trigger="click" v-model="item.isShowPop"> <table class="dmcSetTable"> <tr> <td colspan="2" style="text-align:center;"> <el-checkbox v-model="UpdateHotelMsg.UpdateType" :true-label="UnCheckedVaule" :false-label="CheckedVaule">当团</el-checkbox> <el-checkbox v-model="UpdateHotelMsg.UpdateType" :true-label="CheckedVaule" :false-label="UnCheckedVaule">批量修改</el-checkbox> </td> </tr> <tr v-if="UpdateHotelMsg.UpdateType==1"> <td> <el-date-picker class='w135' v-model="UpdateHotelMsg.StartDate" style="display:inline-block;" value-format="yyyy-MM-dd" type="date" :picker-options="pickerBefore"></el-date-picker> </td> <td> <el-date-picker class='w135' v-model="UpdateHotelMsg.EndDate" style="display:inline-block;" value-format="yyyy-MM-dd" type="date" :picker-options="pickerAfter"></el-date-picker> </td> </tr> <tr> <td colspan="2" style="text-align:center;"> <input type="button" class="normalBtn" @click="SetIsOpenHotelService(item)" :value="item.IsOpenHotel==0?'关闭酒店操作':'开启酒店操作'" /> </td> </tr> </table> <el-button v-if="item.IsOpenHotel==0" slot="reference" style="background:#E95252; border-color:#E95252" icon="iconfont icon-suo" type="primary"> </el-button> <el-button v-if="item.IsOpenHotel==1" slot="reference" icon="iconfont icon-suo1" type="primary" style="background:green; border-color:green"></el-button> </el-popover> </el-tooltip> <el-tooltip class="item" effect="dark" content=" 领队/导游配置" placement="top-start" v-if="item.LineId==14&&outItem.PriceCommonList.length>1" style="display:none;"> <el-popover placement="bottom" width="800" trigger="click"> <table class="dmcSetTable"> <template v-if="TeamHotelList&&TeamHotelList.length>0"> <tr> <th>团号/时间</th> <template v-for="(hItem,hIndex) in TeamHotelList"> <th> {{hItem.TCNUM}}<br />({{hItem.TCID}}) </th> </template> </tr> </template> <template v-for="(hItem,hIndex) in TeamHotelList"> <template v-for="(hSubItem,hSubIndex) in hItem.dayList"> <tr> <td>{{hSubItem.UseTime}}</td> <td> <template v-if="hSubItem.subList&&hSubItem.subList.length>0"> {{hSubItem.subList[0].NewHotelName}} </template> </td> </tr> </template> </template> </table> <el-button @click="GetTeamHotelList(outItem.TCIDS)" slot="reference" icon="iconfont icon-guanli2" type="primary" style="background:green; border-color:green"> </el-button> </el-popover> </el-tooltip> </el-button-group> </div> </td> </tr> <tr> <td colspan="22" style="text-align: left!important;padding:0 20px;"> <div class="link"> <p @click="getJourney(item)" style="padding-top:4px;">{{item.Title}}</p> <div v-if="outItem.PriceCommonList[index].DMCNum && outItem.PriceCommonList[index].DMCNum!=''" class="colorE95252" style="padding-top:5px;">地接备注团号:{{outItem.PriceCommonList[index].DMCNum}} </div> <div v-show="outItem.PriceCommonList[index].OPInnerRemark!=''" class="colorE95252" style="padding-top:5px;">OP备注:{{outItem.PriceCommonList[index].OPInnerRemark}}</div> <div v-show="outItem.PriceCommonList[index].OPRemark!=''" class="colorE95252" style="padding-top:5px;">OP对外备注:{{outItem.PriceCommonList[index].OPRemark}}</div> <div v-show="outItem.PriceCommonList[0].DMCRemark!=''" class="colorE95252" style="padding-top:5px;padding-bottom:4px;">地接备注:{{outItem.PriceCommonList[index].DMCRemark}} </div> <div v-show="outItem.PriceCommonList[0].SupplierRemarks!=''" class="colorE95252" style="padding-top:5px;padding-bottom:4px;"> 地接对供应商备注:{{outItem.PriceCommonList[index].SupplierRemarks}} </div> <div v-show="outItem.PriceCommonList[0].SupplierToDmcRemarks!=''" class="colorE95252" style="padding-top:5px;padding-bottom:4px;"> 供应商对地接备注:{{outItem.PriceCommonList[index].SupplierToDmcRemarks}} </div> </div> </td> <td></td> </tr> </template> </tbody> </table> </div> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination> <el-dialog custom-class='w450' title="行程下载" :visible.sync="travelControlTripLayerShow" center> <tripDownLoadCommon ref="tripDownLoadCommon" :tripObj="tripObj" @headCallBack="hideTripDown" :downType="2"> </tripDownLoadCommon> </el-dialog> <el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="teamVisible" center> <commonTeamInfo ref="comTeam"></commonTeamInfo> </el-dialog> </div> </template> <script> import tripDownLoadCommon from "../../commonPage/TripDownLoadCommon.vue"; import commonHotelInfo from "../../commonPage/commonHotelInfo.vue"; import commonTeamInfo from "../../commonPage/commonTeamInfo.vue"; export default { data() { return { loading: false, currentPage: 1, total: 0, travelControlTripLayerShow: false, tripTitle: '', teamVisible: false, msg: { StartDate: '', EndDate: '', TCNUM: '', pageIndex: 1, pageSize: 10, SelectType: 6, PriceStatus: 0, //地接团号 CombinationNum: "", //出团公司 OutBranchIds: [], LineId: 14, PlaceID: 0, LineteamId: 0, //航空公司 AirLineId: 0, CreateBy: 0, LeaderType: 0, //领队导游类型 QLeaderId: 0, //领队导游编号 HotelStatus: 0, //酒店状态 }, CheckedVaule: 1, UnCheckedVaule: 0, //酒店更新 UpdateHotelMsg: { UpdateType: 0, //0-当团,1-批量修改 StartDate: "", //开始日期 EndDate: "", //结束日期 LineId: 14, TCID: 0, Status: 0 }, thLengthTitle: [], list: [], colspanTotal: 0, //地接团号对象 NumObj: { DMCNum: "", TCIDs: "", remarkString: '', SupplierRemarks: '', IsBookTeam: 0, }, queryCommonData: { //公司数据 BranchList: [], //国家 PlaceList: [], LineList: [], LineTeamList: [], AirlineList: [], EmployeeList: [], }, tripObj: { tcid: 0, configId: 0, cityId: 0, orderId: 0 }, //合团团酒店列表 TeamHotelList: [], LeaderList: [], showHotelObj: { showPrice: true, //是否显示价格 showPay: true, //是否显示支付方式 showZhan: true, //占房时间 showBtnList: true, //是否下载、确认按钮 ShowTaxType: true, //显示税入税别 ShowRebateRatio: true, //显示返佣比列 ShowSupplier: true, //是否显示供应商 showCaozuoTime: true, //操作时间 colspanLength: 6 //跨行 }, pickerBeginDateBefore: { disabledDate: time => { if (this.msg.EndDate == null) { return false; } else { let endTime = new Date(this.msg.EndDate) return endTime.getTime() < time.getTime() } } }, pickerBeginDateAfter: { disabledDate: time => { let startTime = new Date(this.msg.StartDate) return startTime.getTime() >= time.getTime() } }, pickerBefore: { disabledDate: time => { if (this.UpdateHotelMsg.EndDate == null) { return false; } else { let endTime = new Date(this.UpdateHotelMsg.EndDate) return endTime.getTime() < time.getTime() } } }, pickerAfter: { disabledDate: time => { let startTime = new Date(this.UpdateHotelMsg.StartDate) return startTime.getTime() >= time.getTime() } } } }, components: { tripDownLoadCommon, commonHotelInfo, commonTeamInfo }, methods: { getLeaderTypeStr: function (clas) { if (clas == 1) { return "(同行领队)" } else if (clas == 2) { return "(临时领队)" } }, getJourney(item) { var that = this; this.tripTitle = item.Title; this.$nextTick(() => { that.$refs.comTeam.GetTrip(item.ConfigID, item.TCID); }); that.teamVisible = true; }, openChart(obj) { this.MsgBus.$emit('openChat', { account: obj.CreateByAccount, alias: obj.CreateByName, avatar: obj.CreateByPhoto }) }, CkedItem(obj, TCIDs) { this.NumObj.TCIDs = TCIDs; this.NumObj.remarkString = obj.DMCRemark; this.NumObj.DMCNum = obj.DMCNum; this.NumObj.SupplierRemarks = obj.SupplierRemarks; this.NumObj.IsBookTeam = obj.IsBookTeam; }, saveRemark() { this.apipost('dmcstatistics_post_SetDMCRemark', this.NumObj, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.getList(); } else { this.$message.error(res.data.message); } }, err => {}) }, //开启关闭酒店操作 SetIsOpenHotelService(item) { item.isShowPop = true; if (item.IsOpenHotel == 0) { this.UpdateHotelMsg.Status = 1; } else { this.UpdateHotelMsg.Status = 0; } if (this.UpdateHotelMsg.UpdateType == 1) { if (this.UpdateHotelMsg.StartDate == "" || this.UpdateHotelMsg.EndDate == "") { this.Error('请选择日期') return } } this.UpdateHotelMsg.TCID = item.TCID this.apipost('dmcstatistics_post_SetIsOpenHotelService', this.UpdateHotelMsg, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.getList(); this.UpdateHotelMsg.UpdateType = 0; this.UpdateHotelMsg.StartDate = ""; this.UpdateHotelMsg.EndDate = ""; this.UpdateHotelMsg.TCID = 0; this.UpdateHotelMsg.Status = 0; } else { this.Error(res.data.message); } item.isShowPop = false; }, err => {}) }, getLineList() { this.apipost("line_post_GetAllList", {}, res => { if (res.data.resultCode == 1) { this.queryCommonData.LineList = res.data.data; this.queryCommonData.PlaceList = [] this.queryCommonData.LineTeamList = [] } else { this.Error(res.data.message); } }); }, //获取目的地列表 getLinePlaceList() { this.msg.PlaceID = 0; this.msg.LineteamId = 0; let msg = { lineID: this.msg.LineId, } this.apipost('team_post_GetLinePlace', msg, res => { if (res.data.resultCode == 1) { this.queryCommonData.PlaceList = res.data.data this.queryCommonData.LineTeamList = [] } }) }, //获取系列列表 getLineTeamList() { this.msg.LineteamId = 0 let msg = { lineID: this.msg.LineId, placeID: this.msg.PlaceID, isTOOP: 1 } this.apipost('team_post_GetList', msg, res => { if (res.data.resultCode == 1) { this.queryCommonData.LineTeamList = res.data.data } }) }, goUrlRR(path, obj) { let routeData = this.$router.resolve({ name: path, query: { configId: obj.ConfigID, cityId: obj.StartCityIdS, tcid: obj.TCID, orderId: 0, vshowA: true, //是否显示基础信息 vshowB: true, //是否显示航班 vshowC: false, //是否显示行程特色 vshowD: true, vshowE: false, //自费、费用包含、费用不含 vshowF: true, //购物说明,购物安排 vshowG: false, //重要提示、温馨提示 [订单须知] vshowH: false, //是否显示签证信息 vshowI: false, //是否显示同行备注 vshowJ: false, vshowK: true, //是否显示行程图片 vshowL: false, vshowM: false, } }) window.open(routeData.href, '_blank'); }, goFncUrl: function (path, id) { this.$router.push({ name: path, query: { id: id, blank: 'y', } }) }, goUrlR(path, obj, title) { this.$router.push({ name: path, query: { "ID": obj, blank: 'y', tab: title } }) }, goUrlT(path, obj, outItem, title) { this.$router.push({ name: path, query: { "id": obj, NewCombinationNum: outItem.NewCombinationNum, blank: 'y', tab: title } }) }, goUrl(path, obj, outItem, title) { this.$router.push({ name: path, query: { "id": obj.TCIDS, 'TCNUM': obj.TCNUMS, 'flightTotal': obj.TotalSeat, 'GuestNum': obj.OrderGuestNum, 'NewCombinationNum': outItem.NewCombinationNum, 'LeaderName': obj.LeaderName, 'GuideName': obj.GuideName, 'IsCombine': outItem.PriceCommonList.length > 1, 'NewTCIDs': outItem.TCIDS, blank: 'y', tab: title } }) }, goUrlBus(path, obj, outItem, title) { this.$router.push({ name: path, query: { "TCID": outItem.TCIDS, StartDate: obj.StartDateStr, DayNum: obj.DayNum, TotalNumber: obj.TotalSeat, //机位总数 RealityYSeatNum: obj.YSeatNum, RealityESeatNum: obj.ESeatNum, RealityFSeatNum: obj.FSeatNum, LeaderName: obj.LeaderName, GuideName: obj.GuideName, NewCombinationNum: outItem.NewCombinationNum, blank: 'y', title: obj.Title, TCNUMS: obj.TCNUMS, InOut: obj.InOut, RealityNum: obj.OrderGuestNum, tab: title } }) }, goUrlLeaderIsApply(path, obj, outItem, title) { this.$router.push({ name: path, query: { "id": outItem.TCIDS, NewCombinationNum: outItem.NewCombinationNum, isUpdate: true, blank: 'y', tab: title } }) }, handleCurrentChange(val) { this.msg.pageIndex = val; this.getList(); }, resetPageIndex() { this.msg.pageIndex = 1; this.currentPage = 1; }, getList() { this.loading = true; this.apipost('dmcstatistics_get_GetDmcTotalTablePageList', this.msg, res => { this.loading = false; if (res.data.resultCode == 1) { this.total = res.data.data.count; this.list = res.data.data.pageData; if (this.list) { this.list.forEach(x => { x.PriceCommonList.forEach(subItem => { subItem.isShowPop = false }) }); } } else { this.$message.error(res.data.message); } }, err => {}) }, //初始化公司 getCompanyList() { let userInfo = this.getLocalStorage() var RB_Group_id = userInfo.RB_Group_id let msg = { Status: 0, is_show: 0, RB_Group_Id: RB_Group_id } this.apipost( 'admin_get_BranchGetList', msg, res => { if (res.data.resultCode == 1) { this.queryCommonData.BranchList = res.data.data; } }, err => {} ) }, //获取航空公司 getAirlineList() { this.apipost( 'airline_post_GetList', {}, res => { if (res.data.resultCode == 1) { this.queryCommonData.AirlineList = res.data.data } }, err => {} ) }, //根据当前员工所在部门获取该部门及子部门员工信息 getEmployeeList() { let userInfo = this.getLocalStorage() let msg = { GroupId: userInfo.RB_Group_id, BranchId: '-1', DepartmentId: '-1', PostId: '-1', IsLeave: '0' } this.apipost( 'admin_get_EmployeeGetList', {}, res => { if (res.data.resultCode == 1) { this.queryCommonData.EmployeeList = res.data.data; } }, err => {} ) }, toTrip: function (obj) { this.tripObj.tcid = obj.TCID; this.tripObj.configId = obj.ConfigID; this.tripObj.cityId = obj.StartCityId; this.tripObj.orderId = 0; this.travelControlTripLayerShow = true; }, hideTripDown() { this.travelControlTripLayerShow = false; }, //获取领队和导游 GetLeaderList() { this.LeaderList = []; this.msg.QLeaderId = 0; let msg = { Type: this.msg.LeaderType, } this.apipost( 'leader_post_GetList', msg, res => { if (res.data.resultCode == 1) { this.LeaderList = res.data.data; } }, err => {} ) }, //更新手配书状态 SetShouPeiShu(TCID, ShouPeiStatus) { var msg = { TCID: TCID, ShouPeiStatus: (ShouPeiStatus == 0 ? 1 : 0) }; this.apipost('dmcstatistics_post_SetPriceShouPeiShuService', msg, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.getList(); } else { this.$message.error(res.data.message); } }, err => {}) }, GetTeamHotelList(tcids) { this.apipost('dmcstatistics_get_GetTeamHotelListService', { TCIDs: tcids }, res => { if (res.data.resultCode == 1) { this.TeamHotelList = res.data.data; } else { this.$message.error(res.data.message); } }, err => {}) }, //下载旅客名单 DownLoadGuestList(item, outItem,index) { this.loading = true; var nDmcNum=outItem.NewCombinationNum; if(outItem.PriceCommonList.length>1) { var NIndex=index+1; nDmcNum= nDmcNum.replace(/^\s*|\s*$/g,"")+NIndex; } //导出报表 let msg = { TCID: item.TCID, DMCNum:nDmcNum, InOut:item.InOut }; var fileName = "出境名单表.doc"; if (item.TCNUMS != null) { fileName = "【" + item.TCNUMS + "】出境名单表.doc"; } this.GetLocalFile("travel_get_GetTravelGuestExport_V2", msg, fileName, res => { this.loading = false; }); }, //跳转手配书 GoShoupei(outItem) { this.$router.push({ name: "busHandBook", query: { "TCID": outItem.TCIDS, blank: 'y', tab: "手配依赖书" } }) }, DownLoadDinner(item) { this.loading = true; //导出报表 let msg = { TCID: item.TCID, StartDate: item.StartDateStr, DayNum: item.DayNum }; var fileName = "餐配下载.xls"; if (item.TCNUMS != null) { fileName = "【" + item.TCNUMS + "】餐配下载.xls"; } this.GetLocalFile("travel_get_GetTravelDinnerDownLoad", msg, fileName, res => { this.loading = false; }); }, }, mounted() { let myDate = new Date(); let nowDate = myDate.getFullYear() + "-" + parseInt(myDate.getMonth() + 1) + "-" + myDate.getDate(); this.msg.StartDate = nowDate; this.getLineList(); this.getList(); this.getCompanyList(); this.getAirlineList(); this.getEmployeeList(); }, } </script> <style> .restaurantDetails { color: #fff !important; margin-bottom: 5px; } .dmcTotalSplitTrCss td { background: #eee !important; } .dmcTotalIconStyle>span { margin-right: 20px; font-weight: bold; } .dmcTotalTable { background: #ccc; } .dmcTotalTable .el-button-group .el-button { padding: 4px !important; } .dmcTotalTable .el-button-group .el-button>span { font-size: 12px !important; } .dmcTotalTable tr th { background: #E6E6E6; height: 40px; font-size: 12px; color: #333; } .dmcTotalTable tr { background: #fff; text-align: center; height: 40px; } .dmcTotalTable tr td { font-size: 12px; } .dmcTotalTable tr td .pHouseStyle { border-bottom: 1px solid #ccc; height: 20px; line-height: 20px; } .dmcTotalTable tr td .pHouseStyle:last-child { border-bottom: none; } .dmcTotalTable tr td .pDateStyle { border-bottom: 1px solid #ccc; height: 20px; line-height: 20px; margin-top: 0; } .dmcTotalTable tr td .pMsgStyle { padding: 0 10px; line-height: 20px; } .dmcTotalTable tr td .link p:hover { text-decoration: underline; cursor: pointer; } .dmcTotalTable tr td .phoverStype:hover { text-decoration: underline; cursor: pointer; } .dmcTotalTable tr td .linkspan span:hover { text-decoration: underline; cursor: pointer; } .dmcTotalTable_tripDetails { padding: 0; box-shadow: 0px 1px 3px 0px #dedede; max-height: 400px; overflow-y: auto; } .dmcTotalTable_tripDetails .popper__arrow::after { border-bottom-color: #ededed !important; } .dmcTotalTable_tripDetails>table { padding: 10px 0 0 20px; background-color: #ededed; border-collapse: collapse; border: 1px solid #d2d2d2; font-size: 12px; } .dmcTotalTable_tripDetails>table th { background-color: #ededed; padding: 5px; } .dmcTotalTable_tripDetails>table td { background-color: #ffffff; padding: 9px 15px; color: #333333; border: 1px solid #d2d2d2; } .dmcTotalTable_tripDetails>table td._d_name { background-color: #ededed; } .dmcTotalTable_tripDetails>table ._color_666 { color: #666666; } .dmcTotalTable_tripDetails table tr._color_666 th { padding: 9px 15px; } .dmcMain .el-checkbox+.el-checkbox { margin-left: 5px; } .dmcSetTable { width: 100%; } .dmcSetTable tr { height: 50px; } .DMC_HotelPop { overflow: auto; max-height: 350px; } </style>