Commit 2e6254a9 authored by 王悦's avatar 王悦
parents 1ce2244f 2070d6f3
......@@ -59,7 +59,7 @@
<analogIFrame :key="i" :type='item.type' v-model="item.history" :curIndex='i' :refer='item.refer' v-show="tabs.indexOf(currentTag)==i" :componentTemp='item.comp' v-for="(item,i) in tabs" v-if='item.comp' :path='item.path' :name='item.name'></analogIFrame>
</div>
<div class="flexParent" v-if="openMode==0">
<a :href='blankUrl' ref='blankLink' target="_blank" style="display:none">1</a>
<a :href='blankUrl' id='blankLink' target="_blank" style="display:none">1</a>
<div class="resource-ttop" style="font-family:PingFangSC-Semibold" v-if="rootName!=''">
{{rootName}}<i class="iconfont icon-weibiaoti102"></i>{{parentName}}<i class="iconfont icon-weibiaoti102"></i><span class="active">{{currentName}}</span>
</div>
......@@ -882,10 +882,10 @@ export default {
next()
}else if(that.openMode==0 && to.query.blank && to.query.blank=='y'){
that.$refs.blankLink.href=`http://${window.location.host}/#${to.fullPath}`
let dom = document.querySelector("#blankLink")
dom.href=`http://${window.location.host}/#${to.fullPath}`
//console.log(that.$refs.blankLink.click())
that.$refs.blankLink.click()
dom.click()
}else{
next()
}
......
......@@ -142,9 +142,9 @@
</script>
<style>
._bank_type{background-color: #2AAEF2}
.workTotalSearch ._bank_type{background-color: #2AAEF2}
._bank_type2{background-color: #FF9C01}
._bank_name,._bank_type{display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;}
.workTotalSearch ._bank_name,.workTotalSearch ._bank_type{display: inline-block;background-color: #333333;color: white;padding: 2px 4px;border-radius: 4px;margin-left:10px;}
._fex_cen{display: flex;align-items: center}
.workTotalSearch{width: 100%; min-height: auto; padding:0 0 20px 0;}
.workTotalSearch li{float: left; font-size: 12px; color: #666; margin:20px 10px 0px 0;}
......
<style>
.individualTicket .el-input--prefix .el-input__inner {
padding-left: 30px;
}
.individualTicket_list {
padding: 20px 0 0 0;
}
.individualTicket ._ol_info {
font-size: 12px;
height: 100%;
}
.individualTicket ._ol_info._edHeight {
height: 200px;
}
.individualTicket ._ol_color {
font-size: 12px;
width: 100%;
margin-bottom: 20px;
}
.individualTicket ._ol_color li {
float: left;
padding: 0 15px;
display: flex;
align-items: center;
}
.individualTicket ._ol_color li ._cl {
border-radius: 3px;
display: inline-block;
width: 5px;
height: 12px;
margin-right: 5px;
}
.individualTicket ._red_text {
color: #e95252;
}
.individualTicket ._green {
background-color: #47bf8c;
}
.individualTicket ._green_text {
color: #47bf8c;
}
.individualTicket ._blu {
background-color: #2aaef2;
}
.individualTicket ._blu_text {
color: #2aaef2;
}
.individualTicket ._ol_list {
margin-top: 20px;
min-height: 500px;
}
.individualTicket ._ol_list > li {
margin: 20px 0 0px 0px;
transition: linear all 0.5s;
background-color: #fff;
border: 1px solid #dddddd;
border-left: 0;
position: relative;
}
.individualTicket ._ol_list > li:hover {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
.individualTicket ._oll_tit {
color: #333333;
font-size: 14px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.individualTicket ._oll_tit span {
display: inline-block;
padding: 1px 10px;
font-size: 12px;
border: solid 1px #ff9000;
color: #ff9000;
border-radius: 4px;
}
.individualTicket ._oll_line {
max-width: 5px;
min-width: 5px;
height: 105px;
position: absolute;
left: 0;
top: 0;
z-index: 50;
background: rgba(233, 82, 82, 1);
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
display: inline-block;
}
.individualTicket ._oll_line._o_green {
background: #47bf8c;
}
.individualTicket ._oll_line._o_blu {
background: #2aaef2;
}
.individualTicket ._oll_img {
height: 45px;
width: 45px;
border-radius: 50%;
margin: 5px 0 0 15px;
margin-left: 20px;
display: inline-block;
}
.individualTicket ._oll_adrr {
color: white;
font-size: 12px;
margin-top: 8px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: inline-block;
padding: 4px 9px;
background-color: #2aaef2;
border-radius: 2px;
}
.TMN_Seat {
height: 100%;
display: flex;
}
.TK_SeatList {
height: 60px;
background-color: #f9f9f9;
margin-top: 9px;
padding-right: 10px;
}
.TK_SeatList > ul > li:nth-child(1) {
margin-left: 5px;
}
.TK_SeatList > ul > li {
float: left;
text-align: center;
margin: 5px 10px 0 0;
}
.TK_SeatList > ul > li:last-child {
margin-right: 0;
}
.TK_SeatList .iconfont {
color: #d1d1d1;
display: inline-block;
margin-top: 5px;
}
.TK_SeatList ._wz {
color: #666666;
}
.TMA_raduis > ul > li._head {
display: flex;
align-items: center;
}
.TMA_raduis > ul > li._head img {
height: 26px;
width: 26px;
border-radius: 50%;
margin-left: 15px;
}
.TMA_raduis > ul > li._head span {
padding-left: 7px;
display: inline-block;
margin-right: 25px;
}
._jztime {
color: #666666;
margin: 0 12px;
}
._jztime .PingFangSC {
font-size: 12px;
}
._jztime ._text {
font-size: 12px;
}
.individualTicket .el-pagination {
border: none !important;
}
.individualTicket .el-form-item__label {
font-size: 12px;
color: #606266;
}
.individualTicket .multiple_input .el-input {
height: auto !important;
}
.individualTicket .el-button--primary {
padding: 5px;
margin-right: 1px;
}
.individualTicket ._lian_style {
position: absolute;
top: 0px;
left: 5px;
z-index: 99;
display: inline-block;
background-color: #e83140;
color: white;
padding: 2px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
._oll_img_box {
height: 78px;
display: inline-block;
vertical-align: top;
padding-top: 14px;
}
.vmiddle {
display: flex;
align-items: Center;
height: 78px;
}
.individualTicket .TICK_Code {
position: absolute;
left: 27px;
top: 5px;
}
.TCID_cont {
min-height: 28px;
border-top: 1px dashed #ccc;
}
/*航班详情*/
.individualTicket .FlightDivDetails {
width: 100%;
height: 65px;
overflow: auto;
}
.individualTicket ._flightList {
text-align: left;
font-size: 12px;
margin-bottom: 5px;
padding-right: 5px;
}
/*航班号*/
.individualTicket .FlightNumber {
color: #ff0066;
font-weight: bold;
}
.TK_SeatList ._num3 {
font-size: 17px;
color: #e95252;
height: 28px;
font-family: PingFangSC-Semibold, sans-serif;
}
</style>
<template>
<div class="flexOne individualTicket">
<div class="query-box Plan_Query">
<ul>
<li>
<span>
<em>状态</em>
<el-select v-model="msg.FlyState" :placeholder="$t('system.ph_in')">
<el-option label="未起飞" :value='0'></el-option>
<el-option label="已起飞" :value='1'></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>线路</em>
<el-select v-model="msg.LineId" :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option>
<el-option v-for="item in LineList" :key="item.LineID" :label="item.LineName"
:value="item.LineID"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>航空公司</em>
<el-select v-model="msg.AirLineID" filterable :placeholder="$t('system.ph_in')">
<el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option>
<el-option v-for="item in airlineList" :label="item.AlName" :value="item.AirLineId"
:key="item.AirLineId"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>航班号</em>
<el-input v-model="msg.Flight_number" placeholder="机票编号"></el-input>
</span>
</li>
<li>
<span>
<em>操作人</em>
<el-select v-model="msg.CreateBy" filterable :placeholder="$t('system.ph_in')">
<el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option>
<el-option v-for="item in EmployeeList" :label="item.EmName" :value="item.EmployeeId"
:key="item.EmployeeId"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>编号</em>
<el-input v-model="msg.ID" placeholder="机票编号"></el-input>
</span>
</li>
<li>
<span>
<em>可报名</em>
<el-select v-model="msg.IsPayOrder" :placeholder="$t('system.ph_in')">
<el-option label="否" :value='0'></el-option>
<el-option label="是" :value='1'></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>航班日期</em>
<el-date-picker clearable class="w135" v-model="msg.QFlightDateStart" type="date"
:picker-options="beforeCheck"
value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')"></el-date-picker>
<span class="_ln">-</span>
<el-date-picker clearable class="w135" v-model="msg.QFlightDateEnd" type="date" :picker-options="afterCheck"
value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')"></el-date-picker>
</span>
</li>
<li style="margin-right:50px;">
<button class="normalBtn" type="button" @click="resetPageIndex(),getList()">{{$t('pub.searchBtn')}}</button>
</li>
</ul>
</div>
<div class="individualTicket_list">
<ul class="_ol_color clearfix">
<li>
<span class="_red _cl"></span>
<span class="_red_text">{{$t('Airticket.Air_redType')}}</span>
{{$t('Airticket.Air_firstClass')}}
</li>
<li>
<span class="_green _cl"></span>
<span class="_green_text">{{$t('Airticket.Air_greenType')}}</span>
{{$t('Airticket.Air_businessClass')}}
</li>
<li>
<span class="_blu _cl"></span>
<span class="_blu_text">{{$t('Airticket.Air_blueType')}}</span>
{{$t('Airticket.Air_EconomyClass')}}
</li>
</ul>
<div class="_ol_info">
<ul class="_ol_list" v-loading="loading">
<li v-for="(item,index) in dataList" :data-id="item.ID">
<span class="_oll_line" v-if="item.FreightSpace==1"></span>
<span class="_oll_line _o_green" v-if="item.FreightSpace==2"></span>
<span class="_oll_line _o_blu" v-if="item.FreightSpace==3"></span>
<el-row :gutter="10">
<el-col :span="2">
<span class="_lian_style" v-if="item.IsSetUnion==1"></span>
<div class="_oll_img_box">
<span class="TICK_Code PingFangSC">编号:{{item.ID}}</span>
<img v-if="!item.AirlineUrl" class="_oll_img" :src="defaultImg">
<img v-else class="_oll_img" :src="item.AirlineUrl" :onerror="defaultImg">
</div>
</el-col>
<el-col :span="2" class="vmiddle">
<div class="_oll_info">
<el-tooltip class="item" effect="dark" :content="item.AirlineName" placement="top-start"
popper-class="max-w250">
<p class="_oll_tit">{{item.AirlineName}}</p>
</el-tooltip>
<span class="_oll_adrr">{{item.FreightSpaceStr}}</span>
</div>
</el-col>
<el-col :span="5" class="vmiddle">
<div class="FlightDivDetails">
<div class="_flightList" v-for="subItem in item.flightList">
<span class="FlightNumber">{{subItem.Flight_number}}</span>
<span>{{subItem.FlightDate}} {{subItem.Departure_time}}</span>
<span>({{subItem.DIATA}}){{subItem.DepartureName}}</span>
<span v-if="subItem.StopoverName">-</span>
<span v-if="subItem.StopoverName">({{subItem.StopoverIATA}}){{subItem.StopoverName}}</span>
<span v-if="subItem.ArrivalCityName">-</span>
<span v-if="subItem.ArrivalCityName">({{subItem.AIATA}}){{subItem.ArrivalCityName}}</span>
</div>
</div>
</el-col>
<el-col :span="10" class="vmiddle">
<div class="TMN_Seat">
<div class="TK_SeatList">
<ul class="clearfix">
<li>
<span class="iconfont icon-img_yizi"></span>
</li>
<li>
<p class="_num3">{{item.CostPrice}}</p>
<p class="_wz">成本价格</p>
</li>
<li>
<p class="_num3">{{item.B2BPrice}}</p>
<p slot="reference" class="_wz">b2b价格</p>
</li>
<li>
<p class="_num3">{{item.B2CPrice}}</p>
<p class="_wz">b2c价格</p>
</li>
<li>
<p class="_num3">{{item.SalePrice}}</p>
<p class="_wz">销售价格</p>
</li>
<li>
<p class="_num3">{{item.AirTickNum}}</p>
<p class="_wz">总机位数</p>
</li>
<li>
<p class="_num3">{{item.SurplusNum}}</p>
<p class="_wz">剩余机位数</p>
</li>
<li>
<p class="_num3">{{item.UseNum}}</p>
<p class="_wz">使用机位数</p>
</li>
</ul>
</div>
</div>
</el-col>
<el-col :span="1" class="vmiddle">
<div class="TMA_raduis">
<ul style="padding:0;">
<li class="_head" style="display:block">
<img style="margin-left:0px" v-if="item.CreateUrl" :src="item.CreateUrl" :onerror="defaultImg">
<img style="margin-left:0px" v-else src="../../assets/img/bg_z1@2x.png">
<span style="padding:0;margin:0;display:block;">{{item.CreateName}}</span>
</li>
</ul>
</div>
</el-col>
<el-col :span="2" class="vmiddle">
<div class="_jztime">
<p class="PingFangSC">{{item.TicketDeadlineStr}}</p>
<p class="_text">{{$t('Airticket.Air_deadTicketTime')}}</p>
</div>
</el-col>
</el-row>
<el-row :gutter="0">
<el-col :span="24">
<div class="TCID_cont" style="padding:5px 0 0 20px;">PNR:{{item.PNR}}</div>
</el-col>
</el-row>
</li>
</ul>
<div class="noData" v-show="noData">{{$t('system.content_noData')}}</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper"
:page-size="msg.pageSize" :total="total"></el-pagination>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
pageIndex: 1,
pageSize: 6,
ID: 0,
QFlightDateStart:'',
QFlightDateEnd: "",
Flight_number:'',
AirLineID: 0,
TicketType: 2, //定金类型(1定,2定等)
LineId: 0, //线路编号
IsPayOrder:0,
FlyState: 1,
CreateBy: 0, //操作人
},
//员工列表
EmployeeList: [],
defaultSelectValue: 0,
//航空公司下拉框
airlineList: [],
//默认图片
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
//线路列表
LineList: [],
total: 0,
currentPage: 1,
loading: true,
noData: false,
dataList: [],
pickerOptions1: {
disabledDate(time) {
return time.getTime() < Date.now() - 100000000;
}
},
beforeCheck: {
disabledDate: time => {
let endTime = new Date(this.msg.QFlightDateEnd);
return endTime.getTime() < time.getTime();
}
},
afterCheck: {
disabledDate: time => {
let startTime = new Date(this.msg.QFlightDateStart);
return startTime.getTime() >= time.getTime();
}
},
};
},
methods: {
getList() {
this.loading = true;
if(this.msg.ID==''){
this.msg.ID=0;
}
this.apipost(
"ticket_get_GetAirTicketScatteringPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.dataList = res.data.data.pageData;
this.noData = !this.total > 0;
}else{
this.Error(res.data.message);
}
},
err => {
}
);
},
//初始化航空公司下拉
initAirlines() {
this.apipost(
"airline_post_GetList", {},
res => {
if (res.data.resultCode == 1) {
this.airlineList = res.data.data;
}
},
err => {
}
);
},
//翻页功能按钮
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
//查询初始化页码
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
this.apipost(
"admin_get_GetEmployeeByUserDepartmentId", {},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
},
err => {
}
);
},
//获取线路列表
GetLineList() {
this.apipost(
"line_post_GetAllList", {},
res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
},
err => {
}
);
},
},
mounted() {
this.GetLineList();
this.getList();
this.initAirlines();
this.getEmployeeList();
}
};
</script>
......@@ -162,7 +162,7 @@
<td :colspan="colspanTotal" style="text-align: left!important;padding-left: 20px;">
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252">地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
<div v-show="item.DMCRemark!=''" class="colorE95252">地接备注:{{item.DMCRemark}}</div>
</div>
</td>
</tr>
......
......@@ -9,7 +9,7 @@
<div class="trip_cover" v-show="pdfLoading" v-loading="pdfLoading"></div>
<input type="button" style="width: auto !important;" class="travelControlTripBtn" value="下载电脑版PDF" @click="toPDF(orderMsg.startDate + orderMsg.lineteamName+orderMsg.dayNum+'日游')" />
<input type="button" style="width: auto !important;" class="travelControlTripBtn" value="下载手机版WORD" @click="gernalFeature(0)" />
<input type="button" style="width: auto !important;display:none" class="travelControlTripBtn" value="下载电脑版WORD" @click="gernalFeature(1)" />
<input type="button" style="width: auto !important;" class="travelControlTripBtn" value="下载电脑版WORD" @click="gernalFeature(1)" />
<!-- ToWord(orderMsg.startDate + orderMsg.lineteamName+orderMsg.dayNum+'日游') -->
<!--&&isopOperation HK 注释 可以让销售修改基本信息-->
<input type="button" v-if="orderId>0" class="travelControlTripBtn" value="修改信息" @click="editMsgShow=true" />
......
......@@ -145,9 +145,6 @@
</td>
<td>
<div class="fz16 fbold">
<!--{{item.ResultReport.MakeInvoice=='0'?"x":"O"}}
<span style="color: #4BCA81;"></span>-->
<!--√:X :o 含义定义-->
<span style="color: #4BCA81;" v-if="item.ResultReport.MakeInvoice==1"></span>
<span class="colorE95252" v-else>{{item.ResultReport.MakeInvoice=='-1'?"x":"O"}}</span>
</div>
......@@ -233,7 +230,7 @@
<div class="link">
<p @click="goUrlT('productQuery',item.TCNUMS,'产品查询')" style="padding-top:4px;">{{item.Titles}}</p>
<div v-show="outItem.StaticsReportList[index].OPRemark!=''" class="colorE95252" style="padding-top:5px;">OP备注:{{outItem.StaticsReportList[index].OPRemark}}</div>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252" style="padding-top:5px;padding-bottom:4px;">地接备注:{{outItem.StaticsReportList[0].DMCRemark}}</div>
<div v-show="outItem.StaticsReportList[0].DMCRemark!=''" class="colorE95252" style="padding-top:5px;padding-bottom:4px;">地接备注:{{outItem.StaticsReportList[index].DMCRemark}}</div>
</div>
</td>
</tr>
......
......@@ -14,6 +14,13 @@
<div>{{item.ckTitle}}</div>
</div>
</div>
<div style="display:none">
<p style="padding:5px 0;">请选择下载word行程的主题颜色</p>
<el-radio-group v-model="FeatureData.TemplateId">
<el-radio-button v-for="item in templateColorArray" :class="`templateColorArray_${item.color}`" :label="item.id" :key="item.id" :value="item.id">{{item.text}}</el-radio-button>
</el-radio-group>
<p style="padding:5px 0 0 0;"> </p>
</div>
<div>注:幻灯片(图片至少为两张,图片尺寸应该控制在960*500,如果超出系统将自动裁剪显示)</div>
<div class="ScraList">九宫格(请尽量保持图片高清,系统将根据你的图片数量自动缩放图片大小,最多9张图片)</div>
<div class="TFContent">
......@@ -248,6 +255,23 @@
TypeState: 5
}
], //tab数组
templateColorArray:[
{
id: 1,
color: 'yellow',
text: '黄色'
},
{
id: 2,
color: 'pink',
text: '粉色'
},
{
id: 3,
color: 'blue',
text: '蓝色'
},
],
travelsList: [],
del_show: true,
//折叠展开
......@@ -329,6 +353,7 @@
ShopRemark:postData.ShopRemark,
VisaRemark:postData.VisaRemark,
WarmTip:postData.WarmTip,
TemplateId: postData.TemplateId
};
let flagWangYue = this.$route.query.flag;
......@@ -607,6 +632,24 @@
</script>
<style>
.templateColorArray_yellow.is-active span.el-radio-button__inner{
background-color: #f6dc61;
border-color: #f6dc61;
color: #d19913;
box-shadow: -1px 0 0 0 #f6dc61;
}
.templateColorArray_pink.is-active span.el-radio-button__inner{
background-color: pink;
border-color: pink;
color: #9c525f;
box-shadow: -1px 0 0 0 pink;
}
.templateColorArray_blue.is-active span.el-radio-button__inner{
background-color: skyblue;
border-color: skyblue;
color: #346f88;
box-shadow: -1px 0 0 0 skyblue;
}
@font-face {
font-family: "FZDBSJW";
src: url("../../../assets/webfont/FZDBSJW.woff") format("woff"),
......
......@@ -139,6 +139,7 @@
Subtitle: "",
LineName: "",
DayList: [],
TemplateId: 1,
IsSave: false //是否保存
},
//线路行程
......@@ -584,6 +585,7 @@
this.FeatureData.ConfigId = tempData.Feature.ConfigId;
this.FeatureData.FeatureType = tempData.Feature.FeatureType;
this.FeatureData.FeatureImg = tempData.Feature.FeatureImg;
this.FeatureData.TemplateId = tempData.Feature.TemplateId;
this.FeatureData.FeatureContent = tempData.Feature.FeatureContent;
//图片列表
this.FeatureData.fileList = tempData.Feature.FeatureImgList;
......
......@@ -150,7 +150,9 @@ export default {
//google地图图片地址
GoogleMapImageUrl: "http://super.oytour.com",
// "http://upload.oytour.com"
UploadUrl: locationName.indexOf('oytour')!==-1 ? "http://upload.oytour.com" : "http://127.0.0.1:8120"
UploadUrl: locationName.indexOf('oytour') !== -1 ? "http://upload.oytour.com" : "http://127.0.0.1:8120",
// 读取文件
ViittoFileUrl:'http://imgfile.oytour.com'
// UploadUrl: "http://upload.oytour.com"
};
return obj;
......
......@@ -1011,6 +1011,13 @@ export default {
title: '机票列表'
},
}, {
path: '/individualTicket', //散客机票
name: 'individualTicket',
component: resolve => require(['@/components/Ticketing/individualTicket'], resolve),
meta: {
title: '散客机票'
},
},{
path: '/PassengerList', //旅客名单
name: 'PassengerList',
component: resolve => require(['@/components/Ticketing/PassengerList'], resolve),
......
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