Commit f83c2665 authored by 华国豪's avatar 华国豪 🙄
parents a1bbb49a aa3a1dcb
...@@ -1696,8 +1696,9 @@ export default { ...@@ -1696,8 +1696,9 @@ export default {
}, err => {}) }, err => {})
}, },
AuditOrRefund(){ // 保存 AuditOrRefund(){ // 保存
// console.log("保存")
let that=this; let that=this;
that.benMoney=Math.round(that.benMoney * 100) / 100;
if(that.Ststus==1){ if(that.Ststus==1){
if(this.AuditOrRefundMsg.Status=='5'){ if(this.AuditOrRefundMsg.Status=='5'){
if(that.GetDetail.AccountNumber.indexOf("东航平台")!=-1){ if(that.GetDetail.AccountNumber.indexOf("东航平台")!=-1){
...@@ -1706,13 +1707,13 @@ export default { ...@@ -1706,13 +1707,13 @@ export default {
return; return;
}else{ }else{
if(this.allMoney>parseFloat(that.benMoney) + 5 || this.allMoney<parseFloat(that.benMoney) - 5){ if(this.allMoney>parseFloat(that.benMoney) + 5 || this.allMoney<parseFloat(that.benMoney) - 5){
this.Error("请检查实付金额!") this.Error("请检查实付金额是否在范围内!")
return; return;
} }
} }
}else{ }else{
if(this.allMoney!=parseFloat(that.benMoney)){ if(this.allMoney!=parseFloat(that.benMoney)){
this.Error("请检查实付金额!") this.Error("请检查金额是否一致!")
return; return;
} }
} }
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</div> </div>
<div class="el-col"> <div class="el-col">
<div class="d7"> <div class="d7">
<el-button v-if="item.CreateBy==CurrentUserId" @click="goToOpenTravel('TravelManager3',item.ID)" type="primary">行程修改</el-button> <el-button v-if="item.CreateBy==CurrentUserId" @click="goToOpenTravel('TravelManager5',item.ID)" type="primary">行程修改</el-button>
<el-button @click="copyTravelInfo(item.ID)" type="primary">行程复制</el-button> <el-button @click="copyTravelInfo(item.ID)" type="primary">行程复制</el-button>
<el-button v-if="item.TCNUMS==''&&item.CreateBy==CurrentUserId" @click="delConfig(item.ID)" type="primary">删除</el-button> <el-button v-if="item.TCNUMS==''&&item.CreateBy==CurrentUserId" @click="delConfig(item.ID)" type="primary">删除</el-button>
</div> </div>
......
<style>
@import "../../assets/css/newTravelManager.css";
.TC_companyList span,
.TC_OtherCompany span {
display: inline-block;
font-size: 12px;
padding: 5px 10px;
border: 1px solid #d1d1d1;
margin: 5px 10px 0 0;
border-radius: 4px;
cursor: pointer;
}
.TC_companyList span:first-child {
margin-right: 20px;
}
.TC_companyList {
padding-top: 15px;
margin-left: 32px;
}
.TC_checked {
border: 1px solid #d95454 !important;
box-sizing: border-box;
}
.TC_OtherCompany {
margin: 0 0 20px 20px;
}
.TC_customerInfo tbody th {
height: 40px;
text-align: center;
}
.TC_firTable td {
height: 20px !important;
text-align: center !important;
}
.TC_midTable td {
text-align: center !important;
}
.TC_showUnion {
float: right;
color: #2aaef2;
cursor: pointer;
margin-bottom: 10px;
}
.go_date {
font-weight: 700;
font-size: 14px;
}
.TC_Content ._pic_upload .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
.TC_Content ._pic_upload > div {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
.TC_Content .avatar-uploader-icon {
height: auto;
}
.LocaltourMan .query-box li span>em{
margin: 0 10px 0 0;
}
</style>
<template>
<div class="LocaltourMan TC_Content">
<div class=" TC-MyList">
<div class="query-box">
<div class="TC_companyList">
<span :class="{'TC_checked':queryCommonData.checkCompanyAll}" @click="getCompanyCheckAll()">{{$t('advmanager.v_all')}}</span>
<span v-for="(item,bindex) in queryCommonData.BranchList" :class="{'TC_checked':item.isShow}"
@click="getCompanyCheck(item)">{{item.BName}}</span>
</div>
<ul>
<li>
<span>
<em>{{$t('system.table_ssLine')}}</em>
<el-select class="w150" v-model="queryMsg.LineId" filterable :placeholder="$t('pub.pleaseSel')"
@change="getLinePlaceList()">
<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>{{$t('Operation.Op_Country')}}/{{$t('system.query_dest')}}</em>
<el-select class="w150" v-model="queryMsg.PlaceID" 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.PlaceList" :label="item.PlaceName" :value="item.PlaceID"
:key="item.LtID"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('active.ad_xlmc')}}</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>推荐类型</em>
<el-select class="w150" v-model="queryMsg.LocalRecommendType" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value="queryCommonData.SelectDefaultValue"></el-option>
<el-option label="首页推荐" :value="1"></el-option>
<el-option label="首页热门" :value="2"></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 style="display:none;">
<span>
<em>{{$t('hotel.hotel_SerialNumber')}}</em>
<el-input maxlength="50" v-model="queryMsg.TCID" class="permiss-input w150"
@keyup.native.enter="getControlList"
:placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>{{$t('scen.sc_ftTime')}}</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 class="advancedLi" style="height:34px;">
<el-popover popper-class="advanceQueryList" v-model="queryCommonData.showHigradeSearch" trigger="click">
<div>
<div class="TC_queryTitle">{{$t('visa.v_tkgjcx')}}</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>{{$t('visa.v_czuser')}}</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>{{$t('visa.v_xcdays')}}</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>{{$t('visa.v_lycity')}}</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>{{$t('visa.v_teamnum')}}</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>{{$t('leader.leader_registraNum')}}</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>{{$t('visa.v_zkbaochaotuan')}}</span>
<el-switch v-model="queryMsg.OnlyShowOverTeam" active-value="true"
inactive-value="false"></el-switch>
</div>
<div>
<span>{{$t('visa.v_salecompany')}}</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>{{$t('scen.sc_temStatu')}}</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">
<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>{{$t('visa.v_tqstatus')}}</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>
<el-checkbox v-model="queryMsg.IsWarning">{{$t('Operation.Op_WarningTeam')}}</el-checkbox>
</span>
</div>
<div class="comSearchDiv" style="display:none;">
<span>{{$t('visa.v_hbstatus')}}</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>
<div class="comSearchDiv">
<span>{{$t('Operation.Op_TransportState')}}</span>
<span>
<el-select class="w180 multiple_input" v-model="queryMsg.IsShowUnion">
<el-option :key="1" :label="$t('system.table_isShows')" :value="1"></el-option>
<el-option :key="0" :label="$t('Operation.Op_hide')" :value="0"></el-option>
</el-select>
</span>
</div>
<button class="normalBtn TC_SearchBtn"
@click="resetPageIndex(),getControlList(),queryCommonData.showHigradeSearch=false">{{$t('pub.searchBtn')}}
</button>
</div>
<span class="advancedQuery" slot="reference">{{$t('visa.v_gjchaxun')}}
<i class="iconfont icon-xiaotuziCduan_1"></i>
</span>
</el-popover>
</li>
<li class="advancedLi" style="height:34px;">
<el-popover width="260" v-model="queryCommonData.showWarningSearch" trigger="click">
<div>
<div class="TC_queryTitle">{{$t('Operation.Op_TeamWarningSearch')}}</div>
<div class="clearfix">
<div class="TC_leftSearch">
<div>
<span style="display:inline-block;margin: 0 5px 0 0;width:50px;text-align:right;">{{$t('leader.leader_registraNum')}}</span>
<el-select v-model="queryMsg.WarningQuery" filterable :placeholder="$t('system.ph_buxian')"
class="w150">
<el-option :label="$t('system.ph_buxian')" value="-1"></el-option>
<el-option label="尚未有人报名" value="1"></el-option>
<el-option label="10人以下" value="2"></el-option>
<el-option label="10人以上" value="3"></el-option>
<el-option label="余位小于5人" value="4"></el-option>
<el-option label="有候补人数" value="5"></el-option>
</el-select>
</div>
<div>
<span style="display:inline-block;margin: 0 5px 0 0;width:50px;text-align:right;">{{$t('Operation.Op_daysChoice')}}</span>
<el-select v-model="queryMsg.RateOnDay" filterable :placeholder="$t('system.ph_buxian')"
class="w150">
<el-option :label="$t('system.ph_buxian')" value="-1"></el-option>
<el-option label="10天以内" value="1"></el-option>
<el-option label="15天以内" value="2"></el-option>
<el-option label="20天以内" value="3"></el-option>
<el-option label="20天以外" value="4"></el-option>
</el-select>
</div>
<div>
<span style="display:inline-block;margin: 0 5px 0 0;width:50px;text-align:right;">{{$t('Operation.Op_Attendance')}}</span>
<el-select v-model="queryMsg.RateOn" filterable :placeholder="$t('system.ph_buxian')"
class="w150">
<el-option :label="$t('system.ph_buxian')" value="-1"></el-option>
<el-option label="100%" value="1"></el-option>
<el-option label="不足80%" value="2"></el-option>
<el-option label="不足60%" value="3"></el-option>
<el-option label="不足40%" value="4"></el-option>
</el-select>
</div>
</div>
</div>
<button class="normalBtn TC_SearchBtn"
@click="resetPageIndex(),getControlList(),queryCommonData.showWarningSearch=false">{{$t('pub.searchBtn')}}
</button>
</div>
<span class="advancedQuery" slot="reference">{{$t('Operation.Op_warningSearch')}}
<i class="iconfont icon-xiaotuziCduan_1"></i>
</span>
</el-popover>
</li>
<li>
<button class="hollowFixedBtn" @click="resetPageIndex(),getControlList()">{{$t('pub.searchBtn')}}</button>
<button class="hollowFixedBtn" @click='goToOpenTravel("TravelManager4")'>开团</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"
:class="{'TC_hasContent':item.OPInnerRemark==''&&item.OPRemark==''}">
<div class="TC_remarkContent TC_teamName">
<div class="clearfix">
<div class="TCL_remarkTitle">{{$t('Operation.Op_TeamName')}}</div>
<div class="TCL_Content">{{item.Title}}</div>
</div>
</div>
<div>
<div class="el-col" style="position:relative;width:200px">
<div v-if="item.IsWarning===1" title="紧急团" class="travel_warning"></div>
<div>
<div class="TC_teamType">
<!-- <span v-if="item.IsB2B==0" title="内部团">{{$t('Operation.Op_nei')}}</span>
<span v-if="item.IsUnion==1&&item.UnionTypeStr==1" title="主" class="MainTeam">{{$t('Operation.Op_zhu')}}</span>
<span v-if="item.IsUnion==1&&item.UnionTypeStr==2" title="联">{{$t('Operation.Op_lian')}}</span>
<span v-if="item.Status==2" title="结团">{{$t('Operation.Op_jietuan')}}</span>
<span v-if="item.Status==1" title="销售">{{$t('visaT.sale')}}</span> -->
<span v-if="item.LocalRecommendType==1" title="推荐">推荐</span>
<span v-if="item.LocalRecommendType==2" title="热门">热门</span>
</div>
<div class="TCL-OutBranchName" title="销售公司">{{item.UnionBranchName}}</div>
<div class="TCL-TOPTCNUM">({{item.TCID}}) {{item.TCNUM}}</div>
<div class="d12" style="float:none;margin:3px auto;">
<p>
<i class="iconfont icon-biaoti1"></i>
{{item.LineName}}
</p>
<p class="d12p">{{item.LtName}}</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:220px;">
<div class="d3">
<p>
<i class="iconfont icon-tuandui"></i>团队信息
</p>
<p>
<em>{{item.DayNum}}{{item.NightNum}}</em>
</p>
<p class="travelnowrap">
<span>出发时间</span>
<span class="go_date">{{item.StartDate}}</span>
</p>
<p class="travelnowrap">
<span>出团通知书</span>
{{item.OutNotice==1?'OK':'暂定'}}
</p>
<p class="travelnowrap">
<span>出团公司</span>
{{item.OutBranchName}}
</p>
<p class="travelnowrap" v-if="item.WordPath!=''">
<a style="corsor:pointer;" :href="domainManager().ViittoFileUrl+item.WordPath">下载WORD行程</a>
</p>
</div>
</div>
<div class="el-col" style="width:190px;">
<div class="d4">
<p>
<i class="iconfont icon-jiage"></i>价格信息
</p>
<p class="travelprice">同业价:¥{{item.B2BMemberPrice|priceFormat(item.B2BMemberPrice)}}</p>
<p class="travelprice">直客价:¥{{item.B2CMemberPrice|priceFormat(item.B2CMemberPrice)}}</p>
</div>
</div>
<div class="el-col" style="width:150px;">
<div class="d5">
<p>
<i class="iconfont icon-tuanwei"></i>团位信息
</p>
<p>
<span>当前余位</span>
<i>{{item.SurplusSeat=item.SurplusSeat < 0 ? 0:item.SurplusSeat}}</i></p>
<p>
<span>已报入</span>
<i>
{{item.OrderGuestNum}}
<span class="TCL-redType" v-if="item.OrderLeaderGuestNum>=1">+{{item.OrderLeaderGuestNum}}</span>
</i>
</p>
<p>
<span>占位</span>
<i>{{item.Occupied}}</i>
</p>
<p class="travelnowrap">
<span>候补</span>
<span v-if="item.IsSubstitution==1" class="TCL-greenType">允许候补(候补{{item.HBNum}}人)</span>
<span v-else class="TCL-redType">不允许候补</span>
</p>
<p>
<span>领队</span>
<span v-if="item.LeaderName==null" class="TCL-redType">尚未指派</span>
<span v-else class="TCL-greenType">{{item.LeaderName}}</span>
</p>
</div>
</div>
<div class="el-col" style="width:130px;">
<div class="d5 TC-oparation">
<p>
<i class="iconfont icon-yuangong"></i>操作OP
</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 class="TC_SeatList">座位数:{{item.YSeat}}</div>
</div>
</div>
<div class="el-col" style="width:200px;">
<div class="d3">
<p>
<i class="iconfont icon-wenxintishi"></i>温馨提示
</p>
<p>
<span>结束日期</span>
<!-- {{item.TicketDeadline}} -->
</p>
</div>
</div>
<div class="el-col">
<div class="d7">
<el-button @click.native="SetupState(item,1)" type="primary"
style="background:#00C6FF; border-color:#00C6FF">设为推荐
</el-button>
<el-button @click.native="SetupState(item,2)" type="primary"
style="background:#F16C3C; border-color:#F16C3C">设为热门
</el-button>
<el-button @click.native="SetupState(item,0)" type="primary"
style="background:#67c23a; border-color:#67c23a">取消设置
</el-button>
<!-- <el-dropdown trigger="click" style="margin-bottom:5px;">
<span class="el-dropdown-link">修改
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="TC-dropdown">
<el-dropdown-item @click.native="goToOpenTravel('TravelManager4',item.ID,0)">系列团修改
</el-dropdown-item>
<el-dropdown-item @click.native="goTonowTeam('TravelManager4',item.ID,item.TCID,item.TCNUM)">
当团修改
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button @click='goUrlMake("GroupAdvertising",item.LineID,item.TCID,"团期广告")' type="primary"
style="background:#67c23a; border-color:#67c23a">广告&nbsp;{{item.AdvertCount}}
</el-button>
<el-button @click="ckOPremark(item)" type="primary" style="background:#F16C3C; border-color:#F16C3C">
OP备注
</el-button>
<el-dropdown trigger="click">
<span class="el-dropdown-link">更多操作
<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown" class="TC-dropdown">
<el-dropdown-item @click.native="SetupState(item,1)">设为推荐</el-dropdown-item>
<el-dropdown-item @click.native="SetupState(item,2)">设为热门</el-dropdown-item>
<el-dropdown-item @click.native="goTeamBalance(item.TCID,item.OutBranchId)">团队收支明细
</el-dropdown-item>
<el-dropdown-item @click.native="goUrlR('confirmationOrderDownLoad',item)">行程下载</el-dropdown-item>
<el-dropdown-item @click.native="removeTeamInfo(item.TCID)">删除</el-dropdown-item>
<el-dropdown-item v-if="item.TCState==2||item.TCState==0||item.TCState==1"
@click.native="setUpPlat(item)">上架
</el-dropdown-item>
<el-dropdown-item v-if="item.TCState==3" @click.native="Setshelves(item.TCID)">下架
</el-dropdown-item>
<el-dropdown-item v-if="item.Status==1" @click.native="OutGroup(item.TCID,2)">结团
</el-dropdown-item>
<el-dropdown-item v-if="item.Status==2" @click.native="OutGroup(item.TCID,1)">销售
</el-dropdown-item>
<el-dropdown-item v-if="item.Status==2&&showSureOrder('P_Query_Income_ConfirmInfo',item.CreateBy)"
@click.native="goSureOrder('priceIncomeConfirmInfo',item.TCID)">收入确认单
</el-dropdown-item>
<el-dropdown-item v-if="CurrentUserInfo.B2BDomain!=''"
@click.native="goB2B(item.ConfigId, item.TCID)">
B2B预览
</el-dropdown-item>
<el-dropdown-item @click.native='goUrl("DistributionTransport",item.ID,"分销联运")'>分销联运
</el-dropdown-item>
<el-dropdown-item @click.native='ckSellPoint(item)'>本团卖点</el-dropdown-item>
<el-dropdown-item @click.native='ShowUploadWord(item)'>WORD行程</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown> -->
</div>
</div>
</div>
<div class="TC_remarkContent" v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast">
<div class="clearfix TCL-redType" v-if="item.OPRemark">
<div class="TCL_remarkTitle">OP对外备注:</div>
<div class="TCL_Content">{{item.OPRemark}}</div>
</div>
<div class="clearfix TCL-redType" v-if="item.OPInnerRemark">
<div class="TCL_remarkTitle">OP对内备注:</div>
<div class="TCL_Content">{{item.OPInnerRemark}}</div>
</div>
<div class="clearfix TCL-redType"
v-if="item.DmcRemarkLast || item.HotelDiningBus.HotelChangeState>0 || item.HotelDiningBus.DiningChangeState>0 || item.HotelDiningBus.ResultBusTypeStr!='' ">
<div class="TCL_remarkTitle">地接备注:</div>
<div class="TCL_Content">{{item.DmcRemarkLast!=null? item.DmcRemarkLast.DMCRemark:''}}
<a v-if="item.HotelDiningBus.HotelChangeState>0" @click="goHotelDiningBus(item,item.HotelDiningBus,1)"
style="color:blue;cursor:pointer">酒店变更</a>
<a v-if="item.HotelDiningBus.DiningChangeState>0"
@click="goHotelDiningBus(item,item.HotelDiningBus,2)"
style="color:blue;cursor:pointer">餐厅变更</a>
<a v-if="item.HotelDiningBus.ResultBusTypeStr!=''">车型:{{item.HotelDiningBus.ResultBusTypeStr}}</a>
</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">请选择上架平台</div>
<span class="setPlatLeft">销售平台</span>
<span>
<el-checkbox v-model="queryCommonData.checkDialogAll" @change="checkAllDialog"
style="margin-right:20px;">全选</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">确定</button>
<button class="hollowFixedBtn" @click="queryCommonData.setPlatDialog=false">取消</button>
</span>
</div>
<div class="combottomDiv OPremarkDiv" v-if="queryCommonData.outerVisible">
<div class="combottomTitle">OP备注</div>
<el-form label-width="100px">
<el-col :span="8">
<el-form-item label="OP对外备注" prop="Remark">
<el-input type="textarea" v-model="remarkMsg.OPRemark" rows="6"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="OP对内备注" prop="Remark">
<el-input type="textarea" v-model="remarkMsg.OPInnerRemark" rows="6"></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="combottomDiv OPremarkDiv" v-if="queryCommonData.SellingPoints">
<div class="combottomTitle">本团卖点</div>
<el-form label-width="100px">
<el-col :span="8">
<el-form-item label="本团卖点" prop="Remark">
<el-input type="textarea" v-model="remarkMsg.ProductRecommend" rows="6"></el-input>
</el-form-item>
</el-col>
</el-form>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="queryCommonData.SellingPoints = false">{{$t('pub.cancelBtn')}}</button>
<button class="normalBtn" type="primary" @click="SetSellingPoints">{{$t('pub.sureBtn')}}</button>
</div>
</div>
<div class="combottomDiv OPremarkDiv" v-if="queryCommonData.UploadWORDTip"
v-loading="queryCommonData.uploadLoading">
<div class="combottomTitle">上传WORD行程
<button style="float:right;margin-right:100px;" class="hollowFixedBtn" type="primary"
@click="queryCommonData.UploadWORDTip = false">{{$t('pub.cancelBtn')}}
</button>
</div>
<el-form label-width="100px">
<el-col :span="8" class="_pic_upload">
<el-upload :http-request="uploadFileBtn" drag :multiple="true" :show-file-list="false" action=""
accept="*.doc,*.docx">
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">点击/拖拽上传</div>
</el-upload>
</el-col>
</el-form>
</div>
</div>
</template>
<script>
export default {
data () {
return {
//查询数据列表
queryCommonData: {
//线路列表
LineList: [],
//目的地
PlaceList: [],
//系列列表
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,
//预警搜索
showWarningSearch: false,
//数据列表
dataList: [],
//中国下面城市
CityList: [],
//销售公司
companyList: [],
singleTCID: 0,
outerVisible: false,
flightCKed: [],
loading: false,
checkCompanyAll: true,
//本团卖点
SellingPoints: false,
defaultCheckValue: 0,
defaultCheckChooseValue: 1,
//上传WORD提示层
UploadWORDTip: false,
//选择上传项
UploadItem: {},
//word上传提示层
uploadLoading: false,
},
//查询参数
queryMsg: {
//出团公司集合
OutBranchIds: [],
pageIndex: 1,
pageSize: 10,
LineId: 0,
PlaceID: 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,
//预警团
IsWarning: false,
WarningQuery: '-1',
RateOnDay: '-1',
RateOn: '-1',
TeamType: 2, //一日游的团
IsShowUnion: 1,
TCID: '0',
},
remarkMsg: {
TCID: 0,
OPRemark: '',
OPInnerRemark: '',
//配置
ConfigId: 0,
//本团卖点
ProductRecommend: ''
},
flightStatus: [{
Id: 0,
Name: '不限',
Checked: true
},
{
Id: 1,
Name: '已配置',
Checked: false
},
{
Id: 2,
Name: '未配置',
Checked: false
}
],
//当前登录用户信息
CurrentUserInfo: {},
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: {
SetupState(item,num){
this.apipost('travel_post_SetLocalRecommendType', {"tcid":item.TCID,"localRecommendType":num}, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.getControlList()
}else{
this.Error(res.data.message)
}
})
},
downloadFile: function (item) {
let reg = /^http(s)?:\/\/(.*?)\//
this.downloadFileRename(item.FullUrl.replace(reg, ''), item.Name)
},
//翻页
handleCurrentChange (val) {
this.queryMsg.pageIndex = val
this.getControlList()
},
//重新查询
resetPageIndex () {
this.queryMsg.pageIndex = 1
this.queryMsg.currentPage = 1
},
//获取线路列表
getLineList () {
this.apipost('line_post_GetList', {"LineDirection":3}, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.LineList = res.data.data
this.queryCommonData.PlaceList = []
this.queryCommonData.LineTeamList = []
}
})
},
//获取目的地列表
getLinePlaceList () {
this.queryMsg.PlaceID = 0
let msg = {
lineID: this.queryMsg.LineId,
}
this.apipost('team_post_GetLinePlace', msg, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.PlaceList = res.data.data
this.queryCommonData.LineTeamList = []
}
})
},
//获取系列列表
getLineTeamList () {
this.queryMsg.LineteamId = 0
let msg = {
lineID: this.queryMsg.LineId,
placeID: this.queryMsg.PlaceID,
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
}
this.queryCommonData.loading = true
this.apipost(
'travel_get_GetTravelPrciePageList',
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))
})
}
})
console.log(this.queryCommonData.dataList,'datalist');
}
},
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
this.queryCommonData.BranchList.forEach(x => {
x.isShow = false
})
}
},
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 = []
} else {
this.Info(res.data.message)
}
})
},
//单团设置上架
SetshelvesUp () {
let msg = {
TCID: this.queryCommonData.singleTCID,
TCState: 3,
SalePlat: this.queryCommonData.ckedplat.join(',')
}
if (msg.SalePlat == '') {
this.Error('请选择上架平台')
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 = []
}
})
},
goUrl (path, id, name) {
this.$store.commit('pageConditionUpdate', this.queryMsg)
this.$router.push({
name: path,
query: {
id: id,
blank: 'y',
tab: name
}
})
},
goUrlR (path, item) {
var cityId = item.StartCityID
if (item.IsUnion == 1 && item.UnionTypeStr == 2) {
cityId = item.UnionCityId
}
let routeData = this.$router.resolve({
name: path,
query: {
configId: item.ID,
cityId: cityId,
tcid: item.TCID,
orderId: 0,
vshowL: false,
vshowM: false,
vshowTCNUM: true,
}
})
window.open(routeData.href, '_blank')
},
//控制是否显示确认单按钮
showSureOrder (code,createBy) {
let UserInfo = this.getLocalStorage();
if(createBy == UserInfo.EmployeeId||UserInfo.ActionMenuCode.indexOf(code)!=-1){
return true;
}else{
return false;
}
},
goSureOrder (path, TCID) {
this.$router.push({
name: path,
query: {
TCID: TCID,
blank: 'y',
tab: '收入确认单'
}
})
},
goUrlMake (path, LineID, TCID, name) {
this.$router.push({
name: path,
query: {
LineID: LineID,
TCID: TCID,
blank: 'y',
tab: name
}
})
},
goB2B (ConfigId, tcid) {
var B2BDomain = this.CurrentUserInfo.B2BDomain
window.open(
'http://www.oytour.com/#/detailTwo/' +
encodeURIComponent(ConfigId) + '/' + tcid +
'/preview',
'_blank'
)
},
goTeamBalance (id, OutBranchId) {
this.$router.push({
name: 'TeamBalancePayment',
query: {
id: id,
OutBranchId: OutBranchId,
blank: 'y',
tab: '团队收支明细'
}
})
},
//开团或修改
goToOpenTravel (path,configId, tcid) {
if (configId > 0) {
this.$store.commit('pageConditionUpdate', this.queryMsg)
this.$router.push({
name: path,
query: {
configId: configId,
openState: 1,
tcid: tcid,
blank: 'y',
tab: '团期配置'
}
});
} else {
this.$router.push({
name: path
});
}
},
//当团修改
goTonowTeam (path, configId, tcid, TCNUM) {
if (configId > 0) {
this.$store.commit('pageConditionUpdate', this.queryMsg)
this.$router.push({
name: path,
query: {
configId: configId,
openState: 1,
tcid: tcid,
TCNUM: TCNUM,
blank: 'y',
tab: '团期配置',
flag: this.$route.query.flag ? this.$route.query.flag : false
}
})
} else {
this.$router.push({
name: path
})
}
},
//删除团期
removeTeamInfo (TCID) {
var that = this
that.Confirm('是否删除?', 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 => {
}
)
},
//点击本团卖点
ckSellPoint (item) {
this.queryCommonData.SellingPoints = true
this.remarkMsg.ConfigId = item.ID
this.remarkMsg.ProductRecommend = item.ProductRecommend
this.remarkMsg.TCID = item.TCID
},
//本团卖点
SetSellingPoints () {
this.apipost(
'travel_post_SetSellingPoints',
this.remarkMsg,
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.queryCommonData.SellingPoints = 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)
},
//点击选取出团公司
getCompanyCheck (item) {
item.isShow = !item.isShow
this.queryCommonData.checkCompanyAll = false
this.$forceUpdate()
this.queryMsg.OutBranchIds = []
this.queryCommonData.BranchList.forEach(x => {
if (x.isShow) {
this.queryMsg.OutBranchIds.push(x.Id)
}
})
if (
this.queryMsg.OutBranchIds.length ==
this.queryCommonData.BranchList.length ||
this.queryMsg.OutBranchIds.length == 0
) {
this.queryCommonData.checkCompanyAll = true
}
this.resetPageIndex()
this.getControlList()
},
//查询全部
getCompanyCheckAll () {
this.queryCommonData.checkCompanyAll = true
this.queryMsg.OutBranchIds = []
this.queryCommonData.BranchList.forEach(x => {
x.isShow = false
})
this.getControlList()
},
SetPrice (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
},
//隐藏显示
ShowUnionList (item) {
// this.queryCommonData.showUnion = !this.queryCommonData.showUnion;
item.isshowUnion = !item.isshowUnion
if (item.isshowUnion) {
item.UnionText = '隐藏联运'
} else {
item.UnionText = '显示联运'
}
this.$forceUpdate()
},
//酒店餐厅处理跳转
goHotelDiningBus (item, HotelDiningBus, type) {
if (type == 1) {
this.$router.push({
name: 'ChangeHotel',
query: {
TCNUM: item.TCNUM,
id: item.TCID,
blank: 'y',
tab: '酒店变更',
}
})
} else {
this.$router.push({
name: 'ChangeDining',
query: {
TCNUM: item.TCNUM,
id: item.TCID,
blank: 'y',
tab: '餐厅变更',
}
})
}
},
//显示弹窗层
ShowUploadWord (item) {
this.queryCommonData.UploadWORDTip = true
this.queryCommonData.UploadItem = item
},
//保存WORD路劲
uploadFileBtn (file) {
var that = this
let newArr = []
newArr.push(file.file)
let fileName = file.file.name
var path = '/Upload/WordTrip/'
this.UploadSelfFileT(path, newArr, res => {
if (res.data.StatusCode == 1) {
that.queryCommonData.uploadLoading = true
let uploadMsg = {
TCID: that.queryCommonData.UploadItem.TCID,
wordPath: res.data.FilePath
}
that.apipost(
'travel_post_UploadWord', uploadMsg,
res => {
that.queryCommonData.uploadLoading = false
if (res.data.resultCode == 1) {
that.Success(res.data.message)
that.queryCommonData.UploadWORDTip = false
that.getControlList()
} else {
that.Error(res.data.message)
}
},
err => {
}
)
} else {
that.Error('上传文件失败!')
}
})
},
//结团/正常
OutGroup (TCID, Status) {
let msg = {
TCID: TCID,
Status: Status,
}
this.apipost('travel_post_SetPriceStatus', msg, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message)
this.getControlList()
this.queryCommonData.checkDialogAll = false
this.queryCommonData.ckedplat = []
} else {
this.Info(res.data.message)
}
})
},
},
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.getSellorCompany()
this.getCompanyList()
this.getLineList()
this.getAirlineList()
this.getEmployeeList()
this.getCountryCity()
},
created () {
this.checkAllTeam();
//默认显示联运
this.queryMsg.IsShowUnion = 1
let userInfo = this.getLocalStorage()
this.CurrentUserInfo = userInfo
this.$route.query.tcmun = this.$route.query.tcmun
if (this.$route.query.tcmun) {
this.queryMsg.TCNUM = this.$route.query.tcmun
}
if (this.CurrentUserInfo.IsParentCompany == undefined) {
this.queryCommonData.IsParentCompany = 2
} else {
this.queryCommonData.IsParentCompany = this.CurrentUserInfo.IsParentCompany
}
if (this.$route.query.hasOwnProperty('cache')) {
if (this.$store.state.pageCondition != null) {
this.queryMsg = this.$store.state.pageCondition
}
}
var myDate = new Date()
var nowDate =
myDate.getFullYear() +
'-' +
parseInt(myDate.getMonth() + 1) +
'-' +
myDate.getDate()
if (!this.$route.query.tcmun) {
this.queryMsg.StartGroupDate = nowDate
}
if (this.queryCommonData.IsParentCompany != 1) {
this.queryMsg.OutBranchIds.push(this.CurrentUserInfo.RB_Branch_id)
}
this.getControlList()
}
}
</script>
...@@ -155,6 +155,7 @@ ...@@ -155,6 +155,7 @@
<el-option label="签证" :value="2"></el-option> <el-option label="签证" :value="2"></el-option>
<el-option label="机票" :value="3"></el-option> <el-option label="机票" :value="3"></el-option>
<el-option label="自由行" :value="4"></el-option> <el-option label="自由行" :value="4"></el-option>
<el-option label="当地游" :value="5"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -232,6 +233,7 @@ ...@@ -232,6 +233,7 @@
<el-option label="签证" :value="2"></el-option> <el-option label="签证" :value="2"></el-option>
<el-option label="机票" :value="3"></el-option> <el-option label="机票" :value="3"></el-option>
<el-option label="自由行" :value="4"></el-option> <el-option label="自由行" :value="4"></el-option>
<el-option label="当地游" :value="5"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="排序"> <el-form-item label="排序">
......
...@@ -23,27 +23,37 @@ ...@@ -23,27 +23,37 @@
</style> </style>
<template> <template>
<div> <div>
<table border="0" cellspacing="1" cellpadding="0" class="busManagerTalbe" style="width: 100%;"> <table border="0" cellspacing="1" cellpadding="0" class="busManagerTalbe" style="width: 100%;" v-loading='loading'>
<tr> <tr>
<td colspan="6">印象ジャパンバス手配依頼書</td> <td colspan="6">印象ジャパンバス手配依頼書</td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">団 體 名:</td> <td class="commonBackColor">団 體 名:</td>
<td colspan="5" class="comTextAlign">HP20190428A1</td> <td colspan="5" class="comTextAlign">
<el-input type="text" v-model="DataObj.TeamNum" />
</td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">ガイド名前:</td> <td class="commonBackColor">ガイド名前:</td>
<td class="comTextAlign">张三丰</td> <td class="comTextAlign">
<el-input type="text" v-model="DataObj.GuideName" />
</td>
<td class="commonBackColor">攜帯番號:</td> <td class="commonBackColor">攜帯番號:</td>
<td colspan="3" class="comTextAlign">123456789</td> <td colspan="3" class="comTextAlign">
<el-input type="text" v-model="DataObj.GuideTel" />
</td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">人   數:</td> <td class="commonBackColor">人   數:</td>
<td colspan="5" class="comTextAlign">25+1</td> <td colspan="5" class="comTextAlign">
<el-input type="text" v-model="DataObj.PeopleNum" />
</td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">バス 種類:</td> <td class="commonBackColor">バス 種類:</td>
<td colspan="5" class="comTextAlign">1</td> <td colspan="5" class="comTextAlign">
<el-input type="text" v-model="DataObj.BusType" />
</td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">スケジュール:</td> <td class="commonBackColor">スケジュール:</td>
...@@ -57,17 +67,31 @@ ...@@ -57,17 +67,31 @@
<td class="commonBackColor">ホテル</td> <td class="commonBackColor">ホテル</td>
<td class="commonBackColor">ホテルTEL</td> <td class="commonBackColor">ホテルTEL</td>
</tr> </tr>
<tr> <tr v-for="subItem in DataObj.Details_Extends">
<td></td> <td>
<td></td> {{subItem.UseDate}}
<td></td> </td>
<td></td> <td>
<td></td> <el-input type="text" v-model="subItem.BusType" />
<td></td> </td>
<td>
<el-input type="text" v-model="subItem.FlightNum" />
</td>
<td>
<el-input type="text" v-model="subItem.BusContent" />
</td>
<td>
<el-input type="text" v-model="subItem.HotelName" />
</td>
<td>
<el-input type="text" v-model="subItem.HotelTel" />
</td>
</tr> </tr>
<tr> <tr>
<td>備考欄:</td> <td>備考欄:</td>
<td colspan="5" class="comTextAlign">04/28日接机+0天+05/04日东京成田国际机场送机,订房号:HP20190428A1</td> <td colspan="5" class="comTextAlign">
<el-input type="text" v-model="DataObj.Remarks" />
</td>
</tr> </tr>
<tr> <tr>
<td colspan="6" class="comTextAlign">*迎えや送りは必要・不要となることは、必ず標記してください。</td> <td colspan="6" class="comTextAlign">*迎えや送りは必要・不要となることは、必ず標記してください。</td>
...@@ -79,7 +103,7 @@ ...@@ -79,7 +103,7 @@
<tr> <tr>
<td colspan="6"> <td colspan="6">
<input type="button" class="normalBtn" @click="SaveData()" value="保存" /> <input type="button" class="normalBtn" @click="SaveData()" value="保存" />
<input type="button" class="normalBtn" @click="DownLoadFile('','')" value="下载" /> <input type="button" class="normalBtn" @click="DownLoadFile()" value="下载" />
</td> </td>
</tr> </tr>
</tfoot> </tfoot>
...@@ -92,37 +116,64 @@ ...@@ -92,37 +116,64 @@
data() { data() {
return { return {
loading: false, loading: false,
DataObj: {}, DataObj: {
TCIDS:"" Id: 0,
TCIDS: "",
TeamNum: "",
GuideName: "",
GuideTel: "",
PeopleNum: "",
BusType: "",
DayNight: "",
Remarks: "",
Details_Extends: []
},
TCIDS: ""
} }
}, },
methods: { methods: {
DownLoadFile(item, NewCombinationNum) { DownLoadFile(item) {
let msg = { let msg = {
TCIDS: item.TCIDS TCIDS: this.TCIDS
}; };
this.GetLocalFile("bus_get_NewDownLoadBusConfig", msg, "バス手配依頼書" + NewCombinationNum + ".xls"); this.loading = true;
var fileName = "バス手配依頼書" + this.DataObj.TeamNum + ".xls";
this.GetLocalFile("bus_get_DownLoadBusConfig", msg,fileName,
res => {
this.loading = false;
});
}, },
GetData() { GetData() {
this.apipost('bus_Get_GetBusDownLoadData', {TCIDs:this.TCIDS}, res => { this.loading = true;
console.log("res",res); this.apipost('bus_Get_GetBusDownLoadData', {
TCIDs: this.TCIDS
}, res => {
this.loading = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.DataObj = res.data.data;
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
}, err => {}) }, err => {})
}, },
SaveData() SaveData() {
{ this.DataObj.TCIDS = this.TCIDS;
this.apipost('bus_Post_SaveBusDownLoadData', this.DataObj, res => {
if (res.data.resultCode == 1) {
this.Success("操作成功");
this.GetData();
} else {
this.Error(res.data.message);
}
}, err => {})
} }
}, },
mounted() { mounted() {
this.TCIDS = this.$route.query.TCID; //this.TCIDS = this.$route.query.TCID;
this.TCIDS = "2126,2405";
this.GetData(); this.GetData();
}, },
} }
</script> </script>
...@@ -169,12 +169,15 @@ ...@@ -169,12 +169,15 @@
.TPSetInfo .multiple_input .el-input__inner { .TPSetInfo .multiple_input .el-input__inner {
margin-top: 3px; margin-top: 3px;
} }
.TPSetInfo .multiple_input.multiple_input2{
.TPSetInfo .multiple_input.multiple_input2 {
height: 34px !important; height: 34px !important;
} }
.TPSetInfo .multiple_input.multiple_input2 .el-input__inner { .TPSetInfo .multiple_input.multiple_input2 .el-input__inner {
height: 34px !important; height: 34px !important;
} }
.SimulateDrop-box { .SimulateDrop-box {
width: 190px; width: 190px;
min-height: 34px; min-height: 34px;
...@@ -253,23 +256,28 @@ ...@@ -253,23 +256,28 @@
.TCswitch { .TCswitch {
width: 280px; width: 280px;
} }
.dijiebaojia{
.dijiebaojia {
margin-bottom: 15px; margin-bottom: 15px;
padding-top: 15px; padding-top: 15px;
} }
.dijiebaojia table{
.dijiebaojia table {
border-collapse: collapse; border-collapse: collapse;
width: 390px; width: 390px;
border-color: #dcdfe6; border-color: #dcdfe6;
} }
.dijiebaojia table tr td{
.dijiebaojia table tr td {
padding: 8px 15px; padding: 8px 15px;
color: #000; color: #000;
} }
.dijiebaojia table tr td._price{
.dijiebaojia table tr td._price {
/*color: red;*/ /*color: red;*/
} }
.dijiebaojia_table_btn{
.dijiebaojia_table_btn {
background-color: #e95252; background-color: #e95252;
font-size: 12px; font-size: 12px;
color: white; color: white;
...@@ -277,13 +285,16 @@ ...@@ -277,13 +285,16 @@
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
} }
.dijiebaojia_table_btn_hide{
.dijiebaojia_table_btn_hide {
margin-left: 10px; margin-left: 10px;
} }
._yes_click{
._yes_click {
background-color: #e95252 !important; background-color: #e95252 !important;
color: white; color: white;
} }
</style> </style>
<template> <template>
...@@ -300,7 +311,7 @@ ...@@ -300,7 +311,7 @@
<span class="Travel_Line"></span> <span class="Travel_Line"></span>
</div> </div>
<div class="clearfix"> <div class="clearfix">
<div class="TPDateContent" id="DayAll" > <div class="TPDateContent" id="DayAll">
<div class="month"> <div class="month">
<ul> <ul>
<li> <li>
...@@ -330,20 +341,16 @@ ...@@ -330,20 +341,16 @@
<!-- 日期 --> <!-- 日期 -->
<ul class="days"> <ul class="days">
<li class="liList" v-for="(dayobject,index) in days" :key="dayobject.subCode"> <li class="liList" v-for="(dayobject,index) in days" :key="dayobject.subCode">
<span v-if="dayobject.checkState==$calendarUtils.checkState.noChecked" class="other-month">{{dayobject.day.getDate()}}</span> <template v-if="dayobject.click">
<span v-if="dayobject.checkState==$calendarUtils.checkState.checked" class="checked1" <span v-if="dayobject.checkState==$calendarUtils.checkState.checked" class="checked1"
@click="clickedDay(dayobject)">{{dayobject.day.getDate()}}</span> @click="clickedDay(dayobject)">{{dayobject.day.getDate()}}</span>
<span v-else-if="dayobject.checkState==$calendarUtils.checkState.hasValue" <span v-else-if="dayobject.checkState==$calendarUtils.checkState.hasValue"
@click="clickedDay(dayobject)">{{dayobject.day.getDate()}}</span> @click="clickedDay(dayobject)">{{dayobject.day.getDate()}}</span>
</template>
<template v-else>
<span class="other-month">{{dayobject.day.getDate()}}</span>
</template>
</li> </li>
<!-- <li class="liList" v-for="(dayobject,index) in days" :key="dayobject.subCode">
<span v-if="dayobject.checkState==$calendarUtils.checkState.noChecked"
class="other-month">{{dayobject.day.getDate()}}</span>
<span v-if="dayobject.checkState==$calendarUtils.checkState.checked" class="checked1"
@click="clickedDay(dayobject)">{{dayobject.day.getDate()}}</span>
<span v-else-if="dayobject.checkState==$calendarUtils.checkState.hasValue"
@click="clickedDay(dayobject)">{{dayobject.day.getDate()}}</span>
</li> -->
</ul> </ul>
</div> </div>
</div> </div>
...@@ -362,8 +369,7 @@ ...@@ -362,8 +369,7 @@
</span> </span>
<div class="TP_childContent"> <div class="TP_childContent">
<span class="TP_tips" :class="{'ckedSpan':item.Checked}" @click="getDateInfo(item)" <span class="TP_tips" :class="{'ckedSpan':item.Checked}" @click="getDateInfo(item)"
v-for="(item,index) in showPriceList" v-for="(item,index) in showPriceList" :key="index">
:key="index">
{{item.StartDate}} {{item.StartDate}}
<span class="TP_cancel" @click.stop="delDateList(item)"> <span class="TP_cancel" @click.stop="delDateList(item)">
<i class="iconfont icon-quxiao"></i> <i class="iconfont icon-quxiao"></i>
...@@ -379,11 +385,12 @@ ...@@ -379,11 +385,12 @@
<div> <div>
<div class="TPSetInfo clearfix"> <div class="TPSetInfo clearfix">
<el-form label-width="10px" style="border-collapse:collapse;"> <el-form label-width="10px" style="border-collapse:collapse;">
<div class="dijiebaojia clearfix"> <div class="dijiebaojia clearfix" style="display:none;">
<p class="TPbaseSet" style="width: 140px">地接报价</p> <p class="TPbaseSet" style="width: 140px;">地接报价</p>
<table border="1" bordercolor="#dcdfe6" class="fl" v-if="dijiebaojiaShow&&queryPriceList.length>0" v-loading="queryPriceListLoading"> <table border="1" bordercolor="#dcdfe6" class="fl" v-if="dijiebaojiaShow&&queryPriceList.length>0"
v-loading="queryPriceListLoading">
<template v-for="item in queryPriceList"> <template v-for="item in queryPriceList">
<template v-for="son in item.PricesList" > <template v-for="son in item.PricesList">
<tr v-if="son.OfferType===1"> <tr v-if="son.OfferType===1">
<td rowspan="4">{{item.DayNum}}</td> <td rowspan="4">{{item.DayNum}}</td>
<td>酒店</td> <td>酒店</td>
...@@ -406,8 +413,10 @@ ...@@ -406,8 +413,10 @@
<td colspan="2" align="center">{{OfferTotalMoney}}</td> <td colspan="2" align="center">{{OfferTotalMoney}}</td>
</tr> </tr>
</table> </table>
<p class="fl dijiebaojia_table_btn" v-if="!dijiebaojiaShow&&queryPriceList.length>0" @click="dijiebaojiaShow=true">显示地接报价</p> <p class="fl dijiebaojia_table_btn" v-if="!dijiebaojiaShow&&queryPriceList.length>0"
<p class="fl dijiebaojia_table_btn dijiebaojia_table_btn_hide" v-if="dijiebaojiaShow&&queryPriceList.length>0" @click="dijiebaojiaShow=false">隐藏地接报价</p> @click="dijiebaojiaShow=true">显示地接报价</p>
<p class="fl dijiebaojia_table_btn dijiebaojia_table_btn_hide"
v-if="dijiebaojiaShow&&queryPriceList.length>0" @click="dijiebaojiaShow=false">隐藏地接报价</p>
</div> </div>
<div class="clearfix"> <div class="clearfix">
<div class="leftSetInfo"> <div class="leftSetInfo">
...@@ -540,9 +549,9 @@ ...@@ -540,9 +549,9 @@
<div class="leftSetInfo"> <div class="leftSetInfo">
<span class="TPbaseSet">设置</span> <span class="TPbaseSet">设置</span>
<span class="TPsecondTitle" style="margin-right: 10px">机票绑定</span> <span class="TPsecondTitle" style="margin-right: 10px">机票绑定</span>
<el-select class="w180" v-model="priceData.AirTicketId" > <el-select class="w180" v-model="priceData.AirTicketId">
<el-option v-for="(item,index) in queryFlightAirListData" :key="index" :label="item.AlCode+'-'+item.FlightDate+'-'+item.PNR" <el-option v-for="(item,index) in queryFlightAirListData" :key="index"
:value="item.AirLineTicketId"></el-option> :label="item.AlCode+'-'+item.FlightDate+'-'+item.PNR" :value="item.AirLineTicketId"></el-option>
</el-select> </el-select>
</div> </div>
<div class="TPright clearfix"> <div class="TPright clearfix">
...@@ -556,15 +565,14 @@ ...@@ -556,15 +565,14 @@
<span class="TP_Sendprepend" v-if="TeamType==1">送签时间</span> <span class="TP_Sendprepend" v-if="TeamType==1">送签时间</span>
<el-form-item prop="SendVisaTime" style="margin-top:1px;" v-if="TeamType==1"> <el-form-item prop="SendVisaTime" style="margin-top:1px;" v-if="TeamType==1">
<el-date-picker clearable class="w150" v-model="priceData.SendVisaTime" type="date" <el-date-picker clearable class="w150" v-model="priceData.SendVisaTime" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')"></el-date-picker>
:placeholder="$t('admin.admin_choDate')"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item prop="OutBranchId" style="margin-top:1px;"> <el-form-item prop="OutBranchId" style="margin-top:1px;">
<span class="TP_Sendprepend" style="margin:3px -1px 0 0">出团公司</span> <span class="TP_Sendprepend" style="margin:3px -1px 0 0">出团公司</span>
<el-select class="w180" v-model="priceData.OutBranchId" :disabled="TeamType==1"> <el-select class="w180" v-model="priceData.OutBranchId" :disabled="TeamType==1">
<el-option :label="$t('pub.unlimitedSel')" :value="SelectOtherDefault"></el-option> <el-option :label="$t('pub.unlimitedSel')" :value="SelectOtherDefault"></el-option>
<el-option v-for="item in companyList" :key="item.id" :label="item.bName" <el-option v-for="item in companyList" :key="item.id" :label="item.bName" :value="item.id">
:value="item.id"></el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -572,17 +580,17 @@ ...@@ -572,17 +580,17 @@
<span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售公司</span> <span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售公司</span>
<el-select class="w180 multiple_input" :class="{'SaleBranchList':priceData.SaleBranchIdArray==''}" <el-select class="w180 multiple_input" :class="{'SaleBranchList':priceData.SaleBranchIdArray==''}"
v-model="priceData.SaleBranchIdArray" multiple> v-model="priceData.SaleBranchIdArray" multiple>
<el-option v-for="item in companyList" :key="item.id" :label="item.bName" <el-option v-for="item in companyList" :key="item.id" :label="item.bName" :value="item.id">
:value="item.id"></el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="margin-top:1px;" v-else> <el-form-item style="margin-top:1px;" v-else>
<span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售公司</span> <span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售公司</span>
<el-select class="w180 multiple_input multiple_input2" :class="{'SaleBranchList':priceData.SaleBranchIdArray==''}" <el-select class="w180 multiple_input multiple_input2"
:disabled="TeamType==1" :class="{'SaleBranchList':priceData.SaleBranchIdArray==''}" :disabled="TeamType==1"
v-model="priceData.SaleBranchIdArray" multiple> v-model="priceData.SaleBranchIdArray" multiple>
<el-option v-for="item in companyList" :key="item.id" :label="item.bName" <el-option v-for="item in companyList" :key="item.id" :label="item.bName" :value="item.id">
:value="item.id"></el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
...@@ -613,8 +621,8 @@ ...@@ -613,8 +621,8 @@
<el-form-item style="margin-top:1px;"> <el-form-item style="margin-top:1px;">
<span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售状态</span> <span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售状态</span>
<el-select class="w180" v-model="priceData.TCSaleState"> <el-select class="w180" v-model="priceData.TCSaleState">
<el-option v-for="item in TeamList" :key="item.Id" :label="item.name" <el-option v-for="item in TeamList" :key="item.Id" :label="item.name" :value="item.Id">
:value="item.Id"></el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item v-if="TeamType==1"> <el-form-item v-if="TeamType==1">
...@@ -651,8 +659,8 @@ ...@@ -651,8 +659,8 @@
<div> <div>
<span class="TCSwitchtitle">订单操作</span> <span class="TCSwitchtitle">订单操作</span>
<span class="TCswitch"> <span class="TCswitch">
<el-switch v-model="priceData.IsOrder" :active-value="inActive" <el-switch v-model="priceData.IsOrder" :active-value="inActive" :inactive-value="notInActive">
:inactive-value="notInActive"></el-switch> </el-switch>
<div class="TC-config">关闭后,业务人员将不能操作订单</div> <div class="TC-config">关闭后,业务人员将不能操作订单</div>
</span> </span>
</div> </div>
...@@ -661,8 +669,8 @@ ...@@ -661,8 +669,8 @@
<div> <div>
<span class="TCSwitchtitle">同行在线预订</span> <span class="TCSwitchtitle">同行在线预订</span>
<span class="TCswitch"> <span class="TCswitch">
<el-switch v-model="priceData.IsB2B" :active-value="inActive" <el-switch v-model="priceData.IsB2B" :active-value="inActive" :inactive-value="notInActive">
:inactive-value="notInActive"></el-switch> </el-switch>
<div class="TC-config">产品将会直接推送到B2B站点</div> <div class="TC-config">产品将会直接推送到B2B站点</div>
</span> </span>
</div> </div>
...@@ -683,8 +691,8 @@ ...@@ -683,8 +691,8 @@
<div> <div>
<span class="TCSwitchtitle">直客在线预订</span> <span class="TCSwitchtitle">直客在线预订</span>
<span class="TCswitch"> <span class="TCswitch">
<el-switch v-model="priceData.IsB2C" :active-value="inActive" <el-switch v-model="priceData.IsB2C" :active-value="inActive" :inactive-value="notInActive">
:inactive-value="notInActive"></el-switch> </el-switch>
<div class="TC-config">产品将会直接推送到B2C站点</div> <div class="TC-config">产品将会直接推送到B2C站点</div>
</span> </span>
</div> </div>
...@@ -695,8 +703,8 @@ ...@@ -695,8 +703,8 @@
<span>团期标签</span> <span>团期标签</span>
<span> <span>
<el-checkbox-group v-model="priceData.PriceTagIds"> <el-checkbox-group v-model="priceData.PriceTagIds">
<el-checkbox v-for="team in teamTips" :label="team.ID" <el-checkbox v-for="team in teamTips" :label="team.ID" :key="team.Content">{{team.Content}}
:key="team.Content">{{team.Content}}</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</span> </span>
</div> </div>
...@@ -707,8 +715,7 @@ ...@@ -707,8 +715,7 @@
</div> </div>
</div> </div>
<TravelPriceFlightList @headCallBack="setDisDirectFlight" ref="TravelFlightList" :priceData="priceData" <TravelPriceFlightList @headCallBack="setDisDirectFlight" ref="TravelFlightList" :priceData="priceData"
:AirTicketId="priceData.AirTicketId" :AirTicketId="priceData.AirTicketId" :selectFilghtList="selectFilghtList"></TravelPriceFlightList>
:selectFilghtList="selectFilghtList"></TravelPriceFlightList>
</div> </div>
</div> </div>
</template> </template>
...@@ -716,7 +723,7 @@ ...@@ -716,7 +723,7 @@
import TravelPriceFlightList from "../TravelGroupControl/TravelPriceFlightList.vue"; import TravelPriceFlightList from "../TravelGroupControl/TravelPriceFlightList.vue";
export default { export default {
props: ["priceList", "priceIsDirect", "OfferList", "PostConfig", "modifyTcid","PostDaysTrip","TeamType"], props: ["priceList", "priceIsDirect", "OfferList", "PostConfig", "modifyTcid", "PostDaysTrip", "TeamType"],
data() { data() {
return { return {
currentDay: 1, currentDay: 1,
...@@ -779,17 +786,17 @@ ...@@ -779,17 +786,17 @@
], ],
currentPriceIndex: 0, //当前团期索引位置 currentPriceIndex: 0, //当前团期索引位置
showPriceList: [], showPriceList: [],
priceShowCount: 6,//团期展示条数 priceShowCount: 6, //团期展示条数
userID:null, userID: null,
dijiebaojiaShow:false, dijiebaojiaShow: false,
queryPriceListLoading:true, queryPriceListLoading: true,
queryPriceList:[], queryPriceList: [],
OfferTotalMoney:0, OfferTotalMoney: 0,
queryFlightAirListData:[], queryFlightAirListData: [],
queryFlightAirDateList:[], queryFlightAirDateList: [],
getSelectdata:'', getSelectdata: '',
//团期标签 //团期标签
teamTips:[], teamTips: [],
}; };
}, },
methods: { methods: {
...@@ -881,9 +888,9 @@ ...@@ -881,9 +888,9 @@
IsSubstitution: 1, IsSubstitution: 1,
AirticketBindList: [], AirticketBindList: [],
LowNum: 2, LowNum: 2,
TeamType:1, TeamType: 1,
//选中团期标签 //选中团期标签
PriceTagIds:[], PriceTagIds: [],
PriceFlight: JSON.parse( PriceFlight: JSON.parse(
JSON.stringify(this.PostConfig.FlightList) JSON.stringify(this.PostConfig.FlightList)
) )
...@@ -901,7 +908,7 @@ ...@@ -901,7 +908,7 @@
}, },
// 获取地接报价 // 获取地接报价
queryPriceOffer(time) { queryPriceOffer(time) {
if(this.PostDaysTrip === "") return; if (this.PostDaysTrip === "") return;
this.queryPriceListLoading = true; this.queryPriceListLoading = true;
let queryPriceList = { let queryPriceList = {
LowNum: 2, LowNum: 2,
...@@ -914,7 +921,7 @@ ...@@ -914,7 +921,7 @@
}; };
queryPriceList.DayNum = this.PostDaysTrip.DayNum; queryPriceList.DayNum = this.PostDaysTrip.DayNum;
// 酒店 // 酒店
this.PostDaysTrip.HotelList.forEach(x=> { this.PostDaysTrip.HotelList.forEach(x => {
let msg = { let msg = {
HotelId: x.HotelId, HotelId: x.HotelId,
DayNum: x.DayNum DayNum: x.DayNum
...@@ -922,14 +929,14 @@ ...@@ -922,14 +929,14 @@
queryPriceList.HotelList.push(msg); queryPriceList.HotelList.push(msg);
}); });
// 交通 // 交通
this.PostDaysTrip.TrafficList.forEach(x=> { this.PostDaysTrip.TrafficList.forEach(x => {
let msg = { let msg = {
DayNum: x.DayNum, DayNum: x.DayNum,
}; };
queryPriceList.TrafficList.push(msg); queryPriceList.TrafficList.push(msg);
}); });
// 景点 // 景点
this.PostDaysTrip.ScenicList.forEach(x=> { this.PostDaysTrip.ScenicList.forEach(x => {
let msg = { let msg = {
CouponsId: x.CouponsId, CouponsId: x.CouponsId,
DayNum: x.DayNum DayNum: x.DayNum
...@@ -937,7 +944,7 @@ ...@@ -937,7 +944,7 @@
queryPriceList.ScenicList.push(msg); queryPriceList.ScenicList.push(msg);
}); });
// 餐厅 // 餐厅
this.PostDaysTrip.DinnerList.forEach(x=> { this.PostDaysTrip.DinnerList.forEach(x => {
let msg = { let msg = {
DinnerId: x.DinnerId, DinnerId: x.DinnerId,
DayNum: x.DayNum DayNum: x.DayNum
...@@ -946,85 +953,71 @@ ...@@ -946,85 +953,71 @@
}); });
// 时间 // 时间
queryPriceList.PriceList.push({ queryPriceList.PriceList.push({
StartDate:time?time:this.chooseDay StartDate: time ? time : this.chooseDay
}); });
this.apipost('travel_get_GetTeamGroupLocalOfferList',queryPriceList,res=> { this.apipost('travel_get_GetTeamGroupLocalOfferList', queryPriceList, res => {
if(res.data.resultCode===1){ if (res.data.resultCode === 1) {
let data = res.data.data; let data = res.data.data;
this.queryPriceList = data.objList; this.queryPriceList = data.objList;
this.OfferTotalMoney = data.TotalMoney; this.OfferTotalMoney = data.TotalMoney;
} }
this.queryPriceListLoading = false; this.queryPriceListLoading = false;
},null) }, null)
}, },
// 获取飞机票1 // 获取飞机票1
queryFlightAir() { queryFlightAir() {
let TrafficList = this.PostDaysTrip; let TrafficList = this.PostDaysTrip;
let msg = { let msg = {
FstartcityId:0, FstartcityId: 0,
FendcityId: 0, FendcityId: 0,
EstartcityId: 0, EstartcityId: 0,
EendcityId: 0, EendcityId: 0,
}; };
if (TrafficList.TrafficList!=null&&TrafficList.TrafficList.length >= 2) {
if(TrafficList.TrafficList.length>=2) { if (TrafficList.TrafficList[0].SubTraffic[0].ArrivalCityId === 0) return;
if(TrafficList.TrafficList[0].SubTraffic[0].ArrivalType!==1) return; if (TrafficList.TrafficList[0].SubTraffic[0].StartCityId === 0) return;
if(TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic[0].ArrivalType!==1) return;
if(TrafficList.TrafficList[0].SubTraffic[0].ArrivalCityId===0) return;
if(TrafficList.TrafficList[0].SubTraffic[0].StartCityId===0) return;
msg.FstartcityId = TrafficList.TrafficList[0].SubTraffic[0].StartCityId; msg.FstartcityId = TrafficList.TrafficList[0].SubTraffic[0].StartCityId;
msg.FendcityId = TrafficList.TrafficList[0].SubTraffic[0].ArrivalCityId; msg.FendcityId = TrafficList.TrafficList[0].SubTraffic[0].ArrivalCityId;
if(TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic.length>=2){ if (TrafficList.TrafficList[TrafficList.TrafficList.length - 1].SubTraffic.length >= 2) {
let list = TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic[TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic.length-1]; let list = TrafficList.TrafficList[TrafficList.TrafficList.length - 1].SubTraffic[TrafficList.TrafficList[
if(list.ArrivalCityId===0) return; TrafficList.TrafficList.length - 1].SubTraffic.length - 1];
if(list.StartCityId===0) return; if (list.ArrivalCityId === 0) return;
if (list.StartCityId === 0) return;
msg.EstartcityId = list.StartCityId; msg.EstartcityId = list.StartCityId;
msg.EendcityId = list.ArrivalCityId; msg.EendcityId = list.ArrivalCityId;
}else { } else {
if(TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic[0].ArrivalCityId===0) return; if (TrafficList.TrafficList[TrafficList.TrafficList.length - 1].SubTraffic[0].ArrivalCityId === 0) return;
if(TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic[0].StartCityId===0) return; if (TrafficList.TrafficList[TrafficList.TrafficList.length - 1].SubTraffic[0].StartCityId === 0) return;
msg.EstartcityId = TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic[0].StartCityId; msg.EstartcityId = TrafficList.TrafficList[TrafficList.TrafficList.length - 1].SubTraffic[0].StartCityId;
msg.EendcityId = TrafficList.TrafficList[TrafficList.TrafficList.length-1].SubTraffic[0].ArrivalCityId; msg.EendcityId = TrafficList.TrafficList[TrafficList.TrafficList.length - 1].SubTraffic[0].ArrivalCityId;
} }
let storageMsg = localStorage.queryFlightAirMsg?JSON.parse(localStorage.queryFlightAirMsg):null;
if(storageMsg){
if(storageMsg.FstartcityId!==msg.FstartcityId
||storageMsg.FendcityId!==msg.FendcityId
||storageMsg.EstartcityId!==msg.EstartcityId
||storageMsg.EendcityId!==msg.EendcityId){
this.queryFlightAirList(msg); this.queryFlightAirList(msg);
}else {
return;
} }
}else {
localStorage.queryFlightAirMsg = JSON.stringify(msg);
this.queryFlightAirList(msg)
}
}else {}
}, },
// 获取飞机票2 // 获取飞机票2
queryFlightAirList(msg) { queryFlightAirList(msg) {
this.apipost("AirTicket_get_GetTicketList",msg,res=>{ this.apipost("AirTicket_get_GetTicketList", msg, res => {
if(res.data.resultCode===1){ if (res.data.resultCode === 1) {
this.queryFlightAirListData = res.data.data; this.queryFlightAirListData = res.data.data;
this.queryFlightAirListData.forEach(x=>{ this.queryFlightAirListData.forEach(x => {
this.queryFlightAirDateList.push({day:x.FlightDate}) this.queryFlightAirDateList.push({
day: x.FlightDate
})
}); });
this.initCalendarEdit(); this.initCalendarEdit();
} }
},null) }, null)
}, },
// 拿到航班信息初始化日历 // 拿到航班信息初始化日历
initCalendarEdit() { initCalendarEdit() {
for (let i in this.queryFlightAirDateList) {
for(let i in this.queryFlightAirDateList){ for (let k in this.days) {
for(let k in this.days){ if (this.queryFlightAirDateList[i].day == new Date(this.days[k].day).Format("yyyy-MM-dd")) {
if(this.queryFlightAirDateList[i].day == new Date(this.days[k].day).Format("yyyy-MM-dd")){
this.days[k].click = true; this.days[k].click = true;
} }
} }
} }
//this.$forceUpdate();
}, },
//单团期修改重置日历选中 //单团期修改重置日历选中
initDatePickerCheched() { initDatePickerCheched() {
...@@ -1098,65 +1091,7 @@ ...@@ -1098,65 +1091,7 @@
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1) this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
); );
}, },
getSelectFilght() {
let item = {};
this.queryFlightAirListData.forEach(x=>{
if(x.purchaseID==this.getSelectdata){
item = x;
}
});
this.priceData.AirticketBindList.push({
AirTicketId: item.AirLineTicketId,
BindNum: 0,
ID: 0,
PurchaseId: item.purchaseID
});
return;
let msg = {
QFlightDateStart: date,
CreateBy: this.PostConfig.CreateBy?this.PostConfig.CreateBy:this.userID,
AirTicketId:this.priceData.AirTicketId
};
let that = this;
this.apipost(
"TravelAirTicket_Get_GetSelfPurchaseList",
msg,
res => {
if (res.data.resultCode == 1) {
let resultFilghtList = res.data.data;
that.selectFilghtList = [];
resultFilghtList.forEach(x => {
that.selectFilghtList.push(x);
});
//通过返回数据初始化下拉选中
that.FinfoList = [];
if (that.priceData.AirticketBindList != null) {
that.priceData.AirticketBindList.forEach(x => {
that.selectFilghtList.forEach(y => {
if (x.PurchaseId == y.Id && x.BindNum > 0) {
y.IsSelected = true;
y.BindNum = x.BindNum;
that.FinfoList.push({
name: y.AlName,
date: y.FlightDate
});
}
});
});
}
that.$forceUpdate();
} else {
this.$message({
type: "error",
message: res.data.message
});
}
},
err => {
}
);
},
compareDay(day) { compareDay(day) {
var _string = this.getDayStr(day); var _string = this.getDayStr(day);
if (_string == this.chooseDay) { if (_string == this.chooseDay) {
...@@ -1228,7 +1163,7 @@ ...@@ -1228,7 +1163,7 @@
}, },
setDisDirectFlight(obj) { setDisDirectFlight(obj) {
this.priceData.PriceFlight = JSON.parse(JSON.stringify(obj.priceFlight)); this.priceData.PriceFlight = JSON.parse(JSON.stringify(obj.priceFlight));
this.priceData.DeleteAirticketIds=obj.DeleteAirticketIdArray.join(','); this.priceData.DeleteAirticketIds = obj.DeleteAirticketIdArray.join(',');
}, },
//删除标签 //删除标签
delDateList(item) { delDateList(item) {
...@@ -1286,7 +1221,6 @@ ...@@ -1286,7 +1221,6 @@
item.Checked = true; item.Checked = true;
this.priceData = item; this.priceData = item;
this.queryPriceOffer(item.StartDate); this.queryPriceOffer(item.StartDate);
// this.getSelectFilght(this.priceData.StartDate);
}, },
//左移动获取展示的团期 //左移动获取展示的团期
priceLeftMove() { priceLeftMove() {
...@@ -1333,8 +1267,8 @@ ...@@ -1333,8 +1267,8 @@
}); });
return isExit; return isExit;
}, },
getCompanyList() {
//出团公司 //出团公司
getCompanyList() {
this.apipost( this.apipost(
"sellorder_post_GetBranchList", {}, "sellorder_post_GetBranchList", {},
res => { res => {
...@@ -1343,83 +1277,26 @@ ...@@ -1343,83 +1277,26 @@
this.$forceUpdate() this.$forceUpdate()
} }
}, },
err => { err => {}
}
); );
}, },
//选中航班选择框
getSelect(item) {
item.IsSelected = !item.IsSelected;
this.FinfoList = [];
this.selectFilghtList.forEach(x => {
if (x.IsSelected) {
this.FinfoList.push({
name: x.AlName,
date: x.FlightDate
});
var isExsit = false;
this.priceData.AirticketBindList.forEach(y => {
if (x.Id == y.PurchaseId) {
isExsit = true;
y.BindNum = x.BindNum;
}
});
if (!isExsit) {
this.priceData.AirticketBindList.push({
AirTicketId: x.AirticketId,
BindNum: x.BindNum,
ID: 0,
PurchaseId: x.Id
});
}
} else {
var flag = true;
for (var i = 0; i < this.priceData.AirticketBindList.length; i++) {
if (
this.priceData.AirticketBindList[i].PurchaseId === x.Id &&
flag
) {
flag = false;
this.priceData.AirticketBindList.splice(i, 1);
}
}
}
});
},
//改变输入框的值
getFlightBindNum() {
var TotalSeat =
parseInt(this.priceData.YSeat) +
parseInt(this.priceData.CSeat) +
parseInt(this.priceData.FSeat);
this.selectFilghtList.forEach((x, index) => {
if (x.IsSelected) {
this.priceData.AirticketBindList.forEach(y => {
if (x.Id == y.PurchaseId) {
y.BindNum = x.BindNum;
}
});
}
});
},
//获取所有小包团 //获取所有小包团
getAllTeamTips(){ getAllTeamTips() {
let msg = { let msg = {
name:'theme', name: 'theme',
code:'1' code: '1'
} }
this.apipost("travel_get_GetTravelPriceTag", msg, res => { this.apipost("travel_get_GetTravelPriceTag", msg, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.teamTips = res.data.data; this.teamTips = res.data.data;
}else{ } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
},err => {} }, err => {});
);
}, },
},created(){ },
localStorage.removeItem('queryFlightAirMsg'); created() {
if(this.TeamType==1){ if (this.TeamType == 1) {
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
this.priceData.OutBranchId = userInfo.RB_Branch_id; this.priceData.OutBranchId = userInfo.RB_Branch_id;
this.userID = userInfo.EmployeeId; this.userID = userInfo.EmployeeId;
...@@ -1430,6 +1307,7 @@ ...@@ -1430,6 +1307,7 @@
var dateObj = this.$calendarUtils.getCurrentDate(); var dateObj = this.$calendarUtils.getCurrentDate();
this.currentYear = dateObj.CurrentYear; this.currentYear = dateObj.CurrentYear;
this.currentMonth = dateObj.CurrentMonth; this.currentMonth = dateObj.CurrentMonth;
this.queryFlightAir();
this.initCalendar(); this.initCalendar();
this.getCompanyList(); this.getCompanyList();
this.getAllTeamTips(); this.getAllTeamTips();
...@@ -1458,10 +1336,9 @@ ...@@ -1458,10 +1336,9 @@
this.returnPriceList.forEach((x, index) => { this.returnPriceList.forEach((x, index) => {
if (index == 0) { if (index == 0) {
this.priceData = this.returnPriceList[index]; this.priceData = this.returnPriceList[index];
console.log(this.priceData,'刚进来。。。');
x["Checked"] = true; x["Checked"] = true;
this.chooseDay = this.priceData.StartDate; this.chooseDay = this.priceData.StartDate;
//this.getSelectFilght(this.priceData.StartDate);
} else { } else {
x["Checked"] = false; x["Checked"] = false;
} }
...@@ -1471,13 +1348,10 @@ ...@@ -1471,13 +1348,10 @@
}, },
deep: true deep: true
}, },
priceData: { priceData: {
handler:function(val,oldVal){ handler: function (val, oldVal) {},
}, deep: true
deep:true
}, },
returnPriceList: { returnPriceList: {
//深度监听,可监听到对象、数组的变化 //深度监听,可监听到对象、数组的变化
handler: function (val, oldVal) { handler: function (val, oldVal) {
...@@ -1498,19 +1372,10 @@ ...@@ -1498,19 +1372,10 @@
PostDaysTrip: { PostDaysTrip: {
handler: function (val, oldVal) { handler: function (val, oldVal) {
// 行程天数 // 行程天数
if(oldVal==="") if (oldVal === "")
return; return;
this.queryPriceOffer(); this.queryPriceOffer();
this.queryFlightAir(); this.queryFlightAir();
// 监听天数 酒店 餐饮 景点 交通 变化
// if(val.DayNum!==oldVal.DayNum
// || val.DinnerList.equals(oldVal.DinnerList) === false
// || val.HotelList.equals(oldVal.HotelList) === false
// || val.ScenicList.equals(oldVal.ScenicList) === false
// || val.TrafficList.equals(oldVal.TrafficList) === false){
// this.queryPriceOffer();
// }
}, },
deep: true deep: true
} }
...@@ -1519,5 +1384,4 @@ ...@@ -1519,5 +1384,4 @@
TravelPriceFlightList: TravelPriceFlightList TravelPriceFlightList: TravelPriceFlightList
} }
}; };
</script> </script>
\ No newline at end of file
...@@ -33,21 +33,17 @@ ...@@ -33,21 +33,17 @@
<TravelConfig @headCallBack="getConfig" @setTravelUploadData="setTravelUploadData" :PostConfig="PostConfig" <TravelConfig @headCallBack="getConfig" @setTravelUploadData="setTravelUploadData" :PostConfig="PostConfig"
:TCNUM="TCNUM" id="firstAnchor" :LineList="LineList"></TravelConfig> :TCNUM="TCNUM" id="firstAnchor" :LineList="LineList"></TravelConfig>
<TravelDaysTripDirect id="secondAnchor" @headCallBack="getDaysTrip" :NoticeParameters="NoticeParameters" <TravelDaysTripDirect id="secondAnchor" @headCallBack="getDaysTrip" :NoticeParameters="NoticeParameters"
:subConfig="journeyList" :isOpenGroup="false" :IsDirect="PostConfig.IsDirect" :subConfig="journeyList" :isOpenGroup="false" :IsDirect="PostConfig.IsDirect" v-bind:AllCityList="AllCityList"
v-bind:AllCityList="AllCityList" v-bind:StartCity="StartCity" :UseTypeArray="UseTypeArray" :AirPickUp="AirPickUp" :AirSend="AirSend"
v-bind:StartCity="StartCity" :UseTypeArray="UseTypeArray" :AirPickUp="AirPickUp" @change="handlerChangeData" :TeamType="TeamType"></TravelDaysTripDirect>
:AirSend="AirSend" @change="handlerChangeData"
:TeamType="TeamType"></TravelDaysTripDirect>
<TravelFeature ref="TravelFeature" id="thirdAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData" <TravelFeature ref="TravelFeature" id="thirdAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData"
:TeamType="TeamType" :TeamType="TeamType" :isNewConfig="isNewConfig" @unlockFormCommit="unlockFormCommit"></TravelFeature>
:isNewConfig="isNewConfig" @unlockFormCommit="unlockFormCommit"></TravelFeature>
<TravelNotice ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" :subArray="NoticeParameters" <TravelNotice ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" :subArray="NoticeParameters"
:NoticeData="NoticeData" v-bind:PostConfig="PostConfig" v-bind:AllCityList="AllCityList" :NoticeData="NoticeData" v-bind:PostConfig="PostConfig" v-bind:AllCityList="AllCityList"
v-bind:CountryID="PostConfig.CountryID"></TravelNotice> v-bind:CountryID="PostConfig.CountryID"></TravelNotice>
<TravelPrice2 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip" <TravelPrice2 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip"
:priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid" :priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid" :TeamType="TeamType"></TravelPrice2>
:TeamType="TeamType"></TravelPrice2>
<div class="btnFixedDiv"> <div class="btnFixedDiv">
<div class="toTop" @click="backTop"> <div class="toTop" @click="backTop">
<i class="iconfont icon-huidaodingbu"></i> <i class="iconfont icon-huidaodingbu"></i>
...@@ -57,10 +53,18 @@ ...@@ -57,10 +53,18 @@
<div v-if="modifyType==2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(3)" <div v-if="modifyType==2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(3)"
title="另存为新模板">保存 title="另存为新模板">保存
</div> </div>
<div v-if="ConfigId>0" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="goB2B()">预览</div> <div v-if="ConfigId>0" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="goB2B()">预览</div>
<div class="DTSaveBtn" v-if="ConfigId>0" @click="getMapList()">地图</div>
</div>
</div> </div>
</div> </div>
<el-dialog custom-class="w800" title="行程地图" :visible.sync="isShowMap" center>
<TravelMap :dataList="travelLngLat"></TravelMap>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="isShowMap = false">关闭</button>
</div> </div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -71,13 +75,15 @@ ...@@ -71,13 +75,15 @@
import TravelNotice from '../TravelGroupControl/TravelNotice' import TravelNotice from '../TravelGroupControl/TravelNotice'
import TravelPrice2 from '../TravelGroupControl/TravelPrice2' import TravelPrice2 from '../TravelGroupControl/TravelPrice2'
import TravelMap from '../oldTravelGroupControl/TravelMap'
export default { export default {
provide () { provide() {
return { return {
loadConfigInfo: this.firstLoadConfigInfo loadConfigInfo: this.firstLoadConfigInfo
} }
}, },
data () { data() {
return { return {
ConfigId: 0, //地址栏查询参数 ConfigId: 0, //地址栏查询参数
NewConfigId: '', //configID加密后的字符串【预览使用】 NewConfigId: '', //configID加密后的字符串【预览使用】
...@@ -125,7 +131,7 @@ ...@@ -125,7 +131,7 @@
VideoStr: '', //视频地址 VideoStr: '', //视频地址
//是否更新酒店库存 //是否更新酒店库存
IsUpdateHotel: 0, IsUpdateHotel: 0,
OpenTeamDescribe: '',//开团备注 OpenTeamDescribe: '', //开团备注
customId: 0, customId: 0,
allotId: 0, allotId: 0,
}, },
...@@ -178,7 +184,7 @@ ...@@ -178,7 +184,7 @@
PostFeature: '', //行程特色信息 PostFeature: '', //行程特色信息
PostNotice: '', //行程特色其他内容 PostNotice: '', //行程特色其他内容
//配置信息 //配置信息
PostDaysTrip: '', //每天的行程 PostDaysTrip: {}, //每天的行程
PriceList: [], PriceList: [],
//所有的城市数据 //所有的城市数据
AllCityList: [], AllCityList: [],
...@@ -199,6 +205,8 @@ ...@@ -199,6 +205,8 @@
loading: false, loading: false,
isNewConfig: true, isNewConfig: true,
isfromManager: true, isfromManager: true,
isShowMap: false,
travelLngLat: []
} }
}, },
components: { components: {
...@@ -206,14 +214,15 @@ ...@@ -206,14 +214,15 @@
TravelDaysTripDirect: TravelDaysTripDirect, TravelDaysTripDirect: TravelDaysTripDirect,
TravelFeature: TravelFeature, TravelFeature: TravelFeature,
TravelNotice: TravelNotice, TravelNotice: TravelNotice,
TravelPrice2: TravelPrice2 TravelPrice2: TravelPrice2,
TravelMap: TravelMap
}, },
methods: { methods: {
/*获取行程特色内容对象*/ /*获取行程特色内容对象*/
getFeature (featureObj) { getFeature(featureObj) {
this.PostFeature = featureObj this.PostFeature = featureObj
}, },
handlerChangeData (data) { handlerChangeData(data) {
if ( if (
this.FeatureData.FeatureHtmlJson && this.FeatureData.FeatureHtmlJson &&
this.FeatureData.FeatureHtmlJson.d && this.FeatureData.FeatureHtmlJson.d &&
...@@ -225,7 +234,7 @@ ...@@ -225,7 +234,7 @@
} }
}, },
/*获取组件配置信息【回调方法】*/ /*获取组件配置信息【回调方法】*/
getConfig (configObj) { getConfig(configObj) {
this.PostConfig = configObj this.PostConfig = configObj
this.NoticeParameters.ConfigId = this.PostConfig.ConfigId this.NoticeParameters.ConfigId = this.PostConfig.ConfigId
this.NoticeParameters.CountryID = this.PostConfig.CountryID this.NoticeParameters.CountryID = this.PostConfig.CountryID
...@@ -238,7 +247,7 @@ ...@@ -238,7 +247,7 @@
} }
}, },
/*获取组件报价信息*/ /*获取组件报价信息*/
getPrice (priceObj) { getPrice(priceObj) {
priceObj.forEach(objItem => { priceObj.forEach(objItem => {
var SaleBranchId = '' var SaleBranchId = ''
if (objItem.SaleBranchIdArray.length > 0) { if (objItem.SaleBranchIdArray.length > 0) {
...@@ -254,23 +263,23 @@ ...@@ -254,23 +263,23 @@
this.PostPrice = priceObj this.PostPrice = priceObj
}, },
//行程回调 //行程回调
getDaysTrip (tripObj) { getDaysTrip(tripObj) {
this.PostDaysTrip = tripObj this.PostDaysTrip = tripObj
}, },
/*获取行程特色内容对象*/ /*获取行程特色内容对象*/
getFeature (featureObj) { getFeature(featureObj) {
this.PostFeature = featureObj this.PostFeature = featureObj
}, },
/*获取行程特色其他内容*/ /*获取行程特色其他内容*/
getNotice (noticeObj) { getNotice(noticeObj) {
this.PostNotice = noticeObj this.PostNotice = noticeObj
}, },
//解锁表单重复提交 //解锁表单重复提交
unlockFormCommit (value) { unlockFormCommit(value) {
this.isSubmit = value this.isSubmit = value
}, },
//初始化幻灯片 //初始化幻灯片
initFileList () { initFileList() {
for (var i = 0; i < 5; i++) { for (var i = 0; i < 5; i++) {
var fileObj = this.$commonUtils.FileObject() var fileObj = this.$commonUtils.FileObject()
if (this.PostConfig.fileList.length <= 5) { if (this.PostConfig.fileList.length <= 5) {
...@@ -280,14 +289,14 @@ ...@@ -280,14 +289,14 @@
} }
}, },
//提交验证 //提交验证
submitForm (SaveType) { submitForm(SaveType) {
if (this.isSubmit) { if (this.isSubmit) {
this.isSubmit = false this.isSubmit = false
this.SaveData(SaveType) this.SaveData(SaveType)
} }
}, },
/*保存数据*/ /*保存数据*/
SaveData (SaveType) { SaveData(SaveType) {
this.MsgBus.$emit('saveTravel', true) this.MsgBus.$emit('saveTravel', true)
this.FeatureData.IsSave = true this.FeatureData.IsSave = true
this.submitText = '保存中' this.submitText = '保存中'
...@@ -317,9 +326,11 @@ ...@@ -317,9 +326,11 @@
basicData.DayNum = (this.PostDaysTrip && this.PostDaysTrip.DayNum != '') ? this.PostDaysTrip.DayNum : 0 basicData.DayNum = (this.PostDaysTrip && this.PostDaysTrip.DayNum != '') ? this.PostDaysTrip.DayNum : 0
basicData.NightNum = (this.PostDaysTrip && this.PostDaysTrip.NightNum != '') ? this.PostDaysTrip.NightNum : 0 basicData.NightNum = (this.PostDaysTrip && this.PostDaysTrip.NightNum != '') ? this.PostDaysTrip.NightNum : 0
basicData.StartCityId = (this.PostDaysTrip && this.PostDaysTrip.StartCityId != '') ? this.PostDaysTrip.StartCityId : basicData.StartCityId = (this.PostDaysTrip && this.PostDaysTrip.StartCityId != '') ? this.PostDaysTrip
.StartCityId :
0 0
basicData.ReturnArriveCityId = (this.PostDaysTrip && this.PostDaysTrip.ReturnArriveCityId != '') ? this.PostDaysTrip basicData.ReturnArriveCityId = (this.PostDaysTrip && this.PostDaysTrip.ReturnArriveCityId != '') ? this
.PostDaysTrip
.ReturnArriveCityId : 0 .ReturnArriveCityId : 0
basicData.SelfpayingList = this.PostConfig.SelfpayingList basicData.SelfpayingList = this.PostConfig.SelfpayingList
...@@ -343,7 +354,8 @@ ...@@ -343,7 +354,8 @@
TripFeature.FeatureHtmlJson = TripFeature.FeatureHtmlJson ? TripFeature.FeatureHtmlJson = TripFeature.FeatureHtmlJson ?
JSON.stringify(TripFeature.FeatureHtmlJson) : JSON.stringify(TripFeature.FeatureHtmlJson) :
'' ''
TripFeature.FeatureHtmlJsonDelete = TripFeature.FeatureHtmlJsonDelete ? JSON.stringify(TripFeature.FeatureHtmlJsonDelete) : TripFeature.FeatureHtmlJsonDelete = TripFeature.FeatureHtmlJsonDelete ? JSON.stringify(TripFeature
.FeatureHtmlJsonDelete) :
'' ''
TripFeature.FeeInclude = this.PostNotice.FeeInclude TripFeature.FeeInclude = this.PostNotice.FeeInclude
TripFeature.FeeNonInclude = this.PostNotice.FeeNonInclude TripFeature.FeeNonInclude = this.PostNotice.FeeNonInclude
...@@ -394,13 +406,12 @@ ...@@ -394,13 +406,12 @@
this.$refs.TravelFeature.del_show = true this.$refs.TravelFeature.del_show = true
} }
}, },
err => { err => {}
}
) )
}, },
//初始化团的幻灯片 //初始化团的幻灯片
initFileList () { initFileList() {
this.PostConfig.fileList = [] this.PostConfig.fileList = []
for (var i = 0; i < 5; i++) { for (var i = 0; i < 5; i++) {
var fileObj = this.$commonUtils.FileObject() var fileObj = this.$commonUtils.FileObject()
...@@ -408,13 +419,13 @@ ...@@ -408,13 +419,13 @@
} }
}, },
//初始化行程特色幻灯片 //初始化行程特色幻灯片
initFeatureFile () { initFeatureFile() {
for (var i = 0; i < 5; i++) { for (var i = 0; i < 5; i++) {
var fileObj = this.$commonUtils.FileObject() var fileObj = this.$commonUtils.FileObject()
this.FeatureData.fileList.push(fileObj) this.FeatureData.fileList.push(fileObj)
} }
}, },
custormAnchor (anchorName, index) { custormAnchor(anchorName, index) {
// 找到锚点 // 找到锚点
let anchorElement = document.getElementById(anchorName) let anchorElement = document.getElementById(anchorName)
// 如果对应id的锚点存在,就跳转到锚点 // 如果对应id的锚点存在,就跳转到锚点
...@@ -423,7 +434,7 @@ ...@@ -423,7 +434,7 @@
} }
this.ckedNav = index this.ckedNav = index
}, //滚动事件 }, //滚动事件
ScrollMethod () { ScrollMethod() {
var that = this var that = this
var s1, s2, s3, s4, s5 var s1, s2, s3, s4, s5
document document
...@@ -459,7 +470,7 @@ ...@@ -459,7 +470,7 @@
}) })
}, },
//返回顶部 //返回顶部
backTop () { backTop() {
var timer = setInterval(function () { var timer = setInterval(function () {
var scrollTop = document.getElementsByClassName('frame-box')[0] var scrollTop = document.getElementsByClassName('frame-box')[0]
.scrollTop .scrollTop
...@@ -472,7 +483,7 @@ ...@@ -472,7 +483,7 @@
}, 30) }, 30)
}, },
/*一键上传数据组装*/ /*一键上传数据组装*/
setTravelUploadData (uploadConfig) { setTravelUploadData(uploadConfig) {
if (uploadConfig != undefined) { if (uploadConfig != undefined) {
var configData = JSON.parse(uploadConfig) var configData = JSON.parse(uploadConfig)
//基础数据组装 //基础数据组装
...@@ -556,7 +567,7 @@ ...@@ -556,7 +567,7 @@
} }
}, },
//餐饮对象上传创建 //餐饮对象上传创建
dinnerUploadFactory (dayNum, useDinnerType, dinnerName) { dinnerUploadFactory(dayNum, useDinnerType, dinnerName) {
let dinnerObj = this.$tripUtils.dinnerObj() let dinnerObj = this.$tripUtils.dinnerObj()
dinnerObj.UseDinnerType = useDinnerType dinnerObj.UseDinnerType = useDinnerType
dinnerObj.DinnerName = dinnerName dinnerObj.DinnerName = dinnerName
...@@ -564,7 +575,7 @@ ...@@ -564,7 +575,7 @@
dinnerObj.DayNum = dayNum dinnerObj.DayNum = dayNum
return dinnerObj return dinnerObj
}, },
firstLoadConfigInfo () { firstLoadConfigInfo() {
var routeName = this.$route.name var routeName = this.$route.name
this.TeamType = 1 this.TeamType = 1
let configId = this.$route.query.configId let configId = this.$route.query.configId
...@@ -678,7 +689,13 @@ ...@@ -678,7 +689,13 @@
this.journeyList.NightNum = tempData.NightNum this.journeyList.NightNum = tempData.NightNum
this.journeyList.ReturnArriveCityId = tempData.ReturnArriveCityId this.journeyList.ReturnArriveCityId = tempData.ReturnArriveCityId
this.journeyList.StartCityId = tempData.StartCityId this.journeyList.StartCityId = tempData.StartCityId
this.journeyList.DayList = tempData.DayList this.journeyList.DayList = tempData.DayList;
this.PostDaysTrip.TrafficList = [];
tempData.DayList2.forEach(item => {
this.PostDaysTrip.TrafficList.push(item.TrafficObj);
})
this.journeyList.DayList.forEach(x => { this.journeyList.DayList.forEach(x => {
x['HotelChooseArray'] = [] x['HotelChooseArray'] = []
x['ChooseScenicArray'] = [] x['ChooseScenicArray'] = []
...@@ -706,8 +723,7 @@ ...@@ -706,8 +723,7 @@
} }
this.loading = false this.loading = false
}, },
err => { err => {}
}
) )
} else { } else {
this.initFileList() this.initFileList()
...@@ -737,12 +753,11 @@ ...@@ -737,12 +753,11 @@
} }
this.loading = false this.loading = false
}, },
err => { err => {}
}
) )
} }
}, },
goB2B () { goB2B() {
let userInfo = this.getLocalStorage() let userInfo = this.getLocalStorage()
var B2BDomain = userInfo.B2BDomain var B2BDomain = userInfo.B2BDomain
let configId = this.NewConfigId let configId = this.NewConfigId
...@@ -753,23 +768,40 @@ ...@@ -753,23 +768,40 @@
'_blank' '_blank'
) )
}, },
//获取地图
getMapList() {
this.isShowMap = true
this.journeyList.DayList.forEach(x => {
x.dayArray.forEach(y => {
if ((y.Type == 2 || y.Type == 3) && (y.childItem.Lat != "" && y.childItem.Lng != "")) {
this.travelLngLat.push({
lat: y.childItem.Lat,
lng: y.childItem.Lng,
name: y.childItem.CouponsName == "undefined" ? y.childItem.HotelName : y.childItem
.CouponsName,
type: y.Type
})
}
})
})
}
}, },
updated: function () { updated: function () {
this.MsgBus.$emit('FeatureDataFlag') this.MsgBus.$emit('FeatureDataFlag')
}, },
watch: {}, watch: {},
mounted () { mounted() {
if (this.$route.query.customId) { if (this.$route.query.customId) {
this.PostConfig.customId = this.$route.query.customId this.PostConfig.customId = this.$route.query.customId
} }
if (this.$route.query.allotId) { if (this.$route.query.allotId) {
this.PostConfig.allotId = this.$route.query.allotId this.PostConfig.allotId = this.$route.query.allotId
} }
console.log("this.PostConfig",this.PostConfig)
this.ScrollMethod() this.ScrollMethod()
}, },
created () { created() {
this.firstLoadConfigInfo() this.firstLoadConfigInfo();
} }
} }
......
<style>
.markers_labels{
margin-left: -24px !important;
margin-top: -43px !important;
}
.gm-svpc,.gm-style-mtc,.gm-style-cc{
display: none;
}
</style>
<template>
<div >
<div id="map_canvas" style="height: 400px; width: 100%"></div>
</div>
</template>
<script>
export default {
props:["dataList"],
name: 'GGMap',
data(){
return{
show:false,
directionsService: new google.maps.DirectionsService(),
directionsDisplay: new google.maps.DirectionsRenderer(),
map:{},
}
},
created(){
},
destroyed: function() {
},
mounted(){
this.mapBuild() //初始化实例之后调用
},
methods:{
getDetailsRoutes(source,destination,map){
service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [source],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, function (response, status) {
if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
var distance = response.rows[0].elements[0].distance.text;
var duration = response.rows[0].elements[0].duration.text;
var dvDistance = document.getElementById("siteinfo_modal_label");
dvDistance.innerHTML = "";
dvDistance.innerHTML += "Distance: " + distance + "<br />";
dvDistance.innerHTML += "Duration:" + duration;
} else {
alert("Unable to find the distance via road.");
}
})
},
// 地图实例
mapBuild(){
console.log(this.dataList)
let lat = parseFloat(this.dataList[0].lat)
let lng = parseFloat(this.dataList[0].lng)
let center = {lng: lng, lat: lat}
//创建地图实例,zoom是缩放比例
this.map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 7,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// var polyOptions = {
// strokeColor: 'red', // 颜色
// strokeOpacity: 1.0, // 透明度
// strokeWeight: 2 // 宽度
// }
// let poly = new google.maps.Polyline(polyOptions);
// poly.setMap(map); // 装载
// 遍历循环创建标记
// this.dataList.map(item=>{
// // let lat = parseFloat(item.lat)
// // let lng = parseFloat(item.lng)
// // var path = poly.getPath(); //获取线条的坐标
// // path.push(new google.maps.LatLng(lat, lng));
// let marker = new MarkerWithLabel({
// position: {lat:lat,lng:lng},
// // icon: '../../../static/img/qishou.png', //标记自定义图标
// draggable: false, //不可拖动
// map: map, //地图实例
// // labelContent: item.name, //label的内容
// labelAnchor: new google.maps.Point(22, 100), //label的位置,可以调
// // labelClass: "markers_labels", // the CSS class for the label
// // labelStyle: { background:'#fff',padding:'5px' }
// });
// //自定义信息窗口
// let iw = new google.maps.InfoWindow({
// content: `<div>
// <p>景点名称:${item.name}</p>
// </div>`});
// //点击信息窗口显示
// google.maps.event.addListener(marker, "click", function (e) { iw.open(map, marker); });
// })
this.directionsDisplay.setMap(this.map);
this.calcRoute()
},
calcRoute: function() { // 创建路径规划
// 分解数据 获得起 止 以及中间数据
let lat = parseFloat(this.dataList[0].lat)
let lng = parseFloat(this.dataList[0].lng)
let elat = parseFloat(this.dataList[this.dataList.length-1].lat)
let elng = parseFloat(this.dataList[this.dataList.length-1].lng)
let _this = this;
let start = lat + ',' + lng;
let end = elat + ',' + elng;
let waypoints = [];
if (this.dataList.length > 2) {
this.dataList.forEach((x, index) => {
if (index >= 1 && index !== (this.dataList.length-1)) {
let obj = {
location: x.lat + ',' + x.lng
}
waypoints.push(obj)
}
});
}
let request = { // 组装连线数据
origin:start, // 起
destination:end, // 止
travelMode: google.maps.TravelMode.DRIVING,
// waypoints: [{location:"30.5226477,104.05806469999993"},{location:"30.67416759999999,104.04721970000003"}] // 中间点数据
};
if (waypoints.length > 0) {
request.waypoints = waypoints
}
console.log(waypoints)
_this.directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
_this.directionsDisplay.setDirections(result);
}
});
},
},
}
</script>
...@@ -3239,6 +3239,14 @@ export default { ...@@ -3239,6 +3239,14 @@ export default {
title: '会员特权' title: '会员特权'
} }
}, },
{
path: '/LocaltourMan',
name: 'LocaltourMan',
component: resolve => require(['@/components/activity/LocaltourMan'], resolve),
meta: {
title: '当地游'
}
},
] ]
}, },
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment