Commit a8326654 authored by 黄媛媛's avatar 黄媛媛
parents d3b131ca 956a2d7a
...@@ -499,7 +499,7 @@ ...@@ -499,7 +499,7 @@
} }
.TDTextspan { .TDTextspan {
display: inline-block; display: inline-block;
margin: 0 12px 0 30px; margin: 0 12px 0 23px;
} }
.TDTextspan:first-child { .TDTextspan:first-child {
margin-left: 0px; margin-left: 0px;
...@@ -2855,6 +2855,26 @@ ...@@ -2855,6 +2855,26 @@
color: #FFFFFF; color: #FFFFFF;
font-size: 12px; font-size: 12px;
} }
.travel_warningDi{
position: absolute;
top: 0px;
right: 0px;
width: 0px;
height: 0px;
border-top: 12px solid red;
border-bottom: 12px solid transparent;
border-left: 12px solid transparent;
border-right: 12px solid red;
}
.travel_warningDi::after{
content: '地';
position: absolute;
top: -12px;
right: -10px;
white-space: nowrap;
color: #FFFFFF;
font-size: 12px;
}
.TC_customerInfo table{margin-top:15px;padding-right: 20px;} .TC_customerInfo table{margin-top:15px;padding-right: 20px;}
.TC_customerInfo table tr td{ .TC_customerInfo table tr td{
height:40px; height:40px;
...@@ -2874,3 +2894,8 @@ ...@@ -2874,3 +2894,8 @@
.travelnowrap{white-space: nowrap} .travelnowrap{white-space: nowrap}
/*团控列表报价样式*/ /*团控列表报价样式*/
.travelprice{color:#47BF8C; font-size: 12px; font-weight: bold; margin: 5px 0;white-space: nowrap} .travelprice{color:#47BF8C; font-size: 12px; font-weight: bold; margin: 5px 0;white-space: nowrap}
.showOther{
display:none!important;
}
...@@ -271,7 +271,6 @@ export default { ...@@ -271,7 +271,6 @@ export default {
} }
} }
// console.log("this.data",this.data)
this.formdata=Object.assign({},res.data.data); this.formdata=Object.assign({},res.data.data);
if(this.formdata.Type==0){ if(this.formdata.Type==0){
this.formdata.Type=1; this.formdata.Type=1;
......
...@@ -383,7 +383,8 @@ ...@@ -383,7 +383,8 @@
</div> </div>
<div> <div>
<div class="el-col" style="position:relative;width:200px"> <div class="el-col" style="position:relative;width:200px">
<div v-if="item.IsWarning===1" title="紧急团" class="travel_warning"></div> <div v-if="item.IsWarning===1&&item.TeamType!=3" title="紧急团" class="travel_warning"></div>
<div v-else title="地接团" class="travel_warningDi"></div>
<div> <div>
<div class="TC_teamType"> <div class="TC_teamType">
<span v-if="item.IsB2B==0" title="内部团">{{$t('Operation.Op_nei')}}</span> <span v-if="item.IsB2B==0" title="内部团">{{$t('Operation.Op_nei')}}</span>
...@@ -749,10 +750,17 @@ ...@@ -749,10 +750,17 @@
<i class="el-icon-arrow-down el-icon--right"></i> <i class="el-icon-arrow-down el-icon--right"></i>
</span> </span>
<el-dropdown-menu slot="dropdown" class="TC-dropdown"> <el-dropdown-menu slot="dropdown" class="TC-dropdown">
<el-dropdown-item @click.native="goToOpenTravel('TravelManager2',item.ID,0)"> <el-dropdown-item v-if="item.TeamType!=3" @click.native="goToOpenTravel('TravelManager2',item.ID,0)">
{{$t('Operation.Op_xilieModyfi')}} {{$t('Operation.Op_xilieModyfi')}}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item @click.native="goTonowTeam('TravelManager2',item.ID,item.TCID,item.TCNUM)"> <el-dropdown-item v-else @click.native="goToOpenTravel('TravelManager6',item.ID,0)">
{{$t('Operation.Op_xilieModyfi')}}
</el-dropdown-item>
<el-dropdown-item v-if="item.TeamType!=3" @click.native="goTonowTeam('TravelManager2',item.ID,item.TCID,item.TCNUM)">
{{$t('Operation.Op_dangtuanModify')}}
</el-dropdown-item>
<el-dropdown-item v-else @click.native="goTonowTeam('TravelManager6',item.ID,item.TCID,item.TCNUM)">
{{$t('Operation.Op_dangtuanModify')}} {{$t('Operation.Op_dangtuanModify')}}
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
......
...@@ -110,30 +110,36 @@ ...@@ -110,30 +110,36 @@
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
<div> <div :class="{'showOther':TeamType==3}">
<el-form-item label="PDF别名"> <el-form-item label="PDF别名">
<el-input type="text" v-model="PostConfig.PDFAlias"></el-input> <el-input type="text" v-model="PostConfig.PDFAlias"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div v-if="TeamType==3">
<el-form-item label="标题备注">
<el-input v-model="PostConfig.Title" type="textarea" :autosize="{minRows: 3, maxRows: 3 }" resize="none"
placeholder="标题备注"></el-input>
</el-form-item>
</div>
<div v-else>
<el-form-item label="团队标题"> <el-form-item label="团队标题">
<el-input v-model="PostConfig.Title" type="textarea" :autosize="{minRows: 3, maxRows: 3 }" resize="none" <el-input v-model="PostConfig.Title" type="textarea" :autosize="{minRows: 3, maxRows: 3 }" resize="none"
placeholder="请填写团队标题"></el-input> placeholder="请填写团队标题"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div :class="{'showOther':TeamType==3}">
<el-form-item label="本团卖点"> <el-form-item label="本团卖点">
<el-input v-model="PostConfig.ProductRecommend" type="textarea" :autosize="{minRows: 3, maxRows: 3 }" <el-input v-model="PostConfig.ProductRecommend" type="textarea" :autosize="{minRows: 3, maxRows: 3 }"
resize="none" placeholder="本团卖点" maxlength="2000"></el-input> resize="none" placeholder="本团卖点" maxlength="2000"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div> <div :class="{'showOther':TeamType==3}">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="PostConfig.OpenTeamDescribe" type="textarea" :autosize="{minRows: 1, maxRows: 2 }" <el-input v-model="PostConfig.OpenTeamDescribe" type="textarea" :autosize="{minRows: 1, maxRows: 2 }"
resize="none" placeholder="此备注只在开团行程列表中显示" maxlength="300"></el-input> resize="none" placeholder="此备注只在开团行程列表中显示" maxlength="300"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="_VideoStr_box"> <div class="_VideoStr_box" :class="{'showOther':TeamType==3}">
<el-form-item label="视频地址"> <el-form-item label="视频地址">
<el-input v-model="PostConfig.VideoStr" type="textarea" :autosize="{minRows: 1, maxRows: 1 }" <el-input v-model="PostConfig.VideoStr" type="textarea" :autosize="{minRows: 1, maxRows: 1 }"
placeholder="https//:video.mp4" @blur="loadVideo"></el-input> placeholder="https//:video.mp4" @blur="loadVideo"></el-input>
...@@ -154,7 +160,7 @@ ...@@ -154,7 +160,7 @@
<div v-if="GGMapShow"> <div v-if="GGMapShow">
<GGMap></GGMap> <GGMap></GGMap>
</div> </div>
<div class="Travel_ImgList clearfix"> <div class="Travel_ImgList clearfix" :class="{'showOther':TeamType==3}">
<div class="TFimgList" v-for="(item,index) in PostConfig.fileList" :key="item.subCode"> <div class="TFimgList" v-for="(item,index) in PostConfig.fileList" :key="item.subCode">
<img v-if="!item.Url" src="../../../assets/img/bg_c3@3x.png"> <img v-if="!item.Url" src="../../../assets/img/bg_c3@3x.png">
<img v-else :src='compressImg(item.Url, "filt", 170, "")'> <img v-else :src='compressImg(item.Url, "filt", 170, "")'>
...@@ -210,7 +216,7 @@ ...@@ -210,7 +216,7 @@
import GGMap from "../../commonPage/GGMap"; import GGMap from "../../commonPage/GGMap";
export default { export default {
/*接收父组件传递的参数*/ /*接收父组件传递的参数*/
props: ["PostConfig", "LineList" ,"TCNUM"], props: ["PostConfig", "LineList" ,"TCNUM","TeamType"],
data() { data() {
return { return {
//系列列表 //系列列表
......
...@@ -355,8 +355,10 @@ ...@@ -355,8 +355,10 @@
path = "TravelManager3"; path = "TravelManager3";
} else if (TeamType == 2) { } else if (TeamType == 2) {
path = "TravelManager4"; path = "TravelManager4";
} else if (TeamType == 3) {
path = "TravelManager6";
} }
if(postData.isfromManager){ if (postData.isfromManager) {
path = "TravelManager5"; path = "TravelManager5";
} }
this.Success("保存成功"); this.Success("保存成功");
...@@ -378,7 +380,8 @@ ...@@ -378,7 +380,8 @@
//提交按钮和另存模板跳转团控列表 //提交按钮和另存模板跳转团控列表
else if (SaveType == 2 || SaveType == 3) { else if (SaveType == 2 || SaveType == 3) {
let path = "TravelControlList"; let path = "TravelControlList";
if (TeamType == 0) { //OP开团和地接开团
if (TeamType == 0 || TeamType == 3) {
path = "TravelControlList"; path = "TravelControlList";
} else if (TeamType == 1) { } else if (TeamType == 1) {
path = "TravelControlListSale"; path = "TravelControlListSale";
......
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
<div class="TravelNavList" :class="{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('secondAnchor',2)"> <div class="TravelNavList" :class="{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('secondAnchor',2)">
线路行程 线路行程
</div> </div>
<div class="TravelLine"></div> <div class="TravelLine" v-if="TeamType!=3"></div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==3}" @click.prevent="custormAnchor('thirdAnchor',3)"> <div class="TravelNavList" v-if="TeamType!=3" :class="{'TravelCked':ckedNav==3}" @click.prevent="custormAnchor('thirdAnchor',3)">
产品特色 产品特色
</div> </div>
<div class="TravelLine"></div> <div class="TravelLine" v-if="TeamType!=3"></div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==4}" @click.prevent="custormAnchor('fourAnchor',4)"> <div class="TravelNavList" v-if="TeamType!=3" :class="{'TravelCked':ckedNav==4}" @click.prevent="custormAnchor('fourAnchor',4)">
补充信息 补充信息
</div> </div>
<div class="TravelLine"></div> <div class="TravelLine"></div>
...@@ -31,16 +31,17 @@ ...@@ -31,16 +31,17 @@
</div> </div>
<div class="newTravelRight" v-loading="loading"> <div class="newTravelRight" v-loading="loading">
<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" :TeamType="TeamType"></TravelConfig>
<TravelDaysTripDirect id="secondAnchor" @headCallBack="getDaysTrip" :NoticeParameters="NoticeParameters" <TravelDaysTripDirect id="secondAnchor" @headCallBack="getDaysTrip" :NoticeParameters="NoticeParameters"
:subConfig="journeyList" :isOpenGroup="false" :IsDirect="PostConfig.IsDirect" v-bind:AllCityList="AllCityList" :subConfig="journeyList" :isOpenGroup="false" :IsDirect="PostConfig.IsDirect" v-bind:AllCityList="AllCityList"
v-bind:StartCity="StartCity" :UseTypeArray="UseTypeArray" :AirPickUp="AirPickUp" :AirSend="AirSend" v-bind:StartCity="StartCity" :UseTypeArray="UseTypeArray" :AirPickUp="AirPickUp" :AirSend="AirSend"
@change="handlerChangeData" :TeamType="TeamType" :IsOpenHotel="PostConfig.IsOpenHotel"></TravelDaysTripDirect> @change="handlerChangeData" :TeamType="TeamType" :IsOpenHotel="PostConfig.IsOpenHotel"></TravelDaysTripDirect>
<TravelFeature ref="TravelFeature" id="thirdAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData" <TravelFeature :class="{'showOther':TeamType==3}" ref="TravelFeature" id="thirdAnchor"
:TeamType="TeamType" :isNewConfig="isNewConfig" @unlockFormCommit="unlockFormCommit"></TravelFeature> @featureCallBack="getFeature" :FeatureData="FeatureData" :TeamType="TeamType" :isNewConfig="isNewConfig"
<TravelNotice ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" :subArray="NoticeParameters" @unlockFormCommit="unlockFormCommit"></TravelFeature>
:NoticeData="NoticeData" v-bind:PostConfig="PostConfig" v-bind:AllCityList="AllCityList" <TravelNotice :class="{'showOther':TeamType==3}" ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice"
v-bind:CountryID="PostConfig.CountryID"></TravelNotice> :subArray="NoticeParameters" :NoticeData="NoticeData" v-bind:PostConfig="PostConfig"
v-bind:AllCityList="AllCityList" v-bind:CountryID="PostConfig.CountryID"></TravelNotice>
<TravelPrice @saveMsg="SaveData(1)" ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" <TravelPrice @saveMsg="SaveData(1)" ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice"
:priceList="PriceList" v-if="TeamType==0" :PostConfig="PostConfig" :modifyTcid="modifyTcid" :priceList="PriceList" v-if="TeamType==0" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
...@@ -51,6 +52,10 @@ ...@@ -51,6 +52,10 @@
<TravelPrice3 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip" <TravelPrice3 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip"
v-if="TeamType==2" :priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid" v-if="TeamType==2" :priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
:TeamType="TeamType"></TravelPrice3> :TeamType="TeamType"></TravelPrice3>
<TravelPrice4 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip"
v-if="TeamType==3" :priceList="PriceList" :PostConfig="PostConfig" :modifyTcid="modifyTcid"
:TeamType="TeamType"></TravelPrice4>
<div class="btnFixedDiv" v-if="IsShowBtn"> <div class="btnFixedDiv" v-if="IsShowBtn">
<div class="toTop" @click="backTop"> <div class="toTop" @click="backTop">
<i class="iconfont icon-huidaodingbu"></i> <i class="iconfont icon-huidaodingbu"></i>
...@@ -75,6 +80,7 @@ ...@@ -75,6 +80,7 @@
import TravelPrice from "../TravelGroupControl/TravelPrice"; import TravelPrice from "../TravelGroupControl/TravelPrice";
import TravelPrice2 from "../TravelGroupControl/TravelPrice2"; import TravelPrice2 from "../TravelGroupControl/TravelPrice2";
import TravelPrice3 from "../TravelGroupControl/TravelPrice3"; import TravelPrice3 from "../TravelGroupControl/TravelPrice3";
import TravelPrice4 from "../TravelGroupControl/TravelPrice4";
export default { export default {
provide() { provide() {
...@@ -217,7 +223,8 @@ ...@@ -217,7 +223,8 @@
TravelNotice: TravelNotice, TravelNotice: TravelNotice,
TravelPrice: TravelPrice, TravelPrice: TravelPrice,
TravelPrice2: TravelPrice2, TravelPrice2: TravelPrice2,
TravelPrice3: TravelPrice3 TravelPrice3: TravelPrice3,
TravelPrice4: TravelPrice4
}, },
methods: { methods: {
/*获取行程特色内容对象*/ /*获取行程特色内容对象*/
...@@ -609,6 +616,9 @@ ...@@ -609,6 +616,9 @@
if (routeName == 'TravelManager4') { if (routeName == 'TravelManager4') {
this.TeamType = 2; this.TeamType = 2;
} }
if (routeName == 'TravelManager6') {
this.TeamType = 3;
}
let configId = this.$route.query.configId; let configId = this.$route.query.configId;
this.modifyTcid = this.$route.query.tcid; this.modifyTcid = this.$route.query.tcid;
this.TCNUM = this.$route.query.TCNUM; this.TCNUM = this.$route.query.TCNUM;
...@@ -765,6 +775,9 @@ ...@@ -765,6 +775,9 @@
this.initFileList(); this.initFileList();
this.initFeatureFile(); this.initFeatureFile();
this.loading = true; this.loading = true;
if (this.TeamType == 3) {
this.PostConfig.LineteamId = 588;
}
this.apipost( this.apipost(
"travel_get_GetCommonTravelInfo", { "travel_get_GetCommonTravelInfo", {
TeamType: this.TeamType TeamType: this.TeamType
......
<style>
.choosed span {
background-color: #1bc594 !important;
}
.illegal span {
background-color: #c0ebd1;
}
.TPLine {
display: inline-block;
width: 510px;
height: 1px;
border-bottom: 1px dashed #bfbfbf;
}
.TP_rightDate {
margin-left: 50px;
}
.TPDateContent .currentInput {
background-color: transparent;
}
.TP_tips {
display: inline-block;
padding: 5px;
border: 1px solid #d1d1d1;
position: relative;
border-radius: 4px;
margin-right: 10px;
cursor: pointer;
}
.TP_dateContent {
width: 600px;
height: auto;
margin: 30px 0 0 120px;
min-height: 30px;
position: relative;
}
.TP_cancel {
position: absolute;
color: #e95252;
display: inline-block;
width: 16px;
background-color: #fff;
border-radius: 50%;
height: 16px;
right: -8px;
top: -11px;
}
.TP_DateList {
width: 500px;
margin: 10px 0 0 120px;
}
.ckedSpan {
background-color: #2aa872;
color: #fff;
}
.TP_toLeft {
position: absolute;
top: 20px;
cursor: pointer;
left: 0;
}
.TravelPrice .days .liList {
cursor: pointer;
}
.TP_childContent {
position: absolute;
left: 20px;
top: 20px;
}
.TP_Right {
position: absolute;
top: 20px;
cursor: pointer;
right: 0;
}
.TP_Sendprepend {
float: left;
width: 110px;
height: 34px;
border: 1px solid #dcdfe6;
text-align: center;
line-height: 34px;
background-color: #f5f7fa;
color: #909399;
font-size: 14px;
margin: 3px -11px 0 10px;
}
.TravelPrice .days .checked1 {
border: 1px solid #2aa872 !important;
}
.TravelPrice .days .checked2 {
border: 1px solid #e95252 !important;
}
.TP_shangchuan .el-form-item__label {
width: auto !important;
margin-left: 23px;
}
.TravelPrice .avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.TravelPrice .avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 148px;
height: 148px;
line-height: 148px;
text-align: center;
}
.TravelPrice .avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.TravelPrice .avatar-uploader img {
width: 148px;
height: 148px;
display: block;
}
.TravelPrice .avatar-uploader:hover .TP_delImg {
display: block;
}
.TP_delImg {
display: inline-block;
width: 32px;
height: 32px;
position: absolute;
z-index: 999;
top: 60px;
display: none;
line-height: 32px;
border-radius: 50%;
left: 60px;
background-color: gray;
}
.TP_delImg:hover {
color: #e95252;
background: #fff;
}
.TPright .SaleBranchList .el-input__inner {
height: 34px !important;
}
.TPSetInfo .multiple_input .el-input__inner {
margin-top: 3px;
}
.SimulateDrop-box {
width: 288px;
min-height: 34px;
position: relative;
padding: 5px 21px 5px 6px;
float: left;
margin: 4px 0 0 10px;
border: 1px solid #d1d1d1;
}
._TravelPricePopover .jiDiv {
width: 750px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover .ScenicDiv {
width: 450px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
margin: 0 20px 5px 0;
width: 100%;
}
._TravelPricePopover table ._color_666 {
background-color: #ededed;
color: #666666;
padding: 5px;
}
._TravelPricePopover table td {
background-color: #ffffff;
padding: 9px 0;
color: #333333;
text-align: center;
border: 1px solid #d2d2d2;
}
._TravelPricePopover table td._d_name {
background-color: #ededed;
}
.SimulaDrop {
position: absolute;
top: 3px;
right: 10px;
color: #c0c4cc;
}
.SD_flight {
display: inline-block;
height: 24px;
margin: 0 3px 3px 0;
padding: 0 8px;
line-height: 22px;
background-color: #f0f2f5;
}
.TP_flightBtn {
float: right;
margin-right: 45px;
}
.TC-config {
color: #999999;
font-size: 12px;
height: 20px;
line-height: 20px;
}
.TCSwitchtitle {
display: inline-block;
vertical-align: top;
width: 86px;
text-align: right;
margin-top: 2px;
color: #606266;
}
.TCswitch {
width: 280px;
}
.TP_Airticktid {
text-decoration: underline;
cursor: pointer;
color: #409eff;
}
.TP_noneed {
position: relative;
top: 10px;
margin: 20px 0 30px 11px;
}
.Tp_hotelDialog {
width: 900px;
}
.TphotelTable {
width: 100%;
margin: auto;
text-align: center;
font-size: 12px;
color: #333;
border-collapse: collapse;
background-color: #fff;
border: 1px solid #d1d1d1;
}
.TphotelTable th {
background: #E6E6E6;
padding: 8px 0;
color: #333;
border: 1px solid #d1d1d1;
font-weight: bold;
}
.TphotelTable tr td {
background-color: #fff;
/* padding:8px 0; */
border: 1px solid #d1d1d1;
}
.Tp_btn {
color: #fff;
height: 25px;
background: #E95252;
border: 1px solid #E95252;
cursor: pointer;
border-radius: 15px;
margin-left: 10px;
}
.tp_divList {
width: 100%;
min-height: 30px;
border-bottom: 1px dashed #ccc;
}
.tp_divList div {
text-align: left;
padding: 0 20px;
margin-top: 5px;
}
.tp_divList:last-child {
border: 0;
}
.disClick {
background-color: #d1d1d1;
color: #fff;
border: 1px solid #d1d1d1;
cursor: default;
}
.disClick:hover {
background-color: #d1d1d1 !important;
cursor: default !important;
box-shadow: none !important;
}
.lessPriceRule {
font-size: 14px;
margin-left: 40px;
text-decoration: underline;
cursor: pointer;
}
</style>
<template>
<div>
<div class="TravelPrice clearfix" :class="{'foldHeight':isFold==1}">
<span class="TMTitle">
<i></i>团期设置
</span>
<span class="foldList" @click="fold" v-if="isFold==''">点击折叠</span>
<span class="foldList" @click="fold" v-if="isFold==1">点击展开</span>
<div class="TPLeft">
<div class="Travel_Nav">
<span class="Travel_TT">选择团期</span>
<span class="Travel_Line"></span>
</div>
<div class="clearfix">
<div class="TPDateContent" id="DayAll">
<div class="month">
<ul>
<li>
<i class="arrow monthminus" @click="currentYear-=1,getDateString(),initCalendar(dateString)">&lt;</i>
<input type="text" v-model="currentYear" disabled class="currentInput"
@input="getDateString(),initCalendar(dateString)">
<i class="arrow monthadd" @click="currentYear+=1,getDateString(),initCalendar(dateString)">&gt;</i>
</li>
<li>
<i class="arrow monthminus" @click="pickPre(currentYear,currentMonth)">&lt;</i>
<input type="text" v-model="currentMonth" disabled class="currentInput"
@input="getDateString(),initCalendar(dateString)">
<i class="arrow monthadd" @click="pickNext(currentYear,currentMonth)">&gt;</i>
</li>
</ul>
</div>
<!-- 星期 -->
<ul class="weekdays">
<li>{{$t('hotel.hotel_Monday')}}</li>
<li>{{$t('hotel.hotel_Tuesday')}}</li>
<li>{{$t('hotel.hotel_Wednesday')}}</li>
<li>{{$t('hotel.hotel_Thursday')}}</li>
<li>{{$t('hotel.hotel_Friday')}}</li>
<li>{{$t('hotel.hotel_Saturday')}}</li>
<li>{{$t('hotel.hotel_Sunday')}}</li>
</ul>
<!-- 日期 -->
<ul class="days">
<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>
</div>
</div>
</div>
<div class="TPright"></div>
<div class="TPCenter">
<div class="TPNoDiv">
<span class="Travel_TT">报价&库存&机票绑定</span>
<span class="TPNotice">(注意:公司已开启价格预警机制,最低销售价格不能低于2000.00元)</span>
<span class="TPLine"></span>
</div>
<div class="TP_rightDate">
<div class="TP_dateContent">
<span class="TP_toLeft" @click="priceLeftMove">
<i class="iconfont icon-previewleft"></i>
</span>
<div class="TP_childContent">
<span class="TP_tips" :class="{'ckedSpan':item.Checked}" @click="getDateInfo(item)"
v-for="(item,index) in showPriceList" :key="index">
{{item.StartDate}}
<span class="TP_cancel" @click.stop="delDateList(item)">
<i class="iconfont icon-quxiao"></i>
</span>
</span>
</div>
<span class="TP_Right" @click="priceRightMove">
<i class="iconfont icon-arrow-right"></i>
</span>
</div>
<div class="TP_DateList"></div>
</div>
<div>
<div class="TPSetInfo clearfix">
<el-form label-width="10px">
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet">基本报价设置</span>
<span class="TPsecondTitle"></span>
</div>
<div class="TPright">
<div class="TP_noneed">
<el-checkbox v-model="priceData.IsSupportChildren" :true-label="CheckedVaule"
:false-label="UnCheckedVaule" :class="{'showOther':TeamType==3}">支持儿童出游
</el-checkbox>
<el-checkbox style="display:none;" v-model="priceData.IsBookTeam" :true-label="CheckedVaule"
v-if="PostConfig.LineId==14" :false-label="UnCheckedVaule">订团
</el-checkbox>
<el-checkbox v-model="priceData.IsLessPrice" :true-label="CheckedVaule"
:false-label="UnCheckedLessPrice" :class="{'showOther':TeamType==3}">可少价
</el-checkbox>
<input type="button" class="normalBtn" value="酒店使用情况" @click="outerVisible=true"
v-if="PostConfig.LineId==14 && priceData.PriceHotelList&&priceData.PriceHotelList.length>0" />
</div>
<el-form-item prop="B2BMemberPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.B2BMemberPrice"
@keyup.native="checkPrice(priceData,'B2BMemberPrice')">
<template slot="prepend">同行会员</template>
</el-input>
</el-form-item>
<el-form-item prop="B2BPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.B2BPrice"
@keyup.native="checkPrice(priceData,'B2BPrice')">
<template slot="prepend">同行</template>
</el-input>
</el-form-item>
<el-form-item prop="B2CMemberPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.B2CMemberPrice"
@keyup.native="checkPrice(priceData,'B2CMemberPrice')">
<template slot="prepend">直客会员</template>
</el-input>
</el-form-item>
<el-form-item prop="B2CPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.B2CPrice"
@keyup.native="checkPrice(priceData,'B2CPrice')">
<template slot="prepend">直客</template>
</el-input>
</el-form-item>
<el-form-item prop="BabyPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.BabyPrice"
@keyup.native="checkInteger(priceData,'BabyPrice')">
<template slot="prepend">婴儿</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.SingleDMCPrice"
@keyup.native="checkPrice(priceData,'SingleDMCPrice')">
<template slot="prepend">单地接</template>
</el-input>
</el-form-item>
<el-form-item :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.TipAmount"
@keyup.native="checkPrice(priceData,'TipAmount')">
<template slot="prepend">人头小费</template>
</el-input>
</el-form-item>
<el-form-item prop="SingleRoomPrice">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.SingleRoomPrice"
@keyup.native="checkPrice(priceData,'SingleRoomPrice')">
<template slot="prepend">单房差</template>
</el-input>
</el-form-item>
<el-form-item prop="VisaPrice">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.VisaPrice"
@keyup.native="checkPrice(priceData,'VisaPrice')">
<template slot="prepend">签证费</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet"></span>
<span class="TPsecondTitle"></span>
</div>
<div class="TPright">
<el-form-item prop="ChildNeedPrice">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.ChildNeedPrice"
@keyup.native="checkInteger(priceData,'ChildNeedPrice')">
<template slot="prepend">儿童占床</template>
</el-input>
</el-form-item>
<el-form-item prop="BabyChargePrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.BabyChargePrice"
@keyup.native="checkPrice(priceData,'BabyChargePrice')">
<template slot="prepend">儿童附加费</template>
</el-input>
</el-form-item>
<el-form-item prop="OldManChargePrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.OldManChargePrice"
@keyup.native="checkPrice(priceData,'OldManChargePrice')">
<template slot="prepend">老人附加费</template>
</el-input>
</el-form-item>
<el-form-item prop="SafeMoney" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.SafeMoney"
@keyup.native="checkInteger(priceData,'SafeMoney')">
<template slot="prepend">保险</template>
</el-input>
</el-form-item>
<el-form-item prop="OtherPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.OtherPrice"
@keyup.native="checkPrice(priceData,'OtherPrice')">
<template slot="prepend">杂费</template>
</el-input>
</el-form-item>
<el-form-item prop="ChildNoNeedPrice">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.ChildNoNeedPrice"
@keyup.native="checkInteger(priceData,'ChildNoNeedPrice',true)">
<template slot="prepend">儿童不占床</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet"></span>
<span class="TPsecondTitle"></span>
</div>
<div class="TPright">
<el-form-item prop="BackVisaPrice" :class="{'showOther':TeamType==3}">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.BackVisaPrice"
@keyup.native="checkInteger(priceData,'BackVisaPrice')">
<template slot="prepend">退签证费</template>
</el-input>
</el-form-item>
<el-form-item style="display:none;">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.RebatePrice"
@keyup.native="checkPrice(priceData,'RebatePrice')">
<template slot="prepend">同行返佣</template>
</el-input>
</el-form-item>
<el-form-item style="display:none;">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.DiscountPrice"
@keyup.native="checkPrice(priceData,'DiscountPrice')">
<template slot="prepend">早鸟优惠</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet">设置</span>
<span class="TPsecondTitle"></span>
</div>
<div class="TPright clearfix">
<el-form-item prop="ClearOrderHour">
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.ClearOrderHour"
@keyup.native="checkInteger(priceData,'ClearOrderHour')"
@blur="checkInteger(priceData,'ClearOrderHour')">
<template slot="prepend">同行清位时间</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入" class="w190 ComSeat" v-model="priceData.SaleClearOrderHour"
@keyup.native="checkInteger(priceData,'SaleClearOrderHour')"
@blur="checkInteger(priceData,'SaleClearOrderHour')">
<template slot="prepend">销售清位时间</template>
</el-input>
</el-form-item>
<span class="TP_Sendprepend" :class="{'showOther':TeamType==3}">送签时间</span>
<el-form-item prop="SendVisaTime" style="margin-top:1px;" :class="{'showOther':TeamType==3}">
<el-date-picker clearable class="w150" v-model="priceData.SendVisaTime" type="date"
value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')"></el-date-picker>
</el-form-item>
<el-form-item prop="OutBranchId" style="margin-top:1px;">
<span class="TP_Sendprepend" style="margin:3px -1px 0 0">出团公司</span>
<el-select class="w180" v-model="priceData.OutBranchId">
<el-option :label="$t('pub.unlimitedSel')" :value="SelectOtherDefault"></el-option>
<el-option v-for="item in companyList" :key="item.id" :label="item.bName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</div>
<div class="TPright clearfix">
<el-form-item prop="YSeat">
<el-input placeholder="人数" class="w190" v-model="priceData.YSeat"
@keyup.native="checkInteger(priceData,'YSeat')">
<template slot="prepend">经济舱/上铺</template>
</el-input>
</el-form-item>
<el-form-item prop="CSeat" :class="{'showOther':TeamType==3}">
<el-input placeholder="人数" class="w260" v-model="priceData.CSeat"
@keyup.native="checkInteger(priceData,'CSeat')">
<template slot="prepend">商务舱/中铺</template>
</el-input>
</el-form-item>
<el-form-item prop="FSeat" :class="{'showOther':TeamType==3}">
<el-input placeholder="人数" class="w290" v-model="priceData.FSeat"
@keyup.native="checkInteger(priceData,'FSeat')">
<template slot="prepend" :class="{'showOther':TeamType==3}">头等舱/下铺</template>
</el-input>
</el-form-item>
<el-form-item :class="{'showOther':TeamType==3}">
<el-input placeholder="人数" class="w190" v-model="priceData.Inventory">
<template slot="prepend">最低成团人数</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="人数" class="w260" v-model="priceData.LeaderNum">
<template slot="prepend">领队人数</template>
</el-input>
</el-form-item>
<el-form-item :class="{'showOther':TeamType==3}">
<el-input placeholder="可销售机票数量" class="w290" v-model="priceData.CanSellTicketNum" maxlength="2"
@keyup.native="checkInteger(priceData,'CanSellTicketNum')"
@change="CheckSellTicketNum(priceData)">
<template slot="prepend">可销售机票数量</template>
</el-input>
</el-form-item>
</div>
<div class="TPright clearfix">
<el-form-item prop="GatherTime">
<el-input placeholder="请输入" class="w290 ComSeat" v-model="priceData.GatherTime">
<template slot="prepend">集合时间</template>
</el-input>
</el-form-item>
<el-form-item prop="GatherAddress">
<el-input placeholder="请输入" class="w460 ComSeat" v-model="priceData.GatherAddress">
<template slot="prepend">集合地点</template>
</el-input>
</el-form-item>
<el-form-item>
<span class="TP_Sendprepend" style="margin-left:0;width:120px;">销售状态</span>
<el-select class="w180" v-model="priceData.TCSaleState">
<el-option v-for="item in TeamList" :key="item.Id" :label="item.name" :value="item.Id">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-input placeholder="请输入" class="w460 ComSeat" v-model="priceData.GatherTag">
<template slot="prepend">集合标识</template>
</el-input>
</el-form-item>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet"></span>
<span class="TPsecondTitle">可退景点</span>
</div>
<div class="TPright clearfix">
<el-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div class="ScenicDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="_color_666">选择</td>
<td class="_color_666">景点名称</td>
<td class="_color_666">退款金额</td>
</tr>
<tr v-for="item in priceData.ScenicBackList">
<td>
<el-checkbox :checked="item.IsChecked" @change="getScenic(item)"></el-checkbox>
</td>
<td>
{{item.Name}}
</td>
<td>
<el-input class="w80" @keyup.native="checkPrice(item,'RefundMoney')"
v-model="item.RefundMoney"></el-input>
</td>
</tr>
</table>
</div>
</div>
<div slot="reference" class="SimulateDrop-box">
<span class="SD_flight" v-for="subItem in ScenicList">{{subItem.Name}}</span>
<i class="iconfont icon-arrow-down SimulaDrop"></i>
</div>
</el-popover>
<el-form-item style="margin-top:1px;">
<el-input placeholder="请输入" class="w460 ComSeat" v-model="priceData.AirportService">
<template slot="prepend">机场服务</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix" :class="{'showOther':TeamType==3}">
<div class="leftSetInfo">
<span class="TPbaseSet"></span>
<span class="TPsecondTitle">机票绑定</span>
</div>
<div class="TPright clearfix" >
<el-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div style="margin-bottom:20px;">
开始日期
<el-date-picker class="w150" type="date" v-model="QFlightDateStart"
:picker-options="pickerBeginDateBefore" value-format="yyyy-MM-dd" placeholder>
</el-date-picker>
结束日期
<el-date-picker class="w150" type="date" v-model="QFlightDateEnd"
:picker-options="pickerBeginDateAfter" value-format="yyyy-MM-dd" placeholder>
</el-date-picker>
<button class="normalBtn" @click.stop="getSelectFilght()">查询</button>
</div>
<div class="jiDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="_color_666">选择</td>
<td class="_color_666">机票编号/票务</td>
<td class="_color_666">航班号/航空公司/航段</td>
<td class="_color_666">时间</td>
<td class="_color_666">PNR</td>
<td class="_color_666">行程天数</td>
<td class="_color_666">机票数量/使用数量</td>
<td class="_color_666">绑定机位数</td>
</tr>
<tr v-for="fitem in selectFilghtList">
<td>
<el-checkbox v-model="fitem.IsSelected===true" @change="getSelect(fitem)"></el-checkbox>
</td>
<td>
{{fitem.AirticketId}}/{{fitem.TicketByName}}
</td>
<td>
<span class="TP_Airticktid"
@click="goUrl('TicketManager',fitem.AirticketId)">{{fitem.FlightNumber}}</span> /
{{fitem.AlName}} / {{fitem.DepartureName}}-{{fitem.ArrivalCityName}}
</td>
<td>{{fitem.FlightDate}} {{fitem.Departure_time}}</td>
<td>{{fitem.PNR}}</td>
<td>{{fitem.DayNum}}</td>
<td>{{fitem.TicketNum}} / {{fitem.UseAmount}}</td>
<td>
<el-input class="w69" placeholder="机位数" @keyup.native="getFlightBindNum(fitem)"
v-model="fitem.BindNum"></el-input>
</td>
</tr>
</table>
</div>
</div>
<div slot="reference" class="SimulateDrop-box">
<span class="SD_flight" v-for="item in FinfoList">{{item.name}} {{item.date}}</span>
<i class="iconfont icon-arrow-down SimulaDrop"></i>
</div>
</el-popover>
<el-form-item style="margin-top:1px;">
<span class="TP_Sendprepend" style="margin:3px -1px 0 0">销售公司</span>
<el-select class="w350 multiple_input" :class="{'SaleBranchList':priceData.SaleBranchIdArray==''}"
v-model="priceData.SaleBranchIdArray" multiple @change="ChangeSaleBranch(priceData)">
<el-option v-for="item in companyList" :key="item.id" :label="item.bName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="leftSetInfo">
<span class="TPbaseSet" style="width:62px;"></span>
<span class="TPsecondTitle" style="width:66px;">op对外备注</span>
</div>
<div class="TPright" style="float:left;">
<el-form-item style="margin-top:-20px;">
<el-input v-model="priceData.OPRemark" type="textarea" :autosize="{minRows: 3, maxRows: 3 }"
resize="none" class="w760" placeholder="op对外备注"></el-input>
</el-form-item>
<el-form-item>
<div>
<span class="TCSwitchtitle">订单操作</span>
<span class="TCswitch">
<el-switch v-model="priceData.IsOrder" :active-value="inActive" :inactive-value="notInActive">
</el-switch>
<div class="TC-config">关闭后,业务人员将不能操作订单</div>
</span>
</div>
</el-form-item>
<el-form-item>
<div>
<span class="TCSwitchtitle">同行在线预订</span>
<span class="TCswitch">
<el-switch v-model="priceData.IsB2B" :active-value="inActive" :inactive-value="notInActive">
</el-switch>
<div class="TC-config">产品将会直接推送到B2B站点</div>
</span>
</div>
</el-form-item>
</div>
<div class="TPright" style="float:left;">
<el-form-item>
<div>
<span class="TCSwitchtitle">报名候补</span>
<span class="TCswitch">
<el-switch v-model="priceData.IsSubstitution" :active-value="inActive"
:inactive-value="notInActive"></el-switch>
<div class="TC-config">关闭后不可超收人数</div>
</span>
</div>
</el-form-item>
<el-form-item>
<div>
<span class="TCSwitchtitle">直客在线预订</span>
<span class="TCswitch">
<el-switch v-model="priceData.IsB2C" :active-value="inActive" :inactive-value="notInActive">
</el-switch>
<div class="TC-config">产品将会直接推送到B2C站点</div>
</span>
</div>
</el-form-item>
</div>
</div>
<div class="TPright">
<span v-if="priceData.IsLessPrice==1" @click="getLessPriceInfo(),lessPriceVisible=true"
class="lessPriceRule">少价规则</span>
</div>
</div>
</el-form>
</div>
<div class="TPNotice">注:以上报价均会根据客户所选类型做价差处理</div>
</div>
</div>
<TravelPriceFlightList :class="{'showOther':TeamType==3}" @headCallBack="setDisDirectFlight" ref="TravelFlightList" :priceData="priceData"
:AirTicketId="priceData.AirTicketId" :DeleteAirticketIds="priceData.DeleteAirticketIds"
:selectFilghtList="selectFilghtList"></TravelPriceFlightList>
</div>
<el-dialog custom-class='Tp_hotelDialog' title="酒店使用情况" :visible.sync="outerVisible" center>
<table class="TphotelTable" border="0" cellspacing='1' v-if="priceData.TCID>0">
<tr>
<th width="100">日期</th>
<th width="150">酒店</th>
<th width="240">酒店情况</th>
<th width="100">占房时间</th>
<th width="100">更换酒店</th>
<th width="120">操作</th>
</tr>
<template v-for="(subItem,subIndex) in priceData.PriceHotelList">
<tr v-for="(childItem,childIndex) in subItem.SubList">
<td style="background-color:#E6E6E6;color:#333;" v-if="childIndex==0" :rowspan="subItem.SubList.length">
{{subItem.UseDay}}</td>
<td style="text-align:left;padding-left:3px;">
{{childItem.HotelName}}
</td>
<td style="text-align:left;padding-left:3px;">
<span v-if="childItem.UseCount>0 && subItem.SubList.length==1">
<template v-if="childItem.OPState==1&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'">
<a style="color:green">【OP-指定】</a>
</template>
<template v-else-if="childItem.OPState==2&&childItem.DMCState==0&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'">
<a style="color:red">【OP-指定】</a>
</template>
<template v-else>
<template v-if="childItem.DMCState==1&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'">
<a style="color:green">【地接-OK】</a>
</template>
<template v-if="childItem.DMCState==2&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'">
<a style="color:red">【地接-暂定】</a>
</template>
<template v-if="childItem.DMCState==0&&childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'">
<a style="color:red">【地接-未操作】</a>
</template>
</template>
<span style="color:green">本团使用:{{childItem.UseCount}}
{{childItem.CostPrice!=0?"价格:"+childItem.CostPrice:""}}</span>
</span>
<span style="color:#E95252;" v-if="childItem.HotelName!='温馨的家'&&childItem.HotelName!='机场附近酒店'"> 【剩余:{{childItem.RemainingInventory}}】
</span>
</td>
<td>
<template v-if="childItem.OPState==1||(childItem.OPState==2 && childItem.DMCState==0)">
{{childItem.CreateDateStr}}</template>
</td>
<td v-if="childIndex==0" :rowspan="subItem.SubList.length">
<el-select class="w180" v-model="subItem.NewHotelId" @visible-change="getHotelList(subItem,$event)"
@change="changeHotelList()" filterable>
<el-option :key="0" label="请选择" :value="0"></el-option>
<el-option v-for="hotelItem in subItem.HotelList" :key="hotelItem.ID" :label="hotelItem.Name"
:value="hotelItem.ID">
<span style="float:left">{{hotelItem.Name}}</span>
<span style="float:right;color:red;font-size:13px">剩余:{{hotelItem.Inventory}}/价格:{{hotelItem.CostPrice}}{{hotelItem.PriceTaxTypeStr}} </span>
</el-option>
</el-select>
</td>
<td>
<span v-if="childItem.UseCount>0 && subItem.SubList.length==1">
<span style="color:red;white-space:nowrap;cursor:pointer;" @click="DeleteStock(subItem)">删除</span>
</span>
<span>
<el-popover width="700" trigger="click" popper-class="DMC_HotelPop">
<commonPHInfo :name='"comPriceHotelInfo"+subIndex+childIndex'
:ref='"comPriceHotelInfo"+subIndex+childIndex'></commonPHInfo>
<span slot="reference" class="price" style="cursor:pointer;text-decoration:underline;"
@click="GetHotelUsePriceList(childItem.HotelId,subItem.UseDay,subIndex,childIndex)">库存情况</span>
</el-popover>
</span>
</td>
</tr>
</template>
</table>
<div slot="footer" class="dialog-footer">
<button class="normalBtn" type="primary" @click="PostConfig.IsUpdateHotel=1,saveHoteluseDetail(1)"
v-if="!(priceData.IsOpenHotel&&priceData.IsOpenHotel==1)" :class="{'disClick':!isSaved}">{{btnText}}</button>
&nbsp;
<button class="normalBtn" type="primary" @click="PostConfig.IsUpdateHotel=2;saveHoteluseDetail(2)"
v-if="!(priceData.IsOpenHotel&&priceData.IsOpenHotel==1)"
:class="{'disClick':!isSaved}">{{btnTongBu}}</button> &nbsp;
<button class="hollowFixedBtn" :class="{'disClick':!isSaved}"
@click="cancelHotelUseDetail()">{{$t('pub.cancelBtn')}}</button>
<template v-if="priceData.IsOpenHotel&&priceData.IsOpenHotel==1">
<br />
<span style="color:red;font-weight:bold;">※ 地接已关闭酒店操作,如需修改请联系地接OP.</span>
</template>
</div>
</el-dialog>
<el-dialog custom-class='Tp_hotelDialog' title="少价规则" :visible.sync="lessPriceVisible" center>
<table class="TphotelTable" border="0" cellspacing='1' v-if="lessPriceData.length>0">
<tr>
<th>所有人</th>
<th>部门主管</th>
<th>分公司总经理</th>
</tr>
<tr v-for="item in lessPriceData">
<td>
<span v-if="item.LessMoney!=null" style="margin-right:30px;">{{item.LessMoney}}元</span><span
v-if="item.LessPercent!=null">{{item.LessPercent}}%</span>
</td>
<td>
<span v-if="item.DeptLessMoney!=null" style="margin-right:30px;">{{item.DeptLessMoney}}元</span><span
v-if="item.DeptLessPercent!=null">{{item.DeptLessPercent}}%</span>
</td>
<td>
<span v-if="item.FilialeLessMoney!=null" style="margin-right:30px;">{{item.FilialeLessMoney}}元</span><span
v-if="item.FilialeLessPercent!=null">{{item.FilialeLessPercent}}%</span>
</td>
</tr>
</table>
<div class="noData" v-else>
{{$t('system.content_noData')}}
</div>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="lessPriceVisible=false">{{$t('pub.cancelBtn')}}</button>
</div>
</el-dialog>
</div>
</template>
<script>
import commonPHlInfo from "../../commonPage/commonPriceHotelInfo.vue";
import TravelPriceFlightList from "../TravelGroupControl/TravelPriceFlightList.vue";
export default {
props: ["priceList", "priceIsDirect", "OfferList", "PostConfig", "modifyTcid", "TeamType"],
data() {
return {
outerVisible: false,
currentDay: 1,
currentMonth: 1,
currentYear: 1970,
uploadList: [],
CheckedVaule: 1, //选中值
UnCheckedVaule: 2, //没选中
UnCheckedLessPrice: 0, //不少价
isSaved: true,
btnText: '保存',
btnTongBu: '同步酒店',
//日期数组
days: [],
dateString: "2016-01-02",
inActive: 1,
notInActive: 0,
//选中状态
chooseDay: "",
DateArr: [],
priceData: {
AdImage: {
Url: "",
Name: ""
},
SaleBranchIdArray: []
},
returnPriceList: this.priceList,
//酒店列表
HotelList: [],
companyList: [],
offerList: [],
selectFilghtList: [],
FinfoList: [],
//选中景点
ScenicList: [],
//下拉框默认值
SelectDefaultValue: 0,
SelectOtherDefault: -1,
isFold: "",
rules: {
Inventory: [{
required: true,
message: "请填写首次入库数",
trigger: "change"
}],
ClearOrderHour: [{
required: true,
message: "请填写自动清位",
trigger: "change"
}],
SendVisaTime: [{
required: true,
message: "请选择送签时间",
trigger: "change"
}]
},
TeamList: [{
Id: 1,
name: "一般团"
},
{
Id: 2,
name: "促销团"
},
{
Id: 3,
name: "主推团"
}
],
currentPriceIndex: 0, //当前团期索引位置
showPriceList: [],
priceShowCount: 6, //团期展示条数
QFlightDateStart: '', //航班查询开始日期
QFlightDateEnd: '', //航班查询结束日期
pickerBeginDateBefore: {
disabledDate: time => {
let endTime = new Date(this.QFlightDateEnd);
return endTime.getTime() < time.getTime();
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.QFlightDateStart);
return startTime.getTime() >= time.getTime();
}
},
//少价规则
lessPriceVisible: false,
lessPriceData: [],
};
},
methods: {
//销售公司改变方法
ChangeSaleBranch(item) {
var str = "";
if (item.SaleBranchIdArray && item.SaleBranchIdArray.length > 0) {
item.SaleBranchIdArray.forEach(subItem => {
str += subItem + ",";
});
str = str.substring(0, str.lastIndexOf(','));
}
item.SaleBranchId = str;
},
//调用子组件方法
GetHotelUsePriceList(HotelId, UseDay, index, hotelSubIndex) {
let str = `comPriceHotelInfo${index}${hotelSubIndex}`;
this.$refs[str][0].getHotelPriceList(HotelId, UseDay);
},
//点击折叠
fold() {
if (this.isFold == "") {
this.isFold = 1;
} else {
this.isFold = "";
}
},
//年月点击切换
getDateString: function () {
this.dateString = this.$calendarUtils.formatDate(
this.currentYear,
this.currentMonth,
1
);
},
//点击选中日历日期
clickedDay(item) {
this.chooseDay = this.getDayStr(item.day);
switch (item.checkState) {
case this.$calendarUtils.checkState.hasValue:
item.checkState = this.$calendarUtils.checkState.checked;
var objItem = "";
if (this.returnPriceList.length > 0) {
objItem = JSON.parse(JSON.stringify(this.returnPriceList[0]));
objItem.OPRemark = "";
objItem.AirTicketId = 0;
objItem.AirticketBindList = [];
objItem.Checked = false;
objItem.StartDate = this.chooseDay;
objItem.TCID = 0;
objItem.PriceFlight = JSON.parse(
JSON.stringify(this.PostConfig.FlightList)
);
} else {
objItem = {
TCID: 0,
AirTicketId: 0,
AirticketMoney: 0,
B2BMemberPrice: 0,
B2BPrice: 0,
B2CMemberPrice: 0,
B2CPrice: 0,
BabyChargePrice: 0,
BabyPrice: 0,
ChildNeedPrice: 0,
ChildNoNeedPrice: 0,
ConfigId: 0,
DiscountPrice: 0,
IsSupportChildren: 1,
OfferId: 0,
OldManChargePrice: 0,
OtherPrice: 0,
PeopleNum: 0,
RebatePrice: 0,
SafeMoney: 0,
SingleDMCPrice: 0,
SingleRoomPrice: 0,
VisaPrice: 0,
BackVisaPrice: 0,
BackSafeMoney: 0,
ContractUrl: "",
ContractArray: [],
OutBranchId: 1218,//日本和平分公司
GatherTime: "",
GatherAddress: "",
AdImage: "",
YSeat: 1,
CSeat: 0,
FSeat: 0,
Inventory: 0,
StartDate: this.chooseDay,
ClearOrderHour: "",
SendVisaTime: "",
Checked: false,
SaleBranchId: "", //销售公司编号
//销售公司数组
SaleBranchIdArray: [],
//op备注
OPRemark: "",
//销售状态
TCSaleState: 1,
LeaderNum: 0,
IsOrder: 0,
IsB2B: 0,
IsB2C: 0,
IsSubstitution: 1,
AirticketBindList: [],
PriceFlight: JSON.parse(
JSON.stringify(this.PostConfig.FlightList)
),
//删除的绑定的航班编号
DeleteAirticketIds: "",
GatherTag: "", //集合标识
AirportService: "", //机场服务
//可销售机票数量
CanSellTicketNum: 2,
//是否订团,0-不订,1需要订
IsBookTeam: 0,
//少价,0-不少价,1少价
IsLessPrice: 1,
//是否重新生成行程数据
IsNew: false,
//选中的酒店数组
ChooseHotelArray: [],
//销售清位时间
SaleClearOrderHour: 0,
//可退景点下拉列表
ScenicBackList: [],
TipAmount:0,//人头小费金额
};
}
this.returnPriceList.push(objItem);
this.initDatePickerCheched();
this.returnPriceList.sort(
this.$commonUtils.createComprisonFunction("StartDate")
);
this.getDateInfo(objItem);
break;
}
},
//单团期修改重置日历选中
initDatePickerCheched() {
},
RemovePrice(dateStr) {
var array = [];
this.returnPriceList.forEach(dayItem => {
if (dayItem.StartDate != dateStr) {
array.push(dayItem);
}
});
this.returnPriceList = array;
},
initCalendar: function (cur) {
var newDays = this.$calendarUtils.createCalendar(cur);
this.currentDay = newDays.CurrentDay;
this.currentYear = newDays.CurrentYear;
this.currentMonth = newDays.CurrentMonth;
this.days.length = 0;
var dateArray = newDays.DayArray;
for (var i = 0; i < dateArray.length; i++) {
var d = dateArray[i].day;
var dayobject = {};
dayobject.day = d;
dayobject.checkState = this.$calendarUtils.checkState.hasValue;
this.days.push(dayobject);
}
this.initDate();
},
//初始化数据状态
initDate() {
if (this.days != null) {
this.days.forEach(dayItem => {
var myDate = this.$calendarUtils.formatDate(
dayItem.day.getFullYear(),
dayItem.day.getMonth() + 1,
dayItem.day.getDate()
);
dayItem.checkState = this.$calendarUtils.checkState.hasValue;
if (this.checkPriceExit(myDate)) {
dayItem.checkState = this.$calendarUtils.checkState.checked;
}
});
}
this.initDatePickerCheched();
},
//点击左箭头切换年月
pickPre: function (year, month) {
var d = new Date(this.$calendarUtils.formatDate(year, month, 1));
d.setDate(0);
this.initCalendar(
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
);
},
//点击右箭头切换年月
pickNext: function (year, month) {
var d = new Date(this.$calendarUtils.formatDate(year, month, 1));
d.setDate(35);
this.initCalendar(
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
);
},
initFlightData() {
this.selectFilghtList = [];
this.FinfoList = [];
if (this.priceData.AirticketBindList.length > 0) {
this.QFlightDateStart = this.priceData.AirticketBindList[0].FlightDate;
this.QFlightDateEnd = this.priceData.AirticketBindList[this.priceData.AirticketBindList.length - 1]
.FlightDate;
this.getSelectFilght();
} else {
this.QFlightDateStart = this.daysCalculate(this.priceData.StartDate, -1);
this.QFlightDateEnd = this.daysCalculate(this.priceData.StartDate, 1);
this.getSelectFilght();
}
},
//日期计算
daysCalculate(date, addDay) {
var date = new Date(date); //获取当前时间
date.setDate(date.getDate() + addDay);
return date.Format("yyyy-MM-dd");
},
getSelectFilght() {
let createBy = this.priceData.CreateBy;
if (createBy == undefined || createBy == 0) {
let userInfo = this.getLocalStorage();
createBy = userInfo.EmployeeId;
}
let msg = {
QFlightDateStart: this.QFlightDateStart,
QFlightDateEnd: this.QFlightDateEnd,
CreateBy: createBy,
AirTicketId: this.priceData.AirTicketId,
TCID: this.priceData.TCID
};
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 => {}
);
},
validateForm() {
//表单验证
let flag = true;
if (
this.returnPriceList == null ||
this.returnPriceList == undefined ||
this.returnPriceList.length === 0
) {
this.Error("请选择团期");
flag = false;
}
if (flag) {
this.returnPriceList.forEach(x => {
if (flag) {
if (!this.validateTeamQuot(x)) {
flag = false;
}
}
});
}
return flag;
},
//数据验证
validateTeamQuot(quotationPrice) {
if (
this.isNullOrEmpty(quotationPrice.B2BMemberPrice) ||
this.isNullOrEmpty(quotationPrice.B2BPrice) ||
this.isNullOrEmpty(quotationPrice.B2CMemberPrice) ||
this.isNullOrEmpty(quotationPrice.B2CPrice) ||
this.isNullOrEmpty(quotationPrice.BabyChargePrice) ||
this.isNullOrEmpty(quotationPrice.BabyPrice) ||
this.isNullOrEmpty(quotationPrice.ChildNeedPrice) ||
this.isNullOrEmpty(quotationPrice.ChildNoNeedPrice) ||
this.isNullOrEmpty(quotationPrice.OldManChargePrice) ||
this.isNullOrEmpty(quotationPrice.OtherPrice) ||
this.isNullOrEmpty(quotationPrice.SingleRoomPrice) ||
this.isNullOrEmpty(quotationPrice.VisaPrice) ||
this.isNullOrEmpty(quotationPrice.SingleDMCPrice) ||
this.isNullOrEmpty(quotationPrice.BackVisaPrice) ||
this.isNullOrEmpty(quotationPrice.OutBranchId)
) {
return false;
} else {
return true;
}
},
isNullOrEmpty(value) {
if (value === null || value === "") {
return true;
} else {
return false;
}
},
getDayStr(date) {
var _string = this.$calendarUtils.formatDate(
date.getFullYear(),
date.getMonth() + 1,
date.getDate()
);
return _string;
},
setDisDirectFlight(obj) {
this.priceData.PriceFlight = JSON.parse(JSON.stringify(obj.priceFlight));
this.priceData.DeleteAirticketIds = obj.DeleteAirticketIdArray.join(',');
},
//删除标签
delDateList(item) {
var StartDateStr = item.StartDate;
var that = this;
that.Confirm("是否删除?删除后不能恢复!", function () {
if (item.TCID > 0) {
that.apipost(
"travel_post_RemoveTravelPrice", {
TCID: item.TCID
},
res => {
if (res.data.resultCode == 1) {
that.deletePrice(StartDateStr);
} else {
that.Info(res.data.message);
}
},
null
);
} else {
that.deletePrice(StartDateStr)
}
});
},
//删除团期
deletePrice(StartDateStr) {
this.days.forEach(dayItem => {
var dateStr = this.getDayStr(dayItem.day);
if (dateStr == StartDateStr) {
dayItem.checkState = this.$calendarUtils.checkState.hasValue;
}
});
var array = [];
let deleteIsChecked = false;
this.returnPriceList.forEach(priceItem => {
if (priceItem.StartDate != StartDateStr) {
array.push(priceItem);
} else {
if (priceItem.Checked) {
deleteIsChecked = true;
}
}
});
this.returnPriceList = array;
if (deleteIsChecked && this.returnPriceList.length > 0) {
this.returnPriceList[0].Checked = true;
}
},
//选中的日期点击事件
getDateInfo(item) {
this.returnPriceList.forEach(x => {
x.Checked = false;
});
item.Checked = true;
this.priceData = item;
this.initFlightData();
},
//左移动获取展示的团期
priceLeftMove() {
if (this.currentPriceIndex > 0) {
this.currentPriceIndex--;
this.initShowPriceList();
}
},
//右移动获取展示的团期
priceRightMove() {
if (
this.currentPriceIndex <
this.returnPriceList.length - this.priceShowCount
) {
this.currentPriceIndex++;
this.initShowPriceList();
}
},
//初始化显示团期数据
initShowPriceList() {
let showPriceList = [];
let getCount = 0; //获取到得数量
this.showPriceList = showPriceList;
for (
let i = this.currentPriceIndex; i < this.returnPriceList.length && getCount < this.priceShowCount; i++
) {
showPriceList.push(this.returnPriceList[i]);
getCount++;
}
},
//修改时判断初始化团期是否存在
checkPriceExit(date) {
let isExit = false;
this.priceList.forEach(price => {
if (this.$commonUtils.CompareDate(price.StartDate, date) === 0) {
if (this.modifyTcid > 0) {
if (price.TCID == this.modifyTcid) {
isExit = true;
}
} else {
isExit = true;
}
}
});
return isExit;
},
getCompanyList() {
//出团公司
this.apipost(
"sellorder_post_GetBranchList", {},
res => {
if (res.data.resultCode == 1) {
this.companyList = res.data.data;
}
},
err => {}
);
},
//选中航班选择框
getSelect(item) {
if (this.PostConfig.LineId == 14 && item.DayNum != this.PostConfig.DayNum) {
this.Error("团期行程天数和机票的行程天数不一致!请重新选择!");
return;
}
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,
FlightDate: x.FlightDate
});
}
} 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);
}
}
}
});
this.priceData.AirticketBindList.sort(
this.$commonUtils.createComprisonFunction("FlightDate")
);
},
//改变输入框的值
getFlightBindNum(fitem) {
var TotalSeat =
parseInt(this.priceData.YSeat) +
parseInt(this.priceData.CSeat) +
parseInt(this.priceData.FSeat);
if (Number(fitem.TicketNum) - Number(fitem.OtherTeamUseNum) < Number(fitem.BindNum)) {
fitem.BindNum = 0;
this.Error("最多只能绑定" + (Number(fitem.TicketNum) - Number(fitem.OtherTeamUseNum)) + "个机位");
}
this.selectFilghtList.forEach((x, index) => {
if (x.IsSelected) {
this.priceData.AirticketBindList.forEach(y => {
if (x.Id == y.PurchaseId) {
y.BindNum = x.BindNum;
}
});
}
});
},
//选中景点选择框
getScenic(item) {
item.IsChecked = !item.IsChecked;
this.initScenic();
},
//初始化景点
initScenic() {
this.ScenicList = [];
this.priceData.ScenicBackList.forEach(x => {
if (x.IsChecked) {
this.ScenicList.push(x);
}
})
},
goUrl(path, id) {
this.$router.push({
name: path,
query: {
"id": id,
blank: 'y',
tab: '票务管理'
}
})
},
//检查机位数是否超过设置的可销售数量
CheckSellTicketNum(item) {
var totalNum = 0;
if (item.YSeat && item.YSeat != '') {
totalNum += Number(item.YSeat);
}
if (item.CSeat && item.CSeat != '') {
totalNum += Number(item.CSeat);
}
if (item.FSeat && item.FSeat != '') {
totalNum += Number(item.FSeat);
}
var canSellNum = 0;
if (item.CanSellTicketNum && item.CanSellTicketNum != '') {
canSellNum = Number(item.CanSellTicketNum);
}
if (totalNum < canSellNum) {
this.Info("可销售机票数量不能超过本团机位数!")
item.CanSellTicketNum = 0;
}
},
//每一天只能选择一个酒店
changeHotelStatus(item, index) {
item.CheckList.forEach((subItem, subIndex) => {
if (subIndex != index) {
subItem.CheckStatus = false;
}
});
},
//获取选择的酒店
changeHotelList() {
this.priceData.ChooseHotelArray = [];
if (this.priceData.PriceHotelList != null && this.priceData.PriceHotelList.length > 0) {
this.priceData.PriceHotelList.forEach(x => {
var obj = {
HotelId: 0,
DayNum: 0
}
if (x.NewHotelId > 0) {
obj.HotelId = x.NewHotelId;
obj.DayNum = x.DayNum;
this.priceData.ChooseHotelArray.push(obj);
} else {
x.CheckList.forEach((y, index) => {
if (y.CheckStatus) {
obj.HotelId = x.SubList[index].HotelId;
obj.DayNum = x.SubList[index].DayNum
this.priceData.ChooseHotelArray.push(obj);
}
})
}
});
if (this.priceData.ChooseHotelArray != null && this.priceData.ChooseHotelArray.length > 0) {
this.priceData.IsNew = true;
}
}
},
//保存酒店使用情况
saveHoteluseDetail(type) {
var that = this;
var str = "是否确定提交选中的酒店?";
if (type == 2) {
str = "是否同步行程酒店到地接?";
}
this.Confirm(str, function () {
if (that.isSaved) {
that.isSaved = false;
that.$emit("saveMsg");
}
if (type == 2) {
that.btnTongBu = "同步酒店...";
} else {
that.btnText = '保存...';
}
});
},
//取消
cancelHotelUseDetail() {
this.priceData.IsNew = false;
if (this.priceData.PriceHotelList != null && this.priceData.PriceHotelList.length > 0) {
this.priceData.PriceHotelList.forEach(x => {
x.NewHotelId = 0;
});
}
this.outerVisible = false;
},
//关闭弹窗方法
closeHotelDialog() {
this.outerVisible = false;
},
//保存完成初始化
initStatus() {
this.isSaved = true;
this.btnText = '保存';
this.btnTongBu = "同步酒店";
},
//获取酒店信息
getHotelList(item, event) {
if (event) {
var msg = {
Country: 651,
sDate: item.UseDay,
IsMoreThanZero: 1
};
this.apipost(
"hotel_post_GetHasStockHotelListExt", msg,
res => {
if (res.data.resultCode == 1) {
item.HotelList = res.data.data;
}
},
err => {}
);
}
},
//获取少价信息
getLessPriceInfo() {
let msg = {
RB_Branch_id: this.priceData.OutBranchId,
LineID: this.PostConfig.LineId,
LineTeamId: this.PostConfig.LineteamId
}
this.apipost("sell_get_GetNewTCIDLessprice", msg, res => {
if (res.data.resultCode == 1) {
this.lessPriceData = res.data.data;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
//删除占用的酒店库存信息
DeleteStock(item) {
var that = this;
this.Confirm("是否此酒店库存信息?", function () {
let delMsg = {
hotelId: item.SubList[0].HotelId,
TCID: item.TCID,
useTime: item.SubList[0].JourneyDate
};
that.apipost("hoteluse_post_DeleteHotelUse", delMsg, res => {
if (res.data.resultCode == 1) {
that.Success("操作成功!");
item.SubList[0].UseCount = 0;
} else {
that.Error(res.data.message);
}
},
err => {}
);
});
},
},
mounted() {
var dateObj = this.$calendarUtils.getCurrentDate();
this.currentYear = dateObj.CurrentYear;
this.currentMonth = dateObj.CurrentMonth;
this.initCalendar();
this.getCompanyList();
},
watch: {
priceList: {
//深度监听,可监听到对象、数组的变化
handler: function (val, oldVal) {
this.returnPriceList = JSON.parse(JSON.stringify(this.priceList));
//当团期修改
if (this.modifyTcid > 0) {
let priceList = [];
this.returnPriceList.forEach(x => {
if (x.TCID == this.modifyTcid) {
priceList = [];
x.ConfigID = 0;
priceList.push(x);
}
});
this.returnPriceList = priceList;
}
this.returnPriceList.sort(
this.$commonUtils.createComprisonFunction("StartDate")
);
this.returnPriceList.forEach((x, index) => {
if (index == 0) {
this.priceData = this.returnPriceList[index];
x["Checked"] = true;
this.chooseDay = this.priceData.StartDate;
this.initFlightData();
this.initScenic();
} else {
x["Checked"] = false;
}
this.DateArr.push(x.StartDate);
});
this.initCalendar();
},
deep: true
},
returnPriceList: {
//深度监听,可监听到对象、数组的变化
handler: function (val, oldVal) {
this.initShowPriceList();
this.$emit("headCallBack", this.returnPriceList);
},
deep: true
},
//监听报价单日期
OfferList: {
//深度监听,可监听到对象、数组的变化
handler: function (val, oldVal) {
this.initCalendar();
},
deep: true
}
},
components: {
TravelPriceFlightList: TravelPriceFlightList,
commonPHInfo: commonPHlInfo
}
};
</script>
...@@ -76,8 +76,8 @@ ...@@ -76,8 +76,8 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
</span> </span>
<span class="TDTextspan">集合出发城市</span> <span class="TDTextspan" :class="{'showOther':TeamType==3}">集合出发城市</span>
<span> <span :class="{'showOther':TeamType==3}">
<el-form-item prop="StartCityId"> <el-form-item prop="StartCityId">
<el-select class="w120" :placeholder="$t('pub.pleaseSel')" v-model="subConfig.StartCityId" filterable> <el-select class="w120" :placeholder="$t('pub.pleaseSel')" v-model="subConfig.StartCityId" filterable>
<el-option :label="$t('pub.unlimitedSel')" :value="SelectDefaultValue"></el-option> <el-option :label="$t('pub.unlimitedSel')" :value="SelectDefaultValue"></el-option>
...@@ -86,8 +86,8 @@ ...@@ -86,8 +86,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</span> </span>
<span class="TDTextspan">返回抵达城市</span> <span class="TDTextspan" :class="{'showOther':TeamType==3}">返回抵达城市</span>
<span> <span :class="{'showOther':TeamType==3}">
<el-form-item prop="ReturnArriveCityId"> <el-form-item prop="ReturnArriveCityId">
<el-select class="w120" :placeholder="$t('pub.pleaseSel')" v-model="subConfig.ReturnArriveCityId" <el-select class="w120" :placeholder="$t('pub.pleaseSel')" v-model="subConfig.ReturnArriveCityId"
filterable> filterable>
...@@ -97,8 +97,8 @@ ...@@ -97,8 +97,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</span> </span>
<span class="TDTextspan" >是否更新行程特色</span> <span class="TDTextspan" :class="{'showOther':TeamType==3}">是否更新行程特色</span>
<span> <span :class="{'showOther':TeamType==3}">
<el-form-item prop="ReturnArriveCityId"> <el-form-item prop="ReturnArriveCityId">
<el-select class="w120" :placeholder="$t('pub.pleaseSel')" v-model="subConfig.IsUpdateTrip"> <el-select class="w120" :placeholder="$t('pub.pleaseSel')" v-model="subConfig.IsUpdateTrip">
<el-option label="不更新" :value="0"></el-option> <el-option label="不更新" :value="0"></el-option>
......
...@@ -186,33 +186,33 @@ ...@@ -186,33 +186,33 @@
</div> </div>
</div> </div>
<div class> <div class>
<noScenic v-if="!ishasScenic" :trafficObj="dayObj.TrafficObj"></noScenic> <noScenic v-if="!ishasScenic" :trafficObj="dayObj.TrafficObj" :class="{'showOther':TeamType==3}"></noScenic>
</div> </div>
<div class="TC-ComInfoDiv" :class="scenicCheck>0||dayObj.ScenicArray.length>0?'_margin_bottom':''"> <div class="TC-ComInfoDiv" :class="scenicCheck>0||dayObj.ScenicArray.length>0?'_margin_bottom':''">
<onedayList <onedayList :class="{'showOther':TeamType==3}"
v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==1)||(scenicCheck==1 && NoticeParameters.IsDirect==0)" v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==1)||(scenicCheck==1 && NoticeParameters.IsDirect==0)"
:isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray" :isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray"
:IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></onedayList> :IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></onedayList>
<twodayList <twodayList :class="{'showOther':TeamType==3}"
v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==2)||(scenicCheck==2 && NoticeParameters.IsDirect==0)" v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==2)||(scenicCheck==2 && NoticeParameters.IsDirect==0)"
:isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray" :isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray"
:IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></twodayList> :IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></twodayList>
<threedayList <threedayList :class="{'showOther':TeamType==3}"
v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==3)||(scenicCheck==3 && NoticeParameters.IsDirect==0)" v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==3)||(scenicCheck==3 && NoticeParameters.IsDirect==0)"
:isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray" :isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray"
:IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></threedayList> :IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></threedayList>
<fourdayList <fourdayList :class="{'showOther':TeamType==3}"
v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==4)||(scenicCheck==4 && NoticeParameters.IsDirect==0)" v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==4)||(scenicCheck==4 && NoticeParameters.IsDirect==0)"
:isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray" :isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray"
:IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></fourdayList> :IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></fourdayList>
<fivedayList <fivedayList :class="{'showOther':TeamType==3}"
v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==5)||(scenicCheck==5 && NoticeParameters.IsDirect==0)" v-if="(NoticeParameters.IsDirect==1 && dayObj.ScenicArray.length==5)||(scenicCheck==5 && NoticeParameters.IsDirect==0)"
:isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray" :isRead="dayObj.isRead" :scenicArray="dayObj.ScenicArray"
:IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></fivedayList> :IsDirect="NoticeParameters.IsDirect" :DayNum="dayObj.DayNum"></fivedayList>
</div> </div>
<div class="TC-warmTips TC-Comtitlediv" v-if="!dayObj.isRead"> <div class="TC-warmTips TC-Comtitlediv" v-if="!dayObj.isRead" :class="{'showOther':TeamType==3}">
<div class="TC-SpecialInstruction clearfix"> <div class="TC-SpecialInstruction clearfix">
<div class="TC-leftTitle">温馨提醒</div> <div class="TC-leftTitle">温馨提醒111</div>
<div class="TC-rightContent"> <div class="TC-rightContent">
<!--<el-input type="textarea" v-model="dayObj.WarmTipObj.Description"></el-input>--> <!--<el-input type="textarea" v-model="dayObj.WarmTipObj.Description"></el-input>-->
<my-edit v-on:edit-value="dayObj.WarmTipObj.Description = arguments[0]" <my-edit v-on:edit-value="dayObj.WarmTipObj.Description = arguments[0]"
...@@ -222,9 +222,9 @@ ...@@ -222,9 +222,9 @@
</div> </div>
</div> </div>
</div> </div>
<div class="TC-warmTips TC-Comtitlediv TC-warmText" v-if="dayObj.isRead"> <div class="TC-warmTips TC-Comtitlediv TC-warmText" v-if="dayObj.isRead" :class="{'showOther':TeamType==3}">
<div class="TC-SpecialInstruction clearfix"> <div class="TC-SpecialInstruction clearfix">
<div class="TC-leftTitle">温馨提醒</div> <div class="TC-leftTitle">温馨提醒222</div>
<div class="TC-rightContent" v-html="dayObj.WarmTipObj.Description"></div> <div class="TC-rightContent" v-html="dayObj.WarmTipObj.Description"></div>
</div> </div>
</div> </div>
......
...@@ -1854,6 +1854,14 @@ export default { ...@@ -1854,6 +1854,14 @@ export default {
title: '自主开团' title: '自主开团'
}, },
}, },
{
path: '/TravelManager6',
name: 'TravelManager6',
component: resolve => require(['@/components/newTravelManager/TravelGroupControl/TravelManager2'], resolve),
meta: {
title: '地接开团'
},
},
{ {
path: '/BasicOpenGroup', //基础班团控配置 path: '/BasicOpenGroup', //基础班团控配置
name: 'BasicOpenGroup', name: 'BasicOpenGroup',
......
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