Commit 764192dc authored by 黄媛媛's avatar 黄媛媛
parents 46440ffe 514158f4
<style>
@import "../../../assets/css/newTravelManager.css";
@import "../../../assets/css/newTravelManager.css";
</style>
<template>
<div class="flexOne quoTation">
<div class="query-box">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select v-model="queryData.LineId" class='w200' filterable
:placeholder="$t('pub.pleaseSel')" @change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option
v-for="item in LineList"
:label='item.LineName'
:value='item.LineID'
:key='item.LineID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>所属系列</em>
<el-select v-model="queryData.LineteamId" class='w200' filterable
:placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option
v-for="item in LineTeamList"
:label='item.LtName'
:value='item.LtID'
:key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>提交人</em>
<el-select v-model="queryData.CreateBy" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in EmployeeList"
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
</li>
</ul>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick(activeName)">
<el-tab-pane v-for="item in $tripUtils.TravelStateList" :label="item.label" :name="item.Id"
:key="item.subCode"></el-tab-pane>
</el-tabs>
<div class="commonContent" v-loading="loading">
<ul class="_content">
<div class="flexOne quoTation">
<div class="query-box">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select v-model="queryData.LineId" class='w200' filterable :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>所属系列</em>
<el-select v-model="queryData.LineteamId" class='w200' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>提交人</em>
<el-select v-model="queryData.CreateBy" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in EmployeeList" :label='item.EmName' :value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
</li>
</ul>
</div>
<el-tabs v-model="activeName" @tab-click="handleClick(activeName)">
<el-tab-pane v-for="item in $tripUtils.TravelStateList" :label="item.label" :name="item.Id" :key="item.subCode">
</el-tab-pane>
</el-tabs>
<div class="commonContent" v-loading="loading">
<ul class="_content">
<li v-for="item in dataList" :key="item.subCode" :data-id='item.ID'>
<div class="_left">
<div>
<p class="quoListName" @click="getJourney(item.ID,item.Title)">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>{{item.Title}}</span>
</el-tooltip>
</p>
<p class="Quo_Content"><i v-if="item.ProductRecommend" class="iconfont icon-richeng"></i>
<span>{{item.ProductRecommend}}</span>
</p>
</div>
<div class="_left">
<div>
<p class="quoListName">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.ID" placement="top-start">
<span>{{item.ID}}</span>
</el-tooltip>
</p>
</div>
<div class="_cent">
<div class="stayDays">{{item.DayNum}}{{item.NightNum}}</div>
<div class="">
销售定价
<el-popover
popper-class="salsSetPrice"
trigger="click">
<div class="priceContentDiv" v-if="item.QuotationPrice!=null">
<div>
<div>成人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">同业会员:¥{{item.QuotationPrice.B2BMemberPrice}}</span>
<span class="pRightPrice">同业:¥{{item.QuotationPrice.B2BPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">直客会员:¥{{item.QuotationPrice.B2CMemberPrice}}</span>
<span class="pRightPrice">直客:¥{{item.QuotationPrice.B2CPrice}}</span>
</div>
</div>
<div>小孩</div>
<div class="priceList">
<div>
<span class="pLeftPrice">占床:¥{{item.QuotationPrice.ChildNeedPrice}}</span>
<span class="pRightPrice">不占床:¥{{item.QuotationPrice.ChildNoNeedPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">婴儿:¥{{item.QuotationPrice.BabyPrice}}</span>
<span class="pRightPrice">附加费:¥{{item.QuotationPrice.BabyChargePrice}}</span>
</div>
</div>
<div>老人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">附加费:¥{{item.QuotationPrice.OldManChargePrice}}</span>
</div>
</div>
<div>杂费</div>
<div class="priceList">
<div>
<span class="pLeftPrice">签证:¥{{item.QuotationPrice.VisaPrice}}</span>
<span class="pRightPrice">单房差:¥{{item.QuotationPrice.SingleRoomPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">杂费:¥{{item.QuotationPrice.OtherPrice}}</span>
</div>
</div>
<div>单项报价</div>
<div class="priceList">
<div>
<span class="pLeftPrice">单地接:¥{{item.QuotationPrice.SingleDMCPrice}}</span>
</div>
</div>
<div>优惠</div>
<div class="priceList">
<div>
<span class="pLeftPrice">同行返佣:¥{{item.QuotationPrice.RebatePrice}}</span>
<span class="pRightPrice">早鸟优惠:¥{{item.QuotationPrice.DiscountPrice}}</span>
</div>
</div>
</div>
</div>
<div class="_left">
<div>
<p class="quoListName">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.LineName" placement="top-start">
<span>{{item.LineName}}</span>
</el-tooltip>
</p>
<p class="Quo_Content"><i v-if="item.LtName" class="iconfont icon-richeng"></i>
<span>{{item.LtName}}</span>
</p>
</div>
</div>
<div class="_left">
<div>
<p class="quoListName">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>{{item.Title}}</span>
</el-tooltip>
</p>
<p class="Quo_Content"><i v-if="item.CustomerName" class="iconfont icon-richeng"></i>
<span>{{item.CustomerName}}</span>
</p>
</div>
</div>
<div class="_cent">
<div class="stayDays">{{item.DayNum}}</div>
<div class="">
销售定价
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv" v-if="item.QuotationPrice!=null">
<div>
<div>成人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">销售价格:¥{{item.QuotationPrice.B2BMemberPrice}}</span>
</div>
<span slot="reference" class="diPrice" >{{item.SalesPrice}}<span class="qi"></span></span>
</el-popover>
<span class="AudiDanTeamDate">有效期:{{item.QuotationLimitStartStr}}&nbsp;{{item.QuotationLimitEndStr}}</span>
</div>
<div>小孩</div>
<div class="priceList">
<div>
<span class="pLeftPrice">占床:¥{{item.QuotationPrice.ChildNeedPrice}}</span>
<span class="pRightPrice">不占床:¥{{item.QuotationPrice.ChildNoNeedPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">婴儿:¥{{item.QuotationPrice.BabyPrice}}</span>
<span class="pRightPrice">附加费:¥{{item.QuotationPrice.BabyChargePrice}}</span>
</div>
</div>
<div>老人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">附加费:¥{{item.QuotationPrice.OldManChargePrice}}</span>
</div>
</div>
<div>杂费</div>
<div class="priceList">
<div>
<span class="pLeftPrice">签证:¥{{item.QuotationPrice.VisaPrice}}</span>
<span class="pRightPrice">单房差:¥{{item.QuotationPrice.SingleRoomPrice}}</span>
</div>
</div>
<div>单项报价</div>
<div class="priceList">
<div>
<span class="pLeftPrice">单地接:¥{{item.QuotationPrice.SingleDMCPrice}}</span>
</div>
</div>
</div>
</div>
<span slot="reference" class="diPrice">{{item.SalesPrice}}<span class="qi"></span></span>
</el-popover>
</div>
<div class="_rightAudit">
<div class="AuditUserInfo clearfix aa">
<div class="AuditDanHeader">
<img v-if="item.CreateUserPhoto" :src="item.CreateUserPhoto" alt="">
<img v-else src="../../../assets/img/default_head_img.jpg" alt="">
</div>
<div class="AuditUserInfoDetail">
<div>{{item.CreateUserName}}</div>
<div class="AuditChangeDate">{{item.CreateDate}}</div>
</div>
</div>
<div class="_rightAudit">
<div class="AuditUserInfo clearfix aa">
<div class="AuditDanHeader">
<img v-if="item.CreateUserPhoto" :src="item.CreateUserPhoto" alt="">
<img v-else src="../../../assets/img/default_head_img.jpg" alt="">
</div>
<div class="AuditStatus">
<div v-if="item.TravelState==2">
<div>待审核</div>
<div class="AuditUserInfoDetail">
<div>{{item.CreateUserName}}</div>
<div class="AuditChangeDate">{{item.CreateDate}}</div>
</div>
</div>
<div class="AuditStatus">
<div v-if="item.TravelState==2">
<div>待审核</div>
</div>
<div v-if="item.TravelState==3">
<div class="Auditapproved">已通过</div>
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.hours}}</span>
</div>
<div>{{item.AuditContent}}</div>
</div>
<div v-if="item.TravelState==3">
<div class="Auditapproved">已通过</div>
<el-popover
popper-class="salsSetPrice"
trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.hours}}</span>
</div>
<div>{{item.AuditContent}}</div>
</div>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
<div v-if="item.TravelState==4">
<div class="Auditrejected">已驳回</div>
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.hours}}</span>
</div>
<div>{{item.AuditContent}}</div>
</div>
<div v-if="item.TravelState==4">
<div class="Auditrejected">已驳回</div>
<el-popover
popper-class="salsSetPrice"
trigger="click">
<div class="priceContentDiv">
<div>
<span>审批结果</span>
<span class="AuditDate">{{item.hours}}</span>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
</div>
<div class="AD_Operation">
<span class="openGroup opbd">
<el-tooltip class="item" effect="dark" content="查看" placement="top-start" popper-class="max-w250">
<span @click="goUrl('QuotationAduit',item.ID,1)"></span>
</el-tooltip>
</span>
<span class="openGroup opbd" v-if="item.TravelState==2">
<el-tooltip class="item" effect="dark" content="审核" placement="top-start" popper-class="max-w250">
<span @click="goUrl('QuotationAduit',item.ID,2)"></span>
</el-tooltip>
</span>
<span class="openGroup opbd">
<el-tooltip class="item" effect="dark" content="日志" placement="top-start" popper-class="max-w250">
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div class="AuditLog">报价单日志</div>
<div class="logContact">
<div v-for="(childItem,logIndex) in AuditLogList" :key="childItem.subCode">
<div class="clearfix">
<div class="Auditcircle"></div>
<div class="operateName">{{childItem.UserName}}</div>
<div class="operateDate">{{childItem.hour}}</div>
</div>
<div>{{childItem.LogContent}}<span class="spread" v-if="childItem.LogType==2"
@click="expectInfo(logIndex)">{{childItem.expectName}}</span></div>
<div v-if="childItem.isShow">{{childItem.LogRemark}}</div>
</div>
<div>{{item.AuditContent}}</div>
</div>
<div slot="reference" class="AuditLookDetail">查看说明</div>
</el-popover>
</div>
</div>
<div class="AD_Operation">
<span class="openGroup opbd">
<el-tooltip class="item" effect="dark" content="查看" placement="top-start"
popper-class="max-w250">
<span @click="goUrl('QuotationDetails',item.ID,1)"></span>
</el-tooltip>
</span>
<span class="openGroup opbd" v-if="item.TravelState==2">
<el-tooltip class="item" effect="dark" content="审核" placement="top-start"
popper-class="max-w250">
<span @click="goUrl('QuotationDetails',item.ID,2)"></span>
</el-tooltip>
</span>
<span class="openGroup opbd">
<el-tooltip class="item" effect="dark" content="日志" placement="top-start"
popper-class="max-w250">
<el-popover
popper-class="salsSetPrice"
trigger="click">
<div class="priceContentDiv">
<div class="AuditLog">报价单日志</div>
<div class="logContact">
<div v-for="(childItem,logIndex) in AuditLogList" :key="childItem.subCode">
<div class="clearfix">
<div class="Auditcircle"></div>
<div class="operateName">{{childItem.UserName}}</div>
<div class="operateDate">{{childItem.hour}}</div>
</div>
<div>{{childItem.LogContent}}<span class="spread"
v-if="childItem.LogType==2"
@click="expectInfo(logIndex)">{{childItem.expectName}}</span></div>
<div v-if="childItem.isShow">{{childItem.LogRemark}}</div>
</div>
</div>
</div>
<span slot="reference" class="AuditLogSpan" @click="getAudiDanLog(item.ID)"></span>
</el-popover>
</el-tooltip>
</span>
</div>
</div>
<span slot="reference" class="AuditLogSpan" @click="getAudiDanLog(item.ID)"></span>
</el-popover>
</el-tooltip>
</span>
</div>
</div>
</li>
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="queryData.pageSize" :total="total">
</el-pagination>
<el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="outerVisible" center>
<commonTeamInfo ref="comDialog"></commonTeamInfo>
</el-dialog>
<div class="shenheBtm" v-if="isShowDan">
<el-form label-width="100px" :model="AuditInfo" :rules="rules" ref="AuditInfo">
<el-col :span="3">
<div style="margin:58px 0 0 50px;">
<el-radio v-model="AuditInfo.TravelState" label="3">通过</el-radio>
<el-radio v-model="AuditInfo.TravelState" label="4">驳回</el-radio>
</div>
</el-col>
<el-col :span="10" style="margin-top:30px;">
<el-form-item label="审批说明" prop="AuditContent">
<el-input type="textarea" class="w600" v-model="AuditInfo.AuditContent"></el-input>
</el-form-item>
</el-col>
<el-col :span="3" style="margin-top:60px;">
<button class="hollowFixedBtn" @click="isShowDan=false">取消</button>
<button class="normalBtn" @click="submitForm('AuditInfo')">保存</button>
</el-col>
</el-form>
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="queryData.pageSize" :total="total">
</el-pagination>
<el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="outerVisible" center>
<commonTeamInfo ref="comDialog"></commonTeamInfo>
</el-dialog>
<div class="shenheBtm" v-if="isShowDan">
<el-form label-width="100px" :model="AuditInfo" :rules="rules" ref="AuditInfo">
<el-col :span="3">
<div style="margin:58px 0 0 50px;">
<el-radio v-model="AuditInfo.TravelState" label="3">通过</el-radio>
<el-radio v-model="AuditInfo.TravelState" label="4">驳回</el-radio>
</div>
</el-col>
<el-col :span="10" style="margin-top:30px;">
<el-form-item label="审批说明" prop="AuditContent">
<el-input type="textarea" class="w600" v-model="AuditInfo.AuditContent"></el-input>
</el-form-item>
</el-col>
<el-col :span="3" style="margin-top:60px;">
<button class="hollowFixedBtn" @click="isShowDan=false">取消</button>
<button class="normalBtn" @click="submitForm('AuditInfo')">保存</button>
</el-col>
</el-form>
</div>
</div>
</template>
<script>
import commonTeamInfo from "../../commonPage/commonTeamInfo.vue";
export default {
data() {
return {
queryData: {
LineId: 0,
LineteamId: 0,
CreateBy: 0,
PageIndex: "1",
PageSize: "5",
TravelState: 2
},
AuditInfo: {
ID: "",
TravelState: "",
AuditContent: ""
},
rules: {
AuditContent: [
{ required: true, message: "请填写审核说明", trigger: "blur" }
]
},
loading: true,
//默认选中
activeName: "2",
//员工列表
EmployeeList: [],
//日志
AuditLogList: "",
//显示隐藏审核
isShowDan: false,
//线路列表
LineList: "",
noLimit: 0,
//系列列表
//是否有数据
noData: false,
LineTeamList: "",
dataList: "",
total: 0,
currentPage: 1,
SalesPriceList: [],
CostList: [],
outerVisible: false,
tripTitle: ""
};
},
components: {
commonTeamInfo: commonTeamInfo
},
methods: {
handleCurrentChange(val) {
this.queryData.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.queryData.pageIndex = 1;
this.currentPage = 1;
},
//选项卡切换
handleClick(activeName) {
this.queryData.TravelState = activeName;
this.getList();
},
//获取操作日志
getAudiDanLog(ID) {
let msg = {
configId: ID
import commonTeamInfo from "../../commonPage/commonTeamInfo.vue";
export default {
data() {
return {
queryData: {
LineId: 0,
LineteamId: 0,
CreateBy: 0,
PageIndex: "1",
PageSize: "5",
TravelState: 2
},
AuditInfo: {
ID: "",
TravelState: "",
AuditContent: ""
},
rules: {
AuditContent: [{
required: true,
message: "请填写审核说明",
trigger: "blur"
}]
},
loading: true,
//默认选中
activeName: "2",
//员工列表
EmployeeList: [],
//日志
AuditLogList: "",
//显示隐藏审核
isShowDan: false,
//线路列表
LineList: "",
noLimit: 0,
//系列列表
//是否有数据
noData: false,
LineTeamList: "",
dataList: "",
total: 0,
currentPage: 1,
SalesPriceList: [],
CostList: [],
outerVisible: false,
tripTitle: ""
};
this.apipost("travel_get_GetTravelConfigLog", msg, res => {
if (res.data.resultCode == 1) {
var endDate = new Date();
endDate.setMonth(endDate.getMonth() + 1);
var tempData = res.data.data;
tempData.forEach(x => {
if (x.LogType == 2) {
x.isShow = false;
x.expectName = "展开";
}
x.hour = this.$commonUtils.formatMsgTime(x.LogTimeStr);
});
this.AuditLogList = tempData;
}
});
},
expectInfo(logIndex) {
var flag = this.AuditLogList[logIndex].isShow;
this.AuditLogList[logIndex].isShow = !flag;
if (this.AuditLogList[logIndex].isShow) {
this.AuditLogList[logIndex].expectName = "关闭";
} else {
this.AuditLogList[logIndex].expectName = "展开";
}
components: {
commonTeamInfo: commonTeamInfo
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.queryData.LineteamId = 0;
let msg = {
lineID: this.queryData.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.LineTeamList = res.data.data;
}
});
},
//初始化表格数据
getList() {
this.loading = true;
this.apipost(
"travel_get_GetTravelOfferAuditPageList",
this.queryData,
res => {
this.loading = false;
methods: {
handleCurrentChange(val) {
this.queryData.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.queryData.pageIndex = 1;
this.currentPage = 1;
},
//选项卡切换
handleClick(activeName) {
this.queryData.TravelState = activeName;
this.getList();
},
//获取操作日志
getAudiDanLog(ID) {
let msg = {
configId: ID
};
this.apipost("travel_get_GetTravelConfigLog", msg, res => {
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.noData = !this.total > 0;
var tempData = res.data.data.pageData;
var endDate = new Date();
endDate.setMonth(endDate.getMonth() + 1);
var tempData = res.data.data;
tempData.forEach(x => {
x.hours = this.$commonUtils.formatMsgTime(x.AuditDate);
if (x.LogType == 2) {
x.isShow = false;
x.expectName = "展开";
}
x.hour = this.$commonUtils.formatMsgTime(x.LogTimeStr);
});
this.dataList = tempData;
this.AuditLogList = tempData;
}
});
},
expectInfo(logIndex) {
var flag = this.AuditLogList[logIndex].isShow;
this.AuditLogList[logIndex].isShow = !flag;
if (this.AuditLogList[logIndex].isShow) {
this.AuditLogList[logIndex].expectName = "关闭";
} else {
this.AuditLogList[logIndex].expectName = "展开";
}
);
},
//点击销售定价获取数据
getSalsPrice(ID) {
let msg = {
ID: ID
};
this.SalesPriceList = [];
this.apipost("travel_get_GetTravelQuotationPrice", msg, res => {
if (res.data.resultCode == 1) {
this.SalesPriceList.push(res.data.data[0]);
}
});
},
//点击地接成本获取数据
getCostPrice(ID) {
let msg = {
ID: ID
};
this.CostList = [];
this.apipost("travel_get_GetTravelOfferPrice", msg, res => {
if (res.data.resultCode == 1) {
if (res.data.data[0] != undefined || res.data.data[0] != null) {
let cost = res.data.data[0];
let dayNum = 0;
cost.LocalOfferPriceList.forEach(x => {
if (x.DayNum > dayNum) {
dayNum = x.DayNum;
}
});
let offerPriceList = [];
for (let i = 1; i <= dayNum; i++) {
let dayOfferPriceList = [];
let totalPrice = 0;
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.queryData.LineteamId = 0;
let msg = {
lineID: this.queryData.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.LineTeamList = res.data.data;
}
});
},
//初始化表格数据
getList() {
this.loading = true;
this.apipost(
"travel_get_GetTravelOfferAuditPageList",
this.queryData,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.noData = !this.total > 0;
var tempData = res.data.data.pageData;
tempData.forEach(x => {
x.hours = this.$commonUtils.formatMsgTime(x.AuditDate);
});
this.dataList = tempData;
}
}
);
},
//点击销售定价获取数据
getSalsPrice(ID) {
let msg = {
ID: ID
};
this.SalesPriceList = [];
this.apipost("travel_get_GetTravelQuotationPrice", msg, res => {
if (res.data.resultCode == 1) {
this.SalesPriceList.push(res.data.data[0]);
}
});
},
//点击地接成本获取数据
getCostPrice(ID) {
let msg = {
ID: ID
};
this.CostList = [];
this.apipost("travel_get_GetTravelOfferPrice", msg, res => {
if (res.data.resultCode == 1) {
if (res.data.data[0] != undefined || res.data.data[0] != null) {
let cost = res.data.data[0];
let dayNum = 0;
cost.LocalOfferPriceList.forEach(x => {
if (x.DayNum == i) {
dayOfferPriceList.push(x);
totalPrice += x.OfferPrice;
if (x.DayNum > dayNum) {
dayNum = x.DayNum;
}
});
let offerPrice = { day: i, dayOfferPriceList, totalPrice };
offerPriceList.push(offerPrice);
let offerPriceList = [];
for (let i = 1; i <= dayNum; i++) {
let dayOfferPriceList = [];
let totalPrice = 0;
cost.LocalOfferPriceList.forEach(x => {
if (x.DayNum == i) {
dayOfferPriceList.push(x);
totalPrice += x.OfferPrice;
}
});
let offerPrice = {
day: i,
dayOfferPriceList,
totalPrice
};
offerPriceList.push(offerPrice);
}
cost["offerPriceList"] = offerPriceList;
this.CostList.push(cost);
}
cost["offerPriceList"] = offerPriceList;
this.CostList.push(cost);
}
});
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
this.apipost(
"admin_get_GetEmployeeByUserDepartmentId", {},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
},
err => {}
);
},
getJourney(id, title) {
//根据ID 获取行程内容
var that = this;
this.tripTitle = title;
this.$nextTick(() => {
that.$refs.comDialog.GetTrip(id);
});
that.outerVisible = true;
},
goUrl(path, configId, qType) {
if (configId > 0) {
this.$router.push({
name: path,
query: {
configId: configId,
Qtype: qType,
blank: 'y',
tab: '报价单审核'
}
});
} else {
this.$router.push({
name: path
});
}
});
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
this.apipost(
"admin_get_GetEmployeeByUserDepartmentId",
{},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
},
submitForm() {
//提交创建、修改表单
this.$refs["AuditInfo"].validate(valid => {
if (valid) {
this.saveAudit();
} else {
return false;
}
},
err => {}
);
},
getJourney(id, title) {
//根据ID 获取行程内容
var that = this;
this.tripTitle = title;
this.$nextTick(() => {
that.$refs.comDialog.GetTrip(id);
});
that.outerVisible = true;
},
goUrl(path, configId, qType) {
if (configId > 0) {
this.$router.push({
name: path,
query: { configId: configId, Qtype: qType }
});
} else {
this.$router.push({ name: path });
}
},
submitForm() {
//提交创建、修改表单
this.$refs["AuditInfo"].validate(valid => {
if (valid) {
this.saveAudit();
},
auditDanList(ID) {
this.isShowDan = true;
this.AuditInfo.ID = ID;
},
//提交审核
saveAudit() {
this.apipost(
"travel_get_AuditTravelConfig",
this.AuditInfo,
res => {
if (res.data.resultCode == 1) {
this.Success("审核成功");
this.isShowDan = false;
this.getList();
}
},
err => {}
);
},
//格式化日期去掉年
formatStartDate(value) {
if (value == null || value == undefined) {
return "";
} else {
return false;
let dataArr = value.split("-");
return dataArr[1] + "-" + dataArr[2];
}
});
},
auditDanList(ID) {
this.isShowDan = true;
this.AuditInfo.ID = ID;
},
//提交审核
saveAudit() {
this.apipost(
"travel_get_AuditTravelConfig",
this.AuditInfo,
res => {
if (res.data.resultCode == 1) {
this.Success("审核成功");
this.isShowDan = false;
this.getList();
}
},
err => {}
);
},
//格式化日期去掉年
formatStartDate(value) {
if (value == null || value == undefined) {
return "";
} else {
let dataArr = value.split("-");
return dataArr[1] + "-" + dataArr[2];
}
},
mounted() {
this.getLineList();
this.getEmployeeList();
this.getList();
}
},
mounted() {
this.getLineList();
this.getEmployeeList();
this.getList();
}
};
};
</script>
......@@ -290,7 +290,7 @@
{{childItem.PeopleNumber}}
</td>
<td>
{{(Number(subItem.BusCostPrice)/Number(childItem.PeopleNumber)).toFixed(0)}}
{{((Number(subItem.BusCostPrice)+Number(subItem.PassFee))/Number(childItem.PeopleNumber)).toFixed(0)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<el-input type='text' v-model="subItem.ScenicCostPrice" class="w70"
......@@ -435,7 +435,7 @@
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{(Number(subItem.BusCostPrice)/Number(CostNumberList[0].PeopleNumber)).toFixed(0)}}
{{((Number(subItem.BusCostPrice)+Number(subItem.PassFee))/Number(CostNumberList[0].PeopleNumber)).toFixed(0)}}
</template>
</td>
<td>
......@@ -655,7 +655,7 @@
<tr>
<td colspan="6"></td>
<td class="CP_ComTitle2 CostcomCenter">4</td>
<td colspan="2" class="CP_ComTitle2">司机、导游小费</td>
<td colspan="2" class="CP_ComTitle2">司机小费</td>
<td>
<el-form-item>
<el-select v-model='OtherPrice.DriverGuideMoneyCurrencyId' class="w70">
......@@ -673,6 +673,27 @@
</el-form-item>
</td>
</tr>
<tr>
<td colspan="6"></td>
<td class="CP_ComTitle2 CostcomCenter">5</td>
<td colspan="2" class="CP_ComTitle2">导游小费</td>
<td>
<el-form-item>
<el-select v-model='OtherPrice.GuideMoneyCurrencyId' class="w70">
<el-option :label="$t('pub.unlimitedSel')" :value='defaultSelect'></el-option>
<el-option v-for="items in CostCurrencyList" :label='items.CurrencyName' :value='items.CurrencyId'
:key='items.CurrencyId'>
</el-option>
</el-select>
</el-form-item>
</td>
<td colspan="2">
<el-form-item>
<el-input type='text' class="w100" v-model="OtherPrice.GuideMoney"
@keyup.native="checkPrice(OtherPrice,'GuideMoney'),getchange()"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_ComTitle2">
外币小计
......@@ -961,7 +982,6 @@
@keyup.native="checkPrice(teamPrice,'SingleRoomPrice')" class="w100">
</el-input>
</td>
</tr>
<tr>
<td class="CP_ComTitle2">备注</td>
......@@ -1082,6 +1102,12 @@
zazhiTotal += Number(this.OtherPrice.DriverGuideMoney) * this.getCurrencyMoney(this.OtherPrice
.DriverGuideMoneyCurrencyId);
}
if (this.OtherPrice.GuideMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.GuideMoney);
} else {
zazhiTotal += Number(this.OtherPrice.GuideMoney) * this.getCurrencyMoney(this.OtherPrice
.GuideMoneyCurrencyId);
}
}
//外币
else {
......@@ -1097,10 +1123,12 @@
if (this.OtherPrice.DriverGuideMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.DriverGuideMoney);
}
if (this.OtherPrice.GuideMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.GuideMoney);
}
}
return zazhiTotal.toFixed(0);
},
//每天小计
getDayXiaoJi(type, currencyType) {
var xiaoJi = 0;
......@@ -1170,20 +1198,6 @@
});
return flag;
},
//获取不同人数组合价
getCurrencyNumberTotalMoney(peopleNumber) {
let totalMoney = 0.0;
this.CurrencyNumberListExt.forEach(x => {
x.currencyNumberList.forEach(y => {
// if (peopleNumber === y.PeopleNumber) {
// totalMoney +=
// this.getConvertMoney(y.Money) *
// this.getCurrencyMoney(y.CurrencyId);
// }
});
});
return totalMoney;
},
//获取主成本价
getCostTotalMoney() {
let totalMoney =
......@@ -1198,6 +1212,9 @@
this.getConvertMoney(this.OtherPrice.DriverGuideMoney) * this.getCurrencyMoney(
this.OtherPrice.DriverGuideMoneyCurrencyId
) +
this.getConvertMoney(this.OtherPrice.GuideMoney) * this.getCurrencyMoney(
this.OtherPrice.GuideMoneyCurrencyId
) +
this.getConvertMoney(this.OtherPrice.LeaderTripMoney) * this.getCurrencyMoney(
this.OtherPrice.LeaderTripMoneyCurrencyId
) +
......@@ -1429,12 +1446,10 @@
console.log("trip",trip);
//其他价格
var otherPrice = Number(that.getCostTotalMoney())
console.log("otherPrice",otherPrice)
var otherPrice = Number(that.getCostTotalMoney());
x.TotalMoney = (trip + otherPrice +
Number(that.getConvertMoney(x.SubtotalMoney))
).toFixed(0);
// + that.getCurrencyNumberTotalMoney(x.PeopleNumber)
});
},
//价格转换器
......
<style>
@import "../../../assets/css/newTravelManager.css";
.CostNewPrice .el-form-item__content,
.CostNewPrice .el-form-item__label {
line-height: 30px;
}
.CostNewPrice .CP_halfWi {
width: 45%;
}
.CostNewPrice .QuotationFirstDiv1 {
padding-top: 30px;
}
.CostNewPrice .QuotationFirstDiv1 .el-form-item__content .el-select {
width: calc(100% - 100px);
}
.CostNewPrice .CP_ComTitle2 {
color: #106BAF;
font-weight: bold;
background-color: #D1EEEE;
white-space: nowrap;
}
.CostNewTable td {
padding: 5px;
height: 40px;
border: 1px solid #106BAF !important;
}
.CostPriceDiv {
float: left;
width: 19%;
margin-right: 23px;
}
.CP_ComTitle {
color: #106BAF;
}
.w79 {
width: 79px !important;
}
.w70 {
width: 70px !important;
}
.CostcomCenter {
text-align: center;
}
.txtRightCost {
text-align: right;
padding-right: 10px;
}
.CostNewTable .el-input__inner {
padding: 0 5px;
}
</style>
<template>
<div>
<div class="CostNewPrice clearfix CP_Div" style="width:980px;">
<el-form>
<div class="QuotationFirstDiv1">
<table style="font-size:14px;">
<tr>
<td width="80" class="txtRightCost">线路</td>
<td width="300">
{{postConfig.LineName}}
</td>
<td width="60" class="txtRightCost">系列</td>
<td width="300">
{{postConfig.LtName}}
</td>
<td width="80" class="txtRightCost">客户名称</td>
<td>
{{postConfig.CustomerName}}
</td>
</tr>
<tr>
<td colspan="6" style="height:20px;">
</td>
</tr>
<tr>
<td width="80" class="txtRightCost">团队标题</td>
<td colspan="3">
{{postConfig.Title}}
</td>
<td width="80" class="txtRightCost">行程天数</td>
<td>
{{postConfig.DayNum}}
</td>
</tr>
</table>
</div>
<br />
<table class="CostPriceTable CostNewTable">
<thead>
<tr>
<td colspan="12" class="CP_ComTitle2 CostcomCenter">报价信息</td>
</tr>
<tr>
<td width="170" class="CP_ComTitle2 CostcomCenter">币种</td>
<td v-for='(item,index) in CostCurrencyList'>
{{item.CurrencyName}}
</td>
<td :colspan="13-2-CostCurrencyList.length+1">
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">汇率</td>
<td v-for='item in CostCurrencyList'>
{{item.ExchangeRate}}
</td>
<td :colspan="13-2-CostCurrencyList.length+1">
</td>
</tr>
<tr>
<td width="170" class="CP_ComTitle2 CostcomCenter">人数</td>
<td v-for="(item,index) in CostNumberList" :key='item.subCode'>
{{item.PeopleNumber}}
</td>
<td width="150" :colspan="13-2-CostNumberList.length+1">
</td>
</tr>
</thead>
<tr>
<td colspan="13"></td>
</tr>
<tr>
<td rowspan="2" width='180' class="CP_ComTitle2 CostcomCenter">Day</td>
<td rowspan="2" width='200' class="CP_ComTitle2 CostcomCenter">行程大点</td>
<td rowspan="2" width="100" class="CP_ComTitle2 CostcomCenter">币种</td>
<td rowspan="2" width='60' class="CP_ComTitle2 CostcomCenter">酒店</td>
<td colspan="4" width='100' class="CP_ComTitle2 CostcomCenter"></td>
<td rowspan="2" width='80' class="CP_ComTitle2 CostcomCenter">门票</td>
<td colspan="3" width='100' class="CP_ComTitle2 CostcomCenter"></td>
</tr>
<tr>
<td width="120" class="CP_ComTitle2 CostcomCenter">总车资</td>
<td width="120" class="CP_ComTitle2 CostcomCenter">过路费</td>
<td width="100" class="CP_ComTitle2 CostcomCenter">人数</td>
<td width="100" class="CP_ComTitle2 CostcomCenter" style="white-space:nowrap; ">每人车资</td>
<td width="120" class="CP_ComTitle2 CostcomCenter"></td>
<td width="100" class="CP_ComTitle2 CostcomCenter"></td>
<td width="100" class="CP_ComTitle2 CostcomCenter"></td>
</tr>
<template v-if="CostNumberList&&CostNumberList.length>1">
<template v-for="(subItem,subIndex) in dayCostPrice">
<template v-for="(childItem,childIndex) in CostNumberList">
<tr>
<td align="center" v-if="childIndex==0" :rowspan="CostNumberList.length">
<div style="width:100px;">{{subItem.DayNum}}</div>
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.Title}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getCurrencyName(subItem.CurrencyId)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
<template v-if="subItem.ContainDinnerType==0">含餐类型</template>
<template v-if="subItem.ContainDinnerType==1">含早餐</template>
<template v-if="subItem.ContainDinnerType==2">含晚餐</template>
<template v-if="subItem.ContainDinnerType==3">含晚餐</template>
<br />
{{subItem.HotelCostPrice}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.BusCostPrice}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.PassFee}}
</td>
<td>
{{childItem.PeopleNumber}}
</td>
<td>
{{((Number(subItem.BusCostPrice)+Number(subItem.PassFee))/Number(childItem.PeopleNumber)).toFixed(0)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.ScenicCostPrice}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.BreakfastCostPrice}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.LunchCostPrice}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{subItem.DinnerCostPrice}}
</td>
</tr>
</template>
</template>
<template v-for="(childItem,childIndex) in CostNumberList">
<tr>
<td colspan="3" class="CP_ComTitle2 CostcomCenter" v-if="childIndex==0"
:rowspan="CostNumberList.length">
外币小计
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(1,1)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(2,1)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(7,1)}}
</td>
<td>
{{childItem.PeopleNumber}}
</td>
<td>
{{((Number(getDayXiaoJi(2,1))+Number(getDayXiaoJi(7,1)))/Number(childItem.PeopleNumber)).toFixed(0)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(3,1)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(4,1)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(5,1)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(6,1)}}
</td>
</tr>
</template>
<template v-for="(childItem,childIndex) in CostNumberList">
<tr>
<td colspan="3" class="CP_ComTitle2 CostcomCenter" v-if="childIndex==0"
:rowspan="CostNumberList.length">
人民币小计
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(1,2)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(2,2)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(7,2)}}
</td>
<td>
{{childItem.PeopleNumber}}
</td>
<td>
{{((Number(getDayXiaoJi(2,2))+Number(getDayXiaoJi(7,2)))/Number(childItem.PeopleNumber)).toFixed(0)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(3,2)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(4,2)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(5,2)}}
</td>
<td v-if="childIndex==0" :rowspan="CostNumberList.length">
{{getDayXiaoJi(6,2)}}
</td>
</tr>
</template>
</template>
<template v-else>
<tr v-for="subItem in dayCostPrice" :key="subItem.subCode">
<td align="center">
<div style="width:100px;">{{subItem.DayNum}}</div>
</td>
<td>
{{subItem.Title}}
</td>
<td>
{{getCurrencyName(subItem.CurrencyId)}}
</td>
<td>
<template v-if="subItem.ContainDinnerType==0">含餐类型</template>
<template v-if="subItem.ContainDinnerType==1">含早餐</template>
<template v-if="subItem.ContainDinnerType==2">含晚餐</template>
<template v-if="subItem.ContainDinnerType==3">含晚餐</template>
<br />
{{subItem.HotelCostPrice}}
</td>
<td>
{{subItem.BusCostPrice}}
</td>
<td>
{{subItem.PassFee}}
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{CostNumberList[0].PeopleNumber}}
</template>
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{((Number(subItem.BusCostPrice)+Number(subItem.PassFee))/Number(CostNumberList[0].PeopleNumber)).toFixed(0)}}
</template>
</td>
<td>
{{subItem.ScenicCostPrice}}
</td>
<td>
{{subItem.BreakfastCostPrice}}
</td>
<td>
{{subItem.LunchCostPrice}}
</td>
<td>
{{subItem.DinnerCostPrice}}
</td>
</tr>
<tr>
<td colspan="3" class="CP_ComTitle2 CostcomCenter">
外币小计
</td>
<td>
{{getDayXiaoJi(1,1)}}
</td>
<td>
{{getDayXiaoJi(2,1)}}
</td>
<td>
{{getDayXiaoJi(7,1)}}
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{CostNumberList[0].PeopleNumber}}
</template>
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{((Number(getDayXiaoJi(2,1))+Number(getDayXiaoJi(7,1)))/Number(CostNumberList[0].PeopleNumber)).toFixed(0)}}
</template>
</td>
<td>
{{getDayXiaoJi(3,1)}}
</td>
<td>
{{getDayXiaoJi(4,1)}}
</td>
<td>
{{getDayXiaoJi(5,1)}}
</td>
<td>
{{getDayXiaoJi(6,1)}}
</td>
</tr>
<tr>
<td colspan="3" class="CP_ComTitle2 CostcomCenter">
人民币小计
</td>
<td>
{{getDayXiaoJi(1,2)}}
</td>
<td>
{{getDayXiaoJi(2,2)}}
</td>
<td>
{{getDayXiaoJi(7,2)}}
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{CostNumberList[0].PeopleNumber}}
</template>
</td>
<td>
<template v-if="CostNumberList&&CostNumberList.length>0">
{{( (Number(getDayXiaoJi(2,2))+Number(getDayXiaoJi(7,2)))/Number(CostNumberList[0].PeopleNumber)).toFixed(0)}}
</template>
</td>
<td>
{{getDayXiaoJi(3,2)}}
</td>
<td>
{{getDayXiaoJi(4,2)}}
</td>
<td>
{{getDayXiaoJi(5,2)}}
</td>
<td>
{{getDayXiaoJi(6,2)}}
</td>
</tr>
</template>
<tr>
<td colspan="13"></td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="6">内陆段交通部分</td>
<td class="CP_ComTitle2" colspan="6">杂支部分</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">1</td>
<td class="CP_ComTitle2">内陆段机位(每人)</td>
<td colspan="2">
{{getCurrencyName(OtherPrice.InlandAirTicketCurrency)}}
</td>
<td colspan="2">
{{OtherPrice.InlandAirTicketMoney}}
</td>
<td class="CP_ComTitle2 CostcomCenter">1</td>
<td colspan="2" class="CP_ComTitle2">签证费(每人)</td>
<td>
{{getCurrencyName(OtherPrice.VisaMoneyCurrencyId)}}
</td>
<td colspan="2">
{{OtherPrice.VisaMoney}}
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">2</td>
<td class="CP_ComTitle2">内陆段船票(每人)</td>
<td colspan="2">
{{getCurrencyName(OtherPrice.InlandShipTicketCurrency)}}
</td>
<td colspan="2">
{{OtherPrice.InlandShipTicketMoney}}
</td>
<td class="CP_ComTitle2 CostcomCenter">2</td>
<td colspan="2" class="CP_ComTitle2">保险费(每人)</td>
<td>
{{getCurrencyName(OtherPrice.SafeMoneyCurrencyId)}}
</td>
<td colspan="2">
{{OtherPrice.SafeMoney}}
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">3</td>
<td class="CP_ComTitle2">内陆段火车票(每人)</td>
<td colspan="2">
{{getCurrencyName(OtherPrice.InlandTrainTicketCurrency)}}
</td>
<td colspan="2">
{{OtherPrice.InlandTrainTicketMoney}}
</td>
<td class="CP_ComTitle2 CostcomCenter">3</td>
<td colspan="2" class="CP_ComTitle2">领队小费</td>
<td>
{{getCurrencyName(OtherPrice.LeaderTripMoneyCurrencyId)}}
</td>
<td colspan="2">
{{OtherPrice.LeaderTripMoney}}
</td>
</tr>
<tr>
<td colspan="6"></td>
<td class="CP_ComTitle2 CostcomCenter">4</td>
<td colspan="2" class="CP_ComTitle2">司机、导游小费</td>
<td>
{{getCurrencyName(OtherPrice.DriverGuideMoneyCurrencyId)}}
</td>
<td colspan="2">
{{OtherPrice.DriverGuideMoney}}
</td>
</tr>
<tr>
<td colspan="6"></td>
<td class="CP_ComTitle2 CostcomCenter">5</td>
<td colspan="2" class="CP_ComTitle2">导游小费</td>
<td>
{{getCurrencyName(OtherPrice.GuideMoneyCurrencyId)}}
</td>
<td colspan="2">
{{OtherPrice.GuideMoney}}
</td>
</tr>
<tr>
<td class="CP_ComTitle2">
外币小计
</td>
<td colspan="5">
{{trafficXiaoJi(2)}}
</td>
<td class="CP_ComTitle2">
外币小计
</td>
<td colspan="5">
{{zazhiXiaoJi(2)}}
</td>
</tr>
<tr>
<td class="CP_ComTitle2">
人民币小计
</td>
<td colspan="5">
{{ trafficXiaoJi(1) }}
</td>
<td class="CP_ComTitle2">
人民币小计
</td>
<td colspan="5">
{{zazhiXiaoJi(1)}}
</td>
</tr>
<tr>
<td colspan="13"></td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="4">其他支出</td>
<td class="CP_ComTitle2" colspan="3" style="display:none;">机票</td>
<td class="CP_ComTitle2" colspan="4">收入</td>
<td class="CP_ComTitle2" colspan="5">团负费</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">金额<br />(人民币)</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2" style="display:none;">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" style="display:none;">金额<br />(人民币)</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">金额<br />(人民币)</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">摘要</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="3">金额<br />(人民币)</td>
</tr>
<tr>
<td style="white-space:nowrap; " class="CP_ComTitle2" colspan="2">销售提成1%</td>
<td colspan="2">
{{OtherPrice.SalesCommissionMoney}}
</td>
<td class="CP_ComTitle2" colspan="2" style="display:none;">机票</td>
<td style="display:none;">
{{OtherPrice.AirTicketMoeny}}
</td>
<td class="CP_ComTitle2" colspan="2">客人小费收入</td>
<td colspan="2">
{{OtherPrice.TripMoney}}
</td>
<td class="CP_ComTitle2" colspan="2">KB</td>
<td colspan="3">
{{OtherPrice.KBMoney}}
</td>
</tr>
<tr>
<td style="white-space:nowrap; " class="CP_ComTitle2" colspan="2">作业处提成</td>
<td colspan="2">
{{OtherPrice.OfficeCommissionMoney}}
</td>
<td colspan="3" style="display:none;"></td>
<td class="CP_ComTitle2" colspan="2">导游人头费</td>
<td colspan="2">
{{OtherPrice.GuidePeopleMoney}}
</td>
<td colspan="5"></td>
</tr>
<tr>
<td class="CP_ComTitle2" colspan="2">
人民币小计
</td>
<td colspan="2">
{{Number(OtherPrice.SalesCommissionMoney)+Number(OtherPrice.OfficeCommissionMoney)}}
</td>
<td class="CP_ComTitle2" style="display:none;">
人民币小计
</td>
<td colspan="2" style="display:none;">
{{Number(OtherPrice.AirTicketMoeny)}}
</td>
<td class="CP_ComTitle2" colspan="2">
人民币小计
</td>
<td colspan="2">
{{Number(OtherPrice.TripMoney)+Number(OtherPrice.GuidePeopleMoney)}}
</td>
<td class="CP_ComTitle2" colspan="2">
人民币小计
</td>
<td colspan="5">
{{Number(OtherPrice.KBMoney)}}
</td>
</tr>
<tr>
<td colspan="12"></td>
</tr>
<tr>
<td colspan="12" class="CP_ComTitle2">领队分摊部分
</td>
</tr>
<tr>
<td class="CP_ComTitle2 CostcomCenter">人数</td>
<td class="CP_ComTitle2 CostcomCenter">机票</td>
<td class="CP_ComTitle2 CostcomCenter">门票</td>
<td class="CP_ComTitle2 CostcomCenter">领队导游司机住宿</td>
<td class="CP_ComTitle2 CostcomCenter">单房差</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">内陆段交通</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="2">杂费</td>
<td class="CP_ComTitle2 CostcomCenter" colspan="3">小计</td>
</tr>
<tr>
<td></td>
<td>
{{OtherPrice.AirTicketShareMoney}}
</td>
<td>
{{OtherPrice.TicketShareMoney}}
</td>
<td>
{{OtherPrice.LeaderGuideDriveZhuSu}}
</td>
<td>
{{OtherPrice.SingleRoomShareMoney}}
</td>
<td colspan="2">
{{OtherPrice.InlandTrafficShareMoney}}
</td>
<td colspan="2">
{{OtherPrice.OtherShareMoney}}
</td>
<td colspan="3"></td>
</tr>
<tr v-for="item in CostNumberList" :key="item.subCode">
<td>{{item.PeopleNumber}}+1</td>
<td>{{item.AirTicketMoney}}</td>
<td>{{item.TicketMoney}}</td>
<td>{{item.LeaderGuideDriveZhuSu}}</td>
<td>{{item.SingleRoomMoney}}</td>
<td colspan="2">{{item.InlandTrafficMoney}}</td>
<td colspan="2">{{item.OtherMoney}}</td>
<td colspan="3">{{item.SubtotalMoney}}</td>
</tr>
<tr>
<td colspan="13"></td>
</tr>
<tr>
<td colspan="13" class="CP_ComTitle2">成本统计(以下报价为每人费用)<br />
计算规则: (房+餐+车+景点)*汇率+内陆段交通*汇率+杂支部分*汇率+其他资产+机票票+收入-团负费+领队分摊+地接报价*汇率
</td>
</tr>
<tr>
<td class="CP_ComTitle2">人数统计
</td>
<td class="CP_ComTitle2">成本价</td>
<td class="CP_ComTitle2" colspan="2">销售价格</td>
<td colspan="8" class="CP_ComTitle2">备注</td>
</tr>
<tr v-for="item in CostNumberList" :key="item.subCode">
<td>{{item.PeopleNumber}}+1</td>
<td>{{item.TotalMoney}}</td>
<td colspan="2">
{{item.SalePrice}}
</td>
<td colspan="8">
{{item.CostRemark}}
</td>
</tr>
<tr>
<td colspan="13"></td>
</tr>
<tr>
<td class="CP_ComTitle2">
婴儿
</td>
<td class="CP_ComTitle2" colspan="2">
单地接
</td>
<td class="CP_ComTitle2" colspan="2">
儿童占床
</td>
<td class="CP_ComTitle2" colspan="2">
儿童不占床
</td>
<td class="CP_ComTitle2">
儿童附加费
</td>
<td class="CP_ComTitle2">
老人附加费
</td>
<td class="CP_ComTitle2">
签证费
</td>
<td class="CP_ComTitle2" colspan="2">
单房差
</td>
</tr>
<tr>
<td>
{{teamPrice.BabyPrice}}
</td>
<td colspan="2">
{{teamPrice.SingleDMCPrice}}
</td>
<td colspan="2">
{{teamPrice.ChildNeedPrice}}
</td>
<td colspan="2">
{{teamPrice.ChildNoNeedPrice}}
</td>
<td>
{{teamPrice.BabyChargePrice}}
</td>
<td>
{{teamPrice.OldManChargePrice}}
</td>
<td>
{{teamPrice.VisaPrice}}
</td>
<td colspan="2">
{{teamPrice.SingleRoomPrice}}
</td>
</tr>
<tr>
<td class="CP_ComTitle2">备注</td>
<td colspan="12">
{{OtherPrice.OtherRemark}}
</td>
</tr>
<tr>
<td class="CP_ComTitle2">备注</td>
<td colspan="12">
<el-input type="textarea" v-model="postConfig.AuditContent"></el-input>
</td>
</tr>
<tr>
<td colspan="13" style="text-align:center;">
<input type="button" class="normalBtn" value="同意" @click="SubSaveType(3)" />
<input type="button" class="normalBtn" value="拒绝" @click="SubSaveType(4)" />
</td>
</tr>
</table>
<div class="Cost_Line"></div>
</el-form>
</div>
</div>
</template>
<script>
export default {
props: ["postConfig", "OtherPrice", "dayCostPrice", "LineList", "CostNumberList", "CurrencyNumberListExt",
"CostCurrencyList", "teamPrice"
],
data() {
return {
//审核信息
AduitMsg: {
}
}
},
methods: {
//调用父组件方法
SubSaveType(type) {
this.$parent.SaveData(type);
},
//交通部分小计
trafficXiaoJi(currencyType) {
var trafficTotal = 0;
//人民币
if (currencyType == 1) {
if (this.OtherPrice.InlandAirTicketCurrency == 1) {
trafficTotal += Number(this.OtherPrice.InlandAirTicketMoney);
} else {
trafficTotal += Number(this.OtherPrice.InlandAirTicketMoney) * this.getCurrencyMoney(this.OtherPrice
.InlandAirTicketCurrency);
}
if (this.OtherPrice.InlandShipTicketCurrency == 1) {
trafficTotal += Number(this.OtherPrice.InlandShipTicketMoney);
} else {
trafficTotal += Number(this.OtherPrice.InlandShipTicketMoney) * this.getCurrencyMoney(this.OtherPrice
.InlandShipTicketCurrency);
}
if (this.OtherPrice.InlandTrainTicketCurrency == 1) {
trafficTotal += Number(this.OtherPrice.InlandTrainTicketMoney);
} else {
trafficTotal += Number(this.OtherPrice.InlandTrainTicketMoney) * this.getCurrencyMoney(this.OtherPrice
.InlandTrainTicketCurrency);
}
}
//外币
else {
if (this.OtherPrice.InlandAirTicketCurrency != 1) {
trafficTotal += Number(this.OtherPrice.InlandAirTicketMoney);
}
if (this.OtherPrice.InlandShipTicketCurrency != 1) {
trafficTotal += Number(this.OtherPrice.InlandShipTicketMoney);
}
if (this.OtherPrice.InlandTrainTicketCurrency != 1) {
trafficTotal += Number(this.OtherPrice.InlandTrainTicketMoney);
}
}
return trafficTotal.toFixed(0);
},
//杂支小计
zazhiXiaoJi(currencyType) {
var zazhiTotal = 0;
//人民币
if (currencyType == 1) {
if (this.OtherPrice.VisaMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.VisaMoney);
} else {
zazhiTotal += Number(this.OtherPrice.VisaMoney) * this.getCurrencyMoney(this.OtherPrice
.VisaMoneyCurrencyId);
}
if (this.OtherPrice.SafeMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.SafeMoney);
} else {
zazhiTotal += Number(this.OtherPrice.SafeMoney) * this.getCurrencyMoney(this.OtherPrice
.SafeMoneyCurrencyId);
}
if (this.OtherPrice.LeaderTripMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.LeaderTripMoney);
} else {
zazhiTotal += Number(this.OtherPrice.LeaderTripMoney) * this.getCurrencyMoney(this.OtherPrice
.LeaderTripMoneyCurrencyId);
}
if (this.OtherPrice.DriverGuideMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.DriverGuideMoney);
} else {
zazhiTotal += Number(this.OtherPrice.DriverGuideMoney) * this.getCurrencyMoney(this.OtherPrice
.DriverGuideMoneyCurrencyId);
}
if (this.OtherPrice.GuideMoneyCurrencyId == 1) {
zazhiTotal += Number(this.OtherPrice.GuideMoney);
} else {
zazhiTotal += Number(this.OtherPrice.GuideMoney) * this.getCurrencyMoney(this.OtherPrice
.GuideMoneyCurrencyId);
}
}
//外币
else {
if (this.OtherPrice.VisaMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.VisaMoney);
}
if (this.OtherPrice.SafeMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.SafeMoney);
}
if (this.OtherPrice.LeaderTripMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.LeaderTripMoney);
}
if (this.OtherPrice.DriverGuideMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.DriverGuideMoney);
}
if (this.OtherPrice.GuideMoneyCurrencyId != 1) {
zazhiTotal += Number(this.OtherPrice.GuideMoney);
}
}
return zazhiTotal.toFixed(0);
},
//每天小计
getDayXiaoJi(type, currencyType) {
var xiaoJi = 0;
this.dayCostPrice.forEach(item => {
var currencyRate = 1;
if (currencyType == 2) {
currencyRate = this.getCurrencyMoney(item.CurrencyId);
}
//酒店
if (type == 1) {
xiaoJi += Number(item.HotelCostPrice) * Number(currencyRate);
}
//车
if (type == 2) {
xiaoJi += Number(item.BusCostPrice) * Number(currencyRate);
}
//景点
if (type == 3) {
xiaoJi += Number(item.ScenicCostPrice) * Number(currencyRate);
}
//早餐
if (type == 4) {
xiaoJi += Number(item.BreakfastCostPrice) * Number(currencyRate);
}
//午餐
if (type == 5) {
xiaoJi += Number(item.LunchCostPrice) * Number(currencyRate);
}
//午餐
if (type == 6) {
xiaoJi += Number(item.DinnerCostPrice) * Number(currencyRate);
}
//过路费
if (type == 7) {
xiaoJi += Number(item.PassFee) * Number(currencyRate);
}
});
return xiaoJi.toFixed(0);
},
//获取汇率
getCurrencyMoney(currencyId) {
let currency = 1;
this.CostCurrencyList.forEach(x => {
if (x.CurrencyId == currencyId) {
currency = x.ExchangeRate;
}
});
return currency;
},
//获取币种名称
getCurrencyName(currencyId) {
let CurrencyName = "";
this.CostCurrencyList.forEach(x => {
if (x.CurrencyId == currencyId) {
CurrencyName = x.CurrencyName;
}
});
return CurrencyName;
},
//获取主成本价
getCostTotalMoney() {
let totalMoney =
this.getConvertMoney(this.OtherPrice.InlandAirTicketMoney) *
this.getCurrencyMoney(this.OtherPrice.InlandAirTicketCurrency) +
this.getConvertMoney(this.OtherPrice.InlandShipTicketMoney) *
this.getCurrencyMoney(
this.OtherPrice.InlandShipTicketCurrency
) +
this.getConvertMoney(this.OtherPrice.InlandTrainTicketMoney) *
this.getCurrencyMoney(this.OtherPrice.InlandTrainTicketCurrency) +
this.getConvertMoney(this.OtherPrice.DriverGuideMoney) * this.getCurrencyMoney(
this.OtherPrice.DriverGuideMoneyCurrencyId
) +
this.getConvertMoney(this.OtherPrice.GuideMoney) * this.getCurrencyMoney(
this.OtherPrice.GuideMoneyCurrencyId
) +
this.getConvertMoney(this.OtherPrice.LeaderTripMoney) * this.getCurrencyMoney(
this.OtherPrice.LeaderTripMoneyCurrencyId
) +
this.getConvertMoney(this.OtherPrice.OfficeCommissionMoney) +
this.getConvertMoney(this.OtherPrice.SafeMoney) * this.getCurrencyMoney(
this.OtherPrice.SafeMoneyCurrencyId
) +
this.getConvertMoney(this.OtherPrice.SalesCommissionMoney) +
this.getConvertMoney(this.OtherPrice.TripMoney) +
this.getConvertMoney(this.OtherPrice.GuidePeopleMoney) -
this.getConvertMoney(this.OtherPrice.KBMoney) +
this.getConvertMoney(this.OtherPrice.VisaMoney) * this.getCurrencyMoney(
this.OtherPrice.VisaMoneyCurrencyId
);
//KBMoney[团负费用减法]
return totalMoney;
},
//计算总价
getSubtotalMoney() {
let that = this;
this.CostNumberList.forEach(x => {
x.SubtotalMoney = (
that.getConvertMoney(x.AirTicketMoney) +
that.getConvertMoney(x.TicketMoney) +
that.getConvertMoney(x.SingleRoomMoney) +
that.getConvertMoney(x.InlandTrafficMoney) +
that.getConvertMoney(x.OtherMoney) +
that.getConvertMoney(x.LeaderGuideDriveZhuSu)
).toFixed(0);
//房餐车景点价格
var trip = Number(that.getLocalTotalMoney(x.PeopleNumber));
//其他价格
var otherPrice = Number(that.getCostTotalMoney())
x.TotalMoney = (trip + otherPrice +
Number(that.getConvertMoney(x.SubtotalMoney))
).toFixed(0);
});
},
//价格转换器
getConvertMoney(value) {
if (value === "" || value === undefined || value === null) {
value = 0.0;
}
return parseFloat(value);
},
//获取地接项目报价
getLocalTotalMoney(PeopleNumber) {
let totalMoney = 0.0;
totalMoney = Number(this.getDayXiaoJi(1, 2)) +
Number(this.getDayXiaoJi(3, 2)) +
Number(this.getDayXiaoJi(4, 2)) +
Number(this.getDayXiaoJi(5, 2)) +
Number(this.getDayXiaoJi(6, 2)) +
Number(this.getDayXiaoJi(2, 2)) / Number(PeopleNumber) +
Number(this.getDayXiaoJi(7, 2)) / Number(PeopleNumber);
return totalMoney.toFixed(0);
},
//计算领队分摊
getLeaderShare() {
let that = this;
var AirTicketShareMoney = this.OtherPrice.AirTicketShareMoney;
var TicketShareMoney = this.OtherPrice.TicketShareMoney;
var SingleRoomShareMoney = this.OtherPrice.SingleRoomShareMoney;
var InlandTrafficShareMoney = this.OtherPrice.InlandTrafficShareMoney;
var OtherShareMoney = this.OtherPrice.OtherShareMoney;
//司机导游住宿
var LeaderGuideDriveZhuSu = this.OtherPrice.LeaderGuideDriveZhuSu;
this.CostNumberList.forEach(x => {
x.AirTicketMoney = (AirTicketShareMoney / x.PeopleNumber).toFixed(0);
x.TicketMoney = (TicketShareMoney / x.PeopleNumber).toFixed(0);
x.SingleRoomMoney = (SingleRoomShareMoney / x.PeopleNumber).toFixed(0);
x.InlandTrafficMoney = (InlandTrafficShareMoney / x.PeopleNumber).toFixed(0);
x.OtherMoney = (OtherShareMoney / x.PeopleNumber).toFixed(0);
x.LeaderGuideDriveZhuSu = (LeaderGuideDriveZhuSu / x.PeopleNumber).toFixed(0);
});
},
getchange() {
this.getLeaderShare();
this.getSubtotalMoney();
}
},
mounted() {
this.getSubtotalMoney();
},
created() {
console.log("CostCurrencyList", this.CostCurrencyList);
console.log("Post", this.postConfig)
},
watch: {
CostNumberList: {
handler: function (val, oldVal) {
this.getchange()
},
deep: true
},
},
};
</script>
<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 ref="CostNewPrice" :postConfig="postData" :OtherPrice="otherPrice"
:dayCostPrice="dayCostPriceList" :CostCurrencyList="CostCurrencyList"
:CostNumberList="CostNumberList" :CurrencyNumberListExt="CurrencyNumberListExt"
:teamPrice="teamPrice"
></CostNewPriceAudit>
</div>
</div>
</template>
<script>
import CostNewPriceAudit from "../TravelNewQuotation/CostNewPriceAudit";
export default {
data() {
return {
ConfigID: 0,
IsShow:false,
//基本配置
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:"",//系列名称
},
dayCostPriceList: [], //报价列表
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,//导游小费
},
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
};
},
methods: {
//保存数据
SaveData(Type) {
var nObj = {
ID: this.$route.query.configId,
AuditContent:this.postData.AuditContent,
TravelState:Type
};
this.loading = true;
this.apipost(
"travel_get_AuditTravelConfig", nObj,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.goUrl('AuditDan');
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
goUrl(path) {
this.$router.push({
path: path,
query: {
cache: true
}
});
},
getPostData() {
let configId = this.$route.query.configId;
let offerId = 0;
if (this.$route.query.offerid) {
offerId = this.$route.query.offerid;
}
let msg = {
ID: configId,
offerId: offerId
};
this.apipost(
"travel_get_GetMyTravelInfo_V2",
msg,
res => {
if (res.data.resultCode == 1) {
var tempData = res.data.data;
console.log("tempData1", tempData);
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;
}
this.postData.CustomerName = tempData.CustomerName;
this.postData.LineName=tempData.LineName;
this.postData.LtName=tempData.LtName;
this.LineList = tempData.LineList;
if (tempData.dayCostPriceList && tempData.dayCostPriceList != null && tempData.dayCostPriceList.length >
0) {
this.dayCostPriceList = tempData.dayCostPriceList;
}
if (tempData.otherPrice) {
this.otherPrice = tempData.otherPrice;
}
if (tempData.teamPrice) {
this.teamPrice = tempData.teamPrice;
}
if (tempData.CostNumberList && tempData.CostNumberList != null && tempData.CostNumberList.length > 0) {
this.CostNumberList = tempData.CostNumberList;
}
if (tempData.CostCurrencyList && tempData.CostCurrencyList != null && tempData.CostCurrencyList.length >
0) {
this.CostCurrencyList = tempData.CostCurrencyList;
}
if (tempData.CurrencyNumberListExt && tempData.CurrencyNumberListExt != null && tempData
.CurrencyNumberListExt.length > 0) {
this.CurrencyNumberListExt = tempData.CurrencyNumberListExt;
}
this.IsShow=true;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
},
created() {
if (this.$route.query.TeamType) {
this.postData.TeamType = this.$route.query.TeamType;
}
this.getPostData();
},
components: {
CostNewPriceAudit: CostNewPriceAudit
}
};
</script>
......@@ -53,6 +53,7 @@
ReturnArriveCityId: 0, //返回抵达城市
CustomerName: "", //客户名称
TeamType: 0, //团队类型
TravelState:1,//团控状态(1-草稿,2-待审核,3-审核通过,4-审核拒绝,5已撤销)
},
dayCostPriceList: [], //报价列表
isSubmit: true,
......@@ -69,7 +70,7 @@
VisaMoney: 0, //签证费用(每人)
SafeMoney: 0, //保险费用(每人)
LeaderTripMoney: 0, //领队小费
DriverGuideMoney: 0, //司机导游小费
DriverGuideMoney: 0, //司机小费
SalesCommissionMoney: 0, //销售提成
OfficeCommissionMoney: 0, //作业处提成
TripMoney: 0, //小费
......@@ -85,7 +86,9 @@
VisaMoneyCurrencyId: 0, //签证费币种
SafeMoneyCurrencyId: 0, //保险费币种
LeaderTripMoneyCurrencyId: 0, //领队小费币种
DriverGuideMoneyCurrencyId: 0, //司机导游小费币种
DriverGuideMoneyCurrencyId: 0, //司机小费币种
GuideMoneyCurrencyId:0,//导游小费币种
GuideMoney:0,//导游小费
},
CostCurrencyList: [], //选择的币种
CostNumberList: [], //人数
......@@ -131,7 +134,7 @@
this.$refs["QuotationPrice"].submitForm(type);
},
//保存数据
SaveData() {
SaveData(type) {
var currencyNumList = [];
if (this.CurrencyNumberListExt != null && this.CurrencyNumberListExt.length > 0) {
this.CurrencyNumberListExt.forEach((item, index) => {
......@@ -140,6 +143,8 @@
});
});
}
this.postData.TravelState=type;
console.log("this.postData",this.postData);
var nObj = {
config: this.postData,
dayCostPriceList: this.dayCostPriceList,
......@@ -192,7 +197,6 @@
res => {
if (res.data.resultCode == 1) {
var tempData = res.data.data;
console.log("tempData", tempData);
if (tempData.ID && tempData.ID > 0) {
this.postData.ID = tempData.ID;
}
......
......@@ -114,7 +114,7 @@
</div>
<div class="_cent">
<div style="margin: 0 13px 0 10px;" class="stayDays">
{{item.DayNum}}{{$t('hotel.hotel_day')}}{{item.NightNum}}{{$t('Operation.Op_night')}}</div>
{{item.DayNum}}{{$t('hotel.hotel_day')}}</div>
<div class="">
{{$t('op.SalesPrice')}}
<el-popover popper-class="salsSetPrice" trigger="click">
......@@ -175,7 +175,7 @@
</div>
</div>
</div>
<span slot="reference" class="diPrice" @click="getSalsPrice(item.ID)">{{item.SalesPrice}}<span
<span slot="reference" class="diPrice">{{item.SalesPrice}}<span
class="qi">{{$t('op.Qi')}}</span></span>
</el-popover>
</div>
......
......@@ -2916,6 +2916,15 @@ export default {
title: '制作报价单'
},
},
{ //新版报价单审核
path: '/QuotationAduit',
name: 'QuotationAduit',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/QuotationAduit'], resolve),
meta: {
title: '报价单审核'
},
},
{ //团控-我的机票
path: '/TravelMyTicket',
name: 'TravelMyTicket',
......
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