Commit 30d50ad3 authored by huangyuanyuan's avatar huangyuanyuan
parents a9a64b7e bc576055
...@@ -272,6 +272,19 @@ ...@@ -272,6 +272,19 @@
<tr> <tr>
<td colspan="2" style="height:5px;"></td> <td colspan="2" style="height:5px;"></td>
</tr> </tr>
<tr>
<td width="70" style="text-align:right;">提醒供应商:</td>
<td>
<el-select class='w135 sel' v-model='subItem.SupplierHotelStatus' :placeholder="$t('pub.pleaseSel')">
<el-option label='请选择' :value='0'></el-option>
<el-option label='一般提醒' :value='1'></el-option>
<el-option label='重要提醒' :value='2'></el-option>
</el-select>
</td>
</tr>
<tr>
<td colspan="2" style="height:5px;"></td>
</tr>
<tr> <tr>
<td width="70" style="text-align:right;">备注:</td> <td width="70" style="text-align:right;">备注:</td>
<td> <td>
......
...@@ -296,7 +296,7 @@ ...@@ -296,7 +296,7 @@
<el-checkbox v-model="addMsg.IsBed" name="IsBed" :true-label='0' :false-label='1' @change="Roominformation()"></el-checkbox> <el-checkbox v-model="addMsg.IsBed" name="IsBed" :true-label='0' :false-label='1' @change="Roominformation()"></el-checkbox>
</el-form-item> </el-form-item>
</li> </li>
<li> <li v-if="isOneDay !== 1">
<el-form-item label="房间信息" prop="HouseId"> <el-form-item label="房间信息" prop="HouseId">
<el-select v-model="addMsg.HouseId" filterable size=mini class="w230"> <el-select v-model="addMsg.HouseId" filterable size=mini class="w230">
<el-option v-for="item in roomlist" :key="item.ID" :label="item.HouseInfo" :value="item.ID"> <el-option v-for="item in roomlist" :key="item.ID" :label="item.HouseInfo" :value="item.ID">
...@@ -769,6 +769,7 @@ ...@@ -769,6 +769,7 @@
SafeStartStatus: 2, SafeStartStatus: 2,
btnState: true, btnState: true,
roomlist:[], roomlist:[],
isOneDay: 0,
}; };
}, },
methods: { methods: {
...@@ -1736,18 +1737,21 @@ ...@@ -1736,18 +1737,21 @@
this.addMsg.IsCriminalRecord = obj.IsCriminalRecord === null ? '' : obj.IsCriminalRecord.toString(); this.addMsg.IsCriminalRecord = obj.IsCriminalRecord === null ? '' : obj.IsCriminalRecord.toString();
this.addMsg.IsDepartureRecord = obj.IsDepartureRecord.toString(); this.addMsg.IsDepartureRecord = obj.IsDepartureRecord.toString();
this.EconomicCapabilityS.forEach(x => { this.EconomicCapabilityS.forEach(x => {
if (obj.EconomicCapabilityList) {
obj.EconomicCapabilityList.forEach(y => { obj.EconomicCapabilityList.forEach(y => {
if (x.ID == y.ID) { if (x.ID == y.ID) {
x.isShow = true; x.isShow = true;
x.Content = y.Value; x.Content = y.Value;
} }
}); });
}
}); });
this.VisaStartStatus = this.addMsg.IsVisaFree; this.VisaStartStatus = this.addMsg.IsVisaFree;
this.AirStartStatus = this.addMsg.IsNeedAirticket; this.AirStartStatus = this.addMsg.IsNeedAirticket;
this.SafeStartStatus = this.addMsg.IsNeedSafe; this.SafeStartStatus = this.addMsg.IsNeedSafe;
this.$forceUpdate(); this.$forceUpdate();
this.getHouselist(obj.Sex.toString(),obj.TCID,obj.OrderId,obj.IsBed) this.getHouselist(obj.Sex.toString(),obj.TCID,obj.OrderId,obj.IsBed)
// this.Roominformation()
} else { } else {
this.$message.error(); this.$message.error();
} }
...@@ -1976,6 +1980,7 @@ ...@@ -1976,6 +1980,7 @@
this.getEconomicCapability(); this.getEconomicCapability();
this.GetGuestMustVisaAir(); this.GetGuestMustVisaAir();
this.getAccessToken(); this.getAccessToken();
this.isOneDay = this.$route.query.isOneDay;
this.addMsg.TCID = this.$route.query.TCID; this.addMsg.TCID = this.$route.query.TCID;
this.addMsg.OrderId = this.$route.query.orderId; this.addMsg.OrderId = this.$route.query.orderId;
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
......
...@@ -49,12 +49,20 @@ ...@@ -49,12 +49,20 @@
</li> </li>
<li> <li>
<span><em>订单状态</em></span> <span><em>订单状态</em></span>
<el-select v-model='msg.OrderState' filterable :placeholder="$t('pub.pleaseSel')"> <el-select v-model='msg.OrderState' filterable :placeholder="$t('pub.pleaseSel')" class='w200'>
<el-option label="不限" value='-1'></el-option> <el-option label="不限" value='-1'></el-option>
<el-option v-for="item in ddztList" :label='item.Name' :value='item.Id' :key='item.Id'> <el-option v-for="item in ddztList" :label='item.Name' :value='item.Id' :key='item.Id'>
</el-option> </el-option>
</el-select> </el-select>
</li> </li>
<li>
<span><em>订单类型</em></span>
<el-select v-model='msg.IsOneDay' filterable :placeholder="$t('pub.pleaseSel')" class='w200'>
<el-option label="不限" value='-1'></el-option>
<el-option label="跟团游订单" :value='0'></el-option>
<el-option label="一日游订单" :value='1'></el-option>
</el-select>
</li>
<li><span><em>发团日期</em> <li><span><em>发团日期</em>
<el-date-picker v-model='msg.QStartDate' @change="dataDuiQ()" class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker> <el-date-picker v-model='msg.QStartDate' @change="dataDuiQ()" class='w135' value-format="yyyy-MM-dd" type="date"></el-date-picker>
- -
...@@ -185,11 +193,11 @@ ...@@ -185,11 +193,11 @@
<tr> <tr>
<td rowspan="3"> <td rowspan="3">
<p v-if="item.isChargeLossOrders==1" style="color:red"></p> <p v-if="item.isChargeLossOrders==1" style="color:red"></p>
<p class="fbold over_ellipsis" style="width: 100%;cursor:pointer;" :title="item.orderId" @click="goUrlX('团报名清单', 'groupTourOrderByTuan',item.tcid,item.tcnum)">{{item.orderId}} <p class="fbold over_ellipsis" style="width: 100%;cursor:pointer;" :title="item.orderId" @click="goUrlX('团报名清单', item.isOneDay === 1 ? 'groupTourOrderByTuanOne' : 'groupTourOrderByTuan',item.tcid,item.tcnum)">{{item.orderId}}
<el-tooltip class="item" effect="dark" content="通过小程序确认单报名" placement="top" v-show="item.orderForm==4"> <i class="iconfont icon-xiaochengxu" style="font-size:22px;color:red;"></i></el-tooltip> <el-tooltip class="item" effect="dark" content="通过小程序确认单报名" placement="top" v-show="item.orderForm==4"> <i class="iconfont icon-xiaochengxu" style="font-size:22px;color:red;"></i></el-tooltip>
</p> </p>
<p class="fz12 over_ellipsis" style="width: 100%;text-decoration:underline;cursor:pointer;" :title="item.alName" <p class="fz12 over_ellipsis" style="width: 100%;text-decoration:underline;cursor:pointer;" :title="item.alName"
@click="goUrlX('产品查询', 'productQuery',item.tcid,item.tcnum)">{{item.tcnum}}</p> @click="goUrlX('产品查询', item.isOneDay === 1 ? 'productQueryOne' : 'productQuery',item.tcid,item.tcnum)">{{item.tcnum}}</p>
<p class="fz12 over_ellipsis" style="width: 100%;">{{item.createBy}}<span v-if="item.leaveStr!=''" style="color:red">({{item.leaveStr}})</span></p> <p class="fz12 over_ellipsis" style="width: 100%;">{{item.createBy}}<span v-if="item.leaveStr!=''" style="color:red">({{item.leaveStr}})</span></p>
<p class="fz12 over_ellipsis" style="width: 100%;">{{item.commissionSPeopleName=='无'?'':item.commissionSPeopleName}}</p> <p class="fz12 over_ellipsis" style="width: 100%;">{{item.commissionSPeopleName=='无'?'':item.commissionSPeopleName}}</p>
<p>发团:{{item.startDate}}</p> <p>发团:{{item.startDate}}</p>
...@@ -408,7 +416,8 @@ ...@@ -408,7 +416,8 @@
SellFormEmp: 0, SellFormEmp: 0,
GroupType: '-1', GroupType: '-1',
TCNUM: '', TCNUM: '',
BranchId:'-1' BranchId:'-1',
IsOneDay: '-1'
}, },
employeeMsg: { employeeMsg: {
RB_Group_id: "0", RB_Group_id: "0",
......
...@@ -3658,7 +3658,7 @@ ...@@ -3658,7 +3658,7 @@
this.getCount() this.getCount()
}, },
getLineList() { getLineList() {
this.apipost('line_post_GetAllList', {}, res => { this.apipost('line_post_GetAllList_V2', {LineDirection: 0}, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.LineList = res.data.data this.LineList = res.data.data
} else { } else {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="passengerSaleList"> <div class="passengerSaleList">
<div class="passengerSaleList_topBtn"> <div class="passengerSaleList_topBtn">
<div v-if="isOrder==1" v-show="tableList.length<guestNum" @click="goUrlA(0)">新增</div> <div v-if="isOrder==1" v-show="tableList.length<guestNum" @click="goUrlA(0)">新增</div>
<div v-if="isOrder==1" @click="goUrlP()">分房</div> <div v-if="isOrder==1 && isOneDay !== 1" @click="goUrlP()">分房</div>
</div> </div>
<div class="passengerSaleList_tableBox"> <div class="passengerSaleList_tableBox">
<table class="passengerSaleList_table" border="0" cellspacing="0" cellpadding="0" :loading="loading"> <table class="passengerSaleList_table" border="0" cellspacing="0" cellpadding="0" :loading="loading">
...@@ -87,7 +87,8 @@ ...@@ -87,7 +87,8 @@
}, },
guestNum: 0, guestNum: 0,
isOrder: 0, isOrder: 0,
tableList: [] tableList: [],
isOneDay: 0,
}; };
}, },
methods: { methods: {
...@@ -99,6 +100,7 @@ ...@@ -99,6 +100,7 @@
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.guestNum = res.data.data.GuestNum; this.guestNum = res.data.data.GuestNum;
this.tableList = res.data.data.list; this.tableList = res.data.data.list;
this.isOneDay = res.data.data.IsOneDay;
} else { } else {
this.$message.error(res.data.message) this.$message.error(res.data.message)
} }
...@@ -129,7 +131,8 @@ ...@@ -129,7 +131,8 @@
query: { query: {
"TCID": this.msg.tcid, "TCID": this.msg.tcid,
"orderId": this.msg.id, "orderId": this.msg.id,
'guestId': guestId 'guestId': guestId,
'isOneDay': this.isOneDay
} }
}); });
}, },
......
...@@ -2121,7 +2121,7 @@ ...@@ -2121,7 +2121,7 @@
}, err => {}) }, err => {})
}, },
getLineList() { getLineList() {
this.apipost("line_post_GetAllList", {}, res => { this.apipost("line_post_GetAllList_V2", {LineDirection: 0}, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.LineList = res.data.data; this.LineList = res.data.data;
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
padding-top: 10px; padding-top: 10px;
} }
.PassengerList .el-input__inner { .pmyTable .el-input__inner {
height: 23px !important; height: 23px !important;
padding: 0 5px; padding: 0 5px;
} }
...@@ -113,6 +113,10 @@ ...@@ -113,6 +113,10 @@
.singeRowTable .redTr td{ .singeRowTable .redTr td{
color: #E95252; color: #E95252;
} }
.pg_checkModule{
margin-top:20px;
font-size:14px;
}
</style> </style>
<template> <template>
...@@ -203,7 +207,7 @@ ...@@ -203,7 +207,7 @@
</el-pagination> </el-pagination>
<el-dialog custom-class='passgenrDialog' title="航班列表" :visible.sync="outerVisible" center> <el-dialog custom-class='passgenrDialog' title="航班列表" :visible.sync="outerVisible" center>
<table border="0" cellspacing="0" cellpadding="0" class="singeRowTable"> <table border="0" cellspacing="0" cellpadding="0" class="singeRowTable pmyTable">
<tr> <tr>
<td colspan="6" style="text-align:left;font-weight:bold;padding-left:5px">票务航班信息</td> <td colspan="6" style="text-align:left;font-weight:bold;padding-left:5px">票务航班信息</td>
</tr> </tr>
...@@ -282,6 +286,13 @@ ...@@ -282,6 +286,13 @@
</tbody> </tbody>
</table> </table>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<span class="pg_checkModule" v-if="isShowSelect">
选择模板
<el-select v-model="checkModule" filterable :placeholder="$t('system.ph_buxian')" class="w180">
<el-option label="代理模板" :value="0"></el-option>
<el-option label="航空公司B2B模板" :value="1"></el-option>
</el-select>
</span>
<button class="normalBtn" type="primary" @click="getIsSure()">确认航班信息</button> &nbsp; <button class="normalBtn" type="primary" @click="getIsSure()">确认航班信息</button> &nbsp;
<button class="hollowFixedBtn" @click="outerVisible = false">{{$t('pub.cancelBtn')}}</button> <button class="hollowFixedBtn" @click="outerVisible = false">{{$t('pub.cancelBtn')}}</button>
</div> </div>
...@@ -328,6 +339,8 @@ ...@@ -328,6 +339,8 @@
checkedGJzd: false, checkedGJzd: false,
checkedshuijin: false, checkedshuijin: false,
checkedsc: false, checkedsc: false,
isShowSelect:false,
checkModule:0
}; };
}, },
methods: { methods: {
...@@ -444,7 +457,7 @@ ...@@ -444,7 +457,7 @@
exportExcel() { exportExcel() {
let msg = { let msg = {
AirTicketId: this.msg.AirTicketId, AirTicketId: this.msg.AirTicketId,
Type:0 Type:this.checkModule
}; };
var fileName = this.$route.query.flightdate //this.QueryMsg.nowDate; var fileName = this.$route.query.flightdate //this.QueryMsg.nowDate;
var TempfileName = "" var TempfileName = ""
...@@ -551,6 +564,12 @@ ...@@ -551,6 +564,12 @@
}, },
mounted() { mounted() {
this.QueryMsg.AirTicketId = this.$route.query.id; this.QueryMsg.AirTicketId = this.$route.query.id;
var alcode = this.$route.query.alcode;
if(alcode=='HO'){
this.isShowSelect = true;
}else{
this.isShowSelect = false;
}
this.msg.AirTicketId = this.$route.query.id; this.msg.AirTicketId = this.$route.query.id;
if (this.$route.query.isFromTk != undefined) { if (this.$route.query.isFromTk != undefined) {
this.isShowGuoji = this.$route.query.isFromTk; this.isShowGuoji = this.$route.query.isFromTk;
......
...@@ -370,11 +370,24 @@ export default { ...@@ -370,11 +370,24 @@ export default {
return `<span>${rowData.shenHeShiJian <= 0 ? '' : rowData.shenHeShiJian}</span>` return `<span>${rowData.shenHeShiJian <= 0 ? '' : rowData.shenHeShiJian}</span>`
} }
}; };
let xiaoShouKaiTuan = {
field: "xiaoShouKaiTuan",
title: "销售开团",
titleAlign: "left",
columnAlign: "left",
isResize: true,
width: 120,
orderBy: "",
formatter: function(rowData, rowIndex, pagingIndex, field) {
return `<span>${rowData.xiaoShouKaiTuan <= 0 && !rowData.xiaoShouKaiTuan ? '' : rowData.xiaoShouKaiTuan}</span>`
}
};
this.columns = []; this.columns = [];
this.columns.push(company); this.columns.push(company);
this.columns.push(department); this.columns.push(department);
this.columns.push(userName); this.columns.push(userName);
this.columns.push(periods); this.columns.push(periods);
this.columns.push(xiaoShouKaiTuan);
this.columns.push(LllegalModifyRemarkCount); this.columns.push(LllegalModifyRemarkCount);
this.columns.push(AppletOrderCount); this.columns.push(AppletOrderCount);
this.columns.push(shaoJian); this.columns.push(shaoJian);
...@@ -423,6 +436,9 @@ export default { ...@@ -423,6 +436,9 @@ export default {
if(param.lllegalModifyRemarkCount!=''){ if(param.lllegalModifyRemarkCount!=''){
this.msg.OrderBy='a.LllegalModifyRemarkCount '+param.lllegalModifyRemarkCount this.msg.OrderBy='a.LllegalModifyRemarkCount '+param.lllegalModifyRemarkCount
} }
if(param.xiaoShouKaiTuan!=''){
this.msg.OrderBy='a.XiaoShouKaiTuan '+param.XiaoShouKaiTuan
}
if(param.appletOrderCount!=''){ if(param.appletOrderCount!=''){
this.msg.OrderBy='a.AppletOrderCount '+param.appletOrderCount this.msg.OrderBy='a.AppletOrderCount '+param.appletOrderCount
......
...@@ -13,8 +13,9 @@ ...@@ -13,8 +13,9 @@
<td width="20" rowspan="3">甲方</td> <td width="20" rowspan="3">甲方</td>
<td width="125" rowspan="3">委托社名称及许可证号</td> <td width="125" rowspan="3">委托社名称及许可证号</td>
<td width="260" rowspan="3"> <td width="260" rowspan="3">
<input v-if='!isPrint' class="wp100" v-model="list.CustomerName" type="text"> <!-- <input v-if='!isPrint' class="wp100" v-model="list.CustomerName" type="text">
<span v-if='isPrint'>{{list.CustomerName}}</span> <span v-if='isPrint'>{{list.CustomerName}}</span> -->
<span contenteditable="true">{{list.CustomerName}}</span>
</td> </td>
<td width="80" rowspan="3">经办人</td> <td width="80" rowspan="3">经办人</td>
<td width="80" rowspan="3" > <td width="80" rowspan="3" >
......
...@@ -440,7 +440,7 @@ ...@@ -440,7 +440,7 @@
<el-checkbox v-model="priceData.IsSupportChildren" :true-label="CheckedVaule" <el-checkbox v-model="priceData.IsSupportChildren" :true-label="CheckedVaule"
:false-label="UnCheckedVaule">支持儿童出游 :false-label="UnCheckedVaule">支持儿童出游
</el-checkbox> </el-checkbox>
<el-checkbox v-model="priceData.IsBookTeam" :true-label="CheckedVaule" v-if="PostConfig.LineId==14" <el-checkbox style="display:none;" v-model="priceData.IsBookTeam" :true-label="CheckedVaule" v-if="PostConfig.LineId==14"
:false-label="UnCheckedVaule">订团 :false-label="UnCheckedVaule">订团
</el-checkbox> </el-checkbox>
<el-checkbox v-model="priceData.IsLessPrice" :true-label="CheckedVaule" <el-checkbox v-model="priceData.IsLessPrice" :true-label="CheckedVaule"
......
...@@ -55,16 +55,18 @@ ...@@ -55,16 +55,18 @@
<span>出团时间</span> <span>出团时间</span>
<span>未收金额</span> <span>未收金额</span>
</div> </div>
<div class="table_c" > <div class="table_c">
<div class="table_cont" v-for="item in data.orderInfo" v-if="data.orderInfo.length>0"> <div class="table_cont" v-for="item in data.orderInfo">
<span style="font-size: 12px;color:#333333;">{{item.orderId}}</span> <span style="font-size: 12px;color:#333333;">{{item.orderId}}</span>
<span style="font-size: 12px;color:#333333;">{{item.tcnum}}</span> <span style="font-size: 12px;color:#333333;">{{item.tcnum}}</span>
<span style="font-size: 12px;color:#999999;">{{item.startDate}}</span> <span style="font-size: 12px;color:#999999;">{{item.startDate}}</span>
<span style="font-size: 12px;color:#F36C5E;">{{item.dueInMoney}}</span> <span style="font-size: 12px;color:#F36C5E;">{{item.dueInMoney}}</span>
</div> </div>
<span v-else>暂无数据</span> <div style="width: 100%;margin-top: 20px;text-align: center" v-show="data.orderInfo ==null || data.orderInfo.length == 0">暂无数据</div>
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
...@@ -161,7 +163,9 @@ ...@@ -161,7 +163,9 @@
<span style="font-size: 14px;color: #333333;float: left">我的评价</span> <span style="font-size: 14px;color: #333333;float: left">我的评价</span>
</div> </div>
<!-- <div id="evaluate" :style="{width: '350px', height: '310px'}" style="margin-left: 9%"></div>--> <!-- <div id="evaluate" :style="{width: '350px', height: '310px'}" style="margin-left: 9%"></div>-->
<div id="evaluate" :style="{width:'350px', height: '310px'}" style="margin-left: 9%"></div> <div id="evaluate" v-show="data.taskCapacityList !=null && data.taskCapacityList.length != 0" :style="{width:'350px', height: '310px'}" style="margin-left: 9%"></div>
<div v-if="data.taskCapacityList == null || data.taskCapacityList.length == 0" style="width: 100%;text-align: center;margin-top: 20px">暂无数据</div>
</div> </div>
</el-col> </el-col>
<el-col :span="13"> <el-col :span="13">
...@@ -411,7 +415,7 @@ ...@@ -411,7 +415,7 @@
</div> </div>
<div class="tb_box"> <div class="tb_box">
<div v-show="OrderList !=null && OrderList.length>0" id="myChart" :style="{width: '1240px', height: '270px'}"></div> <div v-show="OrderList !=null && OrderList.length>0" id="myChart" :style="{width: '1240px', height: '270px'}"></div>
<div v-if="OrderList == null || OrderList.length == 0" style="width: 100%;text-align: center">暂无数据</div> <div v-if="OrderList == null || OrderList.length == 0" style="width: 100%;text-align: center;;margin-top: 20px">暂无数据</div>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -2085,6 +2085,14 @@ export default { ...@@ -2085,6 +2085,14 @@ export default {
title: '产品查询' title: '产品查询'
}, },
}, },
{ // 销售 一日游产品查询
path: '/productQueryOne',
name: 'productQueryOne',
component: resolve => require(['@/components/SalesModule/productQueryOne'], resolve),
meta: {
title: '一日游产品查询'
},
},
{ // 销售 机票查询 { // 销售 机票查询
path: '/planeTicketInquiry', path: '/planeTicketInquiry',
name: 'planeTicketInquiry', name: 'planeTicketInquiry',
...@@ -2101,6 +2109,14 @@ export default { ...@@ -2101,6 +2109,14 @@ export default {
title: '跟团游订单' title: '跟团游订单'
}, },
}, },
{ // 销售 一日游订单
path: '/groupTourOrderOne',
name: 'groupTourOrderOne',
component: resolve => require(['@/components/SalesModule/groupTourOrderOne'], resolve),
meta: {
title: '一日游订单'
},
},
{ // 销售 跟团游订单 { // 销售 跟团游订单
path: '/SalesFinancialDetail', path: '/SalesFinancialDetail',
name: 'SalesFinancialDetail', name: 'SalesFinancialDetail',
...@@ -2198,6 +2214,14 @@ export default { ...@@ -2198,6 +2214,14 @@ export default {
title: '跟团游订单分团查询' title: '跟团游订单分团查询'
}, },
}, },
{ // 销售 一日游订单分团查询
path: '/groupTourOrderByTuanOne',
name: 'groupTourOrderByTuanOne',
component: resolve => require(['@/components/SalesModule/groupTourOrderByTuanOne'], resolve),
meta: {
title: '一日游订单分团查询'
},
},
{ //团控票务 { //团控票务
path: '/TravelticketManager', path: '/TravelticketManager',
name: 'TravelticketManager', name: 'TravelticketManager',
......
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