<style> @import "../../assets/css/newTravelManager.css"; /* 送签日期 */ .groupInquiry_edit{ overflow: auto; display: block; position: fixed; z-index: 50; bottom: 0; left: 0; border-top: 3px solid #38425d; background-color: #f9f9f9; padding: 10px; width: 100%; min-width: 1146px; } .groupInquiry_edit::-webkit-scrollbar { width: 4px; height: 8px; } .groupInquiry_edit::-webkit-scrollbar-thumb { border-radius: 4px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); background: #c9c9c9; } .groupInquiry_edit::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); border-radius: 4px; background: #ededed; } .groupInquiry_edit_tit>span{ padding-left: 10px; border-left: 3px solid #e95252; font-size: 16px; font-family: "PingFangSc-Fine"; color: #000000; } .groupInquiry_edit_tit>div{ float: right; } .groupInquiry_edit_form{ margin: 20px 0 30px 0; padding: 0 0 0 13px; } .groupInquiry_edit_form > div > em { margin: 0 10px 0 0; font-size: 12px; color: #666666; } .groupInquiry_edit_form > div > .groupInquiry_header_input2 { width: 160px; } /* 进馆日 */ .groupInquiry_admission{ overflow: auto; display: block; position: fixed; z-index: 50; bottom: 0; left: 0; border-top: 3px solid #38425d; background-color: #f9f9f9; padding: 10px; width: 100%; min-width: 1146px; } .groupInquiry_admission::-webkit-scrollbar { width: 4px; height: 8px; } .groupInquiry_admission::-webkit-scrollbar-thumb { border-radius: 4px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); background: #c9c9c9; } .groupInquiry_admission::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); border-radius: 4px; background: #ededed; } .groupInquiry_admission_tit>span{ padding-left: 10px; border-left: 3px solid #e95252; font-size: 16px; font-family: "PingFangSc-Fine"; color: #000000; } .groupInquiry_admission_tit>div{ float: right; } .groupInquiry_admission_form{ margin: 20px 0 30px 0; padding: 0 0 0 13px; } .groupInquiry_admission_formItem{ white-space: nowrap; } .groupInquiry_admission_formItem > em { margin: 0 10px 0 0; font-size: 12px; color: #666666; } .groupInquiry_admission_formItem .groupInquiry_admission_input2 { width: 160px; } .TravelTclList .visaSchedule_d7>p:nth-child(1){ position: absolute; top: 15px; left: 20px; font-size: 12px; } .TravelTclList .visaSchedule_d7>p:nth-child(2) { text-align: center; } .TravelTclList .visaSchedule_d7>p:nth-child(2)>i{ font-size: 18px; cursor: pointer; } </style> <template> <div> <ul class="TC_ListNav clearfix" v-if="queryCommonData.IsParentCompany==1"> <el-tabs v-model="queryCommonData.activeName" @tab-click="getCompanyTab(queryCommonData.activeName)"> <el-tab-pane label="全部" name="-1"></el-tab-pane> <el-tab-pane :label="item.BName" :name="item.Id.toString()" :key="item.subCode" v-for="item in queryCommonData.BranchList"> </el-tab-pane> </el-tabs> </ul> <div class="TC_Content TC-MyList"> <div class="query-box"> <ul> <li> <span> <em>所属线路</em> <el-select class='w150' v-model="queryMsg.LineId" filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList()"> <el-option :label="$t('pub.unlimitedSel')" :value='queryCommonData.SelectDefaultValue'></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>系列名称</em> <el-select class='w150' v-model="queryMsg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value='queryCommonData.SelectDefaultValue'></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>{{$t('visa.v_tuanhao')}}</em> <el-input maxlength="50" v-model="queryMsg.TCNUM" class="permiss-input w150" @keyup.native.enter="getControlList" :placeholder="$t('pub.pleaseImport')"></el-input> </span> </li> <li> <span> <em>发团日期</em> <el-date-picker class="w150" type="date" v-model='queryMsg.StartGroupDate' :picker-options="pickerBeginDateBefore" value-format="yyyy-MM-dd" placeholder=""> </el-date-picker> <el-date-picker class="w150" type="date" v-model='queryMsg.EndGroupDate' :picker-options="pickerBeginDateAfter" value-format="yyyy-MM-dd" placeholder=""> </el-date-picker> </span> </li> <li> <span> <em>{{$t('visa.v_qianzhengst')}}</em> <el-select v-model="queryMsg.TCVisaStatus" clearable class="w150" filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option> <el-option label="未办理" value="1"></el-option> <el-option label="办理中" value="2"></el-option> <el-option label="已办理" value="3"></el-option> </el-select> </span> </li> <li> <span> <em>{{$t('visa.v_visaType')}}</em> <el-select v-model="queryMsg.IsTravelOrVisa" clearable class="w150" filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option> <el-option label="个体签证" value="1"></el-option> <el-option label="团队签证" value="2"></el-option> </el-select> </span> </li> <li class="advancedLi"> <el-popover popper-class="advanceQueryList" v-model="queryCommonData.showHigradeSearch" trigger="click"> <div> <div class="TC_queryTitle">团控高级查询</div> <div class="clearfix"> <div class="TC_leftSearch"> <div> <span>{{$t('system.query_airCompanyName')}}</span> <el-select v-model="queryMsg.AirTicketId" filterable :placeholder="$t('system.ph_buxian')" class="w150"> <el-option :label='$t("system.ph_buxian")' :value='queryCommonData.SelectDefaultValue'></el-option> <el-option v-for="item in queryCommonData.AirlineList" :key="item.AirLineId" :label="item.AlName" :value="item.AirLineId"> </el-option> </el-select> </div> <div> <span>操作人员</span> <el-select class='w150' v-model="queryMsg.CreateBy" filterable :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value='queryCommonData.SelectDefaultValue'></el-option> <el-option v-for="item in queryCommonData.EmployeeList" :label='item.EmName' :value='item.EmployeeId' :key='item.EmployeeId'> </el-option> </el-select> </div> <div> <span>行程天数</span> <el-input maxlength="50" v-model="queryMsg.DayNum" @keyup.native="checkInteger(queryMsg,'DayNum')" class="w150" :placeholder="$t('pub.pleaseImport')"></el-input> </div> <div> <span>联运城市</span> <el-select class='w150' filterable v-model="queryMsg.UnionCityId" :placeholder="$t('pub.pleaseSel')"> <el-option :label="$t('pub.unlimitedSel')" :value='queryCommonData.SelectDefaultValue'></el-option> <el-option v-for="item in queryCommonData.CityList" :label='item.Name' :value='item.ID' :key='item.ID'> </el-option> </el-select> </div> </div> <div class="TC_rightSearch"> <div> <span>团队人数</span> <el-input maxlength="50" class="w80" v-model="queryMsg.TeamMinNum" @keyup.native="checkInteger(queryMsg,'TeamMinNum')" :placeholder="$t('pub.pleaseImport')"></el-input> - <el-input maxlength="50" class="w80" v-model="queryMsg.TeamMaxNum" @keyup.native="checkInteger(queryMsg,'TeamMaxNum')" @blur="checkTeamNum(queryMsg)" :placeholder="$t('pub.pleaseImport')"></el-input> </div> <div> <span>报名人数</span> <el-input maxlength="50" class="w80" v-model="queryMsg.ApplyMinNum" @keyup.native="checkInteger(queryMsg,'ApplyMinNum')" :placeholder="$t('pub.pleaseImport')"></el-input> - <el-input maxlength="50" class="w80" v-model="queryMsg.ApplyMaxNum" @keyup.native="checkInteger(queryMsg,'ApplyMaxNum')" @blur="checkTeamNum(queryMsg)" :placeholder="$t('pub.pleaseImport')"></el-input> </div> <div class="OnlyShowOverTeam"> <span>只看报超团</span> <el-switch v-model="queryMsg.OnlyShowOverTeam" active-value="true" inactive-value="false"></el-switch> </div> <div> <span>销售公司</span> <el-select class="w180 multiple_input" :class="{'SaleBranchList':queryMsg.SaleBranchId==''}" v-model="queryMsg.SaleBranchId" multiple> <el-option v-for='item in queryCommonData.companyList' :key="item.id" :label="item.bName" :value="item.id"> </el-option> </el-select> </div> </div> </div> <div class="comSearchDiv"> <span>团队状态</span> <span> <el-checkbox v-model="queryCommonData.checkTCStateAll" @change="checkAllTeam">{{$t('system.table_chekAll')}}</el-checkbox> <el-checkbox-group v-model="queryMsg.TCState" @change="checkedTeamList"> <el-checkbox v-for="team in $tripUtils.TeamStatesList.TeamStates" :label="team.Id" :key="team.Name">{{team.Name}}</el-checkbox> </el-checkbox-group> </span> </div> <!-- <div class="comSearchDiv" v-if="queryCommonData.showPlatForm"> --> <div class="comSearchDiv"> <span>{{$t('Airticket.Air_salesPlatform')}}</span> <span> <el-checkbox v-model="queryCommonData.checkPlatForm" @change="checkAllSales">{{$t('system.table_chekAll')}}</el-checkbox> <el-checkbox-group v-model="queryMsg.SalePlat" @change="checkSales"> <el-checkbox v-for="sales in $tripUtils.TeamStatesList.salsPlat" :label="sales.Id" :key="sales.Name">{{sales.Name}}</el-checkbox> </el-checkbox-group> </span> </div> <div class="comSearchDiv"> <span>团期状态</span> <span> <el-checkbox v-model="queryCommonData.checkGroupALL" @change="checkGroupAll">{{$t('system.table_chekAll')}}</el-checkbox> <el-checkbox-group v-model="queryMsg.GroupState" @change="checkGroup"> <el-checkbox v-for="state in $tripUtils.TeamStatesList.teamDateStates" :label="state.Id" :key="state.Name">{{state.Name}}</el-checkbox> </el-checkbox-group> </span> </div> <div class="comSearchDiv"> <span>航班状态</span> <span> <el-checkbox-group v-model="queryCommonData.flightCKed" style="margin-left:0;"> <el-checkbox v-for="state in flightStatus" :label="state.Id" :checked="state.Checked" @change="checkedFlight(state)" :key="state.Name">{{state.Name}}</el-checkbox> </el-checkbox-group> </span> </div> <button class="normalBtn TC_SearchBtn" @click="getControlList(),resetPageIndex(),queryCommonData.showHigradeSearch=false">{{$t('pub.searchBtn')}}</button> </div> <span class="advancedQuery" slot="reference">高级查询<i class="iconfont icon-xiaotuziCduan_1"></i></span> </el-popover> </li> <li> <button class="hollowFixedBtn" @click="getControlList(),resetPageIndex()">{{$t('pub.searchBtn')}}</button> </li> </ul> </div> <div class="TravelTclList" v-loading="queryCommonData.loading"> <ul> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryMsg.currentPage" layout="total,prev, pager, next, jumper" :page-size='queryMsg.pageSize' :total='queryMsg.total'> </el-pagination> <li v-for="(item,index) in queryCommonData.dataList" :key="index"> <div> <div class="el-col" style="width:280px"> <div> <div class="TCL-TCNUM" style="padding: 0 20px;">{{item.TCNUM}}({{item.IsTravelOrVisa===1?'个体签证':'团队签证'}})</div> <div class="d12" style="float:none;margin:3px auto;"> <p><i class="iconfont icon-biaoti1"></i>{{item.LineName}}</p> <p class="d12p">{{item.Title}}</p> </div> <div class="TC_TravelSalePlat clearfix"> <span class="TC_neibu" v-if="item.TCState==3" :class="{'TCneibu':plat==3,'TCb2b':plat==1,'TCb2c':plat==2,'AppPlat':plat==4,'otherPlat':plat==5}" v-for="plat in item.SalePlatList" :key="plat.subCode"> {{$tripUtils.getPlatName(plat)}} </span> <span class="TC_xiajia daiwanshan" v-if="item.TCState==1">{{$t('visa.v_dwanshan')}}</span> <span class="TC_xiajia" v-if="item.TCState==2">{{$t('visa.v_yxiajia')}}</span> <span class="TC_xiajia quxiao" v-if="item.TCState==4">{{$t('hotel.hotel_HasBeenCancelled')}}</span> </div> </div> </div> <div class="el-col" style="width:200px;"> <div class="d2"> <p class="TCLflight_GO"><i class="iconfont icon-hangban1"></i>航班</p> <el-popover width="900" trigger="click" popper-class="TC_tripDetails"> <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">{{$t('objFill.v101.BasicDocuments.col.t1')}}</th> <th width="80">{{$t('objFill.v101.BasicDocuments.col.t4')}}</th> <th width="100">{{$t('objFill.v101.BasicDocuments.col.t2')}}</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.FlightDate}} {{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> <div class="FlightDiv-TCL" slot="reference"> <div v-for="subItem in item.flightList" slot="reference" :key="subItem.subCode" class="TCL-flighInfoList"> <span class="TCL-FlightNumber">{{subItem.Flight_number}}</span> <span>{{subItem.DepartureName}}</span> <span v-if="subItem.StopoverName">-</span> <span>{{subItem.StopoverName}}</span> <span v-if="subItem.ArrivalCityName">-</span> <span>{{subItem.ArrivalCityName}}</span> <span v-if="subItem.FlightState==1" class="TCL-greenType">【确定】</span> <span v-if="subItem.FlightState==2" class="TCL-redType">【{{$t('visa.v_zanding')}}】</span> </div> </div> </el-popover> </div> </div > <div class="el-col" style="width:190px;"> <div class="d3"> <p><i class="iconfont icon-tuandui"></i>{{$t('visa.v_teaminfo')}}<em>{{item.DayNum}}{{$t('hotel.hotel_day')}}{{item.NightNum}}{{$t('Operation.Op_night')}}</em></p> <p><span>{{$t('Airticket.Air_StartTime')}}</span>{{item.StartDate}}</p> <p><span>{{$t('scen.sc_cp')}}</span>{{item.OutBranchName}}</p> </div> </div> <div class="el-col" style="width:200px;"> <div class="d5"> <p><i class="iconfont icon-tuanwei"></i>{{item.IsTravelOrVisa===1?'签证信息':'团位信息'}}</p> <p v-if="item.IsTravelOrVisa!==1"><span>{{$t('visa.v_currentseat')}}</span><i>{{item.SurplusSeat < 0 ? 0:item.SurplusSeat}}</i></p> <p v-if="item.IsTravelOrVisa!==1"><span>{{$t('visa.v_yibaoru')}}</span><i @click='goUrlX("RegistrationList", item.TCID)' style="cursor:pointer;">{{item.OrderGuestNum}}<span class="TCL-redType" v-if="item.OrderLeaderGuestNum>=1">+{{item.OrderLeaderGuestNum}}</span>人</i>({{$t('Operation.Op_takeSeat')}}:{{item.Occupied}}{{$t('Operation.Op_people')}})</p> <p v-if="item.IsTravelOrVisa!==1"><span>{{$t('visa.v_houbu')}}</span> <span v-if='item.IsSubstitution==1' class="TCL-greenType">{{$t('visa.v_yxhoubu')}}</span> <span v-else class="TCL-redType">{{$t('visa.v_byxhoubu')}}</span> </p> <p v-if="item.IsTravelOrVisa!==1"><span @click="goUrlY('TravelPassengerList',item.TCID)" style="cursor:pointer;text-decoration:underline;">旅客名单</span></p> <p v-if="item.IsTravelOrVisa===1"><span>签证数量</span>{{item.NeedVisaNum}}</p> </div> </div> <div class="el-col" style="width:130px;"> <div class="d5 TC-oparation"> <p><i class="iconfont icon-yuangong"></i>{{$t('Operation.Op_caozuoop')}}</p> <div class="clearfix TC-OpInfo"> <div class="TC-leftIMG"> <img v-if="item.OPPhoto" :src="item.OPPhoto" alt=""> <img v-else src="../../assets/img/default_head_img.jpg" alt=""> </div> <div class="TC-OPName">{{item.OPName}}</div> </div> <div v-if="item.IsTravelOrVisa!==1" class="TC_SeatList"> 头等舱:{{item.FSeat}} </div> <div v-if="item.IsTravelOrVisa!==1" class="TC_SeatList"> 商务舱:{{item.CSeat}} </div> <div v-if="item.IsTravelOrVisa!==1" class="TC_SeatList"> 经济舱:{{item.YSeat}} </div> </div> </div> <div class="el-col" style="width:190px;"> <div class="d3"> <p><i class="iconfont icon-qianzheng"></i>签证</p> <p><span>送签日期:</span>{{item.SendVisaTime}}</p> <p><span>出签日期:</span>{{item.OutVisaTime}}</p> <p><span>进馆日期:</span>{{item.EnterVisaTime}}</p> <!-- <p v-if="item.VisaFileList&&item.VisaFileList!==0"><span>{{$t('visa.v_visaInformation')}}</span></p> <p v-for="(item2, index2) in item.VisaFileList" :key="index2"> <span style="cursor:pointer;text-decoration: underline;" @click="downloadFile(item2)">{{item2.Name}}</span><i class="iconfont icon-Close" style="font-size:12px;cursor:pointer;" @click="delUnpload(item.TCID,item2)"></i> </p> --> </div> </div> <div class="el-col" style="position:relative;padding: 15px 20px;"> <div class="visaSchedule_d7"> <p><i class="iconfont icon-qianzheng"></i><span>签证状态</span></p> <p> <i v-if="item.VisaStatus===1" @click="goUrlP(item)" class="iconfont icon-cha"></i> <i v-if="item.VisaStatus===2" @click="goUrlP(item)" class="iconfont icon-quan"></i> <i v-if="item.VisaStatus===3" @click="goUrlP(item)" class="iconfont icon-duigou"></i> </p> </div> </div> </div> <div class="TC_remarkContent"> <div class="clearfix TCL-redType"> <div class="TCL_remarkTitle">{{$t('objFill.v101.activity.opduiwbz')}}:</div> <div class="TCL_Content">{{item.OPRemark}}</div> </div> <div class="clearfix TCL-redType TCL-Opremark"> <div class="TCL_remarkTitle">{{$t('Operation.Op_duineiRemark')}}:</div> <div class="TCL_Content">{{item.OPInnerRemark}}</div> </div> </div> </li> </ul> <div class="noData" v-show="queryMsg.noData"> {{$t('system.content_noData')}} </div> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryMsg.currentPage" layout="total,prev, pager, next, jumper" :page-size='queryMsg.pageSize' :total='queryMsg.total'> </el-pagination> </div> </div> <div class="combottomDiv TC_divCon" v-if="queryCommonData.setPlatDialog"> <div class="combottomTitle">{{$t('Operation.Op_choicePlat')}}</div> <span class="setPlatLeft">{{$t('Airticket.Air_salesPlatform')}}</span> <span> <el-checkbox v-model="queryCommonData.checkDialogAll" @change="checkAllDialog" style="margin-right:20px;">{{$t('system.table_chekAll')}}</el-checkbox> <el-checkbox-group v-model="queryCommonData.ckedplat" @change="checkDialog"> <el-checkbox v-for="sales in $tripUtils.TeamStatesList.salsPlat" :label="sales.Id" :key="sales.Name">{{sales.Name}}</el-checkbox> </el-checkbox-group> </span> <span> <button class="normalBtn" style="margin-left:50px;" @click="SetshelvesUp">{{$t('pub.sureBtn')}}</button> <button class="hollowFixedBtn" @click="queryCommonData.setPlatDialog=false">{{$t('pub.cancelBtn')}}</button> </span> </div> <div class="combottomDiv OPremarkDiv" v-if="queryCommonData.outerVisible"> <div class="combottomTitle">{{$t('Operation.Op_remark')}}</div> <el-form label-width="100px"> <el-col :span="8"> <el-form-item :label="$t('objFill.v101.activity.opduiwbz')" prop="Remark"> <el-input type="textarea" v-model="remarkMsg.OPRemark"></el-input> </el-form-item> </el-col> <el-col :span="8"> <el-form-item :label="$t('Operation.Op_duineiRemark')" prop="Remark"> <el-input type="textarea" v-model="remarkMsg.OPInnerRemark"></el-input> </el-form-item> </el-col> </el-form> <div slot="footer" class="dialog-footer"> <button class="hollowFixedBtn" @click="queryCommonData.outerVisible = false">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="primary" @click="setOPremark">{{$t('pub.sureBtn')}}</button> </div> </div> <!-- 送签日期窗口 --> <div class="groupInquiry_edit" v-show="editShow"> <div class="groupInquiry_edit_tit"> <span>修改送签日期</span> <div> <button class="hollowFixedBtn" type="button" @click="closeEdit">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="button" @click="editOk">{{$t('pub.saveBtn')}}</button> </div> </div> <div class="groupInquiry_edit_form"> <div> <em>{{$t('visa.v_sqtime')}}</em> <el-date-picker class="groupInquiry_header_input2" v-model='msg_edit.SendVisaTime' @change="editInput" type="date" value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')" clearable></el-date-picker> </div> </div> </div> <!-- 出签日期窗口 --> <div class="groupInquiry_edit" v-show="editShow2"> <div class="groupInquiry_edit_tit"> <span>修改出签日期</span> <div> <button class="hollowFixedBtn" type="button" @click="closeEdit2">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="button" @click="editOk2">{{$t('pub.saveBtn')}}</button> </div> </div> <div class="groupInquiry_edit_form"> <div> <em>{{$t('visa.v_cqtime')}}</em> <el-date-picker class="groupInquiry_header_input2" v-model='msg_edit2.OutVisaTime' @change="editInput2" type="date" value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')" clearable></el-date-picker> </div> </div> </div> <!-- 进馆日窗口 --> <div class="groupInquiry_admission" v-show="admissionShow"> <div class="groupInquiry_admission_tit"> <span>修改进馆日</span> <div> <button class="hollowFixedBtn" type="button" @click="closeAdmission">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="button" @click="admissionOk">{{$t('pub.saveBtn')}}</button> </div> </div> <el-form :model="msg_admission" :rules="rules" ref="admissionForm" :inline="true" class="groupInquiry_admission_form"> <el-form-item label="进馆日期" prop="EnterVisaTime" class="groupInquiry_admission_formItem"> <el-date-picker class="groupInquiry_admission_input2" v-model='msg_admission.EnterVisaTime' @change="admissionInput" type="date" value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')" clearable></el-date-picker> </el-form-item> <el-form-item label="签证类型" prop="VisaType" class="groupInquiry_admission_formItem"> <el-select class="groupInquiry_admission_input2" v-model="msg_admission.VisaType" placeholder="选择签证类型"> <el-option label='个签' value='1'></el-option> <el-option label='团签' value='2'></el-option> </el-select> </el-form-item> <el-form-item label="欧洲签证" prop="EuropeVisaType" class="groupInquiry_admission_formItem" v-if="msg_admission.LineID===2"> <el-select class="groupInquiry_admission_input2" v-model="msg_admission.EuropeVisaType" @change="visaTypeChange" placeholder="选择签证类型"> <el-option v-for="(item, index) in EuropeVisaTypeList" :key="index" :label='item.Name' :value='item.Id'></el-option> </el-select> </el-form-item> <div style="display: inline-block;vertical-align: top;white-space: nowrap;"> <el-form-item :label="$t('system.table_country')" prop="EuropeSchengen" class="groupInquiry_admission_formItem" v-show="msg_admission.LineID===2&&msg_admission.EuropeVisaType==='2'"> <el-select class="groupInquiry_admission_input2" v-model="msg_admission.EuropeSchengen" @change="SchengenChange" placeholder="选择国家"> <el-option v-for="(item, index) in EuropeSchengenList" :key="index" :label='item.Name' :value='item.Id'></el-option> </el-select> </el-form-item> <el-form-item prop="EuropeVisaName" class="groupInquiry_admission_formItem" v-show="msg_admission.EuropeVisaType==='2'&&msg_admission.EuropeSchengen==='5'"> <el-input class="groupInquiry_admission_input2" v-show="msg_admission.EuropeSchengen==='5'" v-model="msg_admission.EuropeVisaName" placeholder="输入国家名称"></el-input> </el-form-item> </div> </el-form> </div> </div> </template> <script> export default { data() { // 欧洲签证验证 var testVisaType = (rule, value, callback) => { if (this.msg_admission.LineID===2&&value==="") { callback(new Error('请选择欧洲签证类型')); } else { callback(); } } //国家验证 var testSchengen = (rule, value, callback) => { if (this.msg_admission.EuropeVisaType==='2'&&value==="") { callback(new Error('请选择国家')); } else { callback(); } } // 国家名称验证 var testVisaName = (rule, value, callback) => { this.msg_admission.EuropeVisaName = value.trim() if (this.msg_admission.EuropeSchengen==='5'&&value.trim()==="") { callback(new Error('国家名称不能为空')); } else { callback(); } } return { uploadTCID: 0, // 送签日期 editShow: false, msg_edit: { TCID: 0, SendVisaEndDate: "", SendVisaTime: "" }, // 出签日期 editShow2: false, msg_edit2: { TCID: 0, SendVisaEndDate: "", OutVisaTime: "" }, // 进馆日 admissionShow: false, msg_admission: { TCID: 0, LineID: 0, SendVisaEndDate: "", EnterVisaTime: "", VisaType: "1", EuropeVisaType: "", EuropeSchengen: "", EuropeVisaName: "" }, // 签证类型数组 EuropeVisaTypeList:[], // 申根签证类型数组 EuropeSchengenList:[], rules: { EnterVisaTime: [ {required: true, message: '进馆日期不能为空', trigger: 'blur' }, ], EuropeVisaType: [ {validator: testVisaType, required: true, trigger: 'blur' }, ], EuropeSchengen: [ {validator: testSchengen, required: true, trigger: 'blur' }, ], EuropeVisaName: [ {validator: testVisaName, required: true, trigger: 'blur' }, ] }, //查询数据列表 queryCommonData: { //线路列表 LineList: [], //系列列表 LineTeamList: [], //下拉框默认值 SelectDefaultValue: 0, //公司选项卡默认选中 activeName: "-1", //航空公司 AirlineList: [], //员工列表 EmployeeList: [], //公司数据 BranchList: [], //是否为分公司 IsParentCompany: "", //显示销售平台 showPlatForm: false, //团期全选 checkGroupALL: false, //销售平台全选 checkPlatForm: false, //团队状态全选 checkTCStateAll: false, //是否显示弹出框 setPlatDialog: false, //弹出框全选 checkDialogAll: false, //选择上架平台 ckedplat: [], //loading loading: false, //中间变量ID comID: "", //中间变量TCState comState: "", //标题 comPlatTitle: "", //高级搜索 showHigradeSearch: false, //数据列表 dataList: [], //中国下面城市 CityList: [], //销售公司 companyList: [], singleTCID: 0, outerVisible: false, flightCKed:[], loading:false }, //查询参数 queryMsg: { pageIndex: 1, pageSize: 10, LineId: 0, LineIdList: [], LineteamId: 0, TCNUM: "", StartGroupDate: "", EndGroupDate: "", OutBranchId: -1, AirTicketId: 0, TeamMinNum: "", TeamMaxNum: "", CreateBy: 0, ApplyMinNum: "", ApplyMaxNum: "", DayNum: "", OnlyShowOverTeam: false, TCState: [3], GroupState: [], SalePlat: [], UnionCityId: 0, SaleBranchId: [], total: 0, //是否有数据 noData: false, currentPage: 1, //航班配置 FlightState:1, TCVisaStatus: '-1', IsTravelOrVisa: '-1' }, remarkMsg: { TCID: 0, OPRemark: "", OPInnerRemark: "" }, flightStatus: [{ Id: 0, Name: this.$t('pub.unlimitedSel'), Checked:false }, { Id: 1, Name: this.$t('objFill.v101.activity.yipeizhi'), Checked:true }, { Id: 2, Name: this.$t('objFill.v101.traveltrip.weipeizhi'), Checked:false }], pickerBeginDateBefore: { disabledDate: time => { let endTime = new Date(this.queryMsg.EndGroupDate); return endTime.getTime() < time.getTime(); } }, pickerBeginDateAfter: { disabledDate: time => { let startTime = new Date(this.queryMsg.StartGroupDate); return startTime.getTime() >= time.getTime(); } } }; }, methods: { saveitem(tcid) { this.uploadTCID = tcid }, delUnpload: function (tcid, item) { this.$confirm('是否删除该签证资料?', this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: 'warning' }).then(()=>{ this.apipost('dmc_get_visa_UploadVisaInformation', { Path: item.FullUrl, FileName: item.Name, Status: 2, TCID: tcid }, res => { if (res.data.resultCode===1) { this.$message.success('删除成功') this.getControlList(); } else { this.$message.error('删除失败') } }) }) }, downloadFile: function (item) { let reg = /^http(s)?:\/\/(.*?)\// this.downloadFileRename(item.FullUrl.replace(reg,''),item.Name); }, // 送签日期不能大于送签结束日期 editInput: function (val) { if (val > this.msg_edit.SendVisaEndDate) { this.$message.error("送签日期不能大于结束日期"); this.msg_edit.SendVisaTime = '' } }, // 打开送签日期窗口 openEdit: function (item) { this.msg_edit.TCID = item.TCID this.msg_edit.SendVisaEndDate = item.SendVisaEndDate this.msg_edit.SendVisaTime = item.SendVisaTime this.editShow = true this.editShow2 = false this.admissionShow = false }, // 关闭送签日期窗口 closeEdit: function () { this.editShow = false }, // 提交送签日期 editOk: function () { if (this.msg_edit.SendVisaTime !== '') { this.apipost( "dmc_post_SetTravelSendVisaTime", this.msg_edit, res => { if (res.data.resultCode == 1) { this.editShow = false this.$message.Success(`${this.$t('pub.updateMsg')}${this.$t('objFill.chenggong')}`) ; this.getControlList(); } else { this.$message.error("修改失败"); } }, err => {} ) } else { this.$message.error('送签日期不能为空') } }, // 出签日期不能大于结束日期 editInput2: function (val) { if (val > this.msg_edit2.SendVisaEndDate) { this.$message.error("出签日期不能大于结束日期"); this.msg_edit2.OutVisaTime = '' } }, // 打开出签日期窗口 openEdit2: function (item) { this.msg_edit2.TCID = item.TCID this.msg_edit2.SendVisaEndDate = item.SendVisaEndDate this.msg_edit2.OutVisaTime = item.OutVisaTime this.editShow = false this.editShow2 = true this.admissionShow = false }, // 关闭出签日期窗口 closeEdit2: function () { this.editShow2 = false }, // 提交出签日期 editOk2: function () { if (this.msg_edit2.SendVisaEndDate !== '') { this.apipost( "dmc_post_SetTravelSendVisaTime", this.msg_edit2, res => { if (res.data.resultCode == 1) { this.editShow2 = false this.$message.Success(`${this.$t('pub.updateMsg')}${this.$t('objFill.chenggong')}`) ; this.getControlList(); } else { this.$message.error("修改失败"); } }, err => {} ) } else { this.$message.error('送签日期不能为空') } }, // 进馆签日期不能大于结束日期 admissionInput: function (val) { if (val > this.msg_admission.SendVisaEndDate) { this.$message.error("进馆日期不能大于结束日期"); this.msg_admission.EnterVisaTime = '' } }, // 打开进馆日窗口 openAdmission: function (item) { this.apipost("dmc_get_GetTravelEnterVisaTime", {TCID:item.TCID}, res => { if (res.data.resultCode == 1) { this.msg_admission.TCID = item.TCID this.msg_admission.LineID = item.LineID this.msg_admission.SendVisaEndDate = item.SendVisaEndDate this.msg_admission.EnterVisaTime = res.data.data.EnterVisaTime this.msg_admission.VisaType = res.data.data.VisaType===0?'1':res.data.data.VisaType.toString() this.msg_admission.EuropeVisaType = res.data.data.EuropeVisaType===0?'':res.data.data.EuropeVisaType.toString() this.msg_admission.EuropeSchengen = res.data.data.EuropeSchengen===0?'':res.data.data.EuropeSchengen.toString() this.msg_admission.EuropeVisaName = res.data.data.EuropeVisaName this.editShow = false this.editShow2 = false this.admissionShow = true } else { this.$message.error('获取进馆日详情失败') } }); }, // 关闭进馆日窗口 closeAdmission: function () { this.admissionShow = false this.$refs['admissionForm'].resetFields(); }, // 欧洲签证改变赋值 visaTypeChange: function (val) { if (val!=='2') { for (let i = 0; i < this.EuropeVisaTypeList.length; i++) { if (val === this.EuropeVisaTypeList[i].Id) { this.msg_admission.EuropeVisaName = this.EuropeVisaTypeList[i].Name } } } }, // 国家改变赋值 SchengenChange: function (val) { if (val!=='5') { for (let i = 0; i < this.EuropeSchengenList.length; i++) { if (val === this.EuropeSchengenList[i].Id) { this.msg_admission.EuropeVisaName = this.EuropeSchengenList[i].Name } } } else { this.msg_admission.EuropeVisaName = '' } }, // 提交进馆日 admissionOk: function () { this.$refs['admissionForm'].validate((valid) => { if (valid) { this.apipost("dmc_post_SetTravelEnterVisaTime", this.msg_admission, res => { if (res.data.resultCode == 1) { this.$message.success('进馆日设置成功') this.getControlList(); this.admissionShow = false this.$refs['admissionForm'].resetFields(); } else { this.$message.error('进馆日设置失败') } }); } else { return false; } }); // this.admissionShow = false }, // 获取签证类型数组 getEuropeVisaType: function () { this.apipost("dmc_get_GetEuropeVisaTypeList", {}, res => { if (res.data.resultCode == 1) { this.EuropeVisaTypeList = res.data.data; } else { this.$message.error('签证类型获取失败') } }); }, // 获取申根签证类型数组 getEuropeSchengen: function () { this.apipost("dmc_get_GetEuropeSchengenTypeList", {}, res => { if (res.data.resultCode == 1) { this.EuropeSchengenList = res.data.data; } else { this.$message.error('申根签证类型获取失败') } }); }, //翻页 handleCurrentChange(val) { this.queryMsg.pageIndex = val; this.getControlList(); }, //重新查询 resetPageIndex() { this.queryMsg.pageIndex = 1; this.queryMsg.currentPage = 1; }, //获取线路列表 getLineList() { this.apipost("line_post_GetAllList", {IsVisaSelect: 1}, res => { if (res.data.resultCode == 1) { this.queryCommonData.LineList = res.data.data; } }); }, //获取系列列表 getLineTeamList() { this.queryMsg.LineteamId = 0; let msg = { lineID: this.queryMsg.LineId, isTOOP: 1 }; this.apipost("team_post_GetList", msg, res => { if (res.data.resultCode == 1) { this.queryCommonData.LineTeamList = res.data.data; } }); }, //切换公司 getCompanyTab(Id) { this.queryMsg.OutBranchId = Id; this.queryMsg.currentPage = 1; this.getControlList(); }, //获取航空公司 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 => {} ); }, //新获取列表数据 getControlList() { var msg = JSON.parse(JSON.stringify(this.queryMsg)); if (msg.TeamMinNum == "") { msg.TeamMinNum = -1; } if (msg.TeamMaxNum == "") { msg.TeamMaxNum = -1; } if (msg.ApplyMinNum == "") { msg.ApplyMinNum = -1; } if (msg.ApplyMaxNum == "") { msg.ApplyMaxNum = -1; } if (msg.DayNum == "") { msg.DayNum = -1; } msg['IsVisaSelect'] = 1; this.queryCommonData.loading=true; this.apipost( "travel_get_GetTravelPrcieAndVisaProductPageList", msg, res => { this.queryCommonData.loading=false; if (res.data.resultCode == 1) { this.queryCommonData.dataList = res.data.data.pageData; this.queryMsg.total = res.data.data.count; this.queryMsg.noData = !this.queryMsg.total > 0; this.queryCommonData.dataList.forEach(item => { item.SalePlatList = []; if (item.SalePlat !== null) { var SalePlatArr = item.SalePlat.split(","); SalePlatArr.forEach(y=>{ item.SalePlatList.push(parseInt(y)) }) } }); } }, err => {} ); }, //验证大小 checkTeamNum(queryMsg) { var TeamMinNum = parseInt(queryMsg.TeamMinNum); var TeamMaxNum = parseInt(queryMsg.TeamMaxNum); var ApplyMinNum = parseInt(queryMsg.ApplyMinNum); var ApplyMaxNum = parseInt(queryMsg.ApplyMaxNum); if (TeamMaxNum < TeamMinNum) { queryMsg.TeamMaxNum = ""; } if (ApplyMaxNum < ApplyMinNum) { queryMsg.ApplyMaxNum = ""; } }, //初始化公司 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 => {} ); }, //团期状态全选 checkGroupAll(val) { this.queryMsg.GroupState = []; if (val) { this.$tripUtils.TeamStatesList.teamDateStates.forEach(x => { this.queryMsg.GroupState.push(x.Id); }); } }, checkGroup(value) { let checkedCount = value.length; this.queryCommonData.checkGroupALL = checkedCount === this.$tripUtils.TeamStatesList.teamDateStates.length; }, //销售平台全选 checkAllSales(val) { this.queryMsg.SalePlat = []; if (val) { this.$tripUtils.TeamStatesList.salsPlat.forEach(x => { this.queryMsg.SalePlat.push(x.Id); }); } }, checkSales(value) { let checkedCount = value.length; this.queryCommonData.checkPlatForm = checkedCount === this.$tripUtils.TeamStatesList.salsPlat.length; }, //团队状态全选 checkAllTeam(val) { this.queryMsg.TCState = []; if (val) { this.$tripUtils.TeamStatesList.TeamStates.forEach(x => { this.queryMsg.TCState.push(x.Id); }); } if ( this.queryMsg.TCState.indexOf( this.$tripUtils.TeamStatesList.TeamStates[2].Id ) > -1 ) { this.queryCommonData.showPlatForm = true; } else { this.queryCommonData.showPlatForm = false; } }, checkedTeamList(value) { if (value.indexOf(this.$tripUtils.TeamStatesList.TeamStates[2].Id) > -1) { this.queryCommonData.showPlatForm = true; } else { this.queryCommonData.showPlatForm = false; } let checkedCount = value.length; this.queryCommonData.checkTCStateAll = checkedCount === this.$tripUtils.TeamStatesList.TeamStates.length; }, //全选弹出框 checkAllDialog(val) { this.queryCommonData.ckedplat = []; if (val) { this.$tripUtils.TeamStatesList.salsPlat.forEach(x => { this.queryCommonData.ckedplat.push(x.Id); }); } }, checkDialog(value) { let checkedCount = value.length; this.queryCommonData.checkDialogAll = checkedCount === this.$tripUtils.TeamStatesList.salsPlat.length; }, //点击上架 setUpPlat(item) { this.queryCommonData.outerVisible = false; this.queryCommonData.setPlatDialog = true; this.queryCommonData.singleTCID = item.TCID; if(item.TCState==2){ this.queryCommonData.ckedplat=[]; this.queryCommonData.checkDialogAll = false; }else if(item.TCState==3){ item.SalePlatList.forEach(x => { this.queryCommonData.ckedplat.push(parseInt(x)); }); if(item.SalePlatList.length == this.$tripUtils.TeamStatesList.salsPlat.length){ this.queryCommonData.checkDialogAll = true; } } }, //单团设置下架 Setshelves(TCID) { let msg = { TCID: TCID, TCState: 2, SalePlat: "" }; this.apipost("travel_post_SetPriceTCState", msg, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.getControlList(); this.queryCommonData.checkDialogAll = false; this.queryCommonData.ckedplat = []; } }); }, //单团设置上架 SetshelvesUp() { let msg = { TCID: this.queryCommonData.singleTCID, TCState: 3, SalePlat: this.queryCommonData.ckedplat.join(",") }; if (msg.SalePlat == "") { this.Error(this.$t('Operation.Op_choicePlat')); return; } this.apipost("travel_post_SetPriceTCState", msg, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.getControlList(); this.queryCommonData.setPlatDialog = false; this.queryCommonData.checkDialogAll = false; this.queryCommonData.ckedplat = []; } }); }, goUrlX(path, id) { this.$router.push({ name: path, query: { id: id,blank:'y',tab: this.$t('Operation.Op_registrationList')} }); }, goUrlY(path, id) { this.$router.push({ name: path, query: { id: id,blank:'y',tab:'旅客名单'} }); }, goUrlZ(path, id, num) { this.$router.push({ name: path, query: { id: id, num: num,blank:'y',tab:'签证办理'} }); }, goUrlT(path, tcid) { this.$router.push({ name: path, query: { tcid: tcid, blank:'y', tab:'签证列表'} }); }, goUrlP(item) { if (item.IsTravelOrVisa === 1) { this.$router.push({ name: 'signatureHandle', query: {StartTime:item.StartCityTime, blank:'y', tab:'个签办理'} }); } else if (item.IsTravelOrVisa === 2) { this.$router.push({ name: 'visaWorksheet', query: {tcid:item.TCID, blank:'y', tab:'签证工作表'} }); } }, goUrlR(path,TCID,ConfigId) { let routeData = this.$router.resolve({ name: path, query: { id: TCID, configId: ConfigId } }); window.open(routeData.href, "_blank"); }, goB2B(ConfigId) { window.open( "http://www.oytour.com/#/detail/" + encodeURIComponent(ConfigId) + "/preview", "_blank" ); }, goTeamBalance(id, OutBranchId) { this.$router.push({ name: "TeamBalancePayment", query: { id: id, OutBranchId: OutBranchId,blank:'y',tab:'团队收支明细'} }); }, //开团或修改 goToOpenTravel(path, configId) { if (configId > 0) { this.$store.commit("pageConditionUpdate", this.queryMsg); this.$router.push({ name: path, query: { configId: configId, openState: 1,blank:'y',tab:'团期配置' } }); } else { this.$router.push({ name: path }); } }, //删除团期 removeTeamInfo(TCID) { var that = this; that.Confirm(this.$t('tips.shifoushanchu'), function() { var msg = { TCID: TCID }; that.apipost( "travel_post_RemoveTravelPrice", msg, res => { if (res.data.resultCode == 1) { that.Success(res.data.message); that.getControlList(); } else { that.Error(res.data.message); } }, null ); }); }, //获取城市 getCountryCity() { this.apipost("sellorder_get_GetAllStartCity", {}, res => { if (res.data.resultCode == 1) { this.queryCommonData.CityList = res.data.data; } }); }, getSellorCompany() { //出团公司 this.apipost( "sellorder_post_GetBranchList", {}, res => { if (res.data.resultCode == 1) { this.queryCommonData.companyList = res.data.data; } }, err => {} ); }, //点击op备注 ckOPremark(item) { this.remarkMsg.TCID = item.TCID; this.remarkMsg.OPRemark = item.OPRemark; this.remarkMsg.OPInnerRemark = item.OPInnerRemark; this.queryCommonData.setPlatDialog = false; this.queryCommonData.outerVisible = true; }, //设置OP备注 setOPremark() { this.apipost( "travel_post_SetTravelPrcieOpRemark", this.remarkMsg, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.queryCommonData.outerVisible = false; this.getControlList(); } else { this.Error(res.data.message); } }, err => {} ); }, checkedFlight(item){ this.queryMsg.FlightState=item.Id; this.queryCommonData.flightCKed=[]; this.queryCommonData.flightCKed.push(item.Id); } }, filters: { formatStartDate(value) { let dataArr = value.split("-"); return dataArr[1] + "-" + dataArr[2]; }, priceFormat(value) { if (value == null) { return 0.0; } let nStr = value.toFixed(2); nStr += ""; let x = nStr.split("."); let x1 = x[0]; let x2 = x.length > 1 ? "." + x[1] : ""; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, "$1" + "," + "$2"); } return x1 + x2; } }, mounted() { // this.queryMsg.LineId = this.$route.query.LineId; // this.queryMsg.LineteamId = this.$route.query.LineteamId; // this.getLineTeamList(); //销售公司 this.getSellorCompany(); this.getCompanyList(); this.getLineList(); this.getAirlineList(); this.getEmployeeList(); this.getCountryCity(); // 进馆日相关数据获取 this.getEuropeVisaType(); this.getEuropeSchengen(); }, created() { let userInfo = this.getLocalStorage(); if (userInfo.IsParentCompany == undefined) { this.queryCommonData.IsParentCompany = 2; } else { this.queryCommonData.IsParentCompany = userInfo.IsParentCompany; } if (this.$route.query.hasOwnProperty("cache")) { if (this.$store.state.pageCondition != null) { this.queryMsg = this.$store.state.pageCondition; } } var nowDate = new Date().Format('yyyy-MM-dd') this.queryMsg.TCNUM = this.$route.query.tcnum!==undefined?this.$route.query.tcnum:''; this.queryMsg.StartGroupDate = this.$route.query.startDate!==undefined?this.$route.query.startDate:nowDate; if (this.queryCommonData.IsParentCompany != 1) { var RB_Branch_id = userInfo.RB_Branch_id; this.queryMsg.OutBranchId = RB_Branch_id; } this.getControlList(); }, }; </script>