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
...@@ -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,32 +483,40 @@ ...@@ -484,32 +483,40 @@
} }
return CurrencyNumberListExt; return CurrencyNumberListExt;
}, },
initData() {
if (!this.OfferArray.length) {
this.createOrderList();
} else {
this.OfferArray.forEach(item => {
item.OtherPrice = item.otherPrice
item.dayCostPrice = item.dayCostPriceList
item.CostCurrencyList = item.CostCurrencyList || []
item.CurrencyNumberListExt = this.buildCostCurrency(item.CostCurrencyList, item.CurrencyNumberListExt)
item.queryMsg = {
IsDefault: Boolean(item.IsDefault),
//汇率输入
RateInput: "",
//人数
PeopleNumber: ""
}
})
this.orderList = this.OfferArray
this.changeTabs()
}
if (this.postConfig.DayNum > 0) {
this.createDayTripPrice()
}
}
},
watch: {
OfferArray: function (oldValue, newValue) {
console.log("DirectNew_Watch")
this.initData()
}
}, },
mounted() { mounted() {
this.getLineTeamList(); this.getLineTeamList();
if (!this.OfferArray.length) { this.initData();
this.createOrderList();
} else {
this.OfferArray.forEach(item => {
item.OtherPrice = item.otherPrice
item.dayCostPrice = item.dayCostPriceList
item.CostCurrencyList = item.CostCurrencyList || []
item.CurrencyNumberListExt = this.buildCostCurrency(item.CostCurrencyList, item.CurrencyNumberListExt)
item.queryMsg = {
IsDefault: Boolean(item.IsDefault),
//汇率输入
RateInput: "",
//人数
PeopleNumber: ""
}
})
this.orderList = this.OfferArray
this.changeTabs()
}
if (this.postConfig.DayNum > 0) {
this.createDayTripPrice()
}
}, },
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,11 +174,7 @@ ...@@ -239,11 +174,7 @@
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 = offerObj.AuditContent;
this.postData.AuditContent = "";
} else {
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;
......
<style>
.changeOffer {
width: 100%;
text-align: center;
margin-bottom: 20px;
border-bottom: 1px solid #d1d1d1;
padding: 0 20px 10px 20px;
}
.changeOffer .CP_ComTitle2 {
color: #106BAF;
font-weight: bold;
background-color: #D1EEEE;
white-space: nowrap;
}
.changeOffer .CostcomCenter {
text-align: center;
}
.changeOfferTable {
border-collapse: collapse;
}
.changeOfferTable tr td {
height: 40px;
border: 1px solid #106BAF !important;
border-collapse: collapse;
padding: 0 3px;
text-align: center;
}
.changeOfferTable .el-input .el-input__inner {
height: 25px !important;
border: none;
border-bottom: 1px solid #606266;
padding-left: 5px !important;
}
</style>
<template>
<div class="changeOffer">
<div>
<table class="changeOfferTable">
<tr>
<td style="width:100px;" class="CP_ComTitle2 CostcomCenter">类别</td>
<td style="width:100px;" class="CP_ComTitle2 CostcomCenter">变更类型</td>
<td style="width:100px;" class="CP_ComTitle2 CostcomCenter">天数</td>
<td style="width:100px;" class="CP_ComTitle2 CostcomCenter">变更值</td>
<td style="width:100px;" class="CP_ComTitle2 CostcomCenter">变更备注</td>
<td style="width:100px;" class="CP_ComTitle2 CostcomCenter">
<a style="color:blue;cursor:pointer;" @click="AddOfferObj()">添加</a>
</td>
</tr>
<tbody>
<tr v-for="(item,index) in dataList" :key="index">
<td>
<template v-if="item.EditType==1">
行程信息
</template>
<template v-else>
基础信息
</template>
</td>
<td>
<el-select v-model="item.ChangeType" style="width:100px;" @change="checkChangeType(item,index)">
<el-option v-for="item in changeTypeList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</td>
<td>
{{item.DayNum}}
</td>
<td>
<el-input v-model="item.ChangeValue" style="width:100px;"></el-input>
</td>
<td>
<el-input v-model="item.ChangeRemarks" style="width:100px;"></el-input>
</td>
<td>
<a style="color:red;cursor:pointer;" @click="DeleteOfferChange(item,index)">删除</a>
</td>
</tr>
</tbody>
</table>
</div>
<div style="display:flex;justify-content:center;align-items:center;margin-top:20px;">
<input type="button" class="normalBtn" @click="saveOfferChange()" :value="$t('restaurant.res_confirm')" />
<input type="button" class="normalBtn" @click="closeOfferDig()" :value="$t('pub.closeSel')" />
</div>
</div>
</template>
<script>
export default {
props: ["qMsg"],
data() {
return {
loading: false,
dataList: [],
changeTypeList: [], //变更类型
};
},
methods: {
AddOfferObj() {
var obj = {
ChangeId: 0,
OfferId: 0,
EidtType: 0,
DayNum: 0,
ChangeType: "",
ChangeValue: 0,
ChangeRemarks: "",
}
obj.OfferId = this.qMsg.OfferId;
obj.EidtType = this.qMsg.EditType;
obj.DayNum = this.qMsg.DayNum;
this.dataList.push(obj);
},
//判断列表是否包含此项
checkChangeType(item, index) {
var flag = false;
if (this.dataList && this.dataList.length > 0) {
this.dataList.forEach((qitem, qIndex) => {
if (!flag && qIndex != index) {
if (qitem.ChangeType == item.ChangeType) {
flag = true;
}
}
})
}
if (flag) {
this.Error("已存在此项变更,请选择其他变更项目!");
item.ChangeType = '';
}
},
//删除报价单变更项
DeleteOfferChange(item, index) {
var that = this;
this.Confirm('是否要删除此项变更内容?', function () {
if (item.ChangeId > 0) {
var pMsg = {
ChangeId: item.ChangeId
};
that.apipost(
"travel_post_RemoveChangeOffer", pMsg,
res => {
if (res.data.resultCode == 1) {
that.Success(that.$t('objFill.v101.hote.shanchucg'));
that.getOfferChange();
} else {
that.Error(that.$t('objFill.v101.hote.shanchusb'));
}
}
);
} else {
that.dataList.splice(index, 1);
}
})
},
//关闭弹窗
closeOfferDig() {
this.$emit("closeDialog");
},
//向父组件传递选中酒店
saveOfferChange() {
this.apipost("travel_post_SetChangeOffer", this.dataList, res => {
if (res.data.resultCode == 1) {
this.getOfferChange()
this.Success(res.data.message);
this.$emit("success", 1);
} else {
this.Error(res.data.message);
}
});
},
//查询餐厅信息
getOfferChange() {
this.loading = true;
var searchParmeters = {
EditType: 0,
OfferId: 0,
DayNum: 0,
};
searchParmeters.OfferId = this.qMsg.OfferId;
searchParmeters.EditType = this.qMsg.EditType;
searchParmeters.DayNum = this.qMsg.DayNum;
this.apipost("travel_post_GetChangeOfferList", searchParmeters, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data;
}
});
},
getChangeType() {
this.apipost("travel_post_GetChangeTypeList", {}, res => {
if (res.data.resultCode == 1) {
this.changeTypeList = res.data.data;
}
});
}
},
created() {
this.getChangeType();
},
mounted() {
this.getOfferChange();
}
};
</script>
\ No newline at end of file
...@@ -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