Commit d6048ce2 authored by huangyuanyuan's avatar huangyuanyuan
parents f3c554be d7e3ff48
......@@ -232,7 +232,7 @@ export default {
this.msg.Date = this.$route.query.sDate;
this.msg.CheckOutDate = this.$route.query.eData;
}
this.apipost('hotel_post_GetAll',{hotelID:this.msg.Hotel},res=>{
this.apipost('hotel_post_GetAll',{ID:this.msg.Hotel},res=>{
if(res.data.resultCode==1){
this.HotelName = res.data.data.Name
}
......
......@@ -318,6 +318,7 @@
<th width="100">使用时间</th>
<th width="180">餐厅名称</th>
<th width="100">类别</th>
<th width="100">总人数</th>
<th width="">用餐人数</th>
<th width="80">免费人数</th>
<th width="">单价</th>
......@@ -337,6 +338,9 @@
<td v-if="childIndex==0" :rowspan="3">
{{subItem.UseDinnerTypeStr}}
</td>
<td v-if="childIndex==0" :rowspan="3">
{{subItem.UseAccount}}
</td>
<td>
{{peopleStrToWord(childItem.PeopleType)}}:{{childItem.PeopleNum}}
</td>
......
......@@ -304,14 +304,17 @@ export default {
this.$cookie.set("RB_Group_id", userData.RB_Group_id);
localStorage.menu=JSON.stringify(firstTire)
this.loginState = 0;
let previousPathInfo = localStorage.previousPathInfo ? JSON.parse(localStorage.previousPathInfo) : ''
if (previousPathInfo) {
let path = previousPathInfo.path.indexOf('login') === -1 ? previousPathInfo.path : 'index'
let query = previousPathInfo.query ? previousPathInfo.query : {}
this.$router.push({ path: "/"+ path, query: query });
}else {
this.$router.push({ path: "/index" });
}
// let previousPathInfo = localStorage.previousPathInfo ? JSON.parse(localStorage.previousPathInfo) : ''
// if (previousPathInfo) {
// let path = previousPathInfo.path.indexOf('login') === -1 ? previousPathInfo.path : 'index'
// let query = previousPathInfo.query ? previousPathInfo.query : {}
// this.$router.push({ path: "/"+ path, query: query });
// }else {
// this.$router.push({ path: "/index" });
// }
this.$router.push({ path: "/personalCenter" });
//登录成功后跳转页面
// this.$notify.success({
// title:'提示',
......
<style>
.SalesHotelOrder .SalesHotelOrderTable{
width: 100%;
min-width: 1500px;
font-size: 14px;
color: #333;
border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc;
border-collapse: collapse;
}
.SalesHotelOrder .SalesHotelOrderTable th{
background: #e6e6e6;
height: 30px;
font-size: 12px;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.SalesHotelOrder .SalesHotelOrderTable tr td{
height: 60px;
padding: 10px;
background-color: #fff;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.SalesHotelOrder .SalesHotelOrderTable tbody tr:last-child{
border-bottom:2px solid #333;
}
.SalesHotelOrder .SH_beizhu{
float:left;
}
.SalesHotelOrder .SH_beizhuInner{
float:left;
width:85%;
}
.SalesHotelOrder .SH_OrderDan>div{
display:inline-block;
}
</style>
<template>
<div class="flexOne SalesHotelOrder">
<div class="query-box">
<ul>
<li>
<span><em>酒店订单号</em>
<el-input v-model='msg.ThirdOrderNo' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>入住开始时间</em>
<el-date-picker class="w150" type="date" v-model="msg.StartTime"
:picker-options="pickerBeginDateBefore" value-format="yyyy-MM-dd" placeholder></el-date-picker>
</span>
</li>
<li>
<span>
<em>入住结束时间</em>
<el-date-picker class="w150" type="date" v-model="msg.EndTime"
:picker-options="pickerBeginDateAfter" value-format="yyyy-MM-dd" placeholder></el-date-picker>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" @click="resetPageIndex();getList()" :value="$t('pub.searchBtn')" />
</li>
</ul>
</div>
<table class="SalesHotelOrderTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>订单号</th>
<th>客户信息</th>
<th>房间数</th>
<th>总价格</th>
<th>总收入</th>
<th>抵扣金额</th>
<th>优惠金额</th>
<th>待收金额</th>
<th>订单状态</th>
<th>创建时间</th>
<th>入住时间</th>
<th>离店时间</th>
<th>取消费用</th>
<!-- <th>操作</th> -->
</tr>
<tbody v-for="(item,index) in dataList">
<tr>
<td style="border-bottom:2px solid #333" rowspan="2">{{item.ThirdOrderNo}}</td>
<td>
<div>{{item.CustomerName}}</div>
<div>{{item.CustomerPhone}}</div>
</td>
<td>{{item.Number}}</td>
<td>{{item.TotalPrice}}</td>
<td>{{item.Income}}</td>
<td>{{item.RedEnvelopeMoney}}</td>
<td>{{item.DiscountMoney}}</td>
<td>{{item.DueinMoney}}</td>
<td>{{item.OrderStatus}}</td>
<td>{{item.CreateDateStr}}</td>
<td>{{item.CheckInStr}}</td>
<td>{{item.CheckOutStr}}</td>
<td>{{item.CancelFee}}</td>
<!-- <td>详情</td> -->
</tr>
<tr>
<td colspan="6" style="text-align:left;width:600px">
<div class="clearfix">
<div class="SH_beizhu" style="">
备注:
</div>
<div class="SH_beizhuInner">
{{item.Remark}}
</div>
</div>
</td>
<td colspan="6" style="text-align:left;width:600px">
<div class="SH_OrderDan">
<div>收款单据:</div>
<div>
<span v-for="subItem in item.FinanceList">
{{item.frID}}
</span>
<span v-if="item.FinanceList==0">暂无数据</span>
</div>
</div>
<div class="SH_OrderDan">
<div>付款单据:</div>
<div>
<span v-for="subItem in item.RefundFinanceList">
{{item.frID}}
</span>
<span v-if="item.RefundFinanceList==0">暂无数据</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<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>
</template>
<script>
export default {
data() {
return {
msg: {
pageIndex:1,
pageSize:10,
Source:-1,
ThirdOrderNo:'',
StartTime:'',
EndTime:'',
GetOrderType:0
},
total:0,
currentPage: 1,
loading:false,
pickerBeginDateBefore: {
disabledDate: time => {
if (this.msg.EndTime == null) {
return false;
} else {
let endTime = new Date(this.msg.EndTime)
return endTime.getTime() < time.getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.msg.StartTime)
return startTime.getTime() >= time.getTime()
}
},
dataList: [],
};
},
methods: {
getList() {
//获取现有线路列表
this.loading = true;
this.apipost(
"sellorder_post_GetJapanHotelOrderList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1
},
},
mounted() {
this.getList();
}
};
</script>
<style>
.SalesHotelOrder .SalesHotelOrderTable{
width: 100%;
min-width: 1500px;
font-size: 14px;
color: #333;
border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc;
border-collapse: collapse;
}
.SalesHotelOrder .SalesHotelOrderTable th{
background: #e6e6e6;
height: 30px;
font-size: 12px;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.SalesHotelOrder .SalesHotelOrderTable tr td{
height: 60px;
padding: 10px;
background-color: #fff;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.SalesHotelOrder .SalesHotelOrderTable tbody tr:last-child{
border-bottom:2px solid #333;
}
.SalesHotelOrder .SH_beizhu{
float:left;
}
.SalesHotelOrder .SH_beizhuInner{
float:left;
width:85%;
}
.SalesHotelOrder .SH_OrderDan>div{
display:inline-block;
}
</style>
<template>
<div class="flexOne SalesHotelOrder">
<div class="query-box">
<ul>
<li>
<span><em>酒店订单号</em>
<el-input v-model='msg.ThirdOrderNo' :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
<span>
<em>入住开始时间</em>
<el-date-picker class="w150" type="date" v-model="msg.StartTime"
:picker-options="pickerBeginDateBefore" value-format="yyyy-MM-dd" placeholder></el-date-picker>
</span>
</li>
<li>
<span>
<em>入住结束时间</em>
<el-date-picker class="w150" type="date" v-model="msg.EndTime"
:picker-options="pickerBeginDateAfter" value-format="yyyy-MM-dd" placeholder></el-date-picker>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" @click="resetPageIndex();getList()" :value="$t('pub.searchBtn')" />
</li>
</ul>
</div>
<table class="SalesHotelOrderTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th>订单号</th>
<th>客户信息</th>
<th>房间数</th>
<th>总价格</th>
<th>总收入</th>
<th>抵扣金额</th>
<th>优惠金额</th>
<th>待收金额</th>
<th>订单状态</th>
<th>创建时间</th>
<th>入住时间</th>
<th>离店时间</th>
<th>取消费用</th>
<!-- <th>操作</th> -->
</tr>
<tbody v-for="(item,index) in dataList">
<tr>
<td style="border-bottom:2px solid #333" rowspan="2">{{item.ThirdOrderNo}}</td>
<td>
<div>{{item.CustomerName}}</div>
<div>{{item.CustomerPhone}}</div>
</td>
<td>{{item.Number}}</td>
<td>{{item.TotalPrice}}</td>
<td>{{item.Income}}</td>
<td>{{item.RedEnvelopeMoney}}</td>
<td>{{item.DiscountMoney}}</td>
<td>{{item.DueinMoney}}</td>
<td>{{item.OrderStatus}}</td>
<td>{{item.CreateDateStr}}</td>
<td>{{item.CheckInStr}}</td>
<td>{{item.CheckOutStr}}</td>
<td>{{item.CancelFee}}</td>
<!-- <td>详情</td> -->
</tr>
<tr>
<td colspan="6" style="text-align:left;width:600px">
<div class="clearfix">
<div class="SH_beizhu" style="">
备注:
</div>
<div class="SH_beizhuInner">
{{item.Remark}}
</div>
</div>
</td>
<td colspan="6" style="text-align:left;width:600px">
<div class="SH_OrderDan">
<div>收款单据:</div>
<div>
<span v-for="subItem in item.FinanceList">
{{item}}
</span>
<span v-if="item.FinanceList==0">暂无数据</span>
</div>
</div>
<div class="SH_OrderDan">
<div>付款单据:</div>
<div>
<span v-for="subItem in item.RefundFinanceList">
{{item}}
</span>
<span v-if="item.RefundFinanceList==0">暂无数据</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<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>
</template>
<script>
export default {
data() {
return {
msg: {
pageIndex:1,
pageSize:10,
Source:-1,
ThirdOrderNo:'',
StartTime:'',
EndTime:'',
GetOrderType:1
},
total:0,
currentPage: 1,
loading:false,
pickerBeginDateBefore: {
disabledDate: time => {
if (this.msg.EndTime == null) {
return false;
} else {
let endTime = new Date(this.msg.EndTime)
return endTime.getTime() < time.getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.msg.StartTime)
return startTime.getTime() >= time.getTime()
}
},
dataList: [],
};
},
methods: {
getList() {
//获取现有线路列表
this.loading = true;
this.apipost(
"sellorder_post_GetJapanHotelOrderList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1
},
},
mounted() {
this.getList();
}
};
</script>
......@@ -169,7 +169,7 @@ input[type="number"] {
<td v-if="childIndex==0" :rowspan="subItem.TicketPriceList.length">
{{scenicTotalPrice(subItem, subItem.TicketPriceList)}}
</td>
<td v-if="childIndex==0" :rowspan="item.data.length*subItem.TicketPriceList.length">
<td v-if="childIndex==0 && subIndex ==0" :rowspan="item.data.length*subItem.TicketPriceList.length">
{{subItem.TradingTotalPrice}}
</td>
......@@ -299,7 +299,7 @@ input[type="number"] {
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
{{diningTotalPrice(subItem, subItem.DiningPriceList)}}
</td>
<td v-if="childIndex==0" :rowspan="item.data.length * subItem.DiningPriceList.length">{{subItem.TradingTotalPrice}}</td>
<td v-if="childIndex==0 && subIndex ==0" :rowspan="item.data.length * subItem.DiningPriceList.length">{{subItem.TradingTotalPrice}}</td>
<td v-if="childIndex==0" :rowspan="subItem.DiningPriceList.length">
{{subItem.Remarks}}
</td>
......@@ -402,7 +402,7 @@ input[type="number"] {
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
{{hotelTotalPrice(subItem.OrderDetailsList)}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length * item.data.length">{{subItem.TradingTotalPrice}}</td>
<td v-if="childIndex==0 && subIndex ==0" :rowspan="subItem.OrderDetailsList.length * item.data.length">{{subItem.TradingTotalPrice}}</td>
<td v-if="childIndex==0" :rowspan="subItem.OrderDetailsList.length">
{{subItem.Remarks}}
</td>
......@@ -962,8 +962,7 @@ export default {
}
}
this.DiningDataList = Diningdest
//票
console.log(res.data.data.ScenicList)
//票
let ScenicList = []
for(let i = 0; i < res.data.data.ScenicList.length; i++) {
for(let o = 0; o < res.data.data.ScenicList[i].ScenicStatisticsList.length; o++) {
......@@ -990,7 +989,7 @@ export default {
}
}
}
}
}
this.ScenicDataList = Scenicdest
//酒
let HotelList = []
......@@ -1009,18 +1008,17 @@ export default {
NewHotelId: ai.NewHotelId,
data: [ai]
});
Hotelmap[ai.CheckInDateStr] = ai;
}else{
Hotelmap[ai.CheckInDateStr] = ai;
}else{
for(var j = 0; j < Hoteldest.length; j++){
var dj = Hoteldest[j];
var dj = Hoteldest[j];
if(dj.CheckInDateStr == ai.CheckInDateStr && dj.NewHotelId == ai.NewHotelId){
dj.data.push(ai);
break;
}
}
}
}
console.log(HotelList)
}
this.HotelDataList = Hoteldest
} else {
this.$message.error(res.data.message);
......
......@@ -181,7 +181,8 @@ export default {
},
result: null,
orders: [],
pageLoading: false
pageLoading: false,
};
},
components: {
......
......@@ -4,6 +4,7 @@
<ul>
<li>
<input v-if="IsOperation !=1" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input style="display:none;" type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input v-if="IsOperation !=1" type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)" />
</li>
</ul>
......
<template>
<div class="inerank-container">
<div :style="{height:'100%',width:'100%'}" ref="myLineRank"></div>
</div>
</template>
<script>
export default {
props: {
newdata: {
type: Number,
default: 0
},
olddata: {
type: Number,
default: 0
},
colors:{
type:Array,
default:[]
},
title:{
type:String,
default:""
}
},
data() {
return {
placeHolderStyle: {
normal: {
color: "rgba(0,0,0,0)",
label: { show: false },
labelLine: { show: false }
},
emphasis: {
color: "rgba(0,0,0,0)"
}
}
};
},
mounted() {
this.init();
},
methods: {
init() {
let myChart = this.$echarts.init(this.$refs.myLineRank);
let dataAlias = ["今年", "去年"];
let data2 = [{
name:"今年",
value:this.newdata
}, {
name:"去年",
value:this.olddata,
itemStyle:this.placeHolderStyle
}];
let data3 = [{
name:"去年",
value:this.olddata
},{
name:"今年",
value:this.newdata,
itemStyle:this.placeHolderStyle
}];
let option = {
tooltip: {
show:false
},
graphic: [
{
type: "text",
left:'center',
top: "center",
style: {
text: this.title,
textAlign: "center",
fill: this.colors[0], //文字的颜色
fontSize: 16,
width: 120,
fontFamily: "pingfangR"
}
}
],
calculable: true,
series: [
{
// center: ["25%", "45%"],
name: "订单来源",
type: "pie",
radius: ["80%", "90%"],
hoverAnimation: false,
legendHoverLink:false,
tooltip:false,
startAngle:90,
itemStyle: {
emphasis: {
barBorderRadius: 30
},
normal: {
label: {
show: false
},
labelLine: {
show: false
},
color: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [
{ offset: 0, color: "#00BFF9" },
{ offset: 0.35, color: "#0067CC" },
{ offset: 1, color: "#0067CC" }
])
}
},
data: data2
},
{
// center: ["25%", "45%"],
name: "订单来源",
type: "pie",
radius: ["60%", "70%"],
hoverAnimation: false,
legendHoverLink:false,
tooltip:false,
startAngle:90,
itemStyle: {
emphasis: {
barBorderRadius: 30
},
normal: {
label: {
show: false
},
labelLine: {
show: false
},
color: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [
{ offset: 0, color: this.colors[1] },
{ offset: 0.35, color: this.colors[0] },
{ offset: 1, color: this.colors[0] }
])
}
},
data: data3
}
]
};
myChart.setOption(option);
}
}
};
</script>
<style>
.inerank-container {
height: 100%;
width: 100%;
}
</style>
<template>
<div class="inerank-container">
<div :style="{height:'100%',width:'100%'}" ref="myLineRank"></div>
</div>
</template>
<script>
export default {
props: {
data: {
type: Array,
default: []
}
},
data() {
return {};
},
mounted() {
this.init();
},
methods: {
init() {
let myChart = this.$echarts.init(this.$refs.myLineRank);
var dataAxis = [];
var data2 = [];
var data4 = [];
var data3 = [];
this.data.forEach(x => {
dataAxis.push(x.Month + "月");
data2.push(x.NowSaleMoney);
data4.push(x.NowSaleDueIn);
data3.push(x.NowSaleGuest);
});
let option = {
title: {
show: false
},
xAxis: {
data: dataAxis,
axisLabel: {
textStyle: {
color: "#DADADA",
fontSize: 12
},
margin: 10,
interval: 0,
show: true
},
type: "category",
axisTick: {
show: true
},
axisLine: {
show: true,
lineStyle: {
color: ["#12397C"]
}
}
},
yAxis: [
{
axisLine: {
show: true,
lineStyle: {
color: ["#12397C"]
}
},
axisTick: {
show: false
},
axisLabel: {
textStyle: {
color: "#DADADA",
fontSize: 12
},
show: true
},
splitLine: {
show: true,
lineStyle: {
color: ["#12397c4d"]
}
},
min:0,
name:"金额(元)",
type:"value"
},
{
axisLine: {
show: true,
lineStyle: {
color: ["#12397C"]
}
},
axisTick: {
show: false
},
axisLabel: {
textStyle: {
color: "#DADADA",
fontSize: 12
},
show: true
},
splitLine: {
show: true,
lineStyle: {
color: ["#12397c4d"]
}
},
min:0,
name:"收客数(人)",
type:"value"
}
],
grid: {
left: "68",
right: "60",
top: "50",
bottom: "30"
},
tooltip: {
trigger: "item",
axisPointer: {
type: "none",
snap: true,
label: {
backgroundColor: "#6a7985"
}
}
},
series: [
{
type: "bar",
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#4487F0" },
{ offset: 0.3, color: "#4487F0" },
{ offset: 1, color: "#B0D0F8" }
])
}
},
barWidth: 24,
data: data2,
yAxisIndex:0,
animationType: "scale",
animationEasing: "elasticOut",
animationDelay: function(idx) {
return Math.random() * 200;
}
},
{
type: "bar",
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: "#FD3C7C" },
{ offset: 0.5, color: "#FD3C7C" },
{ offset: 1, color: "#FFABC7" }
])
}
},
barWidth: 24,
data: data4,
yAxisIndex:0,
animationType: "scale",
animationEasing: "elasticOut",
animationDelay: function(idx) {
return Math.random() * 200;
}
},
{
type: "line",
smooth: true,
symbol:'circle',
symbolSize : 5,
yAxisIndex:1,
// left: "0",
itemStyle: {
normal: {
lineStyle: {
color: "#FFB822"
},
color: "#FFB822"
}
},
data: data3
}
]
};
myChart.setOption(option);
}
}
};
</script>
<style>
.inerank-container {
height: 100%;
width: 100%;
}
</style>
......@@ -31,7 +31,6 @@ export default {
data2.push(t)
}
})
console.log(dataAlias)
let option = {
tooltip: {
trigger: "item",
......
......@@ -157,7 +157,7 @@ export default {
.inerank-container .h-title {
position: absolute;
left: 0%;
bottom: 14px;
bottom: 10px;
font-size: 12px;
color: #46c3f1;
text-align: center;
......
......@@ -1710,6 +1710,14 @@ export default {
title: '团队收支'
},
}, {
path: '/OpHotelOrder', //操作 散卖酒店订单
name: 'OpHotelOrder',
component: resolve => require(['@/components/TravelManager/TravelList/OpHotelOrder'], resolve),
meta: {
title: '散卖酒店订单'
},
},{
path: '/AmoebaDetail', //阿米巴结算详情
name: 'AmoebaDetail',
component: resolve => require(['@/components/TravelManager/TravelList/AmoebaDetail'], resolve),
......@@ -2219,7 +2227,14 @@ export default {
title: '散卖机票订单'
},
},
{ //销售 散卖酒店订单
path: '/salesHotelOrder',
name: 'salesHotelOrder',
component: resolve => require(['@/components/SalesModule/salesHotelOrder'], resolve),
meta: {
title: '散卖酒店订单'
},
},
{ // 销售 报名统计
path: '/enrollTotal',
name: 'enrollTotal',
......
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