Commit 03b43a07 authored by 黄奎's avatar 黄奎

门票修改

parent 90952a83
<template> <template>
<div> <div>
<div class="query-box" style="border-bottom: none;"> <div class="query-box" style="border-bottom: none;">
<ul> <ul>
<li> <li>
<input type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)"/> <input type="button" class="fr normalBtn mb30" value="保存" @click="saveList(1)" />
<input type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)"/> <input type="button" class="fr normalBtn mb30" value="保存草稿" @click="saveList(0)" />
</li> </li>
</ul> </ul>
</div> </div>
<div style="width: 100%; overflow-y: auto;padding-bottom: 10px; height: 100%; " class="ownScrollbarStyle"> <div style="width: 100%; overflow-y: auto;padding-bottom: 10px; height: 100%; " class="ownScrollbarStyle">
<table border="0" cellspacing="1" cellpadding="0" class="admissionStatisticsDetailsTalbe"> <table border="0" cellspacing="1" cellpadding="0" class="admissionStatisticsDetailsTalbe">
<tr> <tr>
<th width="120">公司团号</th> <th width="120">公司团号</th>
<th width="120">定团号</th> <th width="120">定团号</th>
<th width="120">游览时间</th> <th width="120">游览时间</th>
<th width="200">景点名称</th> <th width="200">景点名称</th>
<th width="100">总人数</th> <th width="100">总人数</th>
<th width="100">游客类型</th> <th width="100">游客类型</th>
<th width="80">游客人数</th> <th width="80">游客人数</th>
<th width="80">使用人数</th> <th width="80">使用人数</th>
<th width="80">免人数</th> <th width="80">免人数</th>
<th width="100">单价</th> <th width="100">单价</th>
<th width="80">金额小计</th> <th width="80">金额小计</th>
<th width="80">返佣</th> <th width="80">返佣</th>
<th width="80">总金额</th> <th width="80">总金额</th>
<th width="80">付款方式</th> <th width="80">付款方式</th>
<th width="150">联络电话</th> <th width="150">订团号</th>
<th width="300">地址</th> <th width="150">联络电话</th>
<th width="200">备注</th> <th width="300">地址</th>
</tr> <th width="200">备注</th>
<tr v-for="(item,index) in list"> </tr>
<td :rowspan="list.length" v-if="index==0"><div class="w120">{{TCNUM}}</div></td> <tr v-for="(item,index) in list">
<td :rowspan="list.length" v-if="index==0"><div class="w120">{{NewCombinationNum}}</div></td> <td :rowspan="list.length" v-if="index==0">
<td> <div class="w120">{{TCNUM}}</div>
<div class="w120"> </td>
{{item.UseTimeStr}} <td :rowspan="list.length" v-if="index==0">
</div> <div class="w120">{{NewCombinationNum}}</div>
</td> </td>
<td> <td>
<div class="w200 ScenicComDivflex" v-for="subItem in item.ScenicStatisticsList"> <div class="w120">
{{subItem.ScenicName}} {{item.UseTimeStr}}
</div> </div>
</td> </td>
<td> <td>
<div class="w100 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <div class="w200 ScenicComDivflex" v-for="subItem in item.ScenicStatisticsList">
{{subItem.UseAccount}} {{subItem.ScenicName}}
</div> </div>
</td> </td>
<td> <td>
<div class="w100 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <div class="w100 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<p v-for="o in subItem.TicketPriceList"> {{subItem.UseAccount}}
{{personStrToWord(o.PeopleType)}} </div>
</p> </td>
</div> <td>
</td> <div class="w100 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<td> <p v-for="o in subItem.TicketPriceList">
<div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> {{personStrToWord(o.PeopleType)}}
<p v-for="o in subItem.TicketPriceList"> </p>
{{o.PeopleNum}} </div>
</p> </td>
</div> <td>
</td> <div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<td> <p v-for="o in subItem.TicketPriceList">
<div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> {{o.PeopleNum}}
<p v-for="o in subItem.TicketPriceList"> </p>
<el-input class='w50 tcenter' v-model='o.UsePeopleNum' type="number" @input='calculationPrice(subItem)' @keyup.native="checkInteger(o,'UsePeopleNum')"></el-input> </div>
</p> </td>
</div> <td>
</td> <div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<td> <p v-for="o in subItem.TicketPriceList">
<div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <el-input class='w50 tcenter' v-model='o.UsePeopleNum' type="number" @input='calculationPrice(subItem)'
<p v-for="o in subItem.TicketPriceList"> @keyup.native="checkInteger(o,'UsePeopleNum')"></el-input>
<el-input class='w50 tcenter' maxlength='2' v-model='o.Discount' type="number" @input='calculationPrice(subItem)' @keyup.native="checkInteger(o,'Discount')"></el-input> </p>
</p> </div>
</div> </td>
</td> <td>
<td> <div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<div class="w100 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <p v-for="o in subItem.TicketPriceList">
<p v-for="o in subItem.TicketPriceList"> <el-input class='w50 tcenter' maxlength='2' v-model='o.Discount' type="number"
<span class="spanlink" v-if='o.PeoplePrice==0' @click="goUrl('ticketManagement',subItem,'门票管理')">设置</span> @input='calculationPrice(subItem)' @keyup.native="checkInteger(o,'Discount')"></el-input>
<span v-if='o.PeoplePrice!=0'>{{o.PeoplePrice}}</span> </p>
</div>
<!--<el-input class='w80 tcenter' v-model='o.PeoplePrice' @input='calculationPrice(subItem)' @keyup.native="checkInteger(o,'PeoplePrice')"></el-input>--> </td>
</p> <td>
</div> <div class="w100 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
</td> <p v-for="o in subItem.TicketPriceList">
<td> <span class="spanlink" v-if='o.PeoplePrice==0'
<div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> @click="goUrl('ticketManagement',subItem,'门票管理')">设置</span>
<p v-for="o in subItem.TicketPriceList"> <span v-if='o.PeoplePrice!=0'>{{o.PeoplePrice}}</span>
{{(o.UsePeopleNum-o.Discount)*o.PeoplePrice}} </p>
</p> </div>
</div> </td>
</td> <td>
<td> <div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <p v-for="o in subItem.TicketPriceList">
<p v-for="o in subItem.TicketPriceList"> {{(o.UsePeopleNum-o.Discount)*o.PeoplePrice}}
<span class="spanlink" v-if='o.DiscountPrice==0' @click="goUrl('scenicSpotInfoManage',subItem,'景区列表')">设置</span> </p>
<span v-if='o.DiscountPrice!=0'>{{o.DiscountPrice}}%</span> </div>
<!--<el-input class='w50 tcenter' v-model='o.DiscountPrice' @input='calculationPrice(subItem)' @keyup.native="checkInteger(o,'DiscountPrice')"></el-input>--> </td>
</p> <td>
</div> <div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
</td> <p v-for="o in subItem.TicketPriceList">
<td> <span class="spanlink" v-if='o.DiscountPrice==0'
<div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> @click="goUrl('scenicSpotInfoManage',subItem,'景区列表')">设置</span>
<!-- {{(subItem.UsePeopleNum-subItem.Discount)*subItem.PeoplePrice}} --> <span v-if='o.DiscountPrice!=0'>{{o.DiscountPrice}}%</span>
{{subItem.TotalPrice}} </p>
</div> </div>
</td> </td>
<td> <td>
<div class="w160 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <div class="w80 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<el-select class='w100 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')"> {{subItem.TotalPrice}}
<el-option label='请选择' value='0' ></el-option> </div>
<el-option label='现付' value='1' ></el-option> </td>
<el-option label='签单' value='2' ></el-option> <td>
<el-option label='实物抵扣' value='5' ></el-option> <div class="w160 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<el-option label='预付' value='4' ></el-option> <el-select class='w100 sel' v-model='subItem.PayStyle' :placeholder="$t('pub.pleaseSel')">
</el-select> <el-option label='请选择' value='0'></el-option>
</div> <el-option label='现付' value='1'></el-option>
</td> <el-option label='签单' value='2'></el-option>
<td> <el-option label='实物抵扣' value='5'></el-option>
<div class="w150 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList"> <el-option label='预付' value='4'></el-option>
{{subItem.Tel}} </el-select>
</div> </div>
</td> </td>
<td> <td>
<div class="w300 ScenicComDivflex" v-for="subItem in item.ScenicStatisticsList"> <div class="w160 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
{{subItem.Address}} <el-input class='w120' v-model='subItem.CombinationNum' type="text"></el-input>
</div> </div>
</td> </td>
<td> <td>
<div class="w200 ScenicComDivflex" v-for="subItem in item.ScenicStatisticsList"> <div class="w150 ScenicComDiv" v-for="subItem in item.ScenicStatisticsList">
<el-input type='textarea' class='w170' v-model='subItem.Remarks'></el-input> {{subItem.Tel}}
</div> </div>
</td> </td>
</tr> <td>
</table> <div class="w300 ScenicComDivflex" v-for="subItem in item.ScenicStatisticsList">
</div> {{subItem.Address}}
</div> </div>
</td>
<td>
<div class="w200 ScenicComDivflex" v-for="subItem in item.ScenicStatisticsList">
<el-input type='textarea' class='w170' v-model='subItem.Remarks'></el-input>
</div>
</td>
</tr>
</table>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
data () { data() {
return { return {
defaultSelectValue:0, defaultSelectValue: 0,
list:[], list: [],
roomList:[], roomList: [],
TCNUM:'', TCNUM: '',
flightTotal:0, flightTotal: 0,
GuestNum:0, GuestNum: 0,
NewCombinationNum:'' NewCombinationNum: ''
} }
}, },
methods: { methods: {
personStrToWord(str){ personStrToWord(str) {
if(str==1) if (str == 1)
return '大' return '大'
if(str==2) if (str == 2)
return '中' return '中'
if(str==3) if (str == 3)
return '小' return '小'
}, },
goUrl(path, obj, name) { goUrl(path, obj, name) {
this.$router.push({ this.$router.push({
path: path, path: path,
query: { query: {
id: obj.ID, id: obj.ID,
blank: "y", blank: "y",
tab: name tab: name
} }
}); });
}, },
calculationPrice(obj){ calculationPrice(obj) {
let totalPrice=0 let totalPrice = 0;
console.log(obj.TicketPriceList) obj.TicketPriceList.forEach(item => {
obj.TicketPriceList.forEach(item=>{ totalPrice += item.PeoplePrice * (item.UsePeopleNum - item.Discount) * (1 - item.DiscountPrice / 100);
totalPrice+=item.PeoplePrice*(item.UsePeopleNum-item.Discount)*(1-item.DiscountPrice/100) })
}) obj.TotalPrice = totalPrice.toFixed(2);
console.log(totalPrice); },
obj.TotalPrice=totalPrice.toFixed(2) getList() {
}, this.apipost('dmcstatistics_get_GetScenicStaticsDetail', {
getList(){ TCIDs: this.$route.query.id
this.apipost('dmcstatistics_get_GetScenicStaticsDetail',{TCIDs:this.$route.query.id},res=>{ }, res => {
if(res.data.resultCode==1){ if (res.data.resultCode == 1) {
this.list=res.data.data this.list = res.data.data;
this.list.forEach(item=>{ this.list.forEach(item => {
item.ScenicStatisticsList.forEach(x=>{ item.ScenicStatisticsList.forEach(x => {
x.PayStyle=x.PayStyle.toString() x.PayStyle = x.PayStyle.toString();
this.calculationPrice(x) this.calculationPrice(x);
}) })
}) })
}else{ } else {
this.$message.error(res.data.message) this.$message.error(res.data.message);
} }
}, err => {})
},
// this.list.forEach(item=>{ saveList(type) {
// item.DiningSummaryList.forEach(x=>{ if (type == 0) {
// x.PayStyle=x.PayStyle.toString() this.list.forEach(item => {
// x.DiningReserveType=x.DiningReserveType.toString() item.ScenicStatisticsList.forEach(insideItem => {
// this.calculationPrice(x) insideItem.OrderState = 0;
// }) })
// }) })
},err=>{}) }
}, if (type == 1) {
saveList(type){ this.list.forEach(item => {
if(type==0){ item.ScenicStatisticsList.forEach(insideItem => {
this.list.forEach(item=>{ insideItem.OrderState = 1;
item.ScenicStatisticsList.forEach(insideItem=>{ })
insideItem.OrderState=0 })
}) }
}) this.apipost('dmcstatistics_get_SetTicketOrder', this.list, res => {
} if (res.data.resultCode == 1) {
if(type==1){ this.$message.success(res.data.message);
this.list.forEach(item=>{ } else {
item.ScenicStatisticsList.forEach(insideItem=>{ this.$message.error(res.data.message);
insideItem.OrderState=1 }
}) }, err => {})
}) },
}
this.apipost('dmcstatistics_get_SetTicketOrder',this.list,res=>{
if(res.data.resultCode==1){
this.$message.success(res.data.message)
}else{
this.$message.error(res.data.message)
}
},err=>{})
},
}, },
mounted() { mounted() {
this.TCNUM=this.$route.query.TCNUM this.TCNUM = this.$route.query.TCNUM;
this.flightTotal=this.$route.query.flightTotal this.flightTotal = this.$route.query.flightTotal;
this.GuestNum=this.$route.query.GuestNum this.GuestNum = this.$route.query.GuestNum;
this.NewCombinationNum = this.$route.query.NewCombinationNum this.NewCombinationNum = this.$route.query.NewCombinationNum;
this.getList() this.getList()
}, },
} }
</script> </script>
<style> <style>
.admissionStatisticsDetailsTalbe{ background: #ccc;} .admissionStatisticsDetailsTalbe {
.admissionStatisticsDetailsTalbe tr th{background: #E6E6E6;height:40px; font-size: 12px; color: #333;} background: #ccc;
.admissionStatisticsDetailsTalbe tr{background: #fff;text-align: center; height: 40px;} }
.admissionStatisticsDetailsTalbe tr td{font-size: 12px;}
.admissionStatisticsDetailsTalbe tr td .pHouseStyle{border-bottom: 1px solid #ccc; height: 20px; line-height: 20px;} .admissionStatisticsDetailsTalbe tr th {
.admissionStatisticsDetailsTalbe tr td .pHouseStyle:last-child{border-bottom: none;} background: #E6E6E6;
.admissionStatisticsDetailsTalbe tr td .ScenicComDivflex{width:100%; height: 84px; display: flex; align-items: center; padding-left: 15px; border-bottom:1px solid #ccc;} height: 40px;
.admissionStatisticsDetailsTalbe tr td .ScenicComDivflex:last-child{border-bottom: none;} font-size: 12px;
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv{width:100%; height: 84px; line-height: 84px; border-bottom:1px solid #ccc;} color: #333;
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv:last-child{border-bottom: none;} }
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv>p{border-bottom: 1px solid #ccc; height: 28px; line-height: 28px;}
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv>p:last-child{border-bottom: none;} .admissionStatisticsDetailsTalbe tr {
.admissionStatisticsDetailsTalbe tr td input{height:20px!important; padding: 0!important; text-align: center;} background: #fff;
.admissionStatisticsDetailsTalbe tr td .sel input{ text-align: center;
height:34px!important; height: 40px;
} }
.admissionStatisticsDetailsTalbe tr td .spanlink:hover{text-decoration: underline; cursor: pointer;}
.admissionStatisticsDetailsTalbe tr td {
font-size: 12px;
}
.admissionStatisticsDetailsTalbe tr td .pHouseStyle {
border-bottom: 1px solid #ccc;
height: 20px;
line-height: 20px;
}
.admissionStatisticsDetailsTalbe tr td .pHouseStyle:last-child {
border-bottom: none;
}
.admissionStatisticsDetailsTalbe tr td .ScenicComDivflex {
width: 100%;
height: 84px;
display: flex;
align-items: center;
padding-left: 15px;
border-bottom: 1px solid #ccc;
}
.admissionStatisticsDetailsTalbe tr td .ScenicComDivflex:last-child {
border-bottom: none;
}
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv {
width: 100%;
height: 84px;
line-height: 84px;
border-bottom: 1px solid #ccc;
}
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv:last-child {
border-bottom: none;
}
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv>p {
border-bottom: 1px solid #ccc;
height: 28px;
line-height: 28px;
}
.admissionStatisticsDetailsTalbe tr td .ScenicComDiv>p:last-child {
border-bottom: none;
}
.admissionStatisticsDetailsTalbe tr td input {
height: 20px !important;
padding: 0 !important;
text-align: center;
}
.admissionStatisticsDetailsTalbe tr td .sel input {
height: 34px !important;
}
.admissionStatisticsDetailsTalbe tr td .spanlink:hover {
text-decoration: underline;
cursor: pointer;
}
</style> </style>
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