Commit f84742f7 authored by 华国豪's avatar 华国豪 🙄
parents ef1bd497 eb2d7e74
<template>
<div class="AirlineTicketOrder">
<el-row>
<el-col :span="20" :offset="2">
<el-form ref="form" :model="form" label-width="100px">
<el-form-item label="订单状态:">
<el-select v-model="form.status" filterable size="mini">
<el-option label="全部" :value=0></el-option>
<el-option label="正常" :value=1></el-option>
<el-option label="取消" :value=2></el-option>
<el-option label="代付款" :value=3></el-option>
</el-select>
</el-form-item>
<el-form-item label="下单开始时间:">
<el-date-picker size="mini" type="date" placeholder="下单开始时间" v-model="form.startTime"></el-date-picker>
</el-form-item>
<el-form-item label="下单结束时间:">
<el-date-picker size="mini" type="date" placeholder="下单开始时间" v-model="form.endTime"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini">查询</el-button>
</el-form-item>
</el-form>
<el-table
v-loading="loading"
:data="tableData"
stripe
style="width: 100%">
<el-table-column
prop="id"
label="订单id">
</el-table-column>
<el-table-column
prop="contactName"
label="联系人姓名">
</el-table-column>
<el-table-column
prop="contactMobile"
label="联系人电话">
</el-table-column>
<el-table-column
prop="status"
label="订单状态">
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="danger"
@click="handleEdit(scope.$index, scope.row)">修改订单</el-button>
</template>
</el-table-column>
</el-table>
<div style="text-align:right;margin:10px 0;">
<el-pagination
@current-change="Currentchange"
background
layout="prev, pager, next"
:total="total">
</el-pagination>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data () {
return {
form:{
status:0,
startTime:'',
endTime:'',
pageIndex:1,
pageSize:15,
},
tableData:[],
total:0,
loading:false,
}
},
mounted() {
},
created(){
this.List();
},
methods: {
Currentchange(val){
this.form.pageIndex=val;
this.List();
},
handleEdit(index,row){
// console.log("row",row)
this.$router.push({
path: `/EditTicketOrder/${row.id}`
})
},
List(){
this.loading=true;
this.apiJavaPost('/api/dmc/airticket/GetB2BAirtickOrderPageList',this.form,res=>{
// console.log(res);
this.loading=false;
if(res.data.resultCode==1){
this.tableData=res.data.data.pageData;
this.total=res.data.data.count;
}
},null)
},
}
}
</script>
<style>
.AirlineTicketOrder .el-pager{
margin-top:6px;
}
.AirlineTicketOrder .el-form-item{
display: inline-block;
margin:10px 5px;
}
</style>
<template>
<div>
<div class="choose_back">
<el-row class="msg">
<div style="margin-bottom:10px">
<el-radio v-model="choose_info.ticketType" :label=1>单程</el-radio>
......@@ -8,25 +8,25 @@
<el-col :span="5">
<div class="city" style="margin-bottom:15px">
<span>出发地 | </span>
<el-select style="width:80%" v-model="choose_info.departure_city" filterable placeholder="请选择">
<el-select style="width:75%" v-model="choose_info.departure_city" filterable placeholder="请选择">
<el-option :value=0 label="不限"></el-option>
<el-option
v-for="item in cawei"
:key="item.id"
:label="item.title"
:value="item.id">
v-for="item in cfd"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</div>
<div class="city">
<span>目的地 | </span>
<el-select style="width:80%" v-model="choose_info.arrival_city" filterable placeholder="请选择">
<el-select style="width:75%" v-model="choose_info.arrival_city" filterable placeholder="请选择">
<el-option :value=0 label="不限"></el-option>
<el-option
v-for="item in cawei"
:key="item.id"
:label="item.title"
:value="item.id">
v-for="item in cfd"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</div>
......@@ -39,7 +39,7 @@
type="date"
placeholder="选择日期">
</el-date-picker>
<span>{{startweek}}</span>
<!-- <span>{{startweek}}</span> -->
</div>
<div class="city">
<span>归期 | </span>
......@@ -48,7 +48,7 @@
type="date"
placeholder="选择日期">
</el-date-picker>
<span>{{endweek}}</span>
<!-- <span>{{endweek}}</span> -->
</div>
</el-col>
<el-col :span="13">
......@@ -65,10 +65,14 @@
<span>婴儿 | </span>
<el-input-number size="mini" v-model="choose_info.ye" @change="handleChange" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
<el-button @click="Search" size="small">搜索</el-button>
<div class="number">
<span>老人 | </span>
<el-input-number size="mini" v-model="choose_info.lr" @change="handleChange" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
</div>
<div>
<div class="city" style="width:200px;display:inline-block;margin-right:10px">
<div class="city" style="width:220px;display:inline-block;">
<span>舱位选择 | </span>
<el-select v-model="choose_info.freightSpace" placeholder="请选择">
<el-option
......@@ -79,14 +83,15 @@
</el-option>
</el-select>
</div>
<div class="city" style="width:250px;display:inline-block">
<div class="city" style="width:250px;display:inline-block;margin:0 10px">
<span>航空公司 | </span>
<el-select style="width:180px" filterable v-model="choose_info.airLineID" placeholder="请选择">
<el-select style="width:160px" filterable v-model="choose_info.airLineID" placeholder="请选择">
<el-option :value=0 label="不限"></el-option>
<el-option v-for="item in airlineList" :label="item.AlName" :value="item.AirLineId"
:key="item.AirLineId"></el-option>
</el-select>
</div>
<el-button @click="Search" size="small">搜索</el-button>
</div>
</el-col>
</el-row>
......@@ -104,7 +109,7 @@ export default {
pageIndex:1,
pageSize:10,
id:0,
qFlightDateStart:"",
qFlightDateStart:moment().format('YYYY-MM-DD'),
qFlightDateEnd:"",
flight_number:"",
airLineID:0,
......@@ -118,6 +123,7 @@ export default {
cr:0,
child:0,
ye:0,
lr:0,
},
startweek:"",
......@@ -135,6 +141,7 @@ export default {
input10:"",
value:"",
airlineList:[],
cfd:[],
}
},
......@@ -143,9 +150,22 @@ export default {
},
created(){
this.initAirlines();
this.CFD();
this.$emit("ChooseInfo",this.choose_info)
},
methods: {
CFD(){
this.apipost(
"dict_post_Destination_GetCityList", {},
res => {
if (res.data.resultCode == 1) {
this.cfd=res.data.data;
}
},
err => {
}
);
},
// 航空公司下拉框
initAirlines() {
this.apipost(
......@@ -199,25 +219,28 @@ export default {
handleChange(){},
Search(){
this.choose_info.airTicketScatterNum=this.choose_info.cr+this.choose_info.child+this.choose_info.ye;
console.log(this.choose_info,'choose_info');
this.$emit("ChooseInfo",this.choose_info)
sessionStorage.setItem("ChooseInfo",JSON.stringify(this.choose_info));
this.$router.push({
path: 'TicketList',
query:this.choose_info
path: 'TicketList'
})
}
}
}
</script>
<style>
.choose_back .msg .el-input__icon{
line-height: 0;
}
.msg .el-select{
.choose_back .msg .el-select{
width: 130px;
height: 100%;
}
.el-select>.el-input{
.choose_back .msg .el-select>.el-input{
width: 100%;
}
.msg .el-button{
......@@ -228,11 +251,11 @@ export default {
color: #ffffff;
border: none;
}
.el-input-number .el-input{
.msg .el-input-number .el-input{
width: 95px;
}
.msg .number{
width:140px;
.choose_back .msg .number{
width:150px;
height:34px;
background:rgba(255,255,255,1);
border:1px solid rgba(216,218,220,1);
......@@ -242,7 +265,7 @@ export default {
display: inline-block;
margin-right: 20px;
}
.el-input-number{
.msg .el-input-number{
width:95px;
height: 100%;
}
......@@ -253,24 +276,20 @@ export default {
}
.msg .city{
width:80%;
height:34px;
height:36px;
background:rgba(255,255,255,1);
border:1px solid rgba(216,218,220,1);
border-radius:4px;
padding-bottom: 2px;
padding-left: 6px;
box-sizing: border-box
}
.el-input{
width: 145px;
height: 100%;
}
.el-input.is-active .el-input__inner, .el-input__inner:focus{
.msg .el-input.is-active .el-input__inner, .el-input__inner:focus{
border-color: none;
}
.el-date-editor.el-input, .el-date-editor.el-input__inner{
width: 145px;
}
.el-input__inner{
.msg .el-input__inner{
border: none;
height: 100%;
}
......
<template>
<div>
<!-- <div class="baner_top">
<el-row :gutter="20">
<el-col :span="24" :offset="2">
</el-col>
</el-row>
</div> -->
<el-row :gutter="20" style="background:#f5f5f5">
<el-col :span="18" :offset="3">
<!-- 订单详情 -->
<div class="ticket_list">
<el-col :span="9" style="position:relative">
<div class="bz">去程</div>
<div class="padd">
<p style="font-size:16px;color:#333333;padding-top:10px">{{getlistSigel.flightDate}}
{{getlistSigel.goStartCityName}} - {{getlistSigel.goEndCityName}}
</p>
<p style="font-size:12px;color:#666666">
<img style="width:18px;height:18px;margin:0 5px" :src="getlistSigel.airlineUrl" alt="">
<span>{{getlistSigel.airlineName}}</span>
<span>{{getlistSigel.alCode}} </span>
</p>
<div class="xcxq">
<el-col :span="8" style="text-align:right">
<p class="time">{{getlistSigel.goStartHouseTime}}</p>
<p>{{getlistSigel.goStartAirPlace}}</p>
</el-col>
<el-col :span="8" style="text-align:center">
<p>
{{getlistSigel.goTotalTime}}
</p>
<p class="line"></p>
<p v-if="getlistSigel.goTransfer">{{getlistSigel.goTransfer}}转机</p>
</el-col>
<el-col :span="8" style="text-align:left">
<p class="time">{{getlistSigel.goEndHouseTime}}</p>
<p>{{getlistSigel.goEndAirPlace}}</p>
</el-col>
</div>
</div>
</el-col>
<el-col :span="9" style="border-right:1px dashed #AAAAAA;position:relative">
<div class="bz">返程</div>
<div class="padd">
<p style="font-size:16px;color:#333333;padding-top:10px">{{getlistSigel.backDate}}
{{getlistSigel.backStartCityName}} - {{getlistSigel.backEndCityName}}
</p>
<p style="font-size:12px;color:#666666">
<img style="width:18px;height:18px;margin:0 5px" :src="getlistSigel.airlineUrl" alt="">
<span>{{getlistSigel.airlineName}}</span>
<span>{{getlistSigel.alCode}} </span>
</p>
<div class="xcxq">
<el-col :span="8" style="text-align:right">
<p class="time">{{getlistSigel.backStartHouseTime}}</p>
<p>{{getlistSigel.goStartAirPlace}}</p>
</el-col>
<el-col :span="8" style="text-align:center">
<p>
{{getlistSigel.backTotalTime}}
</p>
<p class="line"></p>
<p v-if="getlistSigel.goTransfer">{{getlistSigel.backTransfer}}转机</p>
</el-col>
<el-col :span="8" style="text-align:left">
<p class="time">{{getlistSigel.backEndHouseTime}}</p>
<p>{{getlistSigel.backEndAirPlace}}</p>
</el-col>
</div>
</div>
</el-col>
<el-col class="w31" :span="6">
<p style="padding-top:20px">
<span>订单金额</span>
<span style="float:right;color:#FF680B;font-size:20px">{{personNum.preferPrice}}</span>
</p>
<P style="font-size:12px;margin-top:12px">
成人票:
<span style="float:right;">{{getlistSigel.scatterB2BPrice }} x {{personNum.manNum}}</span>
</P>
<P style="font-size:12px;">
儿童票:
<span style="float:right;">{{getlistSigel.scatterB2BPrice }} x {{personNum.chirdNum}}</span>
</P>
<P style="font-size:12px;">
老人票:
<span style="float:right;">{{getlistSigel.scatterB2BPrice }} x {{personNum.oldPeopleNum}}</span>
</P>
</el-col>
</div>
<!-- 填写订单 -->
<div class="tx_order" style="margin-top:20px">
<div class="tx">
<div style="margin-top:4px">
乘机人信息
</div>
</div>
<el-form :model="personNum" ref="personNum" label-width="100px" class="demo-ruleForm">
<div class="tx_list" style="margin:10px 0" v-for="(item,index) in personNum.guestList" :key="index">
<el-col :span="4">
<div class="index">
<p><span style="font-weight:700">{{index+1}}</span></p>
<!-- //1 成年 2小孩 3婴儿 4老人 -->
<p style="background:#49C0A1;color:#fff">
<span v-if="item.ageType=='1'">成年</span>
<span v-if="item.ageType=='2'">小孩</span>
<span v-if="item.ageType=='3'">婴儿</span>
<span v-if="item.ageType=='4'">老人</span>
</p>
</div>
</el-col>
<el-col :span="20">
<el-form-item label="乘机人" :prop="'guestList.'+index+'.name'" :rules="[{required: true, message: '姓名不能为空', trigger: 'blur'}]">
<el-input size="mini" v-model="item.name"></el-input>
</el-form-item>
<el-form-item label="护照信息" :prop="'guestList.'+index+'.passportNo'" :rules="[{ required: true, message: '请输入护照信息', trigger: 'blur' }]">
<el-input size="mini" v-model="item.passportNo"></el-input>
</el-form-item>
<el-form-item label="出生日期" :prop="'guestList.'+index+'.birthday'" :rules="[{ type: 'string', required: true, message: '请选择日期', trigger: 'change' }]">
<el-date-picker size="mini" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" v-model="item.birthday" style="width: 100%;"></el-date-picker>
</el-form-item>
<el-form-item label="性别" :prop="'guestList.'+index+'.sex'" :rules="[{ required: true, message: '请选择性别', trigger: 'change' }]">
<el-radio-group v-model="item.sex">
<el-radio :label=1 :value=1></el-radio>
<el-radio :label=2 :value=2></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="国籍">
<el-select size="mini" v-model="item.nationality" filterable placeholder="请选择国籍">
<el-option v-for="(item,key) in countroylist" :key="key" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</el-form-item>
<el-form-item label="手机号" :prop="'guestList.'+index+'.mobilePhone'" :rules="[{required: true, message: '电话号码不能为空', trigger: 'blur'}]">
<el-input size="mini" v-model="item.mobilePhone"></el-input>
</el-form-item>
</el-col>
</div>
</el-form>
</div>
<!-- 联系人 -->
<div class="lxr_info" style="margin-top:20px;background:#fff;">
<p class="lxr">联系人信息</p>
<el-form style="width:90%" :model="personNum" ref="personNum" label-width="100px" class="demo-ruleForm">
<el-form-item label="联系人" prop="contactName" :rules="{ required: true, message: '请输入联系人姓名', trigger: 'blur' }">
<el-input size="mini" v-model="personNum.contactName"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="contactMobile" :rules="{ required: true, message: '请输入联系电话', trigger: 'blur' }">
<el-input size="mini" v-model="personNum.contactMobile"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="contactEmail" :rules="[{ required: true, message: '请输入邮箱地址', trigger: 'blur' },{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }]">
<el-input size="mini" v-model="personNum.contactEmail"></el-input>
</el-form-item>
<el-form-item style="width:99%" label="备注">
<el-input size="mini" v-model="personNum.remarks"></el-input>
</el-form-item>
</el-form>
</div>
</el-col>
</el-row>
<!-- 提交订单 -->
<div class='tjorder'>
<div style="width:80%;margin:0 auto;color:#cccccc;position:relative">
<p style="font-size:14px;padding:4px 50px;text-align:right;">条款和限制<span style="color:#49C0A1">《网上购票须知》</span> </p>
<p class="total" style="margin-top:12px">
<span>总价</span>
<span style="font-size:20px;font-weight:400;color:rgba(255,255,255,1);margin:0 15px;">{{personNum.preferPrice}}</span>
<span @click="submitForm('personNum')" style="cursor: pointer;;height:32px;background:rgba(238,68,84,1);border-radius:4px;color:#fff;padding:4px 15px">同意以上协议条款,提交订单</span>
</p>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment'
export default {
components: {
},
data () {
return {
personnums:true,
personNum:{
manNum:0,
chirdNum:0,
babyNum:0,
oldPeopleNum:0,
guestList:[],
preferPrice:0,//应收总金额,
contactMobile:'',
contactEmail:'',
contactName:'',
},
AirOrderId:this.$route.params.id,
ruleForm:{},
getlistSigel:{},
flightList:[],
userInfo:this.getLocalStorage(),
customer:{},
countroylist:[],
}
},
mounted () {
this.GetDes();
this.GetCountroy()
this.GetTicketDes();
},
methods: {
// 国籍
GetCountroy(){
this.apipost(
"b2b_get_GetCountryForSMAirTick", {},
res => {
// console.log(res)
if (res.data.resultCode == 1) {
this.countroylist = res.data.data;
}
},
err => {
}
);
},
//获取订单详情
GetDes(){
this.apiJavaPost('/api/dmc/airticket/getB2BAirticketInfo',{AirOrderId:this.AirOrderId},res=>{
// console.log("机票详情",res)
this.getlistSigel=res.data.data;
this.getlistSigel.synum=this.getlistSigel.airTicketScatterNum-this.getlistSigel.useScatterNum;
},null)
},
//获取机票订单详情
GetTicketDes(){
this.apiJavaPost('/api/dmc/airticket/GetB2BAirtickOrderInfo',{AirOrderId:this.AirOrderId},res=>{
console.log("获取机票订单详情",res)
this.personNum=res.data.data;
},null)
},
submitForm(addMsg) {
console.log("this.personNum",this.personNum);
this.$refs[addMsg].validate((valid) => {
if(valid) {
this.personNum.customerId=this.userInfo.accountId;
this.apiJavaPost('/api/dmc/airticket/SetB2BAirticketOrder',this.personNum,res=>{
if(res.data.resultCode==1){
this.$message.success(res.data.message);
this.personNum={};
this.$router.push({ path: `/ticket/Pay/${res.data.data}`})
}else{
this.$message.error(res.data.message)
}
console.log("下单",res);
},null)
} else {
return false;
}
});
},
}
}
</script>
<style>
.w31{
/* background: #58a; */
/* background: radial-gradient(circle at 0 25px, transparent 15px, #58a 16px) top left,
radial-gradient(circle at 100px 25px, transparent 15px, #58a 16px) right top;
background-size: 50% 100%;
background-repeat: no-repeat; */
}
.ticket_list .padd{
padding-left:25px;
box-sizing: border-box;
}
.ticket_list .el-col-9{
padding-left:0!important;
padding-right:15px;
padding-bottom:15px;
box-sizing: border-box;
}
.w31 p{
margin:6px 0;
}
.ticket_list .yu{
float:right;
background: rgb(255, 104, 11);
color: #fff;
display: inline-block;
width: 35px;
height: 35px;
text-align: center;
line-height: 35px;
border-radius: 50%;
}
.tjorder p{
margin: 0;
}
.total{
position: absolute;
right: 0;
}
.tjorder{
height:80px;
background:rgba(51,51,51,1);
margin: 20px 0;
}
.lxr_info .el-form-item{
display: inline-block;
width:33%;
margin-bottom: 5px;
}
.lxr{
height:36px;
background:rgba(221,221,221,1);
line-height: 36px;
padding:0 6px;
font-size: 14px;
}
.person_num>span{
display: inline-block;
width:100px;
text-align: center;
height: 36px;
line-height: 36px;
}
.el-form-item__error{
top:80%;
}
.tx_list:nth-last-child(1){
border:none;
}
.tx_list{
padding:10px 0;
overflow: auto;
border-bottom:1px dashed #AAAAAA;
}
.tx_order .index p{
margin:0;
padding:4px 0;
}
.tx_order .index{
margin-top:10px;
width:59px;
font-size: 12px;
text-align:center;
background:rgba(255,255,255,1);
border:1px solid rgba(73,192,161,1);
}
.tx_order .el-form-item{
display: inline-block;
width:30%;
margin-bottom: 5px;
}
.tx_order .tx .number{
display: inline-block;
background: #fff;
margin:0 6px;
padding:4px 6px;
box-sizing: border-box;
border-radius: 4px;
font-size: 12px;
}
.tx_order{
margin:15px 0;
background:#fff;
}
.tx_order .tx{
padding:4px;
box-sizing: border-box;
background:rgba(221,221,221,1);
display: flex;
justify-content: flex-start;
font-size: 14px;
}
.ticket_list .time{
color: #333333;
}
.bz{
position: absolute;
width:20px;
font-size: 12px;
text-align: center;
color: #fff;
background:rgba(73,192,161,1);
}
.ticket_list .line{
width: 100%;
height: 1px;
background:rgba(153,153,153,1);
}
.xcxq p{
margin: 0;
margin: 6px 0;
}
.xcxq{
position: relative;
background:rgba(245,245,245,1);
overflow: auto;
font-size: 12px;
margin-top:20px;
}
.ticket_list{
background: #fff;
display: flex;
justify-content: space-around;
box-shadow:0px 4px 8px 0px rgba(107,107,107,0.18);
margin-top: 15px;
/* padding: 15px; */
box-sizing: border-box;
}
.baner_top{
width:100%;
background: #fff;
height: 50px;
box-shadow:0px 1px 0px 0px rgba(238,238,238,1);
}
</style>
<template>
<div>
<!-- <div class="baner_top">
<el-row :gutter="20">
<el-col :span="24" :offset="2">
</el-col>
</el-row>
</div> -->
<el-row :gutter="20" style="background:#f5f5f5">
<el-col :span="18" :offset="3">
<!-- 订单详情 -->
<div class="ticket_list">
<el-col :span="9" style="position:relative">
<div class="bz">去程</div>
<div class="padd">
<p style="font-size:16px;color:#333333;padding-top:10px">{{getlistSigel.flightDate}}
{{getlistSigel.goStartCityName}} - {{getlistSigel.goEndCityName}}
</p>
<p style="font-size:12px;color:#666666">
<img style="width:18px;height:18px;margin:0 5px" :src="getlistSigel.airlineUrl" alt="">
<span>{{getlistSigel.airlineName}}</span>
<span>{{getlistSigel.alCode}} </span>
</p>
<div class="xcxq">
<el-col :span="8" style="text-align:right">
<p class="time">{{getlistSigel.goStartHouseTime}}</p>
<p>{{getlistSigel.goStartAirPlace}}</p>
</el-col>
<el-col :span="8" style="text-align:center">
<p>
{{getlistSigel.goTotalTime}}
</p>
<p class="line"></p>
<p v-if="getlistSigel.goTransfer">{{getlistSigel.goTransfer}}转机</p>
</el-col>
<el-col :span="8" style="text-align:left">
<p class="time">{{getlistSigel.goEndHouseTime}}</p>
<p>{{getlistSigel.goEndAirPlace}}</p>
</el-col>
</div>
</div>
</el-col>
<el-col :span="9" style="border-right:1px dashed #AAAAAA;position:relative">
<div class="bz">返程</div>
<div class="padd">
<p style="font-size:16px;color:#333333;padding-top:10px">{{getlistSigel.backDate}}
{{getlistSigel.backStartCityName}} - {{getlistSigel.backEndCityName}}
</p>
<p style="font-size:12px;color:#666666">
<img style="width:18px;height:18px;margin:0 5px" :src="getlistSigel.airlineUrl" alt="">
<span>{{getlistSigel.airlineName}}</span>
<span>{{getlistSigel.alCode}} </span>
</p>
<div class="xcxq">
<el-col :span="8" style="text-align:right">
<p class="time">{{getlistSigel.backStartHouseTime}}</p>
<p>{{getlistSigel.goStartAirPlace}}</p>
</el-col>
<el-col :span="8" style="text-align:center">
<p>
{{getlistSigel.backTotalTime}}
</p>
<p class="line"></p>
<p v-if="getlistSigel.goTransfer">{{getlistSigel.backTransfer}}转机</p>
</el-col>
<el-col :span="8" style="text-align:left">
<p class="time">{{getlistSigel.backEndHouseTime}}</p>
<p>{{getlistSigel.backEndAirPlace}}</p>
</el-col>
</div>
</div>
</el-col>
<el-col class="w31" :span="6">
<p>订单金额
<span class="yu">{{getlistSigel.synum}}</span>
</p>
<p style="font-size:12px;padding-top:20px">
<span>票价</span>
<span style="float:right;color:#FF680B;font-size:20px">{{personNum.preferPrice}}</span>
</p>
<P style="font-size:12px;margin-top:12px">
成人票:
<span style="float:right;">{{getlistSigel.scatterB2BPrice }} x {{personNum.manNum}}</span>
</P>
<P style="font-size:12px;">
儿童票:
<span style="float:right;">{{getlistSigel.scatterB2BPrice }} x {{personNum.chirdNum}}</span>
</P>
<P style="font-size:12px;">
老人票:
<span style="float:right;">{{getlistSigel.scatterB2BPrice }} x {{personNum.oldPeopleNum}}</span>
</P>
</el-col>
</div>
<!-- 填写订单 -->
<div class="tx_order" style="margin-top:20px">
<div class="tx">
<div style="margin-top:8px">
乘机人信息
</div>
<div v-show="!personnums" class="person_num">
<span>成人</span>
<span>{{personNum.manNum}}</span>
<span>儿童</span>
<span>{{personNum.chirdNum}}</span>
<span>婴儿</span>
<span>{{personNum.babyNum}}</span>
<span>老人</span>
<span>{{personNum.oldPeopleNum}}</span>
<el-button @click="personnums=true" size="mini" style="background:#EE4454;color:#fff;">修改人数</el-button>
</div>
<div v-show="personnums">
<div class="number" style="margin-left:15px">
<span>成人 | </span>
<el-input-number size="mini" v-model="personNum.manNum" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
<div class="number">
<span>儿童 | </span>
<el-input-number size="mini" v-model="personNum.chirdNum" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
<div class="number">
<span>婴儿 | </span>
<el-input-number size="mini" v-model="personNum.babyNum" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
<div class="number">
<span>老人 | </span>
<el-input-number size="mini" v-model="personNum.oldPeopleNum" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
<el-button @click="ConfirmedPersonNum" size="mini" style="background:#EE4454;color:#fff">确认</el-button>
<el-button size="mini" style="background:#EE4454;color:#fff">取消</el-button>
</div>
</div>
<el-form :model="personNum" ref="personNum" label-width="100px" class="demo-ruleForm">
<div class="tx_list" style="margin:10px 0" v-for="(item,index) in personNum.guestList" :key="index">
<el-col :span="4">
<div class="index">
<p><span style="font-weight:700">{{index+1}}</span></p>
<!-- //1 成年 2小孩 3婴儿 4老人 -->
<p style="background:#49C0A1;color:#fff">
<span v-if="item.ageType=='1'">成年</span>
<span v-if="item.ageType=='2'">小孩</span>
<span v-if="item.ageType=='3'">婴儿</span>
<span v-if="item.ageType=='4'">老人</span>
</p>
</div>
</el-col>
<el-col :span="20">
<el-form-item label="乘机人" :prop="'guestList.'+index+'.name'" :rules="[{required: true, message: '姓名不能为空', trigger: 'blur'}]">
<el-input size="mini" v-model="item.name"></el-input>
</el-form-item>
<el-form-item label="护照信息" :prop="'guestList.'+index+'.passportNo'" :rules="[{ required: true, message: '请输入护照信息', trigger: 'blur' }]">
<el-input size="mini" v-model="item.passportNo"></el-input>
</el-form-item>
<el-form-item label="出生日期" :prop="'guestList.'+index+'.birthday'" :rules="[{ type: 'string', required: true, message: '请选择日期', trigger: 'change' }]">
<el-date-picker size="mini" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" v-model="item.birthday" style="width: 100%;"></el-date-picker>
</el-form-item>
<el-form-item label="性别" :prop="'guestList.'+index+'.sex'" :rules="[{ required: true, message: '请选择性别', trigger: 'change' }]">
<el-radio-group v-model="item.sex">
<el-radio label="1" value="1"></el-radio>
<el-radio label="2" value="2"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="国籍">
<el-select size="mini" v-model="item.nationality" filterable placeholder="请选择国籍">
<el-option v-for="(item,key) in countroylist" :key="key" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</el-form-item>
<el-form-item label="手机号" :prop="'guestList.'+index+'.mobilePhone'" :rules="[{required: true, message: '电话号码不能为空', trigger: 'blur'}]">
<el-input size="mini" v-model="item.mobilePhone"></el-input>
</el-form-item>
</el-col>
</div>
</el-form>
</div>
<!-- 联系人 -->
<div v-show="!personnums" class="lxr_info" style="margin-top:20px;background:#fff;">
<p class="lxr">联系人信息</p>
<el-form style="width:90%" :model="personNum" ref="personNum" label-width="100px" class="demo-ruleForm">
<el-form-item label="联系人" prop="contactName" :rules="{ required: true, message: '请输入联系人姓名', trigger: 'blur' }">
<el-input size="mini" v-model="personNum.contactName"></el-input>
</el-form-item>
<el-form-item label="手机号" prop="contactMobile" :rules="{ required: true, message: '请输入联系电话', trigger: 'blur' }">
<el-input size="mini" v-model="personNum.contactMobile"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="contactEmail" :rules="[{ required: true, message: '请输入邮箱地址', trigger: 'blur' },{ type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }]">
<el-input size="mini" v-model="personNum.contactEmail"></el-input>
</el-form-item>
<el-form-item style="width:99%" label="备注">
<el-input size="mini" v-model="personNum.remarks"></el-input>
</el-form-item>
</el-form>
</div>
</el-col>
</el-row>
<!-- 提交订单 -->
<div class='tjorder' v-show="!personnums">
<div style="width:80%;margin:0 auto;color:#cccccc;position:relative">
<p style="font-size:14px;padding:4px 50px;text-align:right;">条款和限制<span style="color:#49C0A1">《网上购票须知》</span> </p>
<p class="total" style="margin-top:12px">
<span>总价</span>
<span style="font-size:20px;font-weight:400;color:rgba(255,255,255,1);margin:0 15px;">{{personNum.preferPrice}}</span>
<span @click="submitForm('personNum')" style="cursor: pointer;;height:32px;background:rgba(238,68,84,1);border-radius:4px;color:#fff;padding:4px 15px">同意以上协议条款,提交订单</span>
</p>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment'
export default {
components: {
},
data () {
return {
personnums:true,
personNum:{
manNum:0,
chirdNum:0,
babyNum:0,
oldPeopleNum:0,
guestList:[],
preferPrice:0,//应收总金额,
contactMobile:'',
contactEmail:'',
contactName:'',
},
AirTicketId:this.$route.params.id,
ruleForm:{},
getlistSigel:{},
flightList:[],
userInfo:this.getLocalStorage(),
customer:{},
countroylist:[],
}
},
mounted () {
this.GetDes();
this.GetCountroy()
},
methods: {
// 国籍
GetCountroy(){
this.apipost(
"b2b_get_GetCountryForSMAirTick", {},
res => {
// console.log(res)
if (res.data.resultCode == 1) {
this.countroylist = res.data.data;
}
},
err => {
}
);
},
//获取订单详情
GetDes(){
this.apiJavaPost('/api/dmc/airticket/getB2BAirticketInfo',{AirTicketId:this.AirTicketId},res=>{
console.log("订单",res)
this.getlistSigel=res.data.data;
this.getlistSigel.synum=this.getlistSigel.airTicketScatterNum-this.getlistSigel.useScatterNum;
this.flightList=this.getlistSigel.flightList;
this.personNum.airProductId=this.getlistSigel.airProductId;
this.personNum.airTicketId=this.getlistSigel.id;
this.personNum.departureCityId=this.getlistSigel.departure_city;
this.personNum.unitPrice=this.getlistSigel.scatterB2BPrice;// 成交单价
this.personNum.tcPrice=this.getlistSigel.scatterB2BPrice;//机票单价
this.personNum.returnArriveCityId=this.getlistSigel.arrival_city;
},null)
},
// 确认订单人数
ConfirmedPersonNum(){
if(this.personNum.manNum==0 && this.personNum.chirdNum==0 && this.personNum.oldPeopleNum==0){
this.$message.error("乘机人数至少1人!")
return;
}
this.$refs.personNum.resetFields();
this.personNum.guestNum=this.personNum.manNum+this.personNum.chirdNum+this.personNum.oldPeopleNum+this.personNum.babyNum;
this.personNum.seatNum=this.personNum.manNum+this.personNum.chirdNum+this.personNum.oldPeopleNum;
this.personNum.preferPrice=this.personNum.seatNum*this.getlistSigel.scatterB2BPrice;
this.personNum.guestList=[];
// 成年
for(let i=0;i<this.personNum.manNum;i++){
let info={
ageType:'1',//1 成年 2小孩 3婴儿 4老人
airOrderId:this.personNum.airTicketId,//机票订单id
airProductId:this.personNum.airProductId,//机票产品id
birthday:'',//出生日期
mobilePhone:'',
eName:'',
name:"",
nationality:2,
passportNo:"",//护照号码
sex:'',
}
this.personNum.guestList.push(info);
}
// 小孩
for(let i=0;i<this.personNum.chirdNum;i++){
let info={
ageType:'2',//1 成年 2小孩 3婴儿 4老人
airOrderId:this.personNum.airTicketId,//机票订单id
airProductId:this.personNum.airProductId,//机票产品id
birthday:'',//出生日期
mobilePhone:'',
name:"",
nationality:2,
passportNo:"",//护照号码
sex:'',
}
this.personNum.guestList.push(info);
}
// 3婴儿
for(let i=0;i<this.personNum.babyNum;i++){
let info={
ageType:'3',//1 成年 2小孩 3婴儿 4老人
airOrderId:this.personNum.airTicketId,//机票订单id
airProductId:this.personNum.airProductId,//机票产品id
airProductId:'',//机票产品id
birthday:'',//出生日期
mobilePhone:'',
name:"",
nationality:2,
passportNo:"",//护照号码
sex:'',
}
this.personNum.guestList.push(info);
}
// 4老人
for(let i=0;i<this.personNum.oldPeopleNum;i++){
let info={
ageType:'4',//1 成年 2小孩 3婴儿 4老人
airOrderId:this.personNum.airTicketId,//机票订单id
airProductId:this.personNum.airProductId,//机票产品id
airProductId:'',//机票产品id
birthday:'',//出生日期
mobilePhone:'',
name:"",
nationality:2,
passportNo:"",//护照号码
sex:'',
}
this.personNum.guestList.push(info);
}
this.personnums=false;
},
submitForm(addMsg) {
this.$refs[addMsg].validate((valid) => {
if(valid) {
this.personNum.customerId=this.userInfo.accountId;
this.apiJavaPost('/api/dmc/airticket/SetB2BAirticketOrder',this.personNum,res=>{
if(res.data.resultCode==1){
this.$message.success(res.data.message);
this.personNum={};
this.$router.push({ path: `/ticket/Pay/${res.data.data}`})
}else{
this.$message.error(res.data.message)
}
console.log("下单",res);
},null)
} else {
return false;
}
});
},
}
}
</script>
<style>
.w31{
/* background: #58a; */
/* background: radial-gradient(circle at 0 25px, transparent 15px, #58a 16px) top left,
radial-gradient(circle at 100px 25px, transparent 15px, #58a 16px) right top;
background-size: 50% 100%;
background-repeat: no-repeat; */
}
.ticket_list .padd{
padding-left:25px;
box-sizing: border-box;
}
.ticket_list .el-col-9{
padding-left:0!important;
padding-right:15px;
padding-bottom:15px;
box-sizing: border-box;
}
.w31 p{
margin:6px 0;
}
.ticket_list .yu{
float:right;
background: rgb(255, 104, 11);
color: #fff;
display: inline-block;
width: 35px;
height: 35px;
text-align: center;
line-height: 35px;
border-radius: 50%;
}
.tjorder p{
margin: 0;
}
.total{
position: absolute;
right: 0;
}
.tjorder{
height:80px;
background:rgba(51,51,51,1);
margin: 20px 0;
}
.lxr_info .el-form-item{
display: inline-block;
width:33%;
margin-bottom: 5px;
}
.lxr{
height:36px;
background:rgba(221,221,221,1);
line-height: 36px;
padding:0 6px;
font-size: 14px;
}
.person_num>span{
display: inline-block;
width:100px;
text-align: center;
height: 36px;
line-height: 36px;
}
.el-form-item__error{
top:80%;
}
.tx_list:nth-last-child(1){
border:none;
}
.tx_list{
padding:10px 0;
overflow: auto;
border-bottom:1px dashed #AAAAAA;
}
.tx_order .index p{
margin:0;
padding:4px 0;
}
.tx_order .index{
margin-top:10px;
width:59px;
font-size: 12px;
text-align:center;
background:rgba(255,255,255,1);
border:1px solid rgba(73,192,161,1);
}
.tx_order .el-form-item{
display: inline-block;
width:30%;
margin-bottom: 5px;
}
.tx_order .tx .number{
display: inline-block;
background: #fff;
margin:0 6px;
padding:4px 6px;
box-sizing: border-box;
border-radius: 4px;
font-size: 12px;
}
.tx_order{
margin:15px 0;
background:#fff;
}
.tx_order .tx{
padding:4px;
box-sizing: border-box;
background:rgba(221,221,221,1);
display: flex;
justify-content: flex-start;
font-size: 14px;
}
.ticket_list .time{
color: #333333;
}
.bz{
position: absolute;
width:20px;
font-size: 12px;
text-align: center;
color: #fff;
background:rgba(73,192,161,1);
}
.ticket_list .line{
width: 100%;
height: 1px;
background:rgba(153,153,153,1);
}
.xcxq p{
margin: 0;
margin: 4px 0;
}
.xcxq{
position: relative;
background:rgba(245,245,245,1);
overflow: auto;
font-size: 12px;
margin-top:20px;
}
.ticket_list{
background: #fff;
display: flex;
justify-content: space-around;
box-shadow:0px 4px 8px 0px rgba(107,107,107,0.18);
margin-top: 15px;
/* padding: 15px; */
box-sizing: border-box;
}
/* .ticket_list .left{
width:40%;
padding-right: 15px;
border-right:1px dashed #AAAAAA;
box-sizing: border-box;
}
.ticket_list .right{
box-sizing: border-box;
width:59%;
padding:0 40px;
} */
.baner_top{
width:100%;
background: #fff;
height: 50px;
box-shadow:0px 1px 0px 0px rgba(238,238,238,1);
}
</style>
<template>
<div>
<div class="orderPay">
<div class="div_1">
<img src="../../assets/img/ticket/gou.png" alt="">
<div style="padding-left:80px;box-sizing: border-box;width:100%">
<p style="font-size:24px;color:#333;font-weight:700">订单支付成功!</p>
<p style="font-size:12px;color:#333">如有疑问 可致电028-565464646,点击
<a style="color:#ee4454;text-decoration:underline">查看订单>></a></p>
</div>
</div>
<div class="div_2">
<p>
<span>支付金额:¥12545</span>
<span>支付平台:支付宝</span>
</p>
<p>
<span>订单编号:584569846568</span>
<span>下单时间:2019-02-02</span>
</p>
</div>
<el-button size="mini" style="background:rgba(238,68,84,1);border-radius:4px;color:#fff">返回首页</el-button>
<img class="back" src="../../assets/img/ticket/back.png" alt="">
</div>
</div>
</template>
<script>
export default {
}
</script>
<style>
.orderPay .div_2 p span:nth-child(2){
float: right;
}
.orderPay .div_2 {
margin-top: 20px;
width: 320px;
}
.orderPay .div_2 p{
padding:6px 0;
margin:20px 0;
font-size: 12px;
color:#333;
border-bottom:1px solid rgba(221,221,221,1);
}
.orderPay .div_1 img{
width: 54px;
height:54px;
position: absolute;
}
.orderPay .div_1{
position: relative;
box-sizing: border-box;
}
.orderPay{
padding-top:130px;
padding-left:150px;
margin:30px auto;
width:1039px;
height:553px;
position: relative;
box-shadow:0px 4px 38px 0px rgba(107,107,107,0.2);
box-sizing: border-box;
}
.back{
position: absolute;
width: 384px;
height: 289px;
right:10px;
top:110px;
}
</style>
<template>
<div class="pay_vue">
<el-row v-show="order_exit=='1'" :gutter="18">
<el-col :span="18" :offset="3">
<!-- 头部 -->
<div class="head">
<p style="font-size:14px">订单提交成功!剩余支付时间
<span style="color:#FF680B;font-size:18px">{{time_15}}</span>
<span style="text-align:center;float:right">应付金额
<span style="color:#FF680B;font-size:18px">{{Commoditydetails.preferPrice}}</span>
</span>
</p>
<p style="font-size:12px">请您在
<span style="color:#FF680B;">15分钟</span>
内完成支付,否则订单会自动取消</p>
</div>
<div class="payvue_content">
<div class="ordernum">
订单号 : {{Commoditydetails.airOrderId}}
<div class="triangle_border_left"></div>
</div>
<p style="text-align:center">支付金额
<span style="color:#FF680B;font-size:18px">{{Commoditydetails.preferPrice}}</span>
</p>
<el-row style="margin-top:15px" v-loading="codeLoading">
<el-col class="position" style="padding-right:50px" :span="12">
<div style="float:right" class="pay_img">
<div class="w21">
<img class="title_img" src="../../assets/img/ticket/zfb.png" alt="">
<div class="title_content">
<p>支付宝</p>
<p>
<span @click="Code('3')" style="cursor:pointer;color:#FF680B;font-size:14px">点击生成二维码</span>
打开支付宝扫码支付
</p>
</div>
</div>
<div v-show="zfbpay_imgcode" style="text-align:center">
<img class="pay_imgcode" :src="codeInfo.CodeURL" alt="">
<p style="color:#FF680B;cursor:pointer" @click="Code('3')" v-show="code_ts!=''">{{code_ts}}</p>
<p>二维码有效时限
<span style="color:#FF680B;font-size:14px">{{time_zfb_5}}</span>
</p>
</div>
</div>
</el-col>
<el-col class="position" style="padding-left:50px" :span="12">
<div class="pay_img">
<div class="w21">
<img class="title_img" src="../../assets/img/ticket/weixin.png" alt="">
<div class="title_content">
<p>微信</p>
<p>
<span @click="Code('1')" style="cursor:pointer;color:#FF680B;font-size:14px">点击生成二维码</span>
打开微信扫码支付
</p>
</div>
</div>
<div v-show="wxpay_imgcode" style="text-align:center">
<img class="pay_imgcode" :src="codeInfo.CodeURL" alt="">
<p style="color:#FF680B;cursor:pointer" @click="Code('1')" v-show="code_ts!=''">{{code_ts}}</p>
<p>二维码有效时限
<span style="color:#FF680B;font-size:14px">{{time_zfb_5}}</span>
</p>
</div>
</div>
</el-col>
</el-row>
</div>
</el-col>
</el-row>
<!-- 订单自动取消 -->
<div v-show="order_exit=='2'" style="margin:20px auto;text-align:center">
<span>{{order_exit_info}}</span>
<router-link to="/TicketList" style="color:#ee4454;text-decoration:underline">返回重新下单>></router-link>
</div>
<div class="orderPay" v-show="order_exit=='3'">
<div class="div_1">
<img src="../../assets/img/ticket/gou.png" alt="">
<img src="../../assets/img/ticket/fail.png" alt="">
<div style="padding-left:80px;box-sizing: border-box;width:100%">
<p style="font-size:24px;color:#333;font-weight:700">订单支付成功!</p>
<p style="font-size:12px;color:#333">如有疑问 可致电028-565464646,点击
<router-link to="/AirlineTicketOrder" style="color:#ee4454;text-decoration:underline">查看订单>></router-link>
</p>
</div>
</div>
<div class="div_2">
<p>
<span>支付金额:¥12545</span>
<span>支付平台:支付宝</span>
</p>
<p>
<span>订单编号:584569846568</span>
<span>下单时间:2019-02-02</span>
</p>
</div>
<!-- <el-button size="mini" style="background:rgba(238,68,84,1);border-radius:4px;color:#fff">返回首页</el-button> -->
<img class="back" src="../../assets/img/ticket/back.png" alt="">
</div>
</div>
</template>
<script>
import moment from 'moment'
export default {
data() {
return {
zfbpay_imgcode: false,
wxpay_imgcode: false,
time_15: 0,
time_zfb_5: 0,
code: {
OrderSource: 0,
body: "",
attach: "",
total_fee: "",
payway: ""
},
AirOrderId: this.$route.params.id,
Commoditydetails: {},
codeInfo:{},
order_exit:'1',
order_exit_info:"",
order_status:false,
timer:"",
code_yxq:0,
code_timer:'',
code_ts:"",
codeLoading:false,
PayOrder:"",
Pay_timer:"",
};
},
created() {
this.TimeDjs();
// this.Time15()
},
methods: {
TimeDjs() {
this.apiJavaPost(
"/api/dmc/airticket/GetB2BAirtickOrderPayInfo",
{ AirOrderId: this.AirOrderId },
res => {
// console.log("huoqu", res);
if (res.data.resultCode == 1) {
this.Commoditydetails = res.data.data;
this.code.OrderSource=this.Commoditydetails.orderResourceId;
this.code.total_fee=this.Commoditydetails.preferPrice+'';
this.code.body=this.Commoditydetails.description;
this.code.attach=`${this.Commoditydetails.costType}|${this.Commoditydetails.customerName}|${this.AirOrderId}|${this.Commoditydetails.customerId}|${this.Commoditydetails.outBranchId}`
this.Time15();
}else if (res.data.resultCode == 0){
this.order_exit='2';
this.order_exit_info=res.data.message;
}
else{
this.$message.error(res.data.message)
}
},
null
);
},
Code(str) {
this.codeLoading=true;
this.code_ts="";
this.zfbpay_imgcode = false;
this.wxpay_imgcode = false;
this.code.payway = str;
this.apipost(
"OnlinePay_post_GetCodeUrl",
this.code,
res => {
this.codeLoading=false;
if (res.data.resultCode == 1) {
this.codeInfo=res.data.data;
console.log("codeInfo",this.codeInfo)
this.code_yxq=moment(this.codeInfo.ExpireDate).format('x')-moment(this.codeInfo.NowDate).format('x');
this.PayOrder=this.codeInfo.OrderID;
clearInterval(this.Pay_timer);
this.Time5();
this.PayStatus();
if (str == "1") {
//微信
this.wxpay_imgcode = true;
} else if (str == "3") {
//支付宝
this.zfbpay_imgcode = true;
}
// 获取支付状态
this.apiJavaPost(
"/api/dmc/airticket/SetB2BAirtickOrderPayStatus",
{ AirOrderId: this.AirOrderId },
res => {
if (res.data.resultCode == 1) {
}else{
this.$message.error(res.data.message)
}
},
null);
}
},
err => {}
);
},
Time15() {
clearInterval(this.timer);
let numall =parseInt(this.Commoditydetails.timeMillisecond / 1000);
// let numall =10;
this.timer = setInterval(() => {
numall--;
if (numall <= 0) {
console.log(111);
clearInterval(this.timer);
this.order_exit='2';
this.order_exit_info="订单支付超时,请重新下单!"
}
this.time_15 = this.s_to_hs(numall);
}, 1000);
},
// 验证是否支付成功
PayStatus(){
this.Pay_timer = setInterval(() => {
this.apipost(
"ticket_get_GetAirPayMoneyIsSuccess",
{PayOrder:this.PayOrder},
res => {
console.log("res支付状态",res)
// res.data.resultCode =1;
if (res.data.resultCode == 1) {
clearInterval(this.Pay_timer);
this.order_exit='3';
}
},
err => {}
);
}, 1000);
},
s_to_hs(s) {
//计算分钟
//算法:将秒数除以60,然后下舍入,既得到分钟数
var h;
h = Math.floor(s / 60);
//计算秒
//算法:取得秒%60的余数,既得到秒数
s = s % 60;
//将变量转换为字符串
h += "";
s += "";
//如果只有一位数,前面增加一个0
h = h.length == 1 ? "0" + h : h;
s = s.length == 1 ? "0" + s : s;
return h + "分" + s + "秒";
},
Time5() {
clearInterval(this.code_timer);
let numall = this.code_yxq /1000;
this.code_timer = setInterval(() => {
numall--;
if (numall <= 0) {
this.code_ts="二维码有效时限过期,点击重新生成"
clearInterval(this.code_timer);
}
this.time_zfb_5 = this.s_to_hs(numall);
}, 1000);
},
}
};
</script>
<style>
.orderPay .div_2 p span:nth-child(2){
float: right;
}
.orderPay .div_2 {
margin-top: 20px;
width: 320px;
}
.orderPay .div_2 p{
padding:6px 0;
margin:20px 0;
font-size: 12px;
color:#333;
border-bottom:1px solid rgba(221,221,221,1);
}
.orderPay .div_1 img{
width: 54px;
height:54px;
position: absolute;
}
.orderPay .div_1{
position: relative;
box-sizing: border-box;
}
.orderPay{
padding-top:130px;
padding-left:150px;
margin:30px auto;
width:1039px;
height:553px;
position: relative;
box-shadow:0px 4px 38px 0px rgba(107,107,107,0.2);
box-sizing: border-box;
}
.orderPay .back{
position: absolute;
width: 384px;
height: 289px;
right:10px;
top:110px;
}
.position {
box-sizing: border-box;
}
.payvue_content .pay_img .pay_imgcode {
display: block;
margin: 15px auto;
width: 216px;
height: 216px;
}
.payvue_content .pay_img .w21 .title_content {
padding-left: 70px;
box-sizing: border-box;
overflow: auto;
}
.payvue_content .pay_img .w21 {
position: relative;
}
.payvue_content .pay_img .title_img {
width: 47px;
height: 47px;
border-radius: 50%;
position: absolute;
}
.payvue_content .pay_img {
width: 338px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 0px 6px 0px rgba(107, 107, 107, 0.2);
padding: 28px 10px;
box-sizing: border-box;
}
.payvue_content .ordernum {
position: relative;
width: 203px;
height: 35px;
line-height: 35px;
background: #49c0a1;
font-size: 14px;
font-weight: 400;
color: rgba(255, 255, 255, 1);
padding-left: 16px;
box-sizing: border-box;
margin-left:-7px;
border-right-color: transparent;
}
.payvue_content .triangle_border_left{
width:0;
height:0;
border-width:17px 17px 17px 0;
border-style:solid;
border-color:transparent #30a19b transparent transparent;/*透明 灰 透明 透明 */
position: absolute;
right:0;
top:0px;
}
.payvue_content .ordernum:after { /*书签的夹角*/
content: '';
position: absolute;
top: 35px;
left: 0px;
border: 3px solid #49c0a1;
border-left-color: transparent;
border-bottom-color: transparent;
}
.pay_vue p {
margin: 0;
}
.pay_vue .head {
padding: 4px 0;
}
.payvue_content {
min-height:479px;
position: relative;
margin-top: 15px;
padding-bottom: 25px;
padding-top: 16px;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 4px 38px 0px rgba(107, 107, 107, 0.2);
}
</style>
......@@ -175,7 +175,7 @@ export default {
methods: {
JXYH(){
this.apiJavaPost('/api/dmc/airticket/getB2BAirticketList',this.Youhui,res=>{
console.log("Youhui",res)
// console.log("Youhui",res)
this.yhList=res.data.data.pageData;
},null)
},
......@@ -185,9 +185,11 @@ export default {
},null)
},
ChooseInfo(val){
console.log("ChooseInfo",val)
// console.log("ChooseInfo",val)
if(val){
this.Choose_Info=val;
this.Choose_Info.airTicketScatterNum=this.Choose_Info.cr+this.Choose_Info.lr+this.Choose_Info.child;
}
},
loadSize(){
......@@ -367,24 +369,22 @@ p{
}
.msg .city{
width:95%;
height:34px;
height:36px;
background:rgba(255,255,255,1);
border:1px solid rgba(216,218,220,1);
border-radius:4px;
padding-left: 6px;
padding-bottom: 2px;
box-sizing: border-box
}
.el-input{
width: 145px;
.msg .el-input{
height: 100%;
}
.el-input.is-active .el-input__inner, .el-input__inner:focus{
.msg .el-input.is-active .el-input__inner, .el-input__inner:focus{
border-color: none;
}
.el-date-editor.el-input, .el-date-editor.el-input__inner{
width: 145px;
}
.el-input__inner{
.msg .el-input__inner{
border: none;
height: 100%;
}
......@@ -402,7 +402,7 @@ p{
}
.choose{
position: absolute;
min-width: 1300px;
min-width: 1350px;
background: rgba(255, 255, 255, 0.24);
height:175px;
padding:10px;
......
<template>
<div>
<div style="background:rgba(255,255,255,1);box-shadow:0px 4px 8px 0px rgba(107,107,107,0.18);">
<div v-loading="loading" element-loading-text="加载中">
<div class="ticket_1" style="background:rgba(255,255,255,1);box-shadow:0px 4px 8px 0px rgba(107,107,107,0.18);">
<el-row :gutter="20">
<el-col :span="20" :offset="2">
<el-row class="msg">
......@@ -16,10 +16,10 @@
<el-select style="width:80%" v-model="choose_info.departure_city" filterable placeholder="请选择">
<el-option :value="zero" label="不限"></el-option>
<el-option
v-for="item in cawei"
:key="item.id"
:label="item.title"
:value="item.id">
v-for="item in cfd"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</div>
......@@ -28,10 +28,10 @@
<el-select style="width:80%" v-model="choose_info.arrival_city" filterable placeholder="请选择">
<el-option :value="zero" label="不限"></el-option>
<el-option
v-for="item in cawei"
:key="item.id"
:label="item.title"
:value="item.id">
v-for="item in cfd"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</div>
......@@ -70,10 +70,14 @@
<span>婴儿 | </span>
<el-input-number size="mini" v-model="choose_info.ye" @change="handleChange" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
<el-button @click="Search" size="small">搜索</el-button>
<div class="number">
<span>老人 | </span>
<el-input-number size="mini" v-model="choose_info.lr" @change="handleChange" :min="0" :max="10" label="描述文字"></el-input-number>
</div>
</div>
<div>
<div class="city" style="width:200px;display:inline-block;margin-right:10px">
<div class="city" style="width:220px;display:inline-block;">
<span>舱位选择 | </span>
<el-select v-model="choose_info.freightSpace" placeholder="请选择">
<el-option :value="zero" label="不限"></el-option>
......@@ -85,14 +89,15 @@
</el-option>
</el-select>
</div>
<div class="city" style="width:250px;display:inline-block">
<div class="city" style="width:250px;display:inline-block;margin:0 10px">
<span>航空公司 | </span>
<el-select style="width:180px" filterable v-model="choose_info.airLineID" placeholder="请选择">
<el-select style="width:160px" filterable v-model="choose_info.airLineID" placeholder="请选择">
<el-option :value="zero" label="不限"></el-option>
<el-option v-for="item in airlineList" :label="item.AlName" :value="item.AirLineId"
:key="item.AirLineId"></el-option>
</el-select>
</div>
<el-button @click="Search" size="small">搜索</el-button>
</div>
</el-col>
</el-row>
......@@ -117,7 +122,7 @@
<div @click="AfterDate" style="color:#dddddd;font-size:20px" class="margin common">&gt;</div>
<div class="font_12" style="margin-top:30px;color:#FF680B;width:6%;position:relative">
<span @click="OtherToggle">其他日期</span>
<span @click="OtherToggle" style="cursor:pointer">其他日期</span>
<div class="otherdate" v-show="other">
<div style="font-size:16px;padding:10px">
<el-col :span="8"><span @click="ChangeMonth(1)" class="month_circle">&lt;</span> </el-col>
......@@ -126,7 +131,7 @@
</div>
<div style="margin-top:22px">
<v-calendar ref="children" v-for="(item,index) in classArray" :key="index" :dateData= "item" :month="tomonth" :day = "item[0].dateStr" @ChildrenSelect="ListenChildren">
<v-calendar ref="child" v-for="(item,index) in classArray" :key="index" v-bind:dateData="classArray" :day ="tomonth" v-on:SelectChild="SelectChild">
</v-calendar>
</div>
......@@ -211,9 +216,9 @@
<p class="info">航班信息</p>
<div class="content" v-for="(flight,i) in item.flightList" :key="i">
<p v-if="i>0" style="text-align:center">中转</p>
<div>
<!-- <img class="imgsrc" src="" alt=""> -->
<span>{{flight.alName}}</span>
<div style="vertical-align:middle">
<img class="imgsrc" :src="item.airlineUrl" alt="">
<span style="vertical-align:middle">{{flight.alName}}</span>
</div>
<ul class="list_cn">
<li>
......@@ -226,9 +231,9 @@
</div>
<div class="content" v-for="(back,k) in item.backFlightList" :key="k.id">
<p v-if="k>0" style="text-align:center">中转</p>
<div>
<!-- <img class="imgsrc" src="" alt=""> -->
<span>{{back.alName}}</span>
<div style="vertical-align:middle">
<img class="imgsrc" :src="item.airlineUrl" alt="">
<span style="vertical-align:middle">{{back.alName}}</span>
</div>
<ul class="list_cn">
<li>
......@@ -256,8 +261,14 @@
<span v-if="item.freightSpace==3">经济舱</span>
</p>
</el-col>
<el-col :span="8">
<el-button style="color:#FF6633;border:1px solid #FF6633;margin-top:10px" size="small">购买</el-button>
<el-col :span="4">
<p style="font-size:12px;margin:10px 0;">剩余机位</p>
<p>{{item.synum}}</p>
</el-col>
<el-col :span="4">
<el-button @click="Purchase(item)" style="color:#FF6633;border:1px solid #FF6633;margin-top:10px" size="small">
购买
</el-button>
</el-col>
</el-col>
</el-row>
......@@ -284,12 +295,14 @@ export default {
},
data () {
return {
zero:0 || "0",
zero:0,
classArray:[],
Choose_Info:{},
today:moment().format("YYYY-MM-DD HH:mm:ss"),
datalist:[],
datainfo:{},
datainfo:{
qFlightDateStart:""
},
dateList:[],
changeday:moment().format("YYYY-MM-DD HH:mm:ss"),
other:false,
......@@ -312,13 +325,17 @@ export default {
qFlightDateEnd:"",
flight_number:"",
airLineID:0,
ticketType:0,
ticketType:2,
lineId:0,
isPayOrder:0,
departure_city:0,
arrival_city:0,
freightSpace:1,
airTicketScatterNum:0,
cr:0,
child:0,
ye:0,
lr:0,
},
startweek:"",
......@@ -336,6 +353,8 @@ export default {
input10:"",
value:"",
airlineList:[],
cfd:[],
loading:false,
}
},
......@@ -343,31 +362,48 @@ export default {
},
created(){
// this.getList()
// this.Datelist();
console.log("this.params_str",this.params_str)
if(this.params_str){
this.choose_info=this.params_str;
}
if(this.params_str.qFlightDateStart){
this.datainfo.qFlightDateStart=this.params_str.qFlightDateStart+" 00:00:00"
}else{
this.datainfo.qFlightDateStart=moment().format('YYYY-MM-DD HH:mm:ss');
}
this.choose_info=JSON.parse(sessionStorage.getItem("ChooseInfo"));
this.datainfo.qFlightDateStart=moment(this.choose_info.qFlightDateStart).format("YYYY-MM-DD HH:mm:ss")
this.getList();
this.Datelist();
this.OtherDate();
this.initAirlines();
this.CFD();
},
methods: {
SelectChild(item){
this.datainfo.qFlightDateStart=moment(item.date_str).format("YYYY-MM-DD HH:mm:ss")
this.other=false;
this.Datelist();
this.choose_info.qFlightDateStart=item.date_str;
},
Purchase(item){
let isLogin=this.$store.state.isLogin;
if(isLogin==0){
this.$message.error("请先登录!")
this.$router.push({
path: '/login'
})
}else{
this.$store.commit('HomePage','ticket')
sessionStorage.setItem("Homepage",'ticket');
// localStorage.homePage = 'ticket';
this.$router.push({
path: `/ticket/FillItinerary/${item.id}`
})
}
},
// 出发地
CFD(){
this.apipost(
"dict_post_Destination_GetCityList", {},
res => {
console.log(res)
if (res.data.resultCode == 1) {
this.cfd=res.data.data;
}
},
err => {
......@@ -426,22 +462,14 @@ export default {
// moment("2018-10-29",'YYYY-MM-DD').format('E')
handleChange(){},
Search(){
this.loading=true;
this.getList();
this.Datelist();
sessionStorage.setItem("ChooseInfo",JSON.stringify(this.choose_info));
},
ListenChildren(word){
let data = this.dataList.priceList;
for ( let i = 0; i < data.length; i++) {
if (word===data[i].startDate.slice(data[i].startDate.length-2,data[i].startDate.length)){
this.priceListIndex = i;
}
}
},
OtherToggle(){
this.other=!this.other;
},
......@@ -454,30 +482,34 @@ export default {
this.other_date.flithtMonthDate=this.tomonth;
}
this.OtherDate();
// this.$refs.children.getYearMonthDay();
},
// 其他日期
OtherDate(){
this.apiJavaPost('/api/dmc/airticket/getB2BAirticketForMonthMinPrice',this.other_date,res=>{
let list=res.data.data;
this.creatCalendar(list)
// console.log("let list",this.list)
this.creatCalendar(list);
},null)
},
AfterDate(){
this.changeday=moment(this.changeday).add(1, 'days').format('YYYY-MM-DD HH:mm:ss');
this.datainfo.qFlightDateStart=this.changeday;
this.choose_info.qFlightDateStart=moment(this.changeday).format('YYYY-MM-DD');
this.Datelist();
},
// 获取当前日期的前一天
BeforeDate(){
this.changeday=moment(this.changeday).subtract(1, 'days').format('YYYY-MM-DD HH:mm:ss');
this.datainfo.qFlightDateStart=this.changeday;
this.choose_info.qFlightDateStart=moment(this.changeday).format('YYYY-MM-DD');
this.Datelist();
},
Datelist(){
this.loading=true;
this.apiJavaPost('/api/dmc/airticket/getB2BAirticketForMinPrice',this.datainfo,res=>{
// console.log(res);
this.loading=false;
this.dateList=res.data.data;
},null)
......@@ -487,6 +519,12 @@ export default {
this.apiJavaPost('/api/dmc/airticket/getB2BAirticketList',this.choose_info,res=>{
// console.log("机票列表",res)
this.datalist=res.data.data.pageData;
if(this.datalist.length>0){
this.datalist.forEach(item=>{
item.synum=item.airTicketScatterNum-item.useScatterNum;
})
}
},null)
},
creatCalendar(list){ // 创建日历
......@@ -544,7 +582,9 @@ export default {
},[]
)
this.calendarTit = dateList;
this.$nextTick(() => {
this.$refs.child[0].getYearMonthDay(this.classArray);
})
},
}
......@@ -553,6 +593,21 @@ export default {
<style>
@import '../../assets/global/font.css';
@import '../../assets/css/reset.css';
.ticket_1 .msg .el-input__icon{
line-height: 0;
}
.ticket_1 .msg .number{
width:150px;
height:34px;
background:rgba(255,255,255,1);
border:1px solid rgba(216,218,220,1);
border-radius:4px;
padding-left: 6px;
box-sizing: border-box;
display: inline-block;
margin-right: 20px;
padding-bottom:2px;
}
.el-popover{
padding:0;
}
......@@ -582,6 +637,8 @@ li{
width:22px;
height:20px;
border-radius:50%;
margin:0 6px;
vertical-align: middle;
}
.describe .info{
......@@ -628,8 +685,7 @@ li{
color: #ffffff;
}
.otherdate{
width: 500px;
height: 417px;
width: 520px;
position: absolute;
right: 0;
z-index: 5;
......
<style>
@import "../../assets/global/header.css";
.header .Info div{
float: left;
margin-top:10px;
}
.header .ckxx{
width:39px;
height:39px;
background:rgba(73,192,161,1);
border-radius:50%;
color:#fff;
font-size: 10px;
text-align: center;
}
.header .zf{
width:38px;
height:38px;
background:rgba(170,170,170,1);
border-radius:50%;
color: #fff;
font-size: 12px;
text-align: center;
line-height: 38px;
/* margin-top:8px */
}
.header .fg{
margin: 0 6px;
margin-top:30px!important;
width:86px;
height:1px;
background:rgba(170,170,170,1);
}
.header .head_title{
padding-top:15px;
font-size:14px;
font-family:MicrosoftYaHei-Bold;
font-weight:bold;
color:rgba(51,51,51,1);
}
</style>
<template>
......@@ -32,7 +71,7 @@
</el-row>
</div>
<div class="second-nav">
<el-row v-if="homePage=='true'||!homePage">
<el-row v-if="homePage=='true'|| homePage==true">
<el-col :span="20" :offset="2">
<el-row>
<el-col :span="6">
......@@ -48,7 +87,9 @@
<!-- <el-menu-item index="2-3">单团</el-menu-item>
<el-menu-item index="2-4">私人订制</el-menu-item> -->
</el-submenu>
<!-- <el-menu-item index="3"><a href="javascript:void(0);">机票</a></el-menu-item> -->
<el-menu-item index="3" @click="goUrl('TicketHome',true)"><a href="javascript:void(0);">机票</a></el-menu-item>
<!-- <el-menu-item index="5"><a href="javascript:void(0);">机票</a></el-menu-item>
<el-menu-item index="2"><a href="javascript:void(0);">酒店</a></el-menu-item>
<el-menu-item index="4"><a href="javascript:void(0);">餐厅</a></el-menu-item>
......@@ -68,7 +109,22 @@
</el-row>
</el-col>
</el-row>
<el-row v-if="homePage=='false'">
<el-row v-if="homePage=='ticket'">
<el-col :span="20" :offset="2" >
<el-row>
<el-col :span="6">
<img src='../../assets/img/logo.png' class="logo" />
</el-col>
<el-col :span="4" :offset="14" class="Info">
<div class="ckxx">乘客信息</div>
<div class="fg"></div>
<div class="zf">支付</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row v-if="homePage=='false' || homePage==false">
<el-col :span="20" :offset="2" >
<el-row>
<el-col :span="6">
......@@ -78,6 +134,7 @@
<el-menu default-active="" class="el-menu-demo small" mode="horizontal" background-color="rgba(0,0,0,0)" active-text-color="#EF4455">
<el-menu-item index="1" @click="goUrl('PsCenter',false)"><a href="javascript:void(0);">个人主页</a></el-menu-item>
<el-menu-item index="2" @click="goUrl('PsOrder',false)"><a href="javascript:void(0);">订单管理</a></el-menu-item>
<el-menu-item index="6" @click="goUrl('AirlineTicketOrder',false)"><a href="javascript:void(0);">机票订单</a></el-menu-item>
<el-menu-item index="3"><a href="javascript:void(0);">经营管理</a></el-menu-item>
<el-menu-item index="4" @click="goUrl('PsSystem',false)"><a href="javascript:void(0);">系统管理</a></el-menu-item>
<el-menu-item index="5" @click="goUrl('PsAccBalance',false)"><a href="javascript:void(0);">账户余额</a></el-menu-item>
......@@ -91,7 +148,7 @@
</template>
<script>
export default {
name: 'header',
props: {
msg: String
},
......@@ -99,21 +156,28 @@ export default {
return {
city:0,
sites:[],
defaultKey:'2-1',
defaultKey:sessionStorage.getItem("defaultKey"),
isLogin:false,
homePage:localStorage.homePage?localStorage.homePage:false,
// homePage:localStorage.homePage?localStorage.homePage:false,
// homePage:this.$store.state.homePage,
groupInfo:{}
}
},
created(){
console.log(this.defaultKey)
},
computed: {
user(){
return this.$store.state.user
},
homePage(){
return this.$store.state.homePage
}
},
watch:{
homePage:{
handler: function(val, oldVal) {
// console.log(val)
// console.log(oldVal)
},
deep: true
......@@ -140,8 +204,11 @@ export default {
this.$emit('forword', this.defaultKey)
},
methods: {
handleSelect(key, keyPath) {
// console.log(key)
console.log(key)
this.defaultKey=key;
sessionStorage.setItem("defaultKey",this.defaultKey);
this.$emit('forword', key)
},
loadSites(){
......@@ -164,13 +231,21 @@ export default {
goLoginUrl(path,t){
this.$store.commit('changeLogin',0);
this.$store.commit('updateUser',{});
this.$store.commit('HomePage','true')
localStorage.removeItem("userInfo");
localStorage.homePage = 'true';
sessionStorage.setItem("Homepage",'true');
// localStorage.homePage = 'true';
// console.log(" this.homePage.", this.homePage)
this.$router.push({name:path,query:{'type':t}})
},
goUrl(path,bl){
localStorage.homePage = bl;
this.homePage = localStorage.homePage;
// console.log("path",path)
if(path=='heel'){
sessionStorage.setItem("defaultKey",'2-1');
this.$emit('forword', '2-1')
}
sessionStorage.setItem("Homepage",bl);
this.$store.commit('HomePage',bl)
this.$router.push({name:path});
}
}
......
......@@ -52,6 +52,14 @@
margin: 10px 0;
color: #ff4646;
}
.dayList:hover{
background: #FF680B;
color:#fff!important;
}
.dayList:hover .price{
color:#fff;
}
</style>
<template>
<div class="calendar-box" id='calendar'>
......@@ -61,7 +69,7 @@
</thead>
</table>
<div class="monthDayList">
<div v-for="(item,index) in daysData" class="dayList" :key="index" @click="item.price?selectDate(index):''" :class="{selectDay:isSelect == index,noPrice:!item.price,yesPrice:item.price}">
<div v-for="(item,index) in daysData" class="dayList" :key="index" @click="item.price?selectDate(item):''" :class="{selectDay:isSelect == index,noPrice:!item.price,yesPrice:item.price}">
<p>{{item.day}}</p>
<p v-if="item.price!='0.00' && item.price" class="price">{{item.price}}</p>
</div>
......@@ -69,6 +77,7 @@
</div>
</template>
<script>
import moment from 'moment'
import bus from '../../plugins/event-bus'
export default {
props:{
......@@ -78,7 +87,8 @@ export default {
data(){
return{
week:['日','一','二','三','四','五','六'],
priceData:this.dateData,
// priceData:this.dateData[0],
priceData:[],
currentDay: this.day,
DaysInMonth:[],
daysData:[],
......@@ -88,31 +98,23 @@ export default {
},mounted(){
},created(){
this.getYearMonthDay();
// this.getYearMonthDay();
},methods:{
selectDate(index){
if(this.$data.daysData[index].day == 0) {
bus.$emit('chosen-tripdate', null)
return;
}
if(this.isSelect == index){
this.isSelect = -1;
bus.$emit('chosen-tripdate', null)
selectDate(item){
// console.log(item);
if(item.price=="0.00"){
return;
}else{
this.$emit('SelectChild',item);
}
this.isSelect = index;
let currentDay = this.currentDay.split('-')
let clickDay = parseInt(this.$data.daysData[index].day)
clickDay = clickDay < 10 ? ('0' + clickDay) : clickDay
let clickDate = currentDay[0] + '-' + currentDay[1] + '-' + clickDay
this.$emit('ChildrenSelect', clickDate)
bus.$emit('chosen-tripdate', this.currentDay.substring(0,7) + '-' + clickDay)
},
getYearMonthDay(){
// console.log("day",this.day);
let currentYear = this.currentDay.substring(0,4); //当前年份
let currentMonth = this.currentDay.substring(5,7); //当前月份
getYearMonthDay(list){
// console.log("dfsdgsg",list)
this.priceData=list[0];
// let day=moment(this.day).add(1, 'month').format('YYYY-MM-DD');
let day=this.day;
let currentYear = day.substring(0,4); //当前年份
let currentMonth =day.substring(5,7); //当前月份
// console.log("currentMonth",currentMonth)
let date = new Date();
let strDate = date.getDate();
......@@ -127,20 +129,23 @@ export default {
let monthDay = this.$data.DaysInMonth[Number(currentMonth)-1];//当前月的天数
let daysData = [];
//给数据源赋值
for (var i = 0 ;i < Number(monthDay) ;i++) {
var priceDict = {'day':String(i+1),'price':0,'dis':false};
for (let i = 0 ;i < Number(monthDay) ;i++) {
var priceDict = {'day':String(i+1),'price':0,'dis':false,date_str:''};
daysData.push(priceDict);
}
this.daysData = daysData;
var currentDay = `${currentYear}-${currentMonth}-01`;
var dateObject = new Date(currentDay);
var firstDay = dateObject.getDay();//得到每个月1号是周几
for (var i in this.priceData) {
var price = this.priceData[i];
// for (let i in this.priceData) {
for (let i=0;i<this.priceData.length;i++) {
let price = this.priceData[i];
var dayIndex = price.dateStr.substring(price.dateStr.length-2,price.dateStr.length);
// console.log(dayIndex)
var dayDict = daysData[Number(dayIndex)-1];
// console.log("dayIndex",dayIndex)
// console.log("dayDict",dayDict)
dayDict.price = price.price;
dayDict.date_str=price.dateStr;
if(dayIndex<strDate&&strMonth==currentMonth){
dayDict.price='';
}
......
......@@ -110,13 +110,13 @@
<div class="daynum">{{item.dayNum}}</div>
<el-carousel :interval="3000" :autoplay='hoverIndex==index' arrow="never" height="148" :style="{'background':'#ddd'}" v-if='item.imgCover!=""'>
<el-carousel-item v-for="(img,imgIndex) in JSON.parse(item.imgCover)" :key="imgIndex" v-if='img.Url!=""'>
<img v-lazy='`${img.Url}?x-oss-process=image/resize,m_fill,h_148,w_200`' @click="goUrl('detail',item.id)">
<img v-lazy='`${img.Url}?x-oss-process=image/resize,m_fill,h_148,w_200`' @click="goUrl('detail',item.id,item.tcid)">
</el-carousel-item>
</el-carousel>
<img v-else style="height:100%;width:100%" src='../../assets/img/banner@3x.png' />
</div>
<div class="contentbox">
<div class="title" @click="goUrl('detail',item.id)">{{item.title}}</div>
<div class="title" @click="goUrl('detail',item.id,item.tcid)">{{item.title}}</div>
<div class="item-info">
<span>
<i class="iconfont icon-bb-chufadi"></i>出发地:{{item.startCityName?item.startCityName:'成都'}}
......@@ -150,7 +150,7 @@
<div class="price">
{{isLogin!==1?item.b2CPrice:item.b2BPrice}}<span></span>
</div>
<el-button size='mini' @click="goUrl('detail',item.id)">立即预订</el-button>
<el-button size='mini' @click="goUrl('detail',item.id,item.tcid)">立即预订</el-button>
</div>
</div>
<div class="item-pager" v-if='teamDatas.length>0'>
......@@ -216,10 +216,10 @@ export default {
this.loadDayCount()
},
methods: {
goUrl(path,id){
goUrl(path,id,tcid){
// detailTwo
path = 'detailTwo'
path=`${path}/${encodeURIComponent(id)}`
path=`${path}/${encodeURIComponent(id)}/`+tcid
this.$router.push({ path })
},
proving(){
......
......@@ -29,6 +29,7 @@ Vue.http = Vue.prototype.$http = axios
Vue.commonUtils = Vue.prototype.$commonUtils=commonUtils
Vue.prototype.$echarts = echarts
router.beforeEach((to, from, next) => {
if (to.meta.title) {
if(localStorage.g && localStorage.g!='undefined'){
if(JSON.parse(localStorage.g).i!=2)
......
......@@ -12,9 +12,9 @@ export default {
//域名管理对象
Vue.prototype.domainManager = function() {
// var domainUrl = "http://test_reborn.oytour.com";//主域名
var domainUrl = "http://reborn.oytour.com"; //主域名
//var domainUrl = "http://reborn.oytour.com"; //主域名
// var domainUrl = "http://192.168.2.214:8082"//主域名
// let domainUrl = "http://192.168.2.16:8083"; //刘东主域名
let domainUrl = "https://reborn.oytour.com"; //刘东主域名
if (this.isOnline()) {
if(window.location.host.indexOf('viitto.com')!=-1)
domainUrl = "http://test.viitto.com"
......
......@@ -138,7 +138,49 @@ export default new Router({
meta: {
title: '机票列表'
}
},
{
path: '/ticket/FillItinerary/:id',
name: 'FillItinerary',
component: resolve => require(['@/components/Ticket/FillItinerary'], resolve),
meta: {
title: '行程填写'
}
},
{
path: '/ticket/OrderPayOk',
name: 'OrderPayOk',
component: resolve => require(['@/components/Ticket/OrderPayOk'], resolve),
meta: {
title: '确认订单'
}
},
{
path: '/ticket/Pay/:id',
name: 'Pay',
component: resolve => require(['@/components/Ticket/Pay'], resolve),
meta: {
title: '支付'
}
},
{
path: '/AirlineTicketOrder',
name: 'AirlineTicketOrder',
component: resolve => require(['@/components/Ticket/AirlineTicketOrder'], resolve),
meta: {
title: '机票订单'
}
},
{
path: '/EditTicketOrder/:id',
name: 'EditTicketOrder',
component: resolve => require(['@/components/Ticket/EditTicketOrder'], resolve),
meta: {
title: '修改机票订单'
}
}
]
}
]
......
......@@ -8,8 +8,13 @@ export default new Vuex.Store({
user:{},
site:0,
isLogin:0,
homePage:sessionStorage.getItem("Homepage") ? sessionStorage.getItem("Homepage") :true,
},
mutations: {
HomePage(state,data){
state.homePage=data;
},
updateSite(state, p) {
state.site = p
},
......
......@@ -68,7 +68,7 @@ export default {
path='/heel'
}
if(index=='3'){
path='/TicketList'
path='/TicketHome'
}
if (path != "") {
this.$router.push({ path });
......
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