Commit 2d84b799 authored by 黄媛媛's avatar 黄媛媛
parents 721a4c40 ea07231f
......@@ -7,39 +7,71 @@
<div class="clearfix"></div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th width="600px">问题名称</th>
<th>类型</th>
<th>排序</th>
<th>是否显示</th>
<th width="120px">操作</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Title}}</td>
<td>{{getTypeName(item.SurveyType)}}</td>
<td>
{{item.Sort}}
</td>
<td>
{{item.IsShow === 1 ? '显示' : '不显示'}}
</td>
<td>
asd
</td>
<th>日期</th>
<th>酒店名</th>
<th>房间类型</th>
<th>数量</th>
<th>单价/人</th>
<th>金额小计</th>
<th>支付方式</th>
<th>币种</th>
<th>备注</th>
</tr>
<template v-for='(item,index) in dataList'>
<!-- <template v-for="(subItem,subIndex) in item.ScenicStatisticsList"> -->
<tr v-for="(childItem,childIndex) in item.ReimburseList.ReimburseDetailsList">
<td v-if="childIndex==0" :rowspan="item.ReimburseList.ReimburseDetailsList.length">{{item.CheckInDateStr}}</td>
<td v-if="childIndex==0" :rowspan="item.ReimburseList.ReimburseDetailsList.length">
{{item.HotelName}}
</td>
<td>
{{childItem.UserTypeStr}}
</td>
<td>{{childItem.UserNum}}</td>
<td>
<p>
{{item.PayStyle === 1 ? moneyFormat(childItem.UnitPrice) : 0}}
</p>
</td>
<td>
{{moneyFormat(childItem.UnitPrice*childItem.UserNum)}}
</td>
<td v-if="childIndex==0" :rowspan="item.ReimburseList.ReimburseDetailsList.length">
<span v-if="item.PayStyle === 1">现付</span>
<span v-else-if="item.PayStyle === 2">公司结算</span>
<span v-else-if="item.PayStyle === 3">预付</span>
<span v-else-if="item.PayStyle === 6">公司合团支付</span>
<span v-else></span>
</br>
<span v-show="item.PayStyle==6">付款团号:{{item.PayTypeTCNUM}}</span>
</td>
<td v-if="childIndex==0" :rowspan="item.ReimburseList.ReimburseDetailsList.length">
{{getCurrencyStr(item.ReimburseList.CurrencyId)}}
</td>
<td v-if="childIndex==0" :rowspan="item.ReimburseList.ReimburseDetailsList.length">
{{item.ReimburseList.Remarks}}
</td>
</tr>
<!-- </template> -->
</template>
</table>
<div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
loading: true,
dataList: [],
currencyList: [],
};
},created(){
this.apipost("financeinfo_post_GetList", {Name: ""}, res=>{
if (res.data.resultCode === 1) {
let data = res.data.data;
this.currencyList = data
}
}, null)
},
mounted() {
let TCIDs = this.$route.query.TCIDs;
......@@ -48,9 +80,16 @@ export default {
},
filters: {},
methods: {
methods: {
getCurrencyStr: function(id){
for(let i = 0; i < this.currencyList.length; i++) {
if (this.currencyList[i].ID == id) {
return this.currencyList[i].Name
}
}
},
//获取数据
getList(TCIDs) {
getList(TCIDs, date) {
this.loading = true;
this.apipost(
"dmcstatistics_post_GetNewLeaderPayMoneyStatics",
......@@ -58,7 +97,18 @@ export default {
res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.dataList = res.data.data;
let data = res.data.data.HotelList;
let dataList = [];
if(date!=='all') {
data.map(x=>{
if (x.CheckInDateStr == date){
dataList.push(x)
}
})
} else {
dataList = data
}
this.dataList = dataList;
} else {
this.Error(res.data.message);
}
......
......@@ -2,55 +2,94 @@
</style>
<template>
<div class="flexOne leaderPayTicketDetail">
<div class="flexOne leaderPayHotelDetail">
<div class="clearfix"></div>
<table class="singeRowTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading">
<tr>
<th width="600px">问题名称</th>
<th>类型</th>
<th>排序</th>
<th>是否显示</th>
<th width="120px">操作</th>
</tr>
<tr v-for="item in dataList">
<td>{{item.Title}}</td>
<td>{{getTypeName(item.SurveyType)}}</td>
<td>
{{item.Sort}}
</td>
<td>
{{item.IsShow === 1 ? '显示' : '不显示'}}
</td>
<td>
asd
</td>
<th>日期</th>
<th>景点名</th>
<th>门票类型</th>
<th>数量</th>
<th>单价/人</th>
<th>金额小计</th>
<th>支付方式</th>
<th>币种</th>
<th>备注</th>
</tr>
<template v-for='(item,index) in dataList'>
<template v-for="(subItem,subIndex) in item.ScenicStatisticsList">
<tr v-for="(childItem,childIndex) in subItem.ReimburseList.ReimburseDetailsList">
<td v-if="childIndex==0" :rowspan="subItem.ReimburseList.ReimburseDetailsList.length">{{item.UseTimeStr}}</td>
<td v-if="childIndex==0" :rowspan="subItem.ReimburseList.ReimburseDetailsList.length">
{{subItem.ScenicName}}
</td>
<td>
{{childItem.UserTypeStr}}
</td>
<td>{{childItem.UserNum}}</td>
<td>
<p>
{{subItem.PayStyle === 1 ? moneyFormat(childItem.UnitPrice) : 0}}
</p>
</td>
<td>
{{moneyFormat(childItem.UnitPrice*childItem.UserNum)}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.ReimburseList.ReimburseDetailsList.length">
<span v-if="subItem.PayStyle === 1">现付</span>
<span v-else-if="subItem.PayStyle === 2">公司结算</span>
<span v-else-if="subItem.PayStyle === 3">预付</span>
<span v-else-if="subItem.PayStyle === 6">公司合团支付</span>
<span v-else></span>
</br>
<span v-show="subItem.PayStyle==6">付款团号:{{subItem.PayTypeTCNUM}}</span>
</td>
<td v-if="childIndex==0" :rowspan="subItem.ReimburseList.ReimburseDetailsList.length">
{{getCurrencyStr(subItem.ReimburseList.CurrencyId)}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.ReimburseList.ReimburseDetailsList.length">
{{subItem.ReimburseList.Remarks}}
</td>
</tr>
</template>
</template>
</table>
<div class="noDataNotice" v-if="dataList.length<1">
<i class="iconfont icon-kong"></i>
<p>{{$t("active.ld_noData")}}</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
loading: true,
dataList: [],
currencyList: [],
};
},
mounted() {
let TCIDs = this.$route.query.TCIDs;
let date = this.$route.query.date;
this.getList(TCIDs, date);
},created(){
this.apipost("financeinfo_post_GetList", {Name: ""}, res=>{
if (res.data.resultCode === 1) {
let data = res.data.data;
this.currencyList = data
}
}, null)
},
filters: {},
methods: {
methods: {
getCurrencyStr: function(id){
for(let i = 0; i < this.currencyList.length; i++) {
if (this.currencyList[i].ID == id) {
return this.currencyList[i].Name
}
}
},
//获取数据
getList() {
getList(TCIDs, date) {
this.loading = true;
this.apipost(
"dmcstatistics_post_GetNewLeaderPayMoneyStatics",
......@@ -58,7 +97,18 @@ export default {
res => {
this.loading = false;
if (res.data.resultCode === 1) {
this.dataList = res.data.data;
let data = res.data.data.ScenicList;
let dataList = [];
if(date!=='all') {
data.map(x=>{
if (x.UseTimeStr == date){
dataList.push(x)
}
})
} else {
dataList = data
}
this.dataList = dataList;
} else {
this.Error(res.data.message);
}
......
......@@ -511,13 +511,17 @@ input[type="number"] {
<td>自费支出</td>
<td>0</td>
<td>{{moneyFormat(totalList.SelfPayingExpendTotalPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('zifeizhi')">明细</span></td>
<td>
<!-- <span class="cursorpointer text-decoratio" @click="godetailAll('zifeizhi')">明细</span> -->
</td>
</tr>
<tr v-show="totalList.SelfPayingIncomeTotalPrice>0">
<td>自费收入</td>
<td>0</td>
<td>{{moneyFormat(totalList.SelfPayingIncomeTotalPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('zifeishou')">明细</span></td>
<td>
<!-- <span class="cursorpointer text-decoratio" @click="godetailAll('zifeishou')">明细</span> -->
</td>
</tr>
<!-- <tr v-show="totalList.IncomeTotalPrice>0">
<td>消费收入</td>
......@@ -529,13 +533,15 @@ input[type="number"] {
<td>其他费用</td>
<td>0</td>
<td>{{moneyFormat(totalList.ExpendTotalPrice-totalScenicPrice-totalTrafficPrice-totalDinnerPrice-totalHotelPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('qitafeiyong')">明细</span></td>
<td>
<!-- <span class="cursorpointer text-decoratio" @click="godetailAll('qitafeiyong')">明细</span> -->
</td>
</tr>
<tr v-show="totalScenicPrice>0">
<td>景点门票</td>
<td>{{moneyFormat(OtherTotalPrice)}}</td>
<td>{{moneyFormat(totalScenicPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('ticket', childItem)">明细</span></td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('ticket')">明细</span></td>
<!-- <td>
<el-input
size="mini"
......@@ -548,7 +554,7 @@ input[type="number"] {
<td>交通</td>
<td>{{moneyFormat(SelfPayingExpendTotalPrice)}}</td>
<td>{{moneyFormat(totalTrafficPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('bus', childItem)">明细</span></td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('bus')">明细</span></td>
<!-- <td>
<el-input
size="mini"
......@@ -561,7 +567,7 @@ input[type="number"] {
<td>餐饮</td>
<td>{{moneyFormat(IncomeTotalPrice)}}</td>
<td>{{moneyFormat(totalDinnerPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('dining', childItem)">明细</span></td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('dining')">明细</span></td>
<!-- <td>
<el-input
size="mini"
......@@ -574,7 +580,7 @@ input[type="number"] {
<td>酒店</td>
<td>{{moneyFormat(ExpendTotalPrice)}}</td>
<td>{{moneyFormat(totalHotelPrice)}}</td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('hotel', childItem)">明细</span></td>
<td><span class="cursorpointer text-decoratio" @click="godetailAll('hotel')">明细</span></td>
<!-- <td>
<el-input
size="mini"
......@@ -937,8 +943,8 @@ export default {
},
methods: {
// 全部明细
godetailAll: function (){
godetailAll: function (name){
this.godetail(name)
},
// 明细
godetail: function (name, obj) {
......@@ -946,7 +952,7 @@ export default {
let path = "", TCIDs = this.msg.TCIDs, date = '';
if (name == 'ticket') {
path = 'leaderPayTicketDetail'
date = obj.UseTimeStr
date = obj ? obj.UseTimeStr : 'all'
} else if (name === 'bus') {
path="CarDetails"
TCIDs=obj.TCIDs;
......@@ -959,7 +965,7 @@ export default {
} else if (name === 'hotel') {
path = 'leaderPayHotelDetail'
date = obj.CheckInDateStr
date = obj ? obj.CheckInDateStr : 'all'
}
let fullPath = `/${path}?TCIDs=${TCIDs}&date=${date}`;
let dom = document.querySelector("#blankLink");
......
<style>
.hotelKb .hotel_box {
display: flex;
flex-wrap: wrap;
position: relative;
padding: 20px;
/* min-height: 500px; */
}
.hotelKb .hotel_item {
width: 120px;
height: 120px;
border-radius: 4px;
margin: 10px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.hotelKb .hotel_item img {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
}
.hotelKb .hotel_item_info {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, 0.5);
}
.hotelKb .el-input__icon {
line-height: 34px;
}
.hotelKb .hotel_item_info_name {
font-size: 12px;
padding: 13px 14px;
color: white;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.hotelKb .icon-xiaoliangyuce {
color: #ffffff;
opacity: 0.65;
font-size: 16px;
padding-right: 10px;
}
.hotelKb .RemainingInventory {
font-size: 28px;
color: white;
}
.hotelKb .hotel_item_info_chuang {
position: absolute;
bottom: 10px;
width: 100%;
text-align: right;
padding-right: 14px;
}
.hotelKb .hotel_item_info_warning {
background-color: #e95252;
}
.hotelKb .time .el-input--prefix .el-input__inner {
padding-left: 30px;
}
.hotelKb .query-box li label {
display: inline-block;
min-width: 80px;
text-align: right;
font-style: normal;
margin: 0 20px 0 0;
}
/* 日期样式开始 */
.hotelKb #calendar {
width: 639px;
height: 345px;
margin: 0 auto;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.1),
0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.hotelKb .month ul {
margin: 0;
padding: 0;
justify-content: space-between;
}
.hotelKb .year-month {
flex-direction: column;
align-items: center;
justify-content: space-around;
}
.hotelKb .year-month > input {
width: 100px;
float: left;
}
.hotelKb .arrow {
padding: 10px;
font-style: normal;
cursor: pointer;
}
.hotelKb .monthminus {
position: absolute;
left: 15px;
top: 13px;
}
.hotelKb .monthadd {
position: absolute;
right: 21px;
top: 13px;
}
.hotelKb .month ul li:first-child {
margin-left: 180px;
}
.hotelKb .month ul li {
font-size: 12px;
position: relative;
text-transform: uppercase;
float: left;
letter-spacing: 3px;
}
.hotelKb .month ul li > input {
padding-left: 10px;
text-align: center;
margin: 20px 10px 20px;
}
.hotelKb .weekdays {
margin: 0;
padding: 3px 0;
background-color: #13b0ae;
display: flex;
width: 645px;
flex-wrap: wrap;
color: #fff;
justify-content: space-around;
}
.hotelKb .weekdays li {
display: inline-block;
width: 13.6%;
text-align: center;
}
.hotelKb .days {
/* width: 500px; */
padding: 0;
margin: 0;
border-left: 1px solid #dddddd;
/* display: flex; */
flex-wrap: wrap;
justify-content: space-around;
}
.hotelKb .days li {
list-style-type: none;
width: 91px;
height: 70px;
text-align: center;
position: relative;
font-size: 12px;
cursor: pointer;
float: left;
font-size: 1rem;
color: #000;
border-right: 1px solid #dddddd;
border-bottom: 1px solid #dddddd;
}
.hotelKb .month ul li > input {
padding-left: 10px;
text-align: center;
margin: 20px 10px 20px;
}
.hotelKb .currentInput {
width: 120px;
height: 30px;
border-radius: 17px;
outline: none;
border: none;
margin-top: 20px;
border: 1px solid #dcdfe6;
}
.hotelKb .days li .other-month {
display: inline-block;
position: absolute;
right: 0;
bottom: 0;
width: 24px;
height: 17px;
font-size: 12px;
line-height: 17px;
background-color: #cccccc;
color: #fff;
}
.hotelKb .addCompany {
width: 700px;
}
.hotelKb .ckStyle {
position: absolute;
display: inline-block;
width: 24px;
height: 17px;
font-size: 12px;
line-height: 17px;
bottom: 0;
right: 0;
background-color: #777777;
color: #fff;
}
.hotelKb .el-dialog--center .el-dialog__body {
padding-top: 0;
}
.HB_Inventor {
display: block;
text-align: left;
padding-left: 3px;
}
.HB_Inventor > span {
display: block;
font-size: 12px;
height: 14px;
margin-bottom: 3px;
}
.hotelKb .Used_room {
color: #13b0ae;
}
/* 日期样式结束*/
/* 日期样式开始 */
.scenicSpotSalesBoard .month ul {
border-radius: 4px 4px 0 0;
width: 100%;
height: 50px;
line-height: 50px;
background: #e95252;
margin: 0;
padding: 0;
text-align: center;
}
.scenicSpotSalesBoard .year-month {
flex-direction: column;
align-items: center;
justify-content: space-around;
}
.scenicSpotSalesBoard .year-month>input {
width: 100px;
float: left;
}
.scenicSpotSalesBoard .arrow {
padding: 10px;
font-style: normal;
cursor: pointer;
}
.scenicSpotSalesBoard .monthminus {
position: absolute;
left: 0px;
top: 15px;
}
.scenicSpotSalesBoard .monthadd {
position: absolute;
right: 21px;
top: 15px;
}
.scenicSpotSalesBoard .month ul li {
font-size: 18px;
color: #fff;
position: relative;
display: inline-block;
letter-spacing: 3px;
}
.scenicSpotSalesBoard .month ul li i {
font-size: 22px;
color: #ff7e7e;
cursor: pointer;
}
.scenicSpotSalesBoard .month ul li>input {
text-align: center;
}
.scenicSpotSalesBoard .weekdays {
margin: 0;
padding: 3px 0;
background-color: #3fa783;
display: flex;
width: 100%;
flex-wrap: wrap;
color: #fff;
justify-content: space-around;
}
.scenicSpotSalesBoard .weekdays li {
display: inline-block;
width: 14.2857%;
text-align: center;
}
.scenicSpotSalesBoard .days {
width: 100%;
padding: 0;
margin: 0;
border-left: 1px solid #dddddd;
flex-wrap: wrap;
box-sizing: border-box;
justify-content: space-around;
}
.scenicSpotSalesBoard .days>li {
list-style-type: none;
width: 14.2857%;
height: 140px;
text-align: center;
position: relative;
font-size: 12px;
float: left;
color: #000;
box-sizing: border-box;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
.scenicSpotSalesBoard .days li>div {
height: 112px;
width: 100%;
overflow-y: auto;
text-align: left;
}
.scenicSpotSalesBoard .days li>div>p {
border-bottom: 1px dashed #ccc;
height: 28px;
line-height: 28px;
width: 100%;
text-indent: 10px;
}
.scenicSpotSalesBoard .currentInput {
width: 120px;
height: 30px;
border-radius: 17px;
outline: none;
border: none;
color: #fff;
background: transparent;
font-size: 18px;
}
.scenicSpotSalesBoard .days li .other-month {
display: inline-block;
position: absolute;
right: 0;
bottom: 0;
width: 24px;
height: 17px;
font-size: 12px;
line-height: 17px;
background-color: #cccccc;
color: #fff;
}
.scenicSpotSalesBoard .ckStyle {
width: 100%;
height: 28px;
line-height: 28px;
text-align: center;
font-size: 14px;
font-weight: bold;
background: #ccc;
color: #000;
}
.scenicSpotSalesBoard .ckStyleOther {
background: #dddddd !important;
font-weight: normal !important;
color: #999;
}
.scenicSpotSalesBoard .Owe_Room {
color: #e95252;
}
.scenicSpotSalesBoard .Used_room {
color: #13b0ae;
}
.scenicSpotSalesBoard .otherMoth {
background: #f2f2f2;
}
.scenicSpotSalesBoard .title {
height: 14px;
line-height: 14px;
border-left: 3px solid #e95252;
font-size: 16px;
color: #333;
text-indent: 10px;
margin: 20px 0;
}
.scenicSpotSalesBoard .hasStock_1 {
color: #FFFFFF;
background-color: #ff3737;
}
.scenicSpotSalesBoard .hasStock_2 {
background-color: #ff99cc;
}
.scenicSpotSalesBoard .hasStock_3 {
background-color: #bcd6ee;
}
.scenicSpotSalesBoard .hasStock_4 {
background-color: #ffffff;
}
/* 日期样式结束*/
</style>
<template>
<div class="flexOne hotelKb">
<div class="query-box">
<div class="flexOne scenicSpotSalesBoard">
<div class="query-box Plan_Query">
<ul>
<li>
<label class="">{{$t('system.quety_area')}}</label>
<el-select v-model="msg.Country" clearable filterable @change="getProvinceList(msg.Country,1)" :placeholder="$t('system.table_country')">
<el-option :label="$t('pub.unlimitedSel')" value=''></el-option>
<el-option v-for='item in countryList' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<el-select v-model="msg.Province" filterable @change="getProvinceList(msg.Province,2)" :placeholder="$t('hotel.hotel_province')">
<el-option v-for='item in provinceList' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<el-select v-model="msg.City" filterable @change="getProvinceList(msg.City,3)" :placeholder="$t('hotel.hotel_city')">
<el-option v-for='item in cityList' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<el-select v-model="msg.District" filterable :placeholder="$t('hotel.hotel_area')">
<el-option v-for='item in district' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<span>
<em>景点</em>
<el-select v-model="msg.CouponsId" :placeholder="$t('pub.pleaseSel')" filterable>
<el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option>
<el-option v-for="item in ScenicList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</span>
</li>
<li class='time'>
<div class="block">
<label class="demonstration">{{$t('pub.yearMonth')}}</label>
<el-date-picker v-model="nowYearMonth" type="month" :clearable=false :editable=false placeholder="选择年月"
format="yyyy-MM" value-format="yyyy-MM" @change="getMonthYear">
</el-date-picker>
</div>
<li style="margin-right:50px;">
<button class="normalBtn" type="button" @click="GetHoltelInventory()">{{$t('pub.searchBtn')}}</button>
<button class="normalBtn" type="button" @click="DownLoadDinnerSalesBoard()" >下载</button>
</li>
<li class='time'>
<div class="block">
<label class="demonstration">预约方式</label>
<el-select v-model="msg.AppointmentStyle" filterable :placeholder="$t('hotel.hotel_area')">
<el-option :label="$t('pub.unlimitedSel')" :value='msg.SelectDefaultValue'></el-option>
<el-option label="预约" :value='1'>
</el-option>
</el-select>
</div>
</ul>
</div>
<div class="title" style="display:none;">
门票统计 共
<span class="Owe_Room"></span>
</div>
<div class="month">
<ul>
<li>
<i class="el-icon-caret-left monthminus" @click="currentYear-=1,getDateString(),initCalendar(dateString)"></i>
<input type="text" disabled="disabled" v-model="currentYear" class="currentInput"
@input="getDateString(),initCalendar(dateString)">
<i class="el-icon-caret-right monthadd" @click="currentYear+=1,getDateString(),initCalendar(dateString)"></i>
</li>
<li>
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')" @click="getList()" />
<input type="button" class="normalBtn" :value="$t('hotel.hotel_dataReport')" @click="goData('HotelDataStatistics')" />
<i class="el-icon-caret-left monthminus" @click="pickPre(currentYear,currentMonth)"></i>
<input type="text" disabled="disabled" v-model="currentMonth" class="currentInput"
@input="getDateString(),initCalendar(dateString)">
<i class="el-icon-caret-right monthadd" @click="pickNext(currentYear,currentMonth)"></i>
</li>
</ul>
</div>
<div class="hotel_box" v-loading="msg.loading">
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
<div class="hotel_item" v-for="item in DataList" @click="GetRestaurantInventory(item.CouponsId),DiningName=item.DiningName" :key="item.subCode">
<img :src="item.PicPath">
<div class="hotel_item_info" :class="item.warning? 'hotel_item_info_warning':''">
<p class="hotel_item_info_name">{{item.CouponsName}}</p>
<p class="hotel_item_info_chuang"><span class='iconfont icon-xiaoliangyuce'></span><span class='RemainingInventory'>{{item.UseAccount}}</span></p>
<ul class="weekdays">
<li>{{$t('hotel.hotel_Monday')}}</li>
<li>{{$t('hotel.hotel_Tuesday')}}</li>
<li>{{$t('hotel.hotel_Wednesday')}}</li>
<li>{{$t('hotel.hotel_Thursday')}}</li>
<li>{{$t('hotel.hotel_Friday')}}</li>
<li>{{$t('hotel.hotel_Saturday')}}</li>
<li>{{$t('hotel.hotel_Sunday')}}</li>
</ul>
<ul class="days clearfix" v-loading="msg.loading">
<li v-for="(dayItem,index) in days" :key="dayItem.index">
<p class="ckStyle" :class="{ckStyleOther:dayItem.day.getMonth()+1 != currentMonth}">{{dayItem.day.getDate()}}
</p>
<div>
<p v-for="item in dayItem.dayValue">
<span class="text_underLine">{{item.TicketName}}{{item.TicketNum}}</span>
</p>
</div>
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage" layout="total,prev, pager, next, jumper"
:page-size="msg.pageSize" :total="msg.total">
</el-pagination>
<el-dialog custom-class='addCompany' title="日期" :visible.sync="outerVisible" center>
<div class="priceDate" id="DayAll">
<div class="month">
<ul>
<li>
<i class="arrow monthminus" @click="currentYear-=1,getDateString(),initCalendar(dateString)"></i>
<input type="text" v-model="currentYear" class="currentInput" @input="getDateString(),initCalendar(dateString)" />
<i class="arrow monthadd" @click="currentYear+=1,getDateString(),initCalendar(dateString)"></i>
</li>
<li>
<i class="arrow monthminus" @click="pickPre(currentYear,currentMonth)"></i>
<input type="text" v-model="currentMonth" class="currentInput" @input="getDateString(),initCalendar(dateString)" />
<i class="arrow monthadd" @click="pickNext(currentYear,currentMonth)"></i>
</li>
</ul>
</div>
<!-- 星期 -->
<ul class="weekdays">
<li>{{$t('hotel.hotel_Monday')}}</li>
<li>{{$t('hotel.hotel_Tuesday')}}</li>
<li>{{$t('hotel.hotel_Wednesday')}}</li>
<li>{{$t('hotel.hotel_Thursday')}}</li>
<li>{{$t('hotel.hotel_Friday')}}</li>
<li>{{$t('hotel.hotel_Saturday')}}</li>
<li>{{$t('hotel.hotel_Sunday')}}</li>
</ul>
<!-- 日期 -->
<ul class="days clearfix">
<li @click="goUrl(dayobject)" v-for="(dayobject,index) in days"
:key="dayobject.subCode">
<span v-if="dayobject.day.getMonth()+1 != currentMonth" class="other-month">{{
dayobject.day.getDate()}}</span>
<span class="ckStyle" v-else>
{{dayobject.day.getDate()}}
</span>
<span class="HB_Inventor">
<span>使用:<span class="Used_room">{{dayobject.UseAccount}}</span></span>
</span>
</li>
</ul>
</div>
</el-dialog>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
pageIndex: 1,
pageSize: 30,
Country: "",
Province: "",
City: "",
District: "",
Year: new Date().Format("yyyy"),
Month: new Date().Format("MM"),
total: 0,
currentPage: 1,
loading: true,
//下拉框默认值
SelectDefaultValue: -1,
//预约方式
AppointmentStyle: -1
export default {
data() {
return {
msg: {
Year: 0,
Month: 0,
CouponsId: 0,
loading: false
},
//餐厅列表
ScenicList: [],
defaultSelectValue: 0,
currentDay: 1,
currentMonth: 1,
currentYear: 1970,
currentWeek: 1,
days: [],
//每天的门票库存
DayData: [],
};
},
methods: {
stockColor: function (type) {
if (type === 1) {
return 'hasStock_1'
} else if (type === 2) {
return 'hasStock_2'
} else if (type === 3) {
return 'hasStock_3'
} else if (type === 4) {
return 'hasStock_4'
}
},
//格式化日期
getDateString: function () {
this.dateString = this.$calendarUtils.formatDate(
this.currentYear,
this.currentMonth,
1
);
this.GetHoltelInventory();
},
nowYearMonth: new Date(),
DataList: [],
countryList: "",
provinceList: "",
cityList: "",
district: "",
noData: false,
outerVisible: false,
currentDay: 1,
currentMonth: 1,
currentYear: 1970,
currentWeek: 1,
days: [],
//每天的酒店库存
DayData: [],
CouponsId: 0,
DiningName: ""
};
},
methods: {
getList() {
this.msg.loading = true;
this.apipost(
"ticketcouponsprice_get_ScenicSaleBoard",
this.msg,
res => {
this.msg.loading = false;
if (res.data.resultCode == 1) {
var tempData = res.data.data.pageData;
this.msg.total = res.data.data.count;
tempData.forEach(x => {
if (x.UseAccount < 15) {
x.warning = true;
initCalendar: function (cur) {
var newDays = this.$calendarUtils.createCalendar(cur);
this.currentDay = newDays.CurrentDay;
this.currentYear = newDays.CurrentYear;
this.currentMonth = newDays.CurrentMonth;
this.currentWeek = newDays.CurrentWeek;
this.days.length = 0;
var dateArray = newDays.DayArray;
for (var i = 0; i < dateArray.length; i++) {
var d = dateArray[i].day;
var dayobject = {};
dayobject.day = d;
this.days.push(dayobject);
}
},
//点击左箭头切换年月
pickPre: function (year, month) {
var d = new Date(this.$calendarUtils.formatDate(year, month, 1));
d.setDate(0);
this.nowDate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-1";
this.initCalendar(
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
);
this.GetHoltelInventory();
},
//点击右箭头切换年月
pickNext: function (year, month) {
var d = new Date(this.$calendarUtils.formatDate(year, month, 1));
d.setDate(35);
this.nowDate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-1";
this.initCalendar(
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
);
this.GetHoltelInventory();
},
//点击获取酒店库存数据
GetHoltelInventory() {
this.msg.loading = true;
var that = this;
this.msg.Year = this.currentYear;
this.msg.Month = this.currentMonth;
this.DayData=[];
this.apipost(
"ticketcouponsorder_post_GetScenicMonthStatistics",
this.msg,
res => {
this.msg.loading = false;
this.DayData = res.data.data;
this.days.forEach(dayItem => {
let d = dayItem.day;
let myDate = this.$calendarUtils.formatDate(
d.getFullYear(),
d.getMonth() + 1,
d.getDate()
);
dayItem.dayValue=[];
for (var j = 0; j < this.DayData.length; j++) {
if (this.DayData[j].Day == myDate) {
dayItem.dayValue = this.DayData[j].SubList;
}
}
});
this.DataList = tempData;
this.noData = !this.msg.total > 0;
}
},
err => {}
);
},
getProvinceList(ID, type) {
//根据省份获取城市
let msg = {
Id: ID
};
if (type == 1) {
this.msg.Province = "";
this.msg.City = "";
this.msg.District = "";
this.provinceList = [];
this.cityList = [];
} else if (type == 2) {
this.msg.City = "";
this.msg.District = "";
this.cityList = [];
} else if (type == 3) {
this.msg.District = "";
}
if (this.msg.Country !== "") {
this.$forceUpdate();
},
err => {}
);
},
//获取酒店列表
GetScenicList() {
this.apipost(
"dict_post_Destination_GetChildList",
msg,
"ticketcoupons_post_GetList", {QCountry:651},
res => {
if (type == 1) {
this.provinceList = res.data.data;
} else if (type == 2) {
this.cityList = res.data.data;
} else if (type == 3) {
this.district = res.data.data;
if (res.data.resultCode == 1) {
this.ScenicList = res.data.data;
}
},
err => {}
);
}
},
//获取国家
getCountryList() {
this.apipost(
"dict_post_Destination_GetCountry",
{},
res => {
this.countryList = res.data.data;
},
err => {}
);
},
//查询初始化页码
resetPageIndex() {
this.msg.pageIndex = 1;
this.msg.currentPage = 1;
},
//翻页功能按钮
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
getMonthYear() {
let newMonthYear = this.nowYearMonth.split("-");
let nums = [];
for (var i = 0; i < newMonthYear.length; i++) {
nums.push(parseInt(newMonthYear[i]));
}
this.msg.Year = nums[0].toString();
this.msg.Month = nums[1].toString();
},
goData(path) {
this.$router.push({
path: path
});
},
//跳转订单
goUrl(dayItem) {
this.$router.push({
path: "scenicSpotInfo",
query: {
id: dayItem.CouponsId,
date: dayItem.UseTime,
blank: 'y',
tab: '景点详情'
},
//下载餐厅统计
DownLoadDinnerSalesBoard() {
if (this.msg.CouponsId <= 0) {
this.Info("请选择景点!");
return;
}
});
},
getDateString: function() {
this.dateString = this.$calendarUtils.formatDate(
this.currentYear,
this.currentMonth,
1
);
this.checkDays();
},
initCalendar: function(cur) {
var newDays = this.$calendarUtils.createCalendar(cur);
this.currentDay = newDays.CurrentDay;
this.currentYear = newDays.CurrentYear;
this.currentMonth = newDays.CurrentMonth;
this.currentWeek = newDays.CurrentWeek;
this.days.length = 0;
var dateArray = newDays.DayArray;
for (var i = 0; i < dateArray.length; i++) {
var d = dateArray[i].day;
var dayobject = {};
dayobject.day = d;
this.days.push(dayobject);
this.msg.loading = true;
let fileName = "门票下载" + this.$commonUtils.getCurrentDate() + ".xls";
this.GetLocalFile("ticketcouponsorder_post_DownLoadScenicMonthStatistics", this.msg, fileName,
res => {
this.msg.loading = false;
});
}
},
//点击左箭头切换年月
pickPre: function(year, month) {
var d = new Date(this.$calendarUtils.formatDate(year, month, 1));
d.setDate(0);
this.nowDate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-1";
this.initCalendar(
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
);
this.checkDays();
},
//点击右箭头切换年月
pickNext: function(year, month) {
var d = new Date(this.$calendarUtils.formatDate(year, month, 1));
d.setDate(35);
this.nowDate = d.getFullYear() + "-" + (d.getMonth() + 1) + "-1";
this.initCalendar(
this.$calendarUtils.formatDate(d.getFullYear(), d.getMonth() + 1, 1)
);
this.checkDays();
},
//点击获取餐厅库存数据
GetRestaurantInventory(CouponsId) {
this.outerVisible = true;
this.CouponsId = CouponsId;
this.apipost(
"ticketcouponsprice_get_GetScenicStatistics",
{
CouponsId: this.CouponsId,
Year: this.currentYear,
Month: this.currentMonth
},
res => {
this.DayData = res.data.data;
this.checkDays();
},
err => {}
);
},
checkDays() {
this.days.forEach(dayItem => {
var d = dayItem.day;
var myDate = this.$calendarUtils.formatDate(
d.getFullYear(),
d.getMonth() + 1,
d.getDate()
);
for (var j = 0; j < this.DayData.length; j++) {
if (this.DayData[j].UseTime == myDate) {
//已用
dayItem.UseAccount = this.DayData[j].UseAccount;
//使用时间
dayItem.UseTime = this.DayData[j].UseTime;
//餐厅编号
dayItem.CouponsId = this.DayData[j].CouponsId;
}
}
});
this.$forceUpdate();
}
},
mounted() {
this.getList();
this.getCountryList();
this.initCalendar();
},
watch: {
outerVisible: function toggle() {
if (!this.outerVisible) {
var myDate = new Date();
this.currentYear = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
this.currentMonth = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
this.initCalendar();
}
mounted() {
//初始化日历
let myDate = new Date();
this.currentYear = myDate.getFullYear();
this.currentMonth = myDate.getMonth() + 1;
this.msg.Year = this.currentYear;
this.msg.Month = this.currentDay;
this.GetScenicList();
this.initCalendar();
this.GetHoltelInventory();
}
}
};
};
</script>
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