Commit 62fedaa4 authored by 吴春's avatar 吴春

景点

parent 52159eb8
...@@ -1544,7 +1544,7 @@ ...@@ -1544,7 +1544,7 @@
if(this.addMsg.Nationality===2){ if(this.addMsg.Nationality===2){
// 单个字母开头(E或G)后跟8位数字 // 单个字母开头(E或G)后跟8位数字
const pattern1 = /^[EG][0-9]{8}$/; const pattern1 = /^[EGH][0-9]{8}$/;
// 两个字母开头(E开头,第二个字母不能是I或O)后跟7位数字 // 两个字母开头(E开头,第二个字母不能是I或O)后跟7位数字
const pattern2 = /^E[A-HJ-NP-Z][0-9]{7}$/; const pattern2 = /^E[A-HJ-NP-Z][0-9]{7}$/;
this.PassportNoSure= pattern1.test(this.addMsg.PassportNo) || pattern2.test(this.addMsg.PassportNo); this.PassportNoSure= pattern1.test(this.addMsg.PassportNo) || pattern2.test(this.addMsg.PassportNo);
...@@ -1863,9 +1863,6 @@ ...@@ -1863,9 +1863,6 @@
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;
this.Roominformation() //调取下房间信息 this.Roominformation() //调取下房间信息
this.Transformation(this.addMsg.SurName,'SurName',1)
this.Transformation(this.addMsg.Name,'Name',2)
} }
}, },
err => {} err => {}
......
...@@ -596,6 +596,15 @@ ...@@ -596,6 +596,15 @@
<span style="display: block; font-size: 14px; color: #333333">{{ $t("salesModule.RoomInfo") <span style="display: block; font-size: 14px; color: #333333">{{ $t("salesModule.RoomInfo")
}}<span v-if="item.oneSex > 0" }}<span v-if="item.oneSex > 0"
style="color: #e95252">({{ item.oneSex == 1 ?$t('objFill.dannan') : $t('objFill.dannv') }})</span>:{{ item.orderGuestHouseStr }}</span> style="color: #e95252">({{ item.oneSex == 1 ?$t('objFill.dannan') : $t('objFill.dannv') }})</span>:{{ item.orderGuestHouseStr }}</span>
<div v-if="item.orderBackScenicList!=null&&item.orderBackScenicList.length>0 " style="width: 101%;border-top: 1px solid #cccccc;margin-top: 5px">
<span style="color:red;margin-top: 10px;display: inline-block">{{$t('ground.tuiJingdian')}}:</span>
<span v-for="childItem in item.orderBackScenicList" >
<span style="color:green;">{{ childItem.couponsName }}</span>退票<span style="color:red;">{{childItem.number}}</span>人:<span style="color: blue">{{childItem.guestNameList}}</span>
&nbsp;&nbsp; &nbsp;&nbsp;
</span>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
......
...@@ -768,7 +768,68 @@ ...@@ -768,7 +768,68 @@
.el-input-group__prepend { .el-input-group__prepend {
padding: 0 5px !important; padding: 0 5px !important;
} }
.SimulateDrop-box {
width: 210px;
min-height: 34px;
position: relative;
padding: 5px 21px 5px 6px;
float: left;
/* margin: 4px 0 0 10px; */
border: 1px solid #d1d1d1;
}
.SD_flight {
display: inline-block;
height: 24px;
margin: 0 3px 3px 0;
padding: 0 8px;
line-height: 22px;
background-color: #f0f2f5;
}
.SimulaDrop {
position: absolute;
top: 3px;
right: 10px;
color: #c0c4cc;
}
._TravelPricePopover .jiDiv {
width: 750px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover .ScenicDiv {
width: 450px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
margin: 0 20px 5px 0;
width: 100%;
}
._TravelPricePopover table ._color_666 {
background-color: #ededed;
color: #666666;
padding: 5px;
}
._TravelPricePopover table td {
background-color: #ffffff;
padding: 9px 0;
color: #333333;
text-align: center;
border: 1px solid #d2d2d2;
}
._TravelPricePopover table td._d_name {
background-color: #ededed;
}
</style> </style>
<template> <template>
<div class="flexOne groupts" style="min-width: 1200px"> <div class="flexOne groupts" style="min-width: 1200px">
...@@ -1148,12 +1209,45 @@ ...@@ -1148,12 +1209,45 @@
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('salesModule.ScenicRefund')"> <el-form-item :label="$t('salesModule.ScenicRefund')">
<el-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div class="ScenicDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<!-- <td class="_color_666">{{$t('fnc.xuanze')}}</td> -->
<td class="_color_666">{{$t('visaT.jdname')}}</td>
<td class="_color_666">{{$t('fnc.tkjine')}}</td>
<td class="_color_666">{{$t('fnc.qxrenshu')}}</td>
</tr>
<tr v-for="item in ScenicRefundList">
<td>
{{item.CouponsName}}
</td>
<td>
-¥{{item.RefundMoney}}
</td>
<td>
<el-input class="w80" type="Number" :max='addMsg.GuestNum' v-model="item.Number" @keyup.native="initScenic()"></el-input>
<!-- -->
</td>
</tr>
</table>
</div>
</div>
<div slot="reference" class="SimulateDrop-box">
<span class="SD_flight" v-for="subItem in addMsg.ScenicList">{{subItem.ScenicName}}*{{subItem.Number}}</span>
<i class="iconfont icon-arrow-down SimulaDrop"></i>
</div>
</el-popover>
</el-form-item>
<!-- <el-form-item :label="$t('salesModule.ScenicRefund')">
<el-select filterable multiple class="multiple_input" v-model="addMsg.ScenicRefundArr" <el-select filterable multiple class="multiple_input" v-model="addMsg.ScenicRefundArr"
:placeholder="$t('pub.pleaseSel')" @change="ScenicRefundMethods"> :placeholder="$t('pub.pleaseSel')" @change="ScenicRefundMethods">
<el-option v-for="item in ScenicRefundList" :label="item.ScenicName" :value="item.Id" :key="item.Id"> <el-option v-for="item in ScenicRefundList" :label="item.ScenicName" :value="item.Id" :key="item.Id">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
</el-col> </el-col>
<el-col :span="4"> &nbsp; </el-col> <el-col :span="4"> &nbsp; </el-col>
</el-row> </el-row>
...@@ -2270,8 +2364,18 @@ ...@@ -2270,8 +2364,18 @@
</span> </span>
</template> </template>
</div> </div>
<div v-if="item.orderBackScenicList!=null&&item.orderBackScenicList.length>0 " style="width: 101%;border-top: 1px solid #cccccc;margin-top: 5px">
<span style="color:red;margin-top: 10px;display: inline-block">{{$t('ground.tuiJingdian')}}:</span>
<span v-for="childItem in item.orderBackScenicList" >
<span style="color:green;">{{ childItem.couponsName }}</span>退票<span style="color:red;">{{childItem.number}}</span>人:<span style="color: blue">{{childItem.guestNameList}}</span>
&nbsp;&nbsp; &nbsp;&nbsp;
</span>
</div>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="5"> <td colspan="5">
<div class="groupTourOrder_remarks"> <div class="groupTourOrder_remarks">
...@@ -2707,6 +2811,7 @@ ...@@ -2707,6 +2811,7 @@
RefuseVisaNum: "0", //拒签数量 RefuseVisaNum: "0", //拒签数量
AirticketNum: "0", AirticketNum: "0",
ScenicRefundArr: [], ScenicRefundArr: [],
ScenicList:[],//2025-07-14 add bY:W
GoCityTime: "", GoCityTime: "",
BackCityTime: "", BackCityTime: "",
CommissionSharePeople: "-1", CommissionSharePeople: "-1",
...@@ -3634,7 +3739,7 @@ ...@@ -3634,7 +3739,7 @@
}, },
}); });
}, },
ScenicRefundMethods() { ScenicRefundMethods_V2() {
if (this.addMsg.ScenicRefundArr.length == 0) { if (this.addMsg.ScenicRefundArr.length == 0) {
this.ScenicRefundMoney = 0; this.ScenicRefundMoney = 0;
} else { } else {
...@@ -3651,6 +3756,38 @@ ...@@ -3651,6 +3756,38 @@
} }
this.getTotalPrice(); this.getTotalPrice();
this.getTicheng(); this.getTicheng();
},
//初始化景点
initScenic() {
this.addMsg.ScenicList = [];
var totalGuest=(Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) + Number(this.addMsg.OldPeopleNum))
this.ScenicRefundList.forEach(x => {
if (/^\d+$/.test(x.Number)&&x.Number>0&&x.Number<=totalGuest) {
this.addMsg.ScenicList.push(x);
}
else{
x.Number=0;
}
})
this.getTotalPrice();
this.getTicheng();
},
ScenicRefundMethods() {
if (this.addMsg.ScenicRefundArr.length == 0) {
this.ScenicRefundMoney = 0;
} else {
this.ScenicRefundMoney = 0;
this.addMsg.ScenicRefundArr.forEach((x) => {
var index=this.ScenicRefundList.findIndex(item=>item.Id===x.Id);
console.log(index,"x",x);
if(index!=-1){
var nowModel=this.ScenicRefundList[index];
nowModel.Number=x.Number;
}
});
this.$forceUpdate()
}
this.initScenic();
}, },
getPlatformAccount(typeIdtwo, platformAccount) { getPlatformAccount(typeIdtwo, platformAccount) {
let platBranchId = this.getLocalStorage().RB_Branch_id; let platBranchId = this.getLocalStorage().RB_Branch_id;
...@@ -4246,6 +4383,15 @@ ...@@ -4246,6 +4383,15 @@
} else { } else {
dandijie = dandijie =
this.addObj.SingleDMCPrice * Number(this.addMsg.AirticketNum); this.addObj.SingleDMCPrice * Number(this.addMsg.AirticketNum);
}
//退景点费用
var refundScenicPrice =0;
if(this.addMsg.ScenicList!=null&&this.addMsg.ScenicList.length>0){
var totalGuest=(Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) + Number(this.addMsg.OldPeopleNum))
this.addMsg.ScenicList.forEach(item => {
if(totalGuest>=item.Number){
refundScenicPrice+=item.Number*item.RefundMoney;}
});
} }
this.addMsg.PreferPrice = this.addMsg.PreferPrice =
dandijie + dandijie +
...@@ -4256,11 +4402,11 @@ ...@@ -4256,11 +4402,11 @@
laoren + laoren +
zafeiqianzhen + zafeiqianzhen +
danfang + danfang +
ertongbed - ertongbed -refundScenicPrice;
this.ScenicRefundMoney * // this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) + // (Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) + // Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum)); // Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理 //ld 2025-01-22 少价管理
if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this
...@@ -4343,6 +4489,15 @@ ...@@ -4343,6 +4489,15 @@
} else { } else {
dandijie = dandijie =
this.addObj.SingleDMCPrice * Number(this.addMsg.AirticketNum); this.addObj.SingleDMCPrice * Number(this.addMsg.AirticketNum);
}
//退景点费用
var refundScenicPrice =0;
if(this.addMsg.ScenicList!=null&&this.addMsg.ScenicList.length>0){
var totalGuest=(Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) + Number(this.addMsg.OldPeopleNum))
this.addMsg.ScenicList.forEach(item => {
if(totalGuest>=item.Number){
refundScenicPrice+=item.Number*item.RefundMoney;}
});
} }
this.addMsg.PreferPrice = this.addMsg.PreferPrice =
dandijie + dandijie +
...@@ -4353,11 +4508,11 @@ ...@@ -4353,11 +4508,11 @@
laoren + laoren +
zafeiqianzhen + zafeiqianzhen +
danfang + danfang +
ertongbed - ertongbed -refundScenicPrice;
this.ScenicRefundMoney * // this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) + // (Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) + // Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum)); // Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理 //ld 2025-01-22 少价管理
if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this
...@@ -4536,6 +4691,7 @@ ...@@ -4536,6 +4691,7 @@
this.addMsg.CostType = ""; this.addMsg.CostType = "";
this.addMsg.PlatformOrder = ""; this.addMsg.PlatformOrder = "";
this.ddlyList = []; this.ddlyList = [];
this.addMsg.ScenicList=[];
this.addMsg.Remarks = ""; this.addMsg.Remarks = "";
this.addMsg.MinOrderPrice = ""; this.addMsg.MinOrderPrice = "";
this.addMsg.VisaNum = "0"; this.addMsg.VisaNum = "0";
...@@ -4638,6 +4794,7 @@ ...@@ -4638,6 +4794,7 @@
this.addMsg.IsChildrenTour = this.IsChildrenTour; this.addMsg.IsChildrenTour = this.IsChildrenTour;
this.addMsg.IsBirdDiscount = this.addObj.IsBirdDiscount; this.addMsg.IsBirdDiscount = this.addObj.IsBirdDiscount;
this.addMsg.IsDealDiscount = 1; this.addMsg.IsDealDiscount = 1;
this.addMsg.ScenicRefundArr = [];
this.apipost( this.apipost(
"sellorder_post_SetOrderInfo_02", "sellorder_post_SetOrderInfo_02",
this.addMsg, this.addMsg,
......
...@@ -56,7 +56,68 @@ ...@@ -56,7 +56,68 @@
.el-input-group__prepend { .el-input-group__prepend {
padding: 0 5px !important; padding: 0 5px !important;
} }
/deep/.SimulateDrop-box {
width: 176px;
min-height: 34px;
position: relative;
padding: 5px 21px 5px 6px;
float: left;
/* margin: 4px 0 0 10px; */
border: 1px solid #d1d1d1;
}
.SD_flight {
display: inline-block;
height: 24px;
margin: 0 3px 3px 0;
padding: 0 8px;
line-height: 22px;
background-color: #f0f2f5;
}
.SimulaDrop {
position: absolute;
top: 3px;
right: 10px;
color: #c0c4cc;
}
._TravelPricePopover .jiDiv {
width: 750px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover .ScenicDiv {
width: 450px;
max-height: 400px;
overflow: auto;
}
._TravelPricePopover table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
margin: 0 20px 5px 0;
width: 100%;
}
._TravelPricePopover table ._color_666 {
background-color: #ededed;
color: #666666;
padding: 5px;
}
._TravelPricePopover table td {
background-color: #ffffff;
padding: 9px 0;
color: #333333;
text-align: center;
border: 1px solid #d2d2d2;
}
._TravelPricePopover table td._d_name {
background-color: #ededed;
}
</style> </style>
<!--下单表单--> <!--下单表单-->
<template> <template>
...@@ -543,14 +604,52 @@ ...@@ -543,14 +604,52 @@
</el-col> </el-col>
</template> </template>
<el-col :span="4" v-if="showCity && pagesTitle == '跟团游产品'"> <el-col :span="4" v-if="showCity && pagesTitle == '跟团游产品'">
<!-- {{ScenicRefundList}} -->
<el-form-item :label="$t('salesModule.ScenicRefund')"> <el-form-item :label="$t('salesModule.ScenicRefund')">
<el-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div class="ScenicDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<!-- <td class="_color_666">{{$t('fnc.xuanze')}}</td> -->
<td class="_color_666">{{$t('visaT.jdname')}}</td>
<td class="_color_666">{{$t('fnc.tkjine')}}</td>
<td class="_color_666">{{$t('fnc.qxrenshu')}}</td>
</tr>
<tr v-for="item in ScenicRefundList">
<!-- <td>
<el-checkbox :checked="item.IsChecked" ></el-checkbox>
@change="getScenic(item)"
</td> -->
<td>
{{item.CouponsName}}
</td>
<td>
-¥{{item.RefundMoney}}
</td>
<td>
<el-input class="w80" type="Number" :max='addMsg.GuestNum' v-model="item.Number" @keyup.native="initScenic()"></el-input>
<!-- -->
</td>
</tr>
</table>
</div>
</div>
<div slot="reference" class="SimulateDrop-box">
<span class="SD_flight" v-for="subItem in addMsg.ScenicList">{{subItem.ScenicName}}*{{subItem.Number}}</span>
<i class="iconfont icon-arrow-down SimulaDrop"></i>
</div>
</el-popover>
</el-form-item>
<!-- <el-form-item :label="$t('salesModule.ScenicRefund')">
<el-select filterable multiple class="multiple_input" v-model="addMsg.ScenicRefundArr" <el-select filterable multiple class="multiple_input" v-model="addMsg.ScenicRefundArr"
:placeholder="$t('pub.pleaseSel')" @change="ScenicRefundMethods"> :placeholder="$t('pub.pleaseSel')" @change="ScenicRefundMethods">
<el-option v-for="(item, index) in ScenicRefundList" :label="item.ScenicName" :value="item.Id" <el-option v-for="(item, index) in ScenicRefundList" :label="item.ScenicName" :value="item.Id"
:key="index"> :key="index">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
</el-col> </el-col>
<el-col :span="4" v-if="showCity || pagesTitle == '当地游产品'"> <el-col :span="4" v-if="showCity || pagesTitle == '当地游产品'">
<el-form-item :label="$t('salesModule.MsgMoney')"> <el-form-item :label="$t('salesModule.MsgMoney')">
...@@ -783,6 +882,7 @@ ...@@ -783,6 +882,7 @@
returnPriceShow: false, returnPriceShow: false,
minPrice: 0, minPrice: 0,
Unit_PriceList: [], //成交单价下拉数据 Unit_PriceList: [], //成交单价下拉数据
// ScenicList:[],//已输入景点的退款人数
LessMoney: 0, LessMoney: 0,
addMsg: { addMsg: {
price: "0", price: "0",
...@@ -835,6 +935,7 @@ ...@@ -835,6 +935,7 @@
SafeNum: "0", SafeNum: "0",
AirticketNum: "0", AirticketNum: "0",
ScenicRefundArr: [], ScenicRefundArr: [],
ScenicList:[],//可退景点人数
GoCityTime: "", GoCityTime: "",
BackCityTime: "", BackCityTime: "",
CommissionSharePeople: "0", CommissionSharePeople: "0",
...@@ -1046,6 +1147,23 @@ ...@@ -1046,6 +1147,23 @@
}; };
}, },
methods: { methods: {
//初始化景点
initScenic() {
this.addMsg.ScenicList = [];
var totalGuest=(Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) + Number(this.addMsg.OldPeopleNum))
this.ScenicRefundList.forEach(x => {
if (/^\d+$/.test(x.Number)&&x.Number>0&&x.Number<=totalGuest) {
this.addMsg.ScenicList.push(x);
}
else{
x.Number=0;
}
})
this.getTotalPrice();
this.getTicheng();
console.log("this.ScenicList",this.addMsg.ScenicList);
},
// 获取已选优惠券 // 获取已选优惠券
getDiscountAmount() { getDiscountAmount() {
let obj = this.couponList.find(x => { let obj = this.couponList.find(x => {
...@@ -1915,8 +2033,16 @@ ...@@ -1915,8 +2033,16 @@
// (Number(this.stratPrice) + Number(this.returnPrice)); // (Number(this.stratPrice) + Number(this.returnPrice));
//退景点费用 //退景点费用
var refundScenicPrice = this.ScenicRefundMoney * (Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) + var refundScenicPrice =0;
Number(this.addMsg.OldPeopleNum)); if(this.addMsg.ScenicList!=null&&this.addMsg.ScenicList.length>0){
var totalGuest=(Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) + Number(this.addMsg.OldPeopleNum))
this.addMsg.ScenicList.forEach(item => {
if(totalGuest>=item.Number){
refundScenicPrice+=item.Number*item.RefundMoney;}
});
}
// var refundScenicPrice = this.ScenicRefundMoney * (Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//单地接 //单地接
let dandijie = 0; let dandijie = 0;
if (this.addMsg.GroupType == 4) { if (this.addMsg.GroupType == 4) {
...@@ -2002,6 +2128,7 @@ ...@@ -2002,6 +2128,7 @@
clearMsg() { clearMsg() {
this.DiscountAmountId = null, this.DiscountAmountId = null,
this.DiscountAmountObj = {}, this.DiscountAmountObj = {},
this.ScenicRefundList=[],
this.addMsg = { this.addMsg = {
price: "0", price: "0",
GroupTypeNeedHouse: "0", GroupTypeNeedHouse: "0",
...@@ -2053,6 +2180,7 @@ ...@@ -2053,6 +2180,7 @@
SafeNum: "0", SafeNum: "0",
AirticketNum: "0", AirticketNum: "0",
ScenicRefundArr: [], ScenicRefundArr: [],
ScenicList:[],
GoCityTime: "", GoCityTime: "",
BackCityTime: "", BackCityTime: "",
CommissionSharePeople: "-1", CommissionSharePeople: "-1",
......
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