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

景点

parent 52159eb8
......@@ -1544,7 +1544,7 @@
if(this.addMsg.Nationality===2){
// 单个字母开头(E或G)后跟8位数字
const pattern1 = /^[EG][0-9]{8}$/;
const pattern1 = /^[EGH][0-9]{8}$/;
// 两个字母开头(E开头,第二个字母不能是I或O)后跟7位数字
const pattern2 = /^E[A-HJ-NP-Z][0-9]{7}$/;
this.PassportNoSure= pattern1.test(this.addMsg.PassportNo) || pattern2.test(this.addMsg.PassportNo);
......@@ -1863,9 +1863,6 @@
this.addMsg.TCID = this.$route.query.TCID;
this.addMsg.OrderId = this.$route.query.orderId;
this.Roominformation() //调取下房间信息
this.Transformation(this.addMsg.SurName,'SurName',1)
this.Transformation(this.addMsg.Name,'Name',2)
}
},
err => {}
......
......@@ -596,6 +596,15 @@
<span style="display: block; font-size: 14px; color: #333333">{{ $t("salesModule.RoomInfo")
}}<span v-if="item.oneSex > 0"
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>
</tr>
<tr>
......
......@@ -768,7 +768,68 @@
.el-input-group__prepend {
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>
<template>
<div class="flexOne groupts" style="min-width: 1200px">
......@@ -1147,13 +1208,46 @@
</el-col>
<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"
:placeholder="$t('pub.pleaseSel')" @change="ScenicRefundMethods">
<el-option v-for="item in ScenicRefundList" :label="item.ScenicName" :value="item.Id" :key="item.Id">
</el-option>
</el-select>
</el-form-item>
</el-form-item> -->
</el-col>
<el-col :span="4"> &nbsp; </el-col>
</el-row>
......@@ -2270,8 +2364,18 @@
</span>
</template>
</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>
</tr>
<tr>
<td colspan="5">
<div class="groupTourOrder_remarks">
......@@ -2707,6 +2811,7 @@
RefuseVisaNum: "0", //拒签数量
AirticketNum: "0",
ScenicRefundArr: [],
ScenicList:[],//2025-07-14 add bY:W
GoCityTime: "",
BackCityTime: "",
CommissionSharePeople: "-1",
......@@ -3634,7 +3739,7 @@
},
});
},
ScenicRefundMethods() {
ScenicRefundMethods_V2() {
if (this.addMsg.ScenicRefundArr.length == 0) {
this.ScenicRefundMoney = 0;
} else {
......@@ -3651,6 +3756,38 @@
}
this.getTotalPrice();
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) {
let platBranchId = this.getLocalStorage().RB_Branch_id;
......@@ -4247,6 +4384,15 @@
dandijie =
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 =
dandijie +
lianyun +
......@@ -4256,11 +4402,11 @@
laoren +
zafeiqianzhen +
danfang +
ertongbed -
this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
ertongbed -refundScenicPrice;
// this.ScenicRefundMoney *
// (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理
if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this
......@@ -4344,6 +4490,15 @@
dandijie =
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 =
dandijie +
lianyun +
......@@ -4353,11 +4508,11 @@
laoren +
zafeiqianzhen +
danfang +
ertongbed -
this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
ertongbed -refundScenicPrice;
// this.ScenicRefundMoney *
// (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理
if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this
......@@ -4536,6 +4691,7 @@
this.addMsg.CostType = "";
this.addMsg.PlatformOrder = "";
this.ddlyList = [];
this.addMsg.ScenicList=[];
this.addMsg.Remarks = "";
this.addMsg.MinOrderPrice = "";
this.addMsg.VisaNum = "0";
......@@ -4638,6 +4794,7 @@
this.addMsg.IsChildrenTour = this.IsChildrenTour;
this.addMsg.IsBirdDiscount = this.addObj.IsBirdDiscount;
this.addMsg.IsDealDiscount = 1;
this.addMsg.ScenicRefundArr = [];
this.apipost(
"sellorder_post_SetOrderInfo_02",
this.addMsg,
......
......@@ -1501,12 +1501,43 @@
<span class="GO_Title">{{$t('salesModule.ScenicRefund')}}</span>
</div>
<div class="GO_TPright clearfix">
<el-popover popper-class="_TravelPricePopover" trigger="click">
<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-popover popper-class="_TravelPricePopover" trigger="click">
<div>
<div class="GOScenicDiv">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="_color_666">{{$t('objFill.v101.traveltrip.xuanzhe')}}</td>
<td class="_color_666">{{$t('objFill.v101.traveltrip.xuanzhe')}}</td>
<td class="_color_666">{{$t('visaT.jdname')}}</td>
<td class="_color_666">{{$t('op.opszje')}}</td>
<td class="_color_666">{{$t('admin.admin_personNumber')}}</td>
......@@ -1522,11 +1553,12 @@
<td>
{{ item.RefundMoney }}
</td>
<td>
<el-input class="w80" type="Number" :max='addMsg.GuestNum' v-model="item.Number" @keyup.native="initScenic()"></el-input>
<td>
<el-input class="w80" @keyup.native="
checkInteger(item, 'Number'), CheckNum(item)
" @change="getGOScenictWO" v-model="item.Number"></el-input>
</td>
</td>
<td>
<el-input class="w80" @keyup.native="checkPrice(item, 'BackMoney')" @change="getGOScenictWO"
v-model="item.BackMoney"></el-input>
......@@ -1541,7 +1573,7 @@
}}</span>
<i class="iconfont icon-arrow-down GO_SimulaDrop"></i>
</div>
</el-popover>
</el-popover> -->
</div>
</div>
</el-col>
......@@ -2395,7 +2427,7 @@
style="color: #e95252">({{ item.oneSex == 1 ?$t('objFill.dannan') : $t('objFill.dannv') }})</span><span v-if="item.chirdNoNeedBedNum > 0"
style="color: #e95252">({{$t('Operation.Op_childNobed')}}{{ item.chirdNoNeedBedNum }}{{$t('hotel.hotel_people')}})</span>
{{ item.orderGuestHouseStr }}
<el-popover trigger="click" popper-class="KT_Scenic">
<!-- <el-popover trigger="click" popper-class="KT_Scenic">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align: center">
<th width="150">{{$t('visaT.jdname')}}</th>
......@@ -2414,7 +2446,7 @@
item.orderBackScenicList &&
item.orderBackScenicList.length > 0
" style="color: #f56c6c; margin-left: 20px; cursor: pointer">{{$t('ground.tuiJingdian')}}</span>
</el-popover>
</el-popover> -->
</span>
<div class="order-show GO_Contract" v-if="item.isShowDisclaimer==1" @click="showMore(item,index)">
<span>{{isShow===index ? $t('objFill.yingcanctmzclh') : $t('objFill.xianshictmzclh')}}
......@@ -2455,6 +2487,14 @@
</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>
</tr>
<tr>
......@@ -3463,6 +3503,7 @@
RefuseVisaNum: "0",
AirticketNum: "0",
ScenicRefundArr: [],
ScenicList:[],
//景点新数组
OrderBackScenicList: [],
GoCityTime: "",
......@@ -3811,6 +3852,7 @@
});
window.open(routeData.href, "_blank");
},
//关闭弹窗
closeDialog() {
this.isShowLayerRemarks = false;
......@@ -4425,25 +4467,62 @@
});
window.open(routeData.href, "_blank");
},
ScenicRefundMethods() {
//初始化景点
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;
}
})
console.log("addMsg.ScenicList",this.addMsg.ScenicList);
this.getTotalPrice();
this.getTicheng();
},
ScenicRefundMethods() {
if (this.addMsg.ScenicRefundArr.length == 0) {
this.ScenicRefundMoney = 0;
} else {
this.ScenicRefundMoney = 0;
this.addMsg.ScenicRefundArr.forEach((x) => {
let listIndex = this.ScenicRefundList.findIndex(
(item) => item.Id == x
);
if (listIndex != -1) {
this.ScenicRefundMoney +=
this.ScenicRefundList[listIndex].RefundMoney;
}
var index=this.ScenicRefundList.findIndex(item=>item.Id===x.Id);
if(index!=-1){
var nowModel=this.ScenicRefundList[index];
nowModel.Number=x.Number;
}
});
this.$forceUpdate()
}
this.getTotalPrice();
this.getTicheng();
this.initScenic();
},
getScenicRefund(TCID, OrderId) {
this.OrderId = OrderId;
let msg = {
TCID: TCID,
OrderId: OrderId,
};
this.apipost(
"sellorder_get_GetScenicRefundList",
msg,
(res) => {
if (res.data.resultCode == 1) {
this.ScenicRefundList = res.data.data;
this.ScenicRefundList.forEach((item) => {
item["ScenicName"] =
item.CouponsName + " -¥" + this.moneyFormat(item.RefundMoney);
});
this.ScenicRefundMethods();
}
},
(err) => {}
);
},
getScenicRefund(TCID, OrderId) {
getScenicRefund_Old(TCID, OrderId) {
this.OrderId = OrderId;
let msg = {
TCID: TCID,
......@@ -5088,6 +5167,15 @@
dandijie =
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.OpSetLossMoney +
dandijie +
......@@ -5098,11 +5186,11 @@
laoren +
zafeiqianzhen +
danfang +
ertongbed -
this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
ertongbed -refundScenicPrice;
// this.ScenicRefundMoney *
// (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理
if(this.addMsg.IsLessPrice ==1 && this.addMsg.GroupType ==1 && (this.addMsg.CustomerType=='1' ||this.addMsg.CustomerType=='2') && this.addMsg.LineId>0 && this.LessRule && this.LessRule.length>0){
......@@ -5178,7 +5266,15 @@
dandijie =
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.OpSetLossMoney +
dandijie +
......@@ -5189,11 +5285,11 @@
laoren +
zafeiqianzhen +
danfang +
ertongbed -
this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
ertongbed -refundScenicPrice;
// this.ScenicRefundMoney *
// (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理
if(this.addMsg.IsLessPrice ==1 && this.addMsg.GroupType ==1 && (this.addMsg.CustomerType=='1' ||this.addMsg.CustomerType=='2') && this.addMsg.LineId>0 && this.LessRule && this.LessRule.length>0){
......@@ -5477,6 +5573,7 @@
this.addMsg.IsChildrenTour = this.IsChildrenTour;
this.addMsg.IsBirdDiscount = this.addObj.IsBirdDiscount;
this.addMsg.IsDealDiscount = 1;
this.addMsg.ScenicRefundArr = [];
this.apipost(
"sellorder_post_SetOrderInfo_02",
this.addMsg,
......
......@@ -1065,7 +1065,68 @@
.el-input-group__prepend {
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>
<template>
......@@ -1667,6 +1728,41 @@
<el-form-item :label="$t('Airticket.Air_firstClass')" prop="FSeatNum">
<el-input v-model="addMsg.FSeatNum" @input="getNumber()"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<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-col>
</el-row>
<el-row :gutter="20">
......@@ -2734,7 +2830,7 @@
style="color: #e95252">({{ childItem.OneSex == 1 ?$t('objFill.dannan') : $t('objFill.dannv') }})</span><span
v-if="childItem.ChirdNoNeedBedNum > 0"
style="color: #e95252">({{$t('Operation.Op_childNobed')}}{{ childItem.ChirdNoNeedBedNum }}{{$t('hotel.hotel_people')}})</span>:{{ childItem.OrderGuestHouseStr }}
<el-popover trigger="click" popper-class="RL_Scenic">
<!-- <el-popover trigger="click" popper-class="RL_Scenic">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="_color_666" style="text-align: center">
<th width="150">{{ $t("visaT.jdname") }}</th>
......@@ -2754,7 +2850,7 @@
childItem.OrderBackScenicList.length > 0
"
style="color: #f56c6c; margin-left: 20px; cursor: pointer">{{ $t("ground.tuiJingdian") }}</span>
</el-popover>
</el-popover> -->
</span>
<p v-if="childItem.IsOneDay==1&&childItem.LuggageNum">
{{$t('objFill.xinglisl')}}:{{childItem.LuggageNum}}</p>
......@@ -2781,6 +2877,14 @@
</span>
</div>
</div>
<div v-if="childItem.OrderBackScenicList!=null&&childItem.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="childItems in childItem.OrderBackScenicList" >
<span style="color:green;">{{ childItems.CouponsName }}</span>退票<span style="color:red;">{{childItems.Number}}</span>人:<span style="color: blue">{{childItems.GuestNameList}}</span>
&nbsp;&nbsp; &nbsp;&nbsp;
</span>
</div>
</td>
</tr>
<tr>
......@@ -4125,6 +4229,7 @@
SafeNum: "0",
AirticketNum: "0",
ScenicRefundArr: [],
ScenicList:[],//2025-07-14 add bY:W
GoCityTime: "",
BackCityTime: "",
CommissionSharePeople: "-1",
......@@ -5290,7 +5395,40 @@
changeSelect: function () {
this.$forceUpdate();
},
ScenicRefundMethods() {
//初始化景点
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();
},
ScenicRefundMethods_Old() {
if (this.addMsg.ScenicRefundArr.length == 0) {
this.ScenicRefundMoney = 0;
} else {
......@@ -5309,6 +5447,28 @@
this.getTicheng();
},
getScenicRefund(TCID, OrderId) {
this.OrderId = OrderId;
let msg = {
TCID: TCID,
OrderId: OrderId,
};
this.apipost(
"sellorder_get_GetScenicRefundList",
msg,
(res) => {
if (res.data.resultCode == 1) {
this.ScenicRefundList = res.data.data;
this.ScenicRefundList.forEach((item) => {
item["ScenicName"] =
item.CouponsName + " -¥" + this.moneyFormat(item.RefundMoney);
});
this.ScenicRefundMethods();
}
},
(err) => {}
);
},
getScenicRefund_V1(TCID, OrderId) {
this.OrderId = OrderId;
let msg = {
TCID: TCID,
......@@ -5601,6 +5761,15 @@
dandijie =
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.OpSetLossMoney +
dandijie +
......@@ -5611,11 +5780,11 @@
laoren +
zafeiqianzhen +
danfang +
ertongbed -
this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
ertongbed -refundScenicPrice;
// this.ScenicRefundMoney *
// (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理
if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this
......@@ -5699,6 +5868,15 @@
dandijie =
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.OpSetLossMoney +
dandijie +
......@@ -5709,11 +5887,11 @@
laoren +
zafeiqianzhen +
danfang +
ertongbed -
this.ScenicRefundMoney *
(Number(this.addMsg.ManNum) +
Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
ertongbed -refundScenicPrice;
// this.ScenicRefundMoney *
// (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//ld 2025-01-22 少价管理
if (this.addMsg.IsLessPrice == 1 && this.addMsg.GroupType == 1 && (this.addMsg.CustomerType == '1' || this
......@@ -5904,6 +6082,7 @@
this.addMsg.CostType = "";
this.addMsg.PlatformOrder = "";
this.ddlyList = [];
this.addMsg.ScenicList=[];
this.addMsg.Remarks = "";
this.addMsg.MinOrderPrice = "";
this.addMsg.LuggageNum = "";
......@@ -6009,6 +6188,7 @@
this.addMsg.IsChildrenTour = this.IsChildrenTour;
this.addMsg.IsBirdDiscount = this.addObj.IsBirdDiscount;
this.addMsg.IsDealDiscount = 1;
this.addMsg.ScenicRefundArr = [];
this.apipost(
"sellorder_post_SetOrderInfo_02",
this.addMsg,
......
......@@ -56,7 +56,68 @@
.el-input-group__prepend {
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>
<!--下单表单-->
<template>
......@@ -543,14 +604,52 @@
</el-col>
</template>
<el-col :span="4" v-if="showCity && pagesTitle == '跟团游产品'">
<el-form-item :label="$t('salesModule.ScenicRefund')">
<!-- {{ScenicRefundList}} -->
<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"
:placeholder="$t('pub.pleaseSel')" @change="ScenicRefundMethods">
<el-option v-for="(item, index) in ScenicRefundList" :label="item.ScenicName" :value="item.Id"
:key="index">
</el-option>
</el-select>
</el-form-item>
</el-form-item> -->
</el-col>
<el-col :span="4" v-if="showCity || pagesTitle == '当地游产品'">
<el-form-item :label="$t('salesModule.MsgMoney')">
......@@ -783,6 +882,7 @@
returnPriceShow: false,
minPrice: 0,
Unit_PriceList: [], //成交单价下拉数据
// ScenicList:[],//已输入景点的退款人数
LessMoney: 0,
addMsg: {
price: "0",
......@@ -835,6 +935,7 @@
SafeNum: "0",
AirticketNum: "0",
ScenicRefundArr: [],
ScenicList:[],//可退景点人数
GoCityTime: "",
BackCityTime: "",
CommissionSharePeople: "0",
......@@ -1046,6 +1147,23 @@
};
},
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() {
let obj = this.couponList.find(x => {
......@@ -1915,8 +2033,16 @@
// (Number(this.stratPrice) + Number(this.returnPrice));
//退景点费用
var refundScenicPrice = this.ScenicRefundMoney * (Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) +
Number(this.addMsg.OldPeopleNum));
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;}
});
}
// var refundScenicPrice = this.ScenicRefundMoney * (Number(this.addMsg.ManNum) + Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum));
//单地接
let dandijie = 0;
if (this.addMsg.GroupType == 4) {
......@@ -2002,6 +2128,7 @@
clearMsg() {
this.DiscountAmountId = null,
this.DiscountAmountObj = {},
this.ScenicRefundList=[],
this.addMsg = {
price: "0",
GroupTypeNeedHouse: "0",
......@@ -2053,6 +2180,7 @@
SafeNum: "0",
AirticketNum: "0",
ScenicRefundArr: [],
ScenicList:[],
GoCityTime: "",
BackCityTime: "",
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