Commit be65d6c0 authored by 黄奎's avatar 黄奎

报价单调整

parent 5275adff
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
border-right: 1px dashed #dddddd; border-right: 1px dashed #dddddd;
padding-right: 20px; padding-right: 20px;
} }
</style> </style>
<template> <template>
<div class="flexOne quoTation"> <div class="flexOne quoTation">
...@@ -230,6 +229,7 @@ ...@@ -230,6 +229,7 @@
</div> </div>
</div> </div>
<div class="AuditStatus"> <div class="AuditStatus">
<div v-if="item.TravelState==2"> <div v-if="item.TravelState==2">
<div> <div>
<template v-if="item.ManagerAduitDate==''&&item.ManagerId>0"> <template v-if="item.ManagerAduitDate==''&&item.ManagerId>0">
...@@ -241,10 +241,21 @@ ...@@ -241,10 +241,21 @@
{{$t('fnc.shenhe')}} {{$t('fnc.shenhe')}}
</div> </div>
</div> </div>
<div v-if="item.TravelState==3"> <div v-if="item.TravelState==6">
<div>
<template v-if="item.ChangeManagerAduitDate==''&&item.ChangeManagerId>0">
{{item.ChangeManagerAduitName}}
</template>
<template v-else>
{{item.ChangeAuditByName}}
</template>
{{$t('fnc.shenhe')}}
</div>
</div>
<div v-if="item.TravelState==3||item.TravelState==8">
<div class="Auditapproved">{{$t('fnc.ytongguo')}}</div> <div class="Auditapproved">{{$t('fnc.ytongguo')}}</div>
</div> </div>
<div v-if="item.TravelState==4"> <div v-if="item.TravelState==4||item.TravelState==7">
<div class="Auditrejected">{{$t('objFill.yibohui')}}</div> <div class="Auditrejected">{{$t('objFill.yibohui')}}</div>
</div> </div>
<template v-if="(item.ManagerAduitDate&&item.ManagerAduitDate!='')||(item.AuditDate&&item.AuditDate!='')"> <template v-if="(item.ManagerAduitDate&&item.ManagerAduitDate!='')||(item.AuditDate&&item.AuditDate!='')">
...@@ -265,7 +276,8 @@ ...@@ -265,7 +276,8 @@
</div> </div>
</div> </div>
</template> </template>
<div class="priceContentDiv" v-if="item.AuditDate&&item.AuditDate!=''">
<div class="priceContentDiv" v-if="item.AuditDate&&item.AuditDate!=''" style="margin-bottom:5px;">
<div> <div>
<span>审批结果</span> <span>审批结果</span>
<span class="AuditDate">{{item.AuditDate}}</span> <span class="AuditDate">{{item.AuditDate}}</span>
...@@ -279,6 +291,36 @@ ...@@ -279,6 +291,36 @@
</template> </template>
</div> </div>
</div> </div>
<template v-if="item.ChangeManagerAduitDate&&item.ChangeManagerAduitDate!=''">
<div class="priceContentDiv" style="margin-bottom:5px;">
<div>
<span>变更审批结果</span>
<span class="AuditDate">{{item.ChangeManagerAduitDate}}</span>
</div>
<div>{{item.ChangeManagerAduitName}}:
<template v-if="item.ChangeManagerAduitContent&&item.ChangeManagerAduitContent!=''">
{{item.ChangeManagerAduitContent}}
</template>
<template v-else>
{{$t('fnc.no')}}
</template>
</div>
</div>
</template>
<div class="priceContentDiv" v-if="item.ChangeAuditDate&&item.ChangeAuditDate!=''">
<div>
<span>变更审批结果</span>
<span class="AuditDate">{{item.ChangeAuditDate}}</span>
</div>
<div>{{item.AuditByName}}:
<template v-if="item.ChangeAuditContent&&item.ChangeAuditContent!=''">
{{item.ChangeAuditContent}}
</template>
<template v-else>
{{$t('fnc.no')}}
</template>
</div>
</div>
<div slot="reference" class="AuditLookDetail">{{$t('fnc.rizhi')}}</div> <div slot="reference" class="AuditLookDetail">{{$t('fnc.rizhi')}}</div>
</el-popover> </el-popover>
</template> </template>
...@@ -296,6 +338,12 @@ ...@@ -296,6 +338,12 @@
<span @click="offerAudit(item,2)">{{$t('objFill.v101.FinancialModule.shen')}}</span> <span @click="offerAudit(item,2)">{{$t('objFill.v101.FinancialModule.shen')}}</span>
</el-tooltip> </el-tooltip>
</span> </span>
<span class="openGroup opbdList" v-if="item.TravelState==6">
<el-tooltip class="item" effect="dark" :content="$t('fnc.shenhe')" placement="top-start"
popper-class="max-w250">
<span @click="offerAudit(item,4)">{{$t('objFill.v101.FinancialModule.shen')}}</span>
</el-tooltip>
</span>
<span class="openGroup opbdList" v-if="item.TravelState==3"> <span class="openGroup opbdList" v-if="item.TravelState==3">
<el-tooltip class="item" effect="dark" content="驳回重新调整" placement="top-start" popper-class="max-w250"> <el-tooltip class="item" effect="dark" content="驳回重新调整" placement="top-start" popper-class="max-w250">
<span @click="refuseOffer(item)"></span> <span @click="refuseOffer(item)"></span>
...@@ -493,11 +541,17 @@ ...@@ -493,11 +541,17 @@
); );
}, },
offerAudit(item, qType) { offerAudit(item, qType) {
var newQType = qType;
if (item.TravelState > 4) {
if (qType == 2) {
newQType = 3;
}
}
this.$router.push({ this.$router.push({
name: 'QuotationAduit', name: 'QuotationAduit',
query: { query: {
offerid: item.OfferId, offerid: item.OfferId,
Qtype: qType, Qtype: newQType,
blank: 'y', blank: 'y',
tab: '报价单审核' tab: '报价单审核'
} }
...@@ -550,5 +604,4 @@ ...@@ -550,5 +604,4 @@
this.getList(); this.getList();
} }
}; };
</script> </script>
\ No newline at end of file
...@@ -61,7 +61,6 @@ ...@@ -61,7 +61,6 @@
.CostNewTable .el-input__inner { .CostNewTable .el-input__inner {
padding: 0 5px; padding: 0 5px;
} }
</style> </style>
<template> <template>
...@@ -112,9 +111,33 @@ ...@@ -112,9 +111,33 @@
</td> </td>
<td> <td>
{{subItem.HotelCostPrice}} {{subItem.HotelCostPrice}}
<template v-if="subItem.IsHotelChange">
<br />
<font style="color:red;">
<template v-if="subItem.HotelChangeValue>0">
+{{subItem.HotelChangeValue}}
</template>
<template v-else>
{{subItem.HotelChangeValue}}
</template>
<font style="color:#409eff;">({{subItem.HotelChangeRemark}})</font>
</font>
</template>
</td> </td>
<td> <td>
{{subItem.BusCostPrice}} {{subItem.BusCostPrice}}
<template v-if="subItem.IsBusChange">
<br />
<font style="color:red;">
<template v-if="subItem.BusChangeValue>0">
+{{subItem.BusChangeValue}}
</template>
<template v-else>
{{subItem.BusChangeValue}}
</template>
<font style="color:#409eff;">({{subItem.BusChangeRemark}})</font>
</font>
</template>
</td> </td>
<td> <td>
{{subItem.PassFee}} {{subItem.PassFee}}
...@@ -160,13 +183,54 @@ ...@@ -160,13 +183,54 @@
<template v-if="subItem.DinnerName&&subItem.DinnerName!=''"> <template v-if="subItem.DinnerName&&subItem.DinnerName!=''">
晚: {{subItem.DinnerCostPrice}}<br /> 晚: {{subItem.DinnerCostPrice}}<br />
</template> </template>
<template v-if="subItem.IsLunchChange">
<br />
<font style="color:red;">
午:
<template v-if="subItem.LunchChangeValue>0">
+
</template>
{{subItem.LunchChangeValue}} <font style="color:#409eff;">({{subItem.LunchChangeRemark}})</font>
</font>
</template>
<template v-if="subItem.IsDinnerChange">
<br />
<font style="color:red;">
晚:
<template v-if="subItem.DinnerChangeValue>0">
+
</template>
{{subItem.DinnerChangeValue}} <font style="color:#409eff;">({{subItem.DinnerChangeRemark}})</font>
</font>
</template>
</td> </td>
<td> <td>
{{subItem.TicketName}} <template v-for="(childItem,childIndex) in subItem.ScenicList">
<template v-if="childItem.TicketId>0||childItem.TicketName!=''">
<font>
{{childIndex+1}}{{childItem.TicketName}}
</font>
<br />
</template>
</template>
</td> </td>
<td> <td>
<template v-if="subItem.TicketName&&subItem.TicketName!=''"> <template v-for="(childItem,childIndex) in subItem.ScenicList">
{{subItem.ScenicCostPrice}} <template v-if="childItem.TicketId>0||childItem.TicketName!=''">
<font>
{{childItem.TicketCostPrice}}
</font>
<br />
</template>
</template>
<template v-if="subItem.IsScenicChange">
<br />
<font style="color:red;">
<template v-if="subItem.ScenicChangeValue>0">
+
</template>
{{subItem.ScenicChangeValue}} <font style="color:#409eff;">({{subItem.ScenicChangeRemark}})</font>
</font>
</template> </template>
</td> </td>
<td> <td>
...@@ -184,18 +248,34 @@ ...@@ -184,18 +248,34 @@
<!--酒店小计--> <!--酒店小计-->
<td colspan="2"> <td colspan="2">
酒店小计: {{getDayXiaoJi(1,1)}} 酒店小计: {{getDayXiaoJi(1,1)}}
<template v-if="getDayChangeXiaoJi(1,1)!=0">
<br />
<font style="color:red">酒店变更合计:{{getDayChangeXiaoJi(1,1)}}</font>
</template>
</td> </td>
<!--车资小计--> <!--车资小计-->
<td colspan="2"> <td colspan="2">
车资小计:{{getDayXiaoJi(2,1)}} 车资小计:{{getDayXiaoJi(2,1)}}
<template v-if="getDayChangeXiaoJi(2,1)!=0">
<br />
<font style="color:red">车资变更合计:{{getDayChangeXiaoJi(2,1)}}</font>
</template>
</td> </td>
<!--餐小计--> <!--餐小计-->
<td colspan="2"> <td colspan="2">
餐小计: {{getDayXiaoJi(4,1)}} 餐小计: {{getDayXiaoJi(4,1)}}
<template v-if="getDayChangeXiaoJi(4,1)!=0">
<br />
<font style="color:red">餐变更合计:{{getDayChangeXiaoJi(4,1)}}</font>
</template>
</td> </td>
<!--门票小计--> <!--门票小计-->
<td colspan="2"> <td colspan="2">
门票小计: {{getDayXiaoJi(3,1)}} 门票小计: {{getDayXiaoJi(3,1)}}
<template v-if="getDayChangeXiaoJi(3,1)!=0">
<br />
<font style="color:red">门票变更合计:{{getDayChangeXiaoJi(3,1)}}</font>
</template>
</td> </td>
<!--其它费用小计--> <!--其它费用小计-->
<td colspan="2"> <td colspan="2">
...@@ -465,6 +545,32 @@ ...@@ -465,6 +545,32 @@
</template> </template>
{{postConfig.AuditContent}} {{postConfig.AuditContent}}
</template> </template>
<template
v-if="postConfig.ChangeManagerAduitDate&&postConfig.ChangeManagerAduitDate!=''&&postConfig.ChangeManagerAduitName&&postConfig.ChangeManagerAduitName!=''">
<br />
<p> {{postConfig.ChangeManagerAduitName}}{{postConfig.ChangeManagerAduitDate}}
<template v-if="postConfig.ChangeManagerAduitStatus==1">
<span style="color:blue;">{{$t('visa.v_tongguo')}}</span>
</template>
<template v-if="postConfig.ChangeManagerAduitStatus==2">
<span style="color:red;">{{$t('fnc.bohui')}}</span>
</template>
{{postConfig.ChangeManagerAduitContent}}
</p>
</template>
<template v-if=" postConfig.ChangeAduitDate&&postConfig.ChangeAduitDate!=''">
<br />
<p>
{{postConfig.ChangeAuditByName}}{{postConfig.ChangeAduitDate}}
<template v-if="postConfig.TravelState==8">
<span style="color:blue;"> 通过</span>
</template>
<template v-if="postConfig.TravelState==7">
<span style="color:red;"> 驳回</span>
</template>
{{postConfig.ChangeAduitContent}}
</p>
</template>
<template> <template>
<el-button type="primary" class="normalBtn" style="float:right;margin-right:40px;" <el-button type="primary" class="normalBtn" style="float:right;margin-right:40px;"
:loading="importOfferLoading" @click="downLoadOffer(postConfig)">下载系统报价单 :loading="importOfferLoading" @click="downLoadOffer(postConfig)">下载系统报价单
...@@ -482,10 +588,7 @@ ...@@ -482,10 +588,7 @@
v-if="postConfig.PriceTeamTypeName&&postConfig.PriceTeamTypeName.length>0">/{{postConfig.PriceTeamTypeName}}</template> v-if="postConfig.PriceTeamTypeName&&postConfig.PriceTeamTypeName.length>0">/{{postConfig.PriceTeamTypeName}}</template>
</td> </td>
</tr> </tr>
</table> </table>
<div class="Cost_Line"></div> <div class="Cost_Line"></div>
</el-form> </el-form>
</div> </div>
...@@ -505,6 +608,47 @@ ...@@ -505,6 +608,47 @@
} }
}, },
methods: { methods: {
//获取变更合计
getDayChangeXiaoJi(type, currencyType) {
var xiaoJi = 0;
this.dayCostPrice.forEach(item => {
var currencyRate = 1;
if (currencyType == 2) {
currencyRate = this.getCurrencyMoney(item.CurrencyId);
}
//酒店
if (type == 1) {
if (item.IsHotelChange) {
xiaoJi += Number(item.HotelChangeValue) * Number(currencyRate);
}
}
//车
if (type == 2) {
if (item.IsBusChange) {
xiaoJi += Number(item.BusChangeValue) * Number(currencyRate);
}
}
//景点
if (type == 3) {
if (item.IsScenicChange) {
xiaoJi += Number(item.ScenicChangeValue) * Number(currencyRate);
}
}
//早餐
if (type == 4) {
if (item.IsBreakfastChange) {
xiaoJi += Number(item.BreakfastChangeValue) * Number(currencyRate);
}
if (item.IsLunchChange) {
xiaoJi += Number(item.LunchChangeValue) * Number(currencyRate);
}
if (item.IsDinnerChange) {
xiaoJi += Number(item.DinnerChangeValue) * Number(currencyRate);
}
}
});
return xiaoJi.toFixed(0);
},
GetDayStr(dayNum) { GetDayStr(dayNum) {
var str = ""; var str = "";
if (this.postConfig.OutDateTime && this.postConfig.OutDateTime != '') { if (this.postConfig.OutDateTime && this.postConfig.OutDateTime != '') {
...@@ -666,5 +810,4 @@ ...@@ -666,5 +810,4 @@
}, },
}; };
</script> </script>
\ No newline at end of file
...@@ -188,18 +188,14 @@ ...@@ -188,18 +188,14 @@
</table> </table>
</div> </div>
<br /> <br />
<!--去掉删除功能 closable @close="handleClose(index)"-->
<el-tag v-for="(item, index) in orderList" :key="index"
style="margin-right: 10px;margin-bottom: 10px; cursor: pointer;" :type="index ===tabsActive ? '':'info'"
@click="selectTag(index)" :disable-transitions="false">
{{`报价单${index + 1}${item.queryMsg.IsDefault ? '(默认)' : ''}`}}
</el-tag>
<!--HK2023-07-28 注释--> <!--HK2023-07-28 注释-->
<!-- <el-button class="button-new-tag" size="small" @click="addOrderTag">新增报价单</el-button> --> <!-- <el-button class="button-new-tag" size="small" @click="addOrderTag">新增报价单</el-button> -->
<CostNewPriceFormVue ref="CostNewPrice" :postConfig="postConfig" :OtherPrice="currentData.OtherPrice" <CostNewPriceFormVue ref="CostNewPrice" :postConfig="postConfig" :OtherPrice="currentData.OtherPrice"
:dayCostPrice="currentData.dayCostPrice" :LineList="LineList" :CostCurrencyList="currentData.CostCurrencyList" :dayCostPrice="currentData.dayCostPrice" :LineList="LineList" :CostCurrencyList="currentData.CostCurrencyList"
:CostNumberList="currentData.CostNumberList" :CurrencyNumberListExt="CurrencyNumberListExt" :CostNumberList="currentData.CostNumberList" :CurrencyNumberListExt="CurrencyNumberListExt"
:queryMsg="currentData.queryMsg" :teamPrice="currentData.teamPrice"></CostNewPriceFormVue> :queryMsg="currentData.queryMsg" :teamPrice="currentData.teamPrice" @success="refreshPage">
</CostNewPriceFormVue>
</el-form> </el-form>
</div> </div>
</div> </div>
...@@ -274,6 +270,9 @@ ...@@ -274,6 +270,9 @@
}, },
}, },
methods: { methods: {
refreshPage() {
this.$emit("success");
},
//线路切换 //线路切换
changeLine() { changeLine() {
var line = this.LineList.find(xItem => xItem.LineID == this.postConfig.LineId); var line = this.LineList.find(xItem => xItem.LineID == this.postConfig.LineId);
...@@ -484,10 +483,7 @@ ...@@ -484,10 +483,7 @@
} }
return CurrencyNumberListExt; return CurrencyNumberListExt;
}, },
}, initData() {
mounted() {
this.getLineTeamList();
if (!this.OfferArray.length) { if (!this.OfferArray.length) {
this.createOrderList(); this.createOrderList();
} else { } else {
...@@ -510,6 +506,17 @@ ...@@ -510,6 +506,17 @@
if (this.postConfig.DayNum > 0) { if (this.postConfig.DayNum > 0) {
this.createDayTripPrice() this.createDayTripPrice()
} }
}
},
watch: {
OfferArray: function (oldValue, newValue) {
console.log("DirectNew_Watch")
this.initData()
}
},
mounted() {
this.getLineTeamList();
this.initData();
}, },
created() { created() {
this.getAllCurrency(); this.getAllCurrency();
......
...@@ -119,7 +119,8 @@ ...@@ -119,7 +119,8 @@
<CostNewPriceMun ref="CostNewPrice" :OfferArray="OfferArray" :postConfig="postConfig" <CostNewPriceMun ref="CostNewPrice" :OfferArray="OfferArray" :postConfig="postConfig"
:OtherPrice="otherPrice" :dayCostPrice="dayCostPrice" :LineList="LineList" :OtherPrice="otherPrice" :dayCostPrice="dayCostPrice" :LineList="LineList"
:CostCurrencyList="CostCurrencyList" :CostNumberList="CostNumberList" :CostCurrencyList="CostCurrencyList" :CostNumberList="CostNumberList"
:CurrencyNumberListExt="CurrencyNumberListExt" :teamPrice="teamPrice"></CostNewPriceMun> :CurrencyNumberListExt="CurrencyNumberListExt" :teamPrice="teamPrice" @success="refreshPage">
</CostNewPriceMun>
</div> </div>
</div> </div>
<div class="DirectRightPrice" style="margin-left:20px; display:none;"> <div class="DirectRightPrice" style="margin-left:20px; display:none;">
...@@ -240,7 +241,6 @@ ...@@ -240,7 +241,6 @@
</div> </div>
</template> </template>
<script> <script>
import CostNewPriceMun from "../TravelNewQuotation/CostNewPriceMun"; import CostNewPriceMun from "../TravelNewQuotation/CostNewPriceMun";
export default { export default {
...@@ -256,6 +256,9 @@ ...@@ -256,6 +256,9 @@
}; };
}, },
methods: { methods: {
refreshPage() {
this.$emit("success");
},
getData() { getData() {
return this.$refs.CostNewPrice.getData() return this.$refs.CostNewPrice.getData()
} }
...@@ -264,7 +267,6 @@ ...@@ -264,7 +267,6 @@
}, },
components: { components: {
CostNewPriceMun: CostNewPriceMun CostNewPriceMun: CostNewPriceMun
} }
}; };
......
<style>
.singlePrice {
width: 100%;
position: relative;
margin-bottom: 15px;
background-color: #fff;
padding: 0 20px 20px 20px;
border-radius: 4px;
}
</style>
<template>
<div class="DirectQuotation clearfix" v-loading="loading">
<div class="singlePrice clearfix">
<CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData" :OfferArray="OfferArray"
:IsEdit="IsEdit" @success="refreshPage"></CostNewPriceAudit>
</div>
<div class="btnFixedDiv" v-if="haveData">
<div class="toTop">
<i class="iconfont icon-huidaodingbu"></i>
</div>
<div class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="SaveData(2)">{{$t('fnc.tijiao')}}</div>
</div>
</div>
</template>
<script>
import CostNewPriceAudit from "../TravelNewQuotation/CostNewPriceAudit";
export default {
data() {
return {
haveData: false,
OfferArray: [],
//基本配置
postData: {
ID: 0,
StartCityId: 0,
LineId: 0,
LineteamId: 0,
Title: "",
IsOrder: 1,
IsSubstitution: 1,
IsB2B: 1,
IsB2C: 1,
FSeat: 0,
CSeat: 0,
YSeat: 0,
//最低成团人数
LowNum: 0,
//OP备注
OpRemark: "",
//产品经理备注
ProductRecommend: "",
IsDirect: 0, //是否直采(0-否-1-是)【全部默认非直采】
PriceIsDirect: 1, //是否直采报价(1-否-2-是)【全部默认非直采】
PDFAlias: "", //pdf别名
ImgCover: "", //封面图
DayNum: 0, //天数
NightNum: 0, //晚数
StartCityId: 0,
ReturnArriveCityId: 0, //返回抵达城市
CustomerName: "", //客户名称
TeamType: 0, //团队类型,
LineName: "", //线路名称
LtName: "", //系列名称
OutBranchId: -1, //出团公司
OutBranchName: "", //出团公司名称
OutDateTime: "", //出发时间
OfferPayType: 0, //报价单付款方式()
SaleOfferPayType: 0, //售价付款方式
AuditContent: "", //审核备注
AuditByName: "", //审核人员
AuditDate: "", //审核日期
TravelState: 0, //审核状态
ManagerAduitContent: "", //欧洲线审核备注
ManagerAduitDate: "", //欧洲线审核日期
ManagerAduitName: "", //欧洲线审核人员
ManagerAduitStatus: 0, //欧洲线审核状态(1-通过,2-驳回)
OPName: "", //主OP
AssistantList: [], //助理OP
PriceTeamType: 0, //团队类型,
PriceTeamTypeName: "", //团队类型,
},
isSubmit: true,
loading: false,
IsEdit: 0,
};
},
methods: {
//保存数据
SaveData(Type) {
var nObj = {
offerid: this.$route.query.offerid,
};
this.loading = true;
this.apipost(
"travel_post_SetOfferChangeAudit", nObj,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.goUrl('newQuotation');
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
goUrl(path) {
this.$router.push({
path: path,
query: {
cache: true
}
});
},
refreshPage() {
this.getPostData();
},
getPostData() {
let offerId = 0;
if (this.$route.query.offerid) {
offerId = this.$route.query.offerid;
}
let msg = {
offerId: offerId
};
this.OfferArray = [];
this.haveData = false;
this.loading = true;
this.apipost(
"travel_get_GetMyTravelInfo_V4",
msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
var tempData = res.data.data;
if (tempData.ID && tempData.ID > 0) {
this.postData.ID = tempData.ID;
}
if (tempData.LineId && tempData.LineId > 0) {
this.postData.LineId = tempData.LineId;
}
if (tempData.LineteamId && tempData.LineteamId > 0) {
this.postData.LineteamId = tempData.LineteamId;
}
if (tempData.CSeat && tempData.CSeat > 0) {
this.postData.CSeat = tempData.CSeat;
}
if (tempData.FSeat && tempData.FSeat > 0) {
this.postData.FSeat = tempData.FSeat;
}
if (tempData.YSeat && tempData.YSeat > 0) {
this.postData.YSeat = tempData.YSeat;
}
if (tempData.LowNum && tempData.LowNum > 0) {
this.postData.LowNum = tempData.LowNum;
}
if (tempData.Title && tempData.Title != '') {
this.postData.Title = tempData.Title;
}
if (tempData.DayNum && tempData.DayNum > 0) {
this.postData.DayNum = tempData.DayNum;
}
if (tempData.NightNum && tempData.NightNum > 0) {
this.postData.NightNum = tempData.NightNum;
}
if (tempData.OfferArray && tempData.OfferArray.length > 0) {
var offerObj = tempData.OfferArray[0];
if (offerObj) {
if (offerObj.AuditContent) {
if (this.IsEdit == 2) {
this.postData.AuditContent = "";
} else {
this.postData.AuditContent = offerObj.AuditContent;
}
}
if (offerObj.AuditByName) {
this.postData.AuditByName = offerObj.AuditByName;
}
if (offerObj.AuditDate) {
this.postData.AuditDate = offerObj.AuditDate;
}
if (offerObj.TravelState) {
this.postData.TravelState = offerObj.TravelState;
}
if (offerObj.ManagerAduitContent) {
this.postData.ManagerAduitContent = offerObj.ManagerAduitContent;
}
if (offerObj.ManagerAduitDate) {
this.postData.ManagerAduitDate = offerObj.ManagerAduitDate;
}
if (offerObj.ManagerAduitName) {
this.postData.ManagerAduitName = offerObj.ManagerAduitName;
}
if (offerObj.ManagerAduitStatus) {
this.postData.ManagerAduitStatus = offerObj.ManagerAduitStatus;
}
if (offerObj.OPName && offerObj.OPName != '') {
this.postData.OPName = offerObj.OPName;
}
if (offerObj.AssistantList && offerObj.AssistantList.length > 0) {
this.postData.Assistantlist = offerObj.AssistantList;
}
if (offerObj.OfferPayType) {
this.postData.OfferPayType = offerObj.OfferPayType;
}
if (offerObj.SaleOfferPayType) {
this.postData.SaleOfferPayType = offerObj.SaleOfferPayType;
}
}
}
this.postData.CustomerName = tempData.CustomerName;
this.postData.OutBranchId = tempData.OutBranchId;
this.postData.OutDateTime = tempData.OutDateTime;
this.postData.LineName = tempData.LineName;
this.postData.LtName = tempData.LtName;
this.postData.OutBranchName = tempData.OutBranchName;
this.postData.TeamTypeName = tempData.TeamTypeName;
this.postData.TeamType = tempData.TeamType;
this.postData.PriceTeamTypeName = tempData.PriceTeamTypeName;
this.postData.PriceTeamType = tempData.PriceTeamType;
if (tempData.OfferArray) {
tempData.OfferArray.forEach(item => {
this.OfferArray.push(item)
})
}
this.haveData = true;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
},
created() {
if (this.$route.query.Qtype) {
this.IsEdit = this.$route.query.Qtype;
}
this.getPostData();
},
components: {
CostNewPriceAudit: CostNewPriceAudit
}
};
</script>
\ No newline at end of file
...@@ -7,14 +7,11 @@ ...@@ -7,14 +7,11 @@
padding: 0 20px 20px 20px; padding: 0 20px 20px 20px;
border-radius: 4px; border-radius: 4px;
} }
</style> </style>
<template> <template>
<div class="DirectQuotation clearfix" v-loading="loading"> <div class="DirectQuotation clearfix" v-loading="loading">
<div class="singlePrice clearfix"> <div class="singlePrice clearfix">
<CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData" :OtherPrice="otherPrice" <CostNewPriceAudit v-if="haveData" ref="CostNewPrice" :postConfig="postData" :OfferArray="OfferArray"
:OfferArray="OfferArray" :dayCostPrice="dayCostPriceList" :CostCurrencyList="CostCurrencyList"
:CostNumberList="CostNumberList" :CurrencyNumberListExt="CurrencyNumberListExt" :teamPrice="teamPrice"
:IsEdit="IsEdit"></CostNewPriceAudit> :IsEdit="IsEdit"></CostNewPriceAudit>
</div> </div>
</div> </div>
...@@ -77,81 +74,16 @@ ...@@ -77,81 +74,16 @@
AssistantList: [], //助理OP AssistantList: [], //助理OP
PriceTeamType: 0, //团队类型, PriceTeamType: 0, //团队类型,
PriceTeamTypeName: "", //团队类型, PriceTeamTypeName: "", //团队类型,
CRemarks: "", //审核备注
ChangeManagerAduitName: "", //分公司报价单变更审核人
ChangeManagerAduitContent: "", //分公司报价单变更审核内容
ChangeManagerAduitDate: "", //分公司报价单变更审核日期
ChangeManagerAduitStatus: 0, //分公司报价单变更审核状态
ChangeAduitContent: "", //总经理审核报价单变更备注
ChangeAuditByName: "", //总经理审核
ChangeAduitDate: "", //总经理审核时间
}, },
dayCostPriceList: [], //报价列表
isSubmit: true, isSubmit: true,
otherPrice: {
CostId: 0, //主键编号
ConfigID: 0, //配置编号
OfferId: 0, //报价单编号
InlandAirTicketCurrency: 0, //内陆段机位币种
InlandAirTicketMoney: 0, //内陆段机位金额(每人)
InlandShipTicketCurrency: 0, //内陆段船票币种
InlandShipTicketMoney: 0, //内陆段船票金额(每人)
InlandTrainTicketCurrency: 0, //内陆段火车币种
InlandTrainTicketMoney: 0, //内陆段火车金额(每人)
VisaMoney: 0, //签证费用(每人)
SafeMoney: 0, //保险费用(每人)
LeaderTripMoney: 0, //领队小费
DriverGuideMoney: 0, //司机小费
SalesCommissionMoney: 0, //销售提成
OfficeCommissionMoney: 0, //作业处提成
TripMoney: 0, //小费
GuidePeopleMoney: 0, //导游人头费
AirTicketMoeny: 0, //机票成本费用
KBMoney: 0, //KB人头费
AirTicketShareMoney: 0, //机票分摊费用
TicketShareMoney: 0, //门票分摊费用,
SingleRoomShareMoney: 0, //单房差分摊费用
InlandTrafficShareMoney: 0, //内陆段交通分摊费用
OtherShareMoney: 0, //杂费分摊费用
OtherRemark: "", //其他价格备注
VisaMoneyCurrencyId: 0, //签证费币种
SafeMoneyCurrencyId: 0, //保险费币种
LeaderTripMoneyCurrencyId: 0, //领队小费币种
DriverGuideMoneyCurrencyId: 0, //司机小费币种
GuideMoneyCurrencyId: 0, //导游小费币种
GuideMoney: 0, //导游小费
InternationalAirTicket: 0, //国际段机票
InternationalAirTicketCurrency: 0, //国际段机票币种
},
CostCurrencyList: [], //选择的币种
CostNumberList: [], //人数
CurrencyNumberListExt: [], //币种和人数列表
//团报价信息
teamPrice: {
QuotationId: 0, //主键编号
TeamId: 0, //团期编号
ConfigID: 0, //团队配置编号
OfferId: 0, //报价编号
B2BMemberPrice: 0, //同业会员价
B2BPrice: 0, //同业价格
B2CMemberPrice: 0, //直客会员价,
B2CPrice: 0, //直客价格
ChildNeedPrice: 0, //小孩占床价格,
ChildNoNeedPrice: 0, //小孩不占床价格
BabyPrice: 0, //婴儿价格
BabyChargePrice: 0, //婴儿附加费
OldManChargePrice: 0, //老人附加费
VisaPrice: 0, //签证
OtherPrice: 0, //杂费
SingleRoomPrice: 0, //单房差
SingleDMCPrice: 0, //单地接
RebatePrice: 0, //同行返佣
DiscountPrice: 0, //早鸟优惠
IsSupportChildren: 1, //是否支持儿童出游(1-支持,2-不支持)
SafeMoney: 0, //保险费
PeopleNumber: 0, //人数
AirticketMoney: 0, //机票费用
BackVisaPrice: 0, //退签证费
BackSafeMoney: 0, //退保险费
ContractUrl: "", //合同地址
PriceRemark: "", //定价备注
LeaderGuideDriveZhuSu: 0, //领队导游住宿费
AuditContent: "", //审核备注
TravelState: 0, //3审核通过,4拒绝
},
LineList: [], //线路列表
loading: false, loading: false,
IsEdit: 0, IsEdit: 0,
}; };
...@@ -161,14 +93,17 @@ ...@@ -161,14 +93,17 @@
SaveData(Type) { SaveData(Type) {
var nObj = { var nObj = {
ID: this.$route.query.offerid, ID: this.$route.query.offerid,
AuditContent: this.postData.AuditContent, AuditContent: this.postData.CRemarks,
TravelState: Type, TravelState: Type,
OfferPayType: this.postData.OfferPayType, OfferPayType: this.postData.OfferPayType,
TeamType: this.postData.TeamType, TeamType: this.postData.TeamType,
}; };
var cmdStr = "travel_get_AuditTravelOffer";
if (Type == 7 || Type == 8) {
cmdStr = "travel_get_AuditChangeOffer";
}
this.loading = true; this.loading = true;
this.apipost( this.apipost(cmdStr, nObj,
"travel_get_AuditTravelOffer", nObj,
res => { res => {
this.loading = false; this.loading = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
...@@ -239,12 +174,8 @@ ...@@ -239,12 +174,8 @@
var offerObj = tempData.OfferArray[0]; var offerObj = tempData.OfferArray[0];
if (offerObj) { if (offerObj) {
if (offerObj.AuditContent) { if (offerObj.AuditContent) {
if (this.IsEdit == 2) {
this.postData.AuditContent = "";
} else {
this.postData.AuditContent = offerObj.AuditContent; this.postData.AuditContent = offerObj.AuditContent;
} }
}
if (offerObj.AuditByName) { if (offerObj.AuditByName) {
this.postData.AuditByName = offerObj.AuditByName; this.postData.AuditByName = offerObj.AuditByName;
} }
...@@ -266,6 +197,31 @@ ...@@ -266,6 +197,31 @@
if (offerObj.ManagerAduitStatus) { if (offerObj.ManagerAduitStatus) {
this.postData.ManagerAduitStatus = offerObj.ManagerAduitStatus; this.postData.ManagerAduitStatus = offerObj.ManagerAduitStatus;
} }
if (offerObj.ChangeManagerAduitName) {
this.postData.ChangeManagerAduitName = offerObj.ChangeManagerAduitName;
}
if (offerObj.ChangeManagerAduitContent) {
this.postData.ChangeManagerAduitContent = offerObj.ChangeManagerAduitContent;
}
if (offerObj.ChangeManagerAduitDate) {
this.postData.ChangeManagerAduitDate = offerObj.ChangeManagerAduitDate;
}
if (offerObj.ChangeManagerAduitStatus) {
this.postData.ChangeManagerAduitStatus = offerObj.ChangeManagerAduitStatus;
}
if (offerObj.ChangeAduitContent) {
this.postData.ChangeAduitContent = offerObj.ChangeAduitContent;
}
if (offerObj.ChangeAuditByName) {
this.postData.ChangeAuditByName = offerObj.ChangeAuditByName;
}
if (offerObj.ChangeAduitDate) {
this.postData.ChangeAduitDate = offerObj.ChangeAduitDate;
}
if (offerObj.OPName && offerObj.OPName != '') { if (offerObj.OPName && offerObj.OPName != '') {
this.postData.OPName = offerObj.OPName; this.postData.OPName = offerObj.OPName;
} }
...@@ -314,5 +270,4 @@ ...@@ -314,5 +270,4 @@
CostNewPriceAudit: CostNewPriceAudit CostNewPriceAudit: CostNewPriceAudit
} }
}; };
</script> </script>
\ No newline at end of file
...@@ -58,7 +58,6 @@ ...@@ -58,7 +58,6 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
</style> </style>
<template> <template>
<div class="flexOne quoTation"> <div class="flexOne quoTation">
...@@ -239,12 +238,24 @@ ...@@ -239,12 +238,24 @@
{{$t('fnc.shenhe')}} {{$t('fnc.shenhe')}}
</div> </div>
</div> </div>
<div v-if="item.TravelState==3"> <div v-if="item.TravelState==6">
<div>
<template v-if="item.ChangeManagerAduitDate==''&&item.ChangeManagerId>0">
{{item.ChangeManagerAduitName}}
</template>
<template v-else>
{{item.ChangeAuditByName}}
</template>
{{$t('fnc.shenhe')}}
</div>
</div>
<div v-if="item.TravelState==3||item.TravelState==8">
<div class="Auditapproved">{{$t('fnc.ytongguo')}}</div> <div class="Auditapproved">{{$t('fnc.ytongguo')}}</div>
</div> </div>
<div v-if="item.TravelState==4"> <div v-if="item.TravelState==4||item.TravelState==7">
<div class="Auditrejected">{{$t('objFill.yibohui')}}</div> <div class="Auditrejected">{{$t('objFill.yibohui')}}</div>
</div> </div>
<template v-if="(item.ManagerAduitDate&&item.ManagerAduitDate!='')||(item.AuditDate&&item.AuditDate!='')"> <template v-if="(item.ManagerAduitDate&&item.ManagerAduitDate!='')||(item.AuditDate&&item.AuditDate!='')">
<el-popover popper-class="salsSetPrice" trigger="click"> <el-popover popper-class="salsSetPrice" trigger="click">
<template v-if="item.ManagerAduitDate&&item.ManagerAduitDate!=''"> <template v-if="item.ManagerAduitDate&&item.ManagerAduitDate!=''">
...@@ -263,7 +274,7 @@ ...@@ -263,7 +274,7 @@
</div> </div>
</div> </div>
</template> </template>
<div class="priceContentDiv" v-if="item.AuditDate&&item.AuditDate!=''"> <div class="priceContentDiv" v-if="item.AuditDate&&item.AuditDate!=''" style="margin-bottom:5px;">
<div> <div>
<span>审批结果</span> <span>审批结果</span>
<span class="AuditDate">{{item.AuditDate}}</span> <span class="AuditDate">{{item.AuditDate}}</span>
...@@ -277,6 +288,36 @@ ...@@ -277,6 +288,36 @@
</template> </template>
</div> </div>
</div> </div>
<template v-if="item.ChangeManagerAduitDate&&item.ChangeManagerAduitDate!=''">
<div class="priceContentDiv" style="margin-bottom:5px;" >
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.ChangeManagerAduitDate}}</span>
</div>
<div>{{item.ChangeManagerAduitName}}:
<template v-if="item.ChangeManagerAduitContent&&item.ChangeManagerAduitContent!=''">
{{item.ChangeManagerAduitContent}}
</template>
<template v-else>
{{$t('fnc.no')}}
</template>
</div>
</div>
</template>
<div class="priceContentDiv" v-if="item.ChangeAduitDate&&item.ChangeAduitDate!=''" style="margin-bottom:5px;">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.ChangeAduitDate}}</span>
</div>
<div>{{item.ChangeAuditByName}}:
<template v-if="item.ChangeAduitContent&&item.ChangeAduitContent!=''">
{{item.ChangeAduitContent}}
</template>
<template v-else>
{{$t('fnc.no')}}
</template>
</div>
</div>
<div slot="reference" class="AuditLookDetail">{{$t('fnc.rizhi')}}</div> <div slot="reference" class="AuditLookDetail">{{$t('fnc.rizhi')}}</div>
</el-popover> </el-popover>
</template> </template>
...@@ -308,6 +349,11 @@ ...@@ -308,6 +349,11 @@
<i @click="goUrl('QuotationAduit',item,1)" class="iconfont icon-view"></i> <i @click="goUrl('QuotationAduit',item,1)" class="iconfont icon-view"></i>
</el-tooltip> </el-tooltip>
</span> </span>
<span class="bianji newAopbdd" v-if="item.TravelState==3||item.TravelState==7">
<el-tooltip class="item" effect="dark" content="报价单变更" placement="top-start" popper-class="max-w250">
<i @click="goUrl('OfferChange',item,3)" class="iconfont el-icon-edit"></i>
</el-tooltip>
</span>
<span style="background:#85ce61; " class="newAopbdd" @click="copyOffer(item)"> <span style="background:#85ce61; " class="newAopbdd" @click="copyOffer(item)">
<el-tooltip class="item" effect="dark" :content="$t('objFill.copy')" placement="top-start" <el-tooltip class="item" effect="dark" :content="$t('objFill.copy')" placement="top-start"
popper-class="max-w250"> popper-class="max-w250">
...@@ -875,5 +921,4 @@ ...@@ -875,5 +921,4 @@
this.getLineTeamList(); this.getLineTeamList();
} }
}; };
</script> </script>
\ No newline at end of file
...@@ -343,6 +343,30 @@ ...@@ -343,6 +343,30 @@
} }
if (offerObj.ManagerAduitStatus) { if (offerObj.ManagerAduitStatus) {
this.postData.ManagerAduitStatus = offerObj.ManagerAduitStatus; this.postData.ManagerAduitStatus = offerObj.ManagerAduitStatus;
}
if (offerObj.ChangeManagerAduitName) {
this.postData.ChangeManagerAduitName = offerObj.ChangeManagerAduitName;
}
if (offerObj.ChangeManagerAduitContent) {
this.postData.ChangeManagerAduitContent = offerObj.ChangeManagerAduitContent;
}
if (offerObj.ChangeManagerAduitDate) {
this.postData.ChangeManagerAduitDate = offerObj.ChangeManagerAduitDate;
}
if (offerObj.ChangeManagerAduitStatus) {
this.postData.ChangeManagerAduitStatus = offerObj.ChangeManagerAduitStatus;
}
if (offerObj.ChangeAduitContent) {
this.postData.ChangeAduitContent = offerObj.ChangeAduitContent;
}
if (offerObj.ChangeAuditByName) {
this.postData.ChangeAuditByName = offerObj.ChangeAuditByName;
}
if (offerObj.ChangeAduitDate) {
this.postData.ChangeAduitDate = offerObj.ChangeAduitDate;
} }
if (offerObj.OPName && offerObj.OPName != '') { if (offerObj.OPName && offerObj.OPName != '') {
this.postData.OPName = offerObj.OPName; this.postData.OPName = offerObj.OPName;
......
This diff is collapsed.
...@@ -3163,15 +3163,7 @@ export default { ...@@ -3163,15 +3163,7 @@ export default {
title: '报价单' title: '报价单'
}, },
}, },
//销售-自主开团报价单
{
path: '/newQuotation2',
name: 'newQuotation2',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/newQuotation'], resolve),
meta: {
title: '报价单'
},
},
{ // 销售 任务管理 { // 销售 任务管理
path: '/saleTaskManagement', path: '/saleTaskManagement',
name: 'saleTaskManagement', name: 'saleTaskManagement',
...@@ -3794,6 +3786,14 @@ export default { ...@@ -3794,6 +3786,14 @@ export default {
title: '制作报价单' title: '制作报价单'
}, },
}, },
{ //报价单变更
path: '/OfferChange',
name: 'OfferChange',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/OfferChange'], resolve),
meta: {
title: '报价单变更'
},
},
{ //新版制作报价单[SWT旅行社] { //新版制作报价单[SWT旅行社]
path: '/QuotationPrice_SWT', path: '/QuotationPrice_SWT',
name: 'QuotationPrice_SWT', name: 'QuotationPrice_SWT',
......
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