Commit 6a5ca6d2 authored by 黄奎's avatar 黄奎

111

parent 7f283a70
...@@ -2147,8 +2147,10 @@ ...@@ -2147,8 +2147,10 @@
<span style="color:#f56c6c">{{childItem.visaType==1?'(个签)':''}}</span> <span style="color:#f56c6c">{{childItem.visaType==1?'(个签)':''}}</span>
<span style="color:#f56c6c">{{childItem.ticketOutTypeStr}} </span> <span style="color:#f56c6c">{{childItem.ticketOutTypeStr}} </span>
<span v-if="childItem.isApplyPhoto == 1" style="color: red">({{ $t("salesModule.Zhao") }})</span> <span v-if="childItem.isApplyPhoto == 1" style="color: red">({{ $t("salesModule.Zhao") }})</span>
<span style="cursor:pointer;" @click="goProtocol(item,childItem)">{{childItem.protocolId>0?"查看保密协议":"签订保密协议"}}</span> <span style="cursor:pointer;"
<span v-if="isShow===index||childItem.disclaimerId>0" style="cursor:pointer;" @click="goDisclaimer(item,childItem)">{{childItem.disclaimerId>0?"查看参团免责承诺函":"签订参团免责承诺函"}}</span> @click="goProtocol(item,childItem)">{{childItem.protocolId>0?"查看保密协议":"签订保密协议"}}</span>
<span v-if="isShow===index||childItem.disclaimerId>0" style="cursor:pointer;"
@click="goDisclaimer(item,childItem)">{{childItem.disclaimerId>0?"查看参团免责承诺函":"签订参团免责承诺函"}}</span>
&nbsp;&nbsp; &nbsp;&nbsp;
</span> </span>
<span v-if="item.photoNum > 0">({{ $t("salesModule.NoPhoto") }} {{ item.photoNum <span v-if="item.photoNum > 0">({{ $t("salesModule.NoPhoto") }} {{ item.photoNum
...@@ -2164,8 +2166,9 @@ ...@@ -2164,8 +2166,9 @@
</p> </p>
<span style="display: block">{{ $t("salesModule.RoomInfo") <span style="display: block">{{ $t("salesModule.RoomInfo")
}}<span v-if="item.oneSex > 0" }}<span v-if="item.oneSex > 0"
style="color: #e95252">({{ item.oneSex == 1 ? "单男" : "单女" }})</span><span v-if="item.chirdNoNeedBedNum > 0" style="color: #e95252">({{ item.oneSex == 1 ? "单男" : "单女" }})</span><span
style="color: #e95252">(儿童不占床{{ item.chirdNoNeedBedNum }}人 )</span>:{{ item.orderGuestHouseStr }}</span> v-if="item.chirdNoNeedBedNum > 0" style="color: #e95252">(儿童不占床{{ item.chirdNoNeedBedNum }}人
</span>:{{ item.orderGuestHouseStr }}</span>
<div> <div>
...@@ -2182,10 +2185,10 @@ ...@@ -2182,10 +2185,10 @@
</span> </span>
</div> </div>
<div class="order-show GO_Contract" v-if="item.isShowDisclaimer==1" @click="showMore(item,index)" > <div class="order-show GO_Contract" v-if="item.isShowDisclaimer==1" @click="showMore(item,index)">
<span>{{isShow===index ? "隐藏参团免责承诺函" : "显示参团免责承诺函"}} <span>{{isShow===index ? "隐藏参团免责承诺函" : "显示参团免责承诺函"}}
</span> </span>
</div> </div>
<div v-if="item.otherContractList&&(qjGroupId == userInfo.RB_Group_id || F_ContractManagement)"> <div v-if="item.otherContractList&&(qjGroupId == userInfo.RB_Group_id || F_ContractManagement)">
<span class="GO_Contract" <span class="GO_Contract"
@click="goSingleContract(item)">{{item.otherContractList.length==0?"单项合同":"查看单项合同"}}</span> @click="goSingleContract(item)">{{item.otherContractList.length==0?"单项合同":"查看单项合同"}}</span>
...@@ -2270,7 +2273,8 @@ ...@@ -2270,7 +2273,8 @@
style="cursor:pointer;text-decoration:underline;color:green;"> style="cursor:pointer;text-decoration:underline;color:green;">
{{ $t("Operation.Op_teamNotice") }}({{ item.outNotice == 1 ? "OK" : "暂定"}}) {{ $t("Operation.Op_teamNotice") }}({{ item.outNotice == 1 ? "OK" : "暂定"}})
</a> --> </a> -->
<a v-if="(item.orderGuestFlightList&&item.orderGuestFlightList.length>1&&item.outNotice == 1)||(uItem.ticketUnionId&&uItem.ticketUnionId>0)" @click="toTrip(item,uItem.ticketUnionId,uItem.guestIds)" <a v-if="(item.orderGuestFlightList&&item.orderGuestFlightList.length>1&&item.outNotice == 1)||(uItem.ticketUnionId&&uItem.ticketUnionId>0)"
@click="toTrip(item,uItem.ticketUnionId,uItem.guestIds)"
style="cursor:pointer;text-decoration:underline;color:green;"> style="cursor:pointer;text-decoration:underline;color:green;">
{{ $t("Operation.Op_teamNotice") }}({{ item.outNotice == 1 ? "OK" : "暂定"}}) {{ $t("Operation.Op_teamNotice") }}({{ item.outNotice == 1 ? "OK" : "暂定"}})
</a> </a>
...@@ -2315,27 +2319,29 @@ ...@@ -2315,27 +2319,29 @@
</div> </div>
</td> </td>
<td colspan="5" class="groupTourOrder_tickets" style="height: 40px"> <td colspan="5" class="groupTourOrder_tickets" style="height: 40px">
<div > <div>
<div>{{ $t("fnc.skdanju") }}:</div> <div>{{ $t("fnc.skdanju") }}:</div>
<div> <div>
<span v-for="(item2, index2) in item.financeList" :key="index2" @click="goUrlSFD('SalesFinancialDetail', '销售财务单据', item)"> <span v-for="(item2, index2) in item.financeList" :key="index2"
@click="goUrlSFD('SalesFinancialDetail', '销售财务单据', item)">
<span v-if="item2.colorState === 1" class="groupTourOrder_tickets_blue">{{ item2.frID }}</span> <span v-if="item2.colorState === 1" class="groupTourOrder_tickets_blue">{{ item2.frID }}</span>
<span v-else-if="item2.colorState === 2" <span v-else-if="item2.colorState === 2"
class="groupTourOrder_tickets_green">{{ item2.frID }}</span> class="groupTourOrder_tickets_green">{{ item2.frID }}</span>
<span v-else-if="item2.colorState === 3" class="groupTourOrder_tickets_red">{{ item2.frID }}</span> <span v-else-if="item2.colorState === 3" class="groupTourOrder_tickets_red">{{ item2.frID }}</span>
<span v-else-if="item2.colorState === 4" <span v-else-if="item2.colorState === 4"
class="groupTourOrder_tickets_black">{{ item2.frID }}</span> class="groupTourOrder_tickets_black">{{ item2.frID }}</span>
</span> </span>
<span v-if="item.financeList.length === 0" <span v-if="item.financeList.length === 0"
style="cursor: default">{{ $t("system.content_noData") }}</span> style="cursor: default">{{ $t("system.content_noData") }}</span>
</div> </div>
</div> </div>
<div > <div>
<div>{{ $t("fnc.fkdanju") }}:</div> <div>{{ $t("fnc.fkdanju") }}:</div>
<div> <div>
<span v-for="(item2, index2) in item.refundFinanceList" :key="index2" @click="goUrlSFD('SalesFinancialDetail', '销售财务单据', item)"> <span v-for="(item2, index2) in item.refundFinanceList" :key="index2"
@click="goUrlSFD('SalesFinancialDetail', '销售财务单据', item)">
<span v-if="item2.colorState === 1" class="groupTourOrder_tickets_blue">{{ item2.frID }}</span> <span v-if="item2.colorState === 1" class="groupTourOrder_tickets_blue">{{ item2.frID }}</span>
<span v-else-if="item2.colorState === 2" <span v-else-if="item2.colorState === 2"
class="groupTourOrder_tickets_green">{{ item2.frID }}</span> class="groupTourOrder_tickets_green">{{ item2.frID }}</span>
...@@ -2489,7 +2495,7 @@ ...@@ -2489,7 +2495,7 @@
export default { export default {
data() { data() {
return { return {
isShow:'', isShow: '',
pagesTitle: '跟团游订单', pagesTitle: '跟团游订单',
SpecialAppShow: false, SpecialAppShow: false,
SpecialAppMsg: { SpecialAppMsg: {
...@@ -2525,7 +2531,7 @@ ...@@ -2525,7 +2531,7 @@
cityId: 0, cityId: 0,
orderId: 0, orderId: 0,
unionfid: 0, //订单旅客联运编号(rb_airticket_union表Id) unionfid: 0, //订单旅客联运编号(rb_airticket_union表Id)
GuestIds:'', GuestIds: '',
}, },
userId: "", userId: "",
customerId: "", customerId: "",
...@@ -2832,13 +2838,13 @@ ...@@ -2832,13 +2838,13 @@
}, },
}, },
methods: { methods: {
showMore(item,index){ showMore(item, index) {
if (this.isShow===index){ if (this.isShow === index) {
this.isShow='' this.isShow = ''
}else{ } else {
this.isShow= index; this.isShow = index;
} }
}, },
//关闭弹窗 //关闭弹窗
closeDialog() { closeDialog() {
this.isShowLayerRemarks = false; this.isShowLayerRemarks = false;
...@@ -3007,8 +3013,8 @@ ...@@ -3007,8 +3013,8 @@
window.open(routeData.href, "_blank"); window.open(routeData.href, "_blank");
}, },
//跳转到老人/孕妇免责协议 //跳转到老人/孕妇免责协议
goDisclaimer(item, sItem) { goDisclaimer(item, sItem) {
let ProtocolId = 0; let ProtocolId = 0;
let guestId = 0; let guestId = 0;
var path = "disclaimerProtocol"; var path = "disclaimerProtocol";
...@@ -3252,19 +3258,17 @@ ...@@ -3252,19 +3258,17 @@
); );
} }
}, },
toTrip: function (obj, TicketUnionId,GuestIds) { toTrip: function (obj, TicketUnionId, GuestIds) {
this.tripObj.tcid = obj.tcid; this.tripObj.tcid = obj.tcid;
this.tripObj.configId = obj.configId; this.tripObj.configId = obj.configId;
this.tripObj.orderId = obj.orderId; this.tripObj.orderId = obj.orderId;
this.tripObj.cityId = obj.startCityId; this.tripObj.cityId = obj.startCityId;
this.tripObj.GuestIds =GuestIds; this.tripObj.GuestIds = GuestIds;
this.tripObj.unionfid =0; this.tripObj.unionfid = 0;
if (TicketUnionId) { if (TicketUnionId) {
this.tripObj.unionfid = TicketUnionId; this.tripObj.unionfid = TicketUnionId;
} }
this.travelControlTripLayerShow = true; this.travelControlTripLayerShow = true;
console.log("this.tripObj",this.tripObj);
}, },
hideTripDown() { hideTripDown() {
this.travelControlTripLayerShow = false; this.travelControlTripLayerShow = false;
...@@ -4099,11 +4103,11 @@ ...@@ -4099,11 +4103,11 @@
this.addObj.ChildNoNeedPrice * this.addObj.ChildNoNeedPrice *
(Number(this.addMsg.ChirdNum) - (Number(this.addMsg.ChirdNum) -
Number(this.addMsg.ChirdNeedBedNum)); Number(this.addMsg.ChirdNeedBedNum));
let lianyun =0; let lianyun = 0;
// (Number(this.addMsg.ManNum) + // (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) + // Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum)) * // Number(this.addMsg.OldPeopleNum)) *
// (Number(this.stratPrice) + Number(this.returnPrice)); // (Number(this.stratPrice) + Number(this.returnPrice));
let dandijie; let dandijie;
if (this.addMsg.GroupType == 4) { if (this.addMsg.GroupType == 4) {
...@@ -4166,11 +4170,11 @@ ...@@ -4166,11 +4170,11 @@
this.addObj.ChildNoNeedPrice * this.addObj.ChildNoNeedPrice *
(Number(this.addMsg.ChirdNum) - (Number(this.addMsg.ChirdNum) -
Number(this.addMsg.ChirdNeedBedNum)); Number(this.addMsg.ChirdNeedBedNum));
let lianyun =0; let lianyun = 0;
// (Number(this.addMsg.ManNum) + // (Number(this.addMsg.ManNum) +
// Number(this.addMsg.ChirdNum) + // Number(this.addMsg.ChirdNum) +
// Number(this.addMsg.OldPeopleNum)) * // Number(this.addMsg.OldPeopleNum)) *
// (Number(this.stratPrice) + Number(this.returnPrice)); // (Number(this.stratPrice) + Number(this.returnPrice));
let dandijie; let dandijie;
if (this.addMsg.GroupType == 4) { if (this.addMsg.GroupType == 4) {
dandijie = dandijie =
......
...@@ -1234,12 +1234,16 @@ ...@@ -1234,12 +1234,16 @@
</div> </div>
</div> </div>
<div class="TC_remarkContent" <div class="TC_remarkContent"
v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast||item.OutGroupAuditRemark"> v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast||item.OutGroupAuditRemark||item.ProductRecommend">
<div class="clearfix TCL-redType" <div class="clearfix TCL-redType"
v-if="(item.OutGroupAuditState==3 || item.Status ==5)&&item.OutGroupAuditRemark"> v-if="(item.OutGroupAuditState==3 || item.Status ==5)&&item.OutGroupAuditRemark">
<div class="TCL_remarkTitle">驳回缘由:</div> <div class="TCL_remarkTitle">驳回缘由:</div>
<div class="TCL_Content">{{item.OutGroupAuditRemark}} {{item.OutGroupAuditDate}}</div> <div class="TCL_Content">{{item.OutGroupAuditRemark}} {{item.OutGroupAuditDate}}</div>
</div> </div>
<div class="clearfix TCL-redType" v-if="item.ProductRecommend">
<div class="TCL_remarkTitle">{{$t('Operation.Op_bentuanMaidian')}}:</div>
<div class="TCL_Content">{{item.ProductRecommend}}</div>
</div>
<div class="clearfix TCL-redType" v-if="item.OPRemark"> <div class="clearfix TCL-redType" v-if="item.OPRemark">
<div class="TCL_remarkTitle">{{$t('Operation.Op_duiwaiRemark')}}:</div> <div class="TCL_remarkTitle">{{$t('Operation.Op_duiwaiRemark')}}:</div>
<div class="TCL_Content">{{item.OPRemark}}</div> <div class="TCL_Content">{{item.OPRemark}}</div>
...@@ -2695,7 +2699,6 @@ ...@@ -2695,7 +2699,6 @@
this.VisaOPMsg.VisaShow = true; this.VisaOPMsg.VisaShow = true;
this.VisaOPMsg.VisaId = item.VisaOPId == 0 ? '' : item.VisaOPId; this.VisaOPMsg.VisaId = item.VisaOPId == 0 ? '' : item.VisaOPId;
this.VisaOPMsg.VisaAssistId = ''; this.VisaOPMsg.VisaAssistId = '';
// this.VisaOPMsg.VisaAssistId = item.VisaAssistantId;
this.VisaOPMsg.VisaAssistIds = (item.VisaAssistantId && item.VisaAssistantId.length > 0) ? item.VisaAssistantId this.VisaOPMsg.VisaAssistIds = (item.VisaAssistantId && item.VisaAssistantId.length > 0) ? item.VisaAssistantId
.split(",").map((item) => Number(item)) : []; .split(",").map((item) => Number(item)) : [];
this.VisaOPMsg.TCID = item.TCID; this.VisaOPMsg.TCID = item.TCID;
...@@ -2704,7 +2707,6 @@ ...@@ -2704,7 +2707,6 @@
//签证op设置 //签证op设置
SetVisaOPInfo() { SetVisaOPInfo() {
this.VisaOPMsg.VisaAssistId = ''; this.VisaOPMsg.VisaAssistId = '';
console.log(" this.VisaOPMsg", this.VisaOPMsg);
if (this.VisaOPMsg.VisaAssistIds && this.VisaOPMsg.VisaAssistIds.length > 0) { if (this.VisaOPMsg.VisaAssistIds && this.VisaOPMsg.VisaAssistIds.length > 0) {
this.VisaOPMsg.VisaAssistId = this.VisaOPMsg.VisaAssistIds.join(',') this.VisaOPMsg.VisaAssistId = this.VisaOPMsg.VisaAssistIds.join(',')
} }
......
...@@ -940,12 +940,16 @@ ...@@ -940,12 +940,16 @@
</div> </div>
</div> </div>
<div class="TC_remarkContent" <div class="TC_remarkContent"
v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast||item.OutGroupAuditRemark||item.PriceTagList"> v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast||item.OutGroupAuditRemark||item.PriceTagList||item.ProductRecommend">
<div class="clearfix TCL-redType" <div class="clearfix TCL-redType"
v-if="(item.OutGroupAuditState==3 || item.Status ==5)&&item.OutGroupAuditRemark"> v-if="(item.OutGroupAuditState==3 || item.Status ==5)&&item.OutGroupAuditRemark">
<div class="TCL_remarkTitle">驳回缘由:</div> <div class="TCL_remarkTitle">驳回缘由:</div>
<div class="TCL_Content">{{item.OutGroupAuditRemark}} {{item.OutGroupAuditDate}}</div> <div class="TCL_Content">{{item.OutGroupAuditRemark}} {{item.OutGroupAuditDate}}</div>
</div> </div>
<div class="clearfix TCL-redType" v-if="item.ProductRecommend">
<div class="TCL_remarkTitle">{{$t('Operation.Op_bentuanMaidian')}}:</div>
<div class="TCL_Content">{{item.ProductRecommend}}</div>
</div>
<div class="clearfix TCL-redType" v-if="item.OPRemark"> <div class="clearfix TCL-redType" v-if="item.OPRemark">
<div class="TCL_remarkTitle">{{$t('Operation.Op_duiwaiRemark')}}:</div> <div class="TCL_remarkTitle">{{$t('Operation.Op_duiwaiRemark')}}:</div>
<div class="TCL_Content">{{item.OPRemark}}</div> <div class="TCL_Content">{{item.OPRemark}}</div>
...@@ -1370,8 +1374,8 @@ ...@@ -1370,8 +1374,8 @@
} }
}); });
}, },
//根据当前员工所在部门获取该部门及子部门员工信息 //根据当前员工所在部门获取该部门及子部门员工信息
getVisaEmployeeList() { getVisaEmployeeList() {
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
let msg = { let msg = {
GroupId: userInfo.RB_Group_id, GroupId: userInfo.RB_Group_id,
...@@ -1395,7 +1399,6 @@ ...@@ -1395,7 +1399,6 @@
this.VisaOPMsg.VisaShow = true; this.VisaOPMsg.VisaShow = true;
this.VisaOPMsg.VisaId = item.VisaOPId == 0 ? '' : item.VisaOPId; this.VisaOPMsg.VisaId = item.VisaOPId == 0 ? '' : item.VisaOPId;
this.VisaOPMsg.VisaAssistId = ''; this.VisaOPMsg.VisaAssistId = '';
// this.VisaOPMsg.VisaAssistId = item.VisaAssistantId;
this.VisaOPMsg.VisaAssistIds = (item.VisaAssistantId && item.VisaAssistantId.length > 0) ? item.VisaAssistantId this.VisaOPMsg.VisaAssistIds = (item.VisaAssistantId && item.VisaAssistantId.length > 0) ? item.VisaAssistantId
.split(",").map((item) => Number(item)) : []; .split(",").map((item) => Number(item)) : [];
this.VisaOPMsg.TCID = item.TCID; this.VisaOPMsg.TCID = item.TCID;
...@@ -1404,7 +1407,6 @@ ...@@ -1404,7 +1407,6 @@
//签证op设置 //签证op设置
SetVisaOPInfo() { SetVisaOPInfo() {
this.VisaOPMsg.VisaAssistId = ''; this.VisaOPMsg.VisaAssistId = '';
console.log(" this.VisaOPMsg", this.VisaOPMsg);
if (this.VisaOPMsg.VisaAssistIds && this.VisaOPMsg.VisaAssistIds.length > 0) { if (this.VisaOPMsg.VisaAssistIds && this.VisaOPMsg.VisaAssistIds.length > 0) {
this.VisaOPMsg.VisaAssistId = this.VisaOPMsg.VisaAssistIds.join(',') this.VisaOPMsg.VisaAssistId = this.VisaOPMsg.VisaAssistIds.join(',')
} }
......
...@@ -208,15 +208,32 @@ ...@@ -208,15 +208,32 @@
</el-input> </el-input>
</td> </td>
<td> <td>
早:<el-input type="text" <template v-if="postConfig.LineId==14||postConfig.LineId==118">
:disabled="(subItem.ContainDinnerType==1||subItem.ContainDinnerType==3)?true:false" 早:<el-input placeholder="请输入餐厅名称" v-model="subItem.BreakfastName">
v-model='subItem.BreakfastName' class="w80" placeholder="早餐名称"> </el-input> <el-button slot="append" icon="el-icon-search" @click="showDiningDig(subItem,1)">
<br /> </el-button>
午:<el-input type="text" v-model='subItem.LunchName' class="w80" placeholder="午餐名称"></el-input> </el-input>
<br /> <br />
晚:<el-input type="text" 午:<el-input placeholder="请输入餐厅名称" v-model="subItem.LunchName">
:disabled="(subItem.ContainDinnerType==2||subItem.ContainDinnerType==3)?true:false" <el-button slot="append" icon="el-icon-search" @click="showDiningDig(subItem,2)">
v-model='subItem.DinnerName' class="w80" placeholder="晚餐名称"></el-input> </el-button>
</el-input>
<br />
晚:<el-input placeholder="请输入餐厅名称" v-model="subItem.DinnerName">
<el-button slot="append" icon="el-icon-search" @click="showDiningDig(subItem,3)">
</el-button>
</el-input>
</template>
<template v-else>
早:<el-input type="text"
:disabled="(subItem.ContainDinnerType==1||subItem.ContainDinnerType==3)?true:false"
v-model='subItem.BreakfastName' class="w80" placeholder="早餐名称"> </el-input>
<br />
午: <el-input type="text" v-model='subItem.LunchName' class="w80" placeholder="午餐名称"></el-input>
晚: <el-input type="text"
:disabled="(subItem.ContainDinnerType==2||subItem.ContainDinnerType==3)?true:false"
v-model='subItem.DinnerName' class="w80" placeholder="晚餐名称"></el-input>
</template>
</td> </td>
<td> <td>
早:<el-input type="text" 早:<el-input type="text"
...@@ -369,8 +386,8 @@ ...@@ -369,8 +386,8 @@
</td> </td>
<td> <td>
<el-form-item label="单地接(成本)"> <el-form-item label="单地接(成本)">
<el-input v-model="teamPrice.SingleDMCPrice" <el-input v-model="teamPrice.SingleDMCPrice" @keyup.native="checkInteger(teamPrice,'SingleDMCPrice')"
@keyup.native="checkInteger(teamPrice,'SingleDMCPrice')" @blur="getchange()" class="w70"> @blur="getchange()" class="w70">
</el-input> </el-input>
</el-form-item> </el-form-item>
</td> </td>
...@@ -552,9 +569,14 @@ ...@@ -552,9 +569,14 @@
</div> </div>
</el-form> </el-form>
</div> </div>
<el-dialog custom-class='w750' :title="dialogDiningTitle" :visible.sync="isShowDiningDig" center>
<travelDinner v-if="isShowDiningDig" :qMsg="qMsg" @chooseDinner="chooseDinner" @closeDinner="closeDinner"
:otherDinner="otherDinner" :breakFirstList="breakFirstList"></travelDinner>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import travelDinner from '@/components/commonPage/travelDinner'
export default { export default {
props: ["postConfig", "OtherPrice", "dayCostPrice", "LineList", "CostNumberList", "CurrencyNumberListExt", props: ["postConfig", "OtherPrice", "dayCostPrice", "LineList", "CostNumberList", "CurrencyNumberListExt",
"CostCurrencyList", "teamPrice", 'queryMsg' "CostCurrencyList", "teamPrice", 'queryMsg'
...@@ -580,13 +602,51 @@ ...@@ -580,13 +602,51 @@
}, { }, {
value: 3, value: 3,
label: '外站自理' label: '外站自理'
}, ], }],
HotelName: null, //酒店下拉
loading: false, loading: false,
EmployeeList: [], //员工列表 EmployeeList: [], //员工列表
dialogDiningTitle: "选择餐厅",
qMsg: {
Country: 651,
DinnerType: 0, //1-早餐,2-午餐,3-晚餐
},
clickDinner: {},
isShowDiningDig: false, //是否显示选择餐弹窗
breakFirstList: [], //午餐、晚餐默认类型
otherDinner: [], //早餐默认类型
} }
}, },
components: {
travelDinner: travelDinner,
},
methods: { methods: {
//关闭弹窗
closeDinner() {
this.isShowDiningDig = false;
this.clickDinner = {};
this.qMsg.DinnerType = 0;
},
chooseDinner(obj) {
if (this.qMsg.DinnerType == 1) {
this.clickDinner.BreakfastName = obj.DiningName;
} else if (this.qMsg.DinnerType == 2) {
this.clickDinner.LunchName = obj.DiningName;
this.clickDinner.LunchCostPrice = obj.UnitPrice;
this.clickDinner.LunchIds = obj.DiningId;
} else if (this.qMsg.DinnerType == 3) {
this.clickDinner.DinnerName = obj.DiningName;
this.clickDinner.DinnerCostPrice = obj.UnitPrice;
this.clickDinner.DinnerIds = obj.DiningId;
}
this.isShowDiningDig = false;
this.clickDinner = {};
this.qMsg.DinnerType = 0;
},
showDiningDig(item, dinnerType) {
this.qMsg.DinnerType = dinnerType;
this.clickDinner = item;
this.isShowDiningDig = true;
},
GetDayStr(dayNum) { GetDayStr(dayNum) {
var str = ""; var str = "";
if (this.postConfig.OutDateTime && this.postConfig.OutDateTime != '') { if (this.postConfig.OutDateTime && this.postConfig.OutDateTime != '') {
...@@ -618,6 +678,71 @@ ...@@ -618,6 +678,71 @@
this.HotelName = []; this.HotelName = [];
} }
}, },
// //搜索餐厅
// remoteSearchDinner(query, dinnerType, subItem) {
// if (query !== '') {
// this.loading = true;
// this.initDinner(query, dinnerType, subItem)
// } else {
// if (dinnerType == 2) {
// subItem.LunchList = []
// this.DLunch = [];
// } else {
// subItem.DinnerList = []
// this.DDinner = [];
// }
// }
// },
// //初始化餐厅列表
// initDinner(query, dinnerType, subItem, day) {
// this.apipost(
// "dining_post_GetOfferDinnerListService", {
// Name: query
// },
// res => {
// this.loading = false
// if (res.data.resultCode == 1) {
// var tempData = res.data.data;
// if (dinnerType == 2) {
// subItem.LunchList = tempData;
// } else if (dinnerType == 3) {
// subItem.DinnerList = tempData;
// }
// if (day) {
// for (let i = 0; i < this.dayCostPrice.length; i++) {
// if (!this.dayCostPrice[i].LunchList || this.dayCostPrice[i].LunchList.length == 0) {
// this.dayCostPrice[i].LunchList = tempData;
// }
// if (!this.dayCostPrice[i].DinnerList || this.dayCostPrice[i].DinnerList.length == 0) {
// this.dayCostPrice[i].DinnerList = tempData;
// }
// }
// }
// this.$forceUpdate()
// }
// },
// null
// );
// },
// 获取餐厅名称
getDinner(subItem, dinnerType, dinnerIds) {
if (dinnerType == 2) {
subItem.LunchList.forEach(x => {
if (x.ID == dinnerIds) {
subItem.LunchName = x.Name;
subItem.LunchCostPrice = x.UnitPrice;
}
})
} else if (dinnerType == 3) {
subItem.DinnerList.forEach(x => {
if (x.ID == dinnerIds) {
subItem.DinnerName = x.Name;
subItem.DinnerCostPrice = x.UnitPrice;
}
})
}
this.$forceUpdate()
},
//初始化酒店列表 //初始化酒店列表
initHotel(query, subItem, day) { initHotel(query, subItem, day) {
this.apipost( this.apipost(
...@@ -635,13 +760,11 @@ ...@@ -635,13 +760,11 @@
} }
if (subItem && (subItem.HotelList || subItem.HotelList.length > 0)) { if (subItem && (subItem.HotelList || subItem.HotelList.length > 0)) {
subItem.HotelList = res.data.data subItem.HotelList = res.data.data
} }
} else if (day != null) { } else if (day != null) {
this.dayCostPrice[day].HotelList = res.data.data this.dayCostPrice[day].HotelList = res.data.data
} }
this.$forceUpdate() this.$forceUpdate()
this.HotelName = res.data.data;
} }
}, },
null null
...@@ -1008,15 +1131,29 @@ ...@@ -1008,15 +1131,29 @@
} }
); );
}, },
//获取配置餐厅信息
getConfigDinnerList() {
this.apipost(
"travel_get_GetConfigDinnerList", {},
res => {
if (res.data.resultCode == 1) {
this.breakFirstList = res.data.data.breakFirstList;
this.otherDinner = res.data.data.otherDinner;
}
},
err => {}
);
}
}, },
mounted() { mounted() {
this.IsDefault = this.queryMsg.IsDefault this.IsDefault = this.queryMsg.IsDefault;
this.canEdit = this.queryMsg.canEdit this.canEdit = this.queryMsg.canEdit;
this.getSubtotalMoney(); this.getSubtotalMoney();
this.getAllCurrency(); this.getAllCurrency();
}, },
created() { created() {
this.getEmployeeList(); this.getEmployeeList();
this.getConfigDinnerList();
}, },
watch: { watch: {
postConfig: { postConfig: {
...@@ -1041,7 +1178,9 @@ ...@@ -1041,7 +1178,9 @@
if (this.dayCostPrice && this.dayCostPrice.length > 0) { if (this.dayCostPrice && this.dayCostPrice.length > 0) {
let arrList = function (list) { let arrList = function (list) {
list.forEach(x => { list.forEach(x => {
x.HotelList = [] x.HotelList = [];
x.LunchList = [];
x.DinnerList = [];
}) })
} }
arrList(this.dayCostPrice) arrList(this.dayCostPrice)
...@@ -1049,6 +1188,12 @@ ...@@ -1049,6 +1188,12 @@
if (this.dayCostPrice[i].HotelName != '') { if (this.dayCostPrice[i].HotelName != '') {
this.initHotel(this.dayCostPrice[i].HotelName, this.dayCostPrice[i], i) this.initHotel(this.dayCostPrice[i].HotelName, this.dayCostPrice[i], i)
} }
// if (this.dayCostPrice[i].LunchIds != '') {
// this.initDinner(this.dayCostPrice[i].LunchName, 2, this.dayCostPrice[i], i)
// }
// if (this.dayCostPrice[i].DinnerIds != '') {
// this.initDinner(this.dayCostPrice[i].DinnerName, 3, this.dayCostPrice[i], i)
// }
} }
} }
}, 100) }, 100)
......
...@@ -89,149 +89,239 @@ ...@@ -89,149 +89,239 @@
min-height: 1px; min-height: 1px;
} }
.travelDinner .search-card-detail {
width: 400px;
}
.travelDinner .search-card-detail .item-poi-img {
position: relative;
width: 100%;
height: 0;
padding-top: 56.25%;
}
.travelDinner .search-card-detail .item-poi-img .container {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
.travelDinner .search-card-detail .item-poi-img .container img {
border-radius: 8px;
cursor: pointer;
}
.travelDinner .search-card-detail .item-poi-img .container .last-img {
position: relative;
border-radius: 8px;
overflow: hidden;
cursor: pointer;
}
.travelDinner .search-card-detail .item-poi-img .container .last-img .content {
background: rgba(0, 0, 0, .2);
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 2;
pointer-events: none;
}
.travelDinner .text-info {
color: #b1b7cf;
}
.travelDinner .details ::-webkit-scrollbar {
width: 0;
/* 确保垂直滚动条宽度为 0 */
height: 8px;
overflow-x: hidden;
/* 隐藏横向滚动条 */
}
.travelDinner .details ::-webkit-scrollbar-track {
background-color: transparent;
}
.travelDinner .details ::-webkit-scrollbar-thumb {
background-color: #888;
border-radius: 4px;
}
</style> </style>
<template> <template>
<div class="travelDinner"> <div class="travelDinner">
<div class="cm_hotelTitle clearfix"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-row :gutter="12"> <el-tab-pane label="系统餐厅" name="first">
<el-col :span="4"> <div class="cm_hotelTitle clearfix">
<el-select filterable v-model="searchParmeters.Province" placeholder="地区" @change="reSearch" clearable <el-row :gutter="12">
@clear="reSearch"> <el-col :span="4">
<el-option v-for="item in ProvinceList" :label='item.Name' :value='item.ID' :key='item.ID'> <el-select filterable v-model="searchParmeters.Province" placeholder="地区" @change="reSearch" clearable
</el-option> @clear="reSearch">
</el-select> <el-option v-for="item in ProvinceList" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-col> </el-option>
<el-col :span="4"> </el-select>
<el-select filterable v-model="searchParmeters.UseType" placeholder="使用类型" @change="reSearch" clearable </el-col>
@clear="reSearch"> <el-col :span="4">
<el-option v-for="item in diningUseTypeList" :label='item.Name' :value='item.ID' :key='item.ID'> <el-select filterable v-model="searchParmeters.UseType" placeholder="使用类型" @change="reSearch" clearable
</el-option> @clear="reSearch">
</el-select> <el-option v-for="item in diningUseTypeList" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-col> </el-option>
<el-col :span="4"> </el-select>
<el-select filterable v-model="searchParmeters.DiningType" placeholder="餐类型" @change="reSearch" clearable </el-col>
@clear="reSearch"> <el-col :span="4">
<el-option v-for="item in diningTypeList" :label='item.Name' :value='item.ID' :key='item.ID'> <el-select filterable v-model="searchParmeters.DiningType" placeholder="餐类型" @change="reSearch" clearable
</el-option> @clear="reSearch">
</el-select> <el-option v-for="item in diningTypeList" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-col> </el-option>
<el-col :span="4"> </el-select>
<el-select filterable v-model="searchParmeters.DiningPriceType" placeholder="餐标" @change="reSearch" clearable </el-col>
@clear="reSearch"> <el-col :span="4">
<el-option v-for="item in diningPriceTypeList" :label='item.Name' :value='item.ID' :key='item.ID'> <el-select filterable v-model="searchParmeters.DiningPriceType" placeholder="餐标" @change="reSearch"
</el-option> clearable @clear="reSearch">
</el-select> <el-option v-for="item in diningPriceTypeList" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-col> </el-option>
<el-col :span="4"> </el-select>
<el-input type="text" v-model="searchParmeters.keywords" @keyup.native.enter="reSearch" clearable </el-col>
@clear="reSearch" placeholder="关键字"></el-input> <el-col :span="4">
</el-col> <el-input type="text" v-model="searchParmeters.keywords" @keyup.native.enter="reSearch" clearable
<el-col :span="4"> @clear="reSearch" placeholder="关键字"></el-input>
<input type="button" class="normalBtn" :value="$t('pub.searchBtn')" @click="reSearch()" /> </el-col>
</el-col> <el-col :span="4">
</el-row> <input type="button" class="normalBtn" :value="$t('pub.searchBtn')" @click="reSearch()" />
</div> </el-col>
<div v-loading="loading"> </el-row>
<el-row :gutter="12" class="q-mt-lg" v-if="!loading"> </div>
<el-col :span="8" v-for="(x, i) in dataList" :key="i"> <div v-loading="loading" style="min-heoght:200px;">
<div class="item-poi" :class="x.Checked?'checkDinner':''" @click="setSelectedPoiItem(x)" <el-row :gutter="12" class="q-mt-lg" v-if="!loading">
:style="{ 'background-image': `url('${x.PicPath.split('?')[0]}')` }"> <el-col :span="8" v-for="(x, i) in dataList" :key="i">
<div class="container column"> <div class="item-poi" :class="x.Checked?'checkDinner':''" @click="setSelectedPoiItem(x)"
<div class="row items-center"> :style="{ 'background-image': `url('${x.PicPath.split('?')[0]}')` }">
<template v-if="x.UseTypeList&&x.UseTypeList.length>0"> <div class="container column">
<el-tag :type="index==0?'danger':index==1?'warning':index==2?'':'info'" size="mini" <div class="row items-center">
class="text-bold UseTypeTitle" v-for="(item,index) in x.UseTypeList" :key="`u_`+i+index"> <template v-if="x.UseTypeList&&x.UseTypeList.length>0">
<template v-if="item.indexOf('团')!=-1">{{ item.replace('团', "")}}</template> <el-tag :type="index==0?'danger':index==1?'warning':index==2?'':'info'" size="mini"
<template v-else>{{ item.replace('常用', "")}}</template> class="text-bold UseTypeTitle" v-for="(item,index) in x.UseTypeList" :key="`u_`+i+index">
</el-tag> <template v-if="item.indexOf('团')!=-1">{{ item.replace('团', "")}}</template>
</template> <template v-else>{{ item.replace('常用', "")}}</template>
</div> </el-tag>
<div class="col"></div> </template>
<el-tooltip class="item" effect="dark" placement="top"> </div>
<div slot="content"> <div class="col"></div>
<div class="search-card-detail"> <el-tooltip class="item" effect="dark" placement="right">
<div class="row items-center"> <div slot="content" style="max-width:400px;">
<div class="sub-title1 col q-mx-md">餐详情</div> <div class="search-card-detail details">
</div> <div class="row items-center">
<el-scrollbar max-height="50vh"> <div class="sub-title1 col q-mx-md">餐详情</div>
<div class="q-mt-md">
<p>{{ x.Name }}</p>
<div class="q-mt-md row items-center">
<div class="text-small text-info col">地址</div>
<p class="text-small">{{ x.CountryName }}·{{ x.CityName }} {{ x.Address
}}</p>
</div> </div>
<el-scrollbar max-height="50vh" style="overflow-x:hidden;">
<div class="q-mt-md">
<p>{{ x.Name }}</p>
<template v-if="x.RealName && x.RealName != ''">
<div class="text-small text-info col q-mt-md" style=" margin-top: 10px">真实名称</div>
<span class="text-small q-mt-sm" style=" margin-top: 5px">{{ x.RealName }}</span>
</template>
<div class="q-mt-md row items-center" style=" margin-top: 10px">
<div class="text-small text-info col">地址</div>
</div>
<span class="text-small" style=" margin-top: 5px">{{ x.CountryName }}·{{ x.CityName }} {{ x.Address
}}</span>
<template v-if="x.Tel && x.Tel != ''">
<div class="text-small text-info col q-mt-md" style=" margin-top: 10px">联系电话</div>
<span class="text-small q-mt-sm" style=" margin-top: 5px">{{ x.Tel }}</span>
</template>
<template v-if="x.Url && x.Url != ''">
<div class="text-small text-info col q-mt-md" style=" margin-top: 10px">网址</div>
<a :href="x.Url" target="_blank" style="color:white;margin-top: 5px">{{ x.Url }}</a>
</template>
<template v-if="x.UseTypeList&&x.UseTypeList.length>0">
<div class="text-small text-info col q-mt-md" style=" margin-top: 10px">适用类型</div>
<el-tag class="q-mt-sm" style=" margin-top: 5px;margin-left:5px;"
:type="subindex==0?'danger':subindex==1?'warning':subindex==2?'':'info'"
:class="[!subindex?'':'q-ml-md']" size="small"
v-for="(subitem,subindex) in x.UseTypeList" :key="`de_`+subindex">
{{subitem}}</el-tag>
<template v-if="x.Tel && x.Tel != ''"> </template>
<div class="text-small text-info col q-mt-md">联系电话</div> <template v-if="x.PriceList&&x.PriceList.length>0">
<span class="text-small q-mt-sm">{{ x.Tel }}</span> <div class="text-small text-info col q-mt-md" style=" margin-top: 10px">套餐价格</div>
</template> <el-tag class="q-mt-sm q-mr-md" style=" margin-top: 5px;margin-left:5px;" size="small"
<template v-if="x.Url && x.Url != ''"> v-for="(subItem,subIndex) in x.PriceList" :key="`d_p_`+subIndex">
<div class="text-small text-info col q-mt-md">网址</div> {{subItem.MealName}} / {{subItem.MealPrice}}
<a :href="x.Url" target="_blank" class="text-small q-mt-sm">{{ x.Url }}</a>
</template> </el-tag>
</template>
<template v-if="x.UseTypeList&&x.UseTypeList.length>0"> <template v-if="x.Feature && x.Feature != ''">
<div class="text-small text-info col q-mt-md">适用类型</div> <div class="text-small text-info col q-mt-md" style=" margin-top: 10px">详细介绍</div>
<el-tag class="q-mt-sm" <span class="text-small q-mt-sm" style=" margin-top: 5px">{{ x.Feature }}</span>
:type="subindex==0?'danger':subindex==1?'warning':subindex==2?'':'info'" </template>
:class="[!subindex?'':'q-ml-md']" size="small" v-for="(subitem,subindex) in x.UseTypeList"
:key="`de_`+subindex"> <template v-if="x.About && x.About != ''">
{{subitem}}</el-tag> <div class="text-small text-info col q-mt-md" style=" margin-top: 10px">温馨提示</div>
<span class="text-small q-mt-sm" style=" margin-top: 5px">{{ x.About }}</span>
</template> </template>
<template v-if="x.PriceList&&x.PriceList.length>0"> <template v-if="x.BookingInfo && x.BookingInfo != ''">
<div class="text-small text-info col q-mt-md">套餐价格</div> <div class="text-small text-info col q-mt-md" style=" margin-top: 10px">预定须知</div>
<el-tag class="q-mt-sm q-mr-md" size="small" v-for="(subItem,subIndex) in x.PriceList" <span class="text-small q-mt-sm" style=" margin-top: 5px">{{ x.BookingInfo }}</span>
:key="`d_p_`+subIndex"> </template>
{{subItem.MealName}} </div>
<text>/ {{subItem.MealPrice}}</text> </el-scrollbar>
</el-tag>
</template>
<template v-if="x.Feature && x.Feature != ''">
<div class="text-small text-info col q-mt-md">详细介绍</div>
<span class="text-small q-mt-sm">{{ x.Feature }}</span>
</template>
<template v-if="x.About && x.About != ''">
<div class="text-small text-info col q-mt-md">温馨提示</div>
<span class="text-small q-mt-sm">{{ x.About }}</span>
</template>
<template v-if="x.BookingInfo && x.BookingInfo != ''">
<div class="text-small text-info col q-mt-md">预定须知</div>
<span class="text-small q-mt-sm">{{ x.BookingInfo }}</span>
</template>
</div> </div>
</el-scrollbar> </div>
</div> <p class="text-white full-width fixed-p"
style="text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5); font-size: 12px; vertical-align: bottom;">
{{ x.Name }}
</p>
</el-tooltip>
</div> </div>
<p class="text-white full-width fixed-p" </div>
style="text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5); font-size: 12px; vertical-align: bottom;"> </el-col>
{{ x.Name }} </el-row>
</p> <div style="display:flex;justify-content:center;align-items:center;">
</el-tooltip> <el-pagination layout="prev, pager, next" hide-on-single-page :page-size="searchParmeters.pageSize"
</div> @current-change="handleSearch" :current-page="searchParmeters.pageIndex" :total="total" small />
</div> </div>
</el-col> </div>
</el-row> </el-tab-pane>
<div class="row"> <el-tab-pane label="默认餐厅" name="second">
<div class="col"></div> <div style="padding-left:20px;">
<el-pagination layout="prev, pager, next" class="no-bg " hide-on-single-page <template v-if="qMsg.DinnerType==1">
:page-size="searchParmeters.pageSize" @current-change="handleSearch" :current-page="searchParmeters.pageIndex" <el-radio-group v-model="checkDinner">
:total="total" small /> <el-radio :label="item.Id" v-for="(item) in breakFirstList" :key="item.Id"
</div> style="display:block;text-align:left;padding-top:5px;">{{item.name}}</el-radio>
</el-radio-group>
</template>
<template v-else>
<el-radio-group v-model="checkDinner">
<el-radio :label="item.ID" v-for="(item) in otherDinner" :key="item.ID"
style="display:block;text-align:left;padding-top:5px;">{{item.Name}}</el-radio>
</el-radio-group>
</template>
</div>
</el-tab-pane>
</el-tabs>
<div style="display:flex;justify-content:center;align-items:center;">
<input type="button" class="normalBtn" @click="sendCkedHotel()" value="确认" />
<input type="button" class="normalBtn" @click="closeDinnerDig()" value="关闭" />
</div> </div>
<input type="button" class="normalBtn com_SaveBtn" @click="sendCkedHotel()" value="确认" />
</div> </div>
</template> </template>
<script> <script>
export default { export default {
props: ["Country"], props: ["qMsg", "otherDinner", "breakFirstList"],
data() { data() {
return { return {
loading: false, loading: false,
dataList: [], dataList: [],
activeName: "first",
searchParmeters: { searchParmeters: {
keywords: '', keywords: '',
platform: 2, platform: 2,
...@@ -250,9 +340,17 @@ ...@@ -250,9 +340,17 @@
diningPriceTypeList: [], //餐标 diningPriceTypeList: [], //餐标
diningTypeList: [], //餐类型 diningTypeList: [], //餐类型
diningUseTypeList: [], //适用类型 diningUseTypeList: [], //适用类型
defaultDinnerList: [],
checkDinner: 0,
}; };
}, },
methods: { methods: {
handleClick() {
},
changeDinner(value) {
this.checkDinner = value;
},
setSelectedPoiItem(item) { setSelectedPoiItem(item) {
if (this.dataList && this.dataList.length > 0) { if (this.dataList && this.dataList.length > 0) {
this.dataList.forEach(item => { this.dataList.forEach(item => {
...@@ -261,25 +359,54 @@ ...@@ -261,25 +359,54 @@
} }
item.Checked = !item.Checked; item.Checked = !item.Checked;
}, },
//关闭弹窗
closeDinnerDig() {
this.$emit("closeDinner");
},
//向父组件传递选中酒店 //向父组件传递选中酒店
sendCkedHotel() { sendCkedHotel() {
var ckDinnerObj = {}; var ckDinnerObj = {
if (this.ckedDinner) { DiningId: 0,
ckDinnerObj.ID = this.ckedDinner.ID; DiningName: "",
ckDinnerObj.Address = this.ckedDinner.Address; UnitPrice: 0,
ckDinnerObj.Name = this.ckedDinner.Name; };
ckDinnerObj.RealName = this.ckedDinner.RealName; if (this.activeName == "first") {
ckDinnerObj.PayStyle = this.ckedDinner.PayStyle; if (this.dataList && this.dataList.length > 0) {
ckDinnerObj.Tel = this.ckedDinner.Tel; this.dataList.forEach(item => {
ckDinnerObj.RebateRatio = this.ckedDinner.RebateRatio; if (item.Checked) {
ckDinnerObj.RebateCount = this.ckedDinner.RebateCount; ckDinnerObj.DiningId = item.ID;
ckDinnerObj.DiningName = item.Name;
ckDinnerObj.UnitPrice = item.UnitPrice;
}
})
}
} else {
if (this.qMsg.DinnerType == 2 || this.qMsg.DinnerType == 3) {
var tempObj = this.otherDinner.find((item) => {
return item.ID === this.checkDinner;
})
if (tempObj) {
ckDinnerObj.DiningId = tempObj.ID;
ckDinnerObj.DiningName = tempObj.Name;
ckDinnerObj.UnitPrice = 0;
}
} else {
var tempBObj = this.breakFirstList.find((item) => {
return item.Id === this.checkDinner;
})
if (tempBObj) {
ckDinnerObj.DiningId = tempBObj.Id;
ckDinnerObj.DiningName = tempBObj.name;
ckDinnerObj.UnitPrice = 0;
}
}
} }
this.$emit("childDinner", ckDinnerObj); this.$emit("chooseDinner", ckDinnerObj);
}, },
//获取日本下面的市->下拉框用 //获取日本下面的市->下拉框用
getProvinceList() { getProvinceList() {
let msg = { let msg = {
Id: this.Country Id: this.qMsg.Country
}; };
this.apipost("dict_post_Destination_GetChildList", msg, res => { this.apipost("dict_post_Destination_GetChildList", msg, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
......
...@@ -72,77 +72,84 @@ ...@@ -72,77 +72,84 @@
<div class="Traveltrip-item-box"> <div class="Traveltrip-item-box">
<div class="TC-Comtitlediv"> <div class="TC-Comtitlediv">
<table class="TC-HotelDinner"> <table class="TC-HotelDinner">
<template v-if="showDining"> <tr>
<tr> <td width="70" valign="middle">
<td width="70" valign="middle"> <img crossorigin="Anonymous" src="../../../assets/img/daily_breakfast.png">
<img crossorigin="Anonymous" src="../../../assets/img/daily_breakfast.png"> </td>
</td> <td valign="middle">
<td width="140" valign="middle"> <el-select v-if="!dayObj.isRead&&IsDirect==1" class="Ht_hotelSelect" :placeholder="$t('pub.pleaseSel')"
filterable v-model="dayObj.DinnerArray[0].BreakfastUseType"
@change="changeBreakfastList(dayObj.DinnerArray[0])">
<el-option :label="$t('pub.unlimitedSel')" :value="DefaultSelectValue"></el-option>
<el-option v-for="item in breakFirstList" :label="item.name" :value="item.Id" :key="item.Id">
</el-option>
</el-select>
<el-input type="text" v-model="dayObj.DinnerArray[0].DinnerName" class="" v-if="!dayObj.isRead&&IsDirect==0"
@change="noDirectDinnerChange(0)"></el-input>
<span class="TC-hotelName" v-if="dayObj.isRead ">
{{IsDirect==1? getBreakfirst(dayObj.DinnerArray[0].BreakfastUseType):dayObj.DinnerArray[0].DinnerName}}
</span>
</td>
</tr>
<tr class="marginT10">
<td width="70" valign="middle" align="center">
<img crossorigin="Anonymous" src="../../../assets/img/daily_lunch.png">
</td>
<td valign="middle">
<template v-if="PostConfig.LineId==14||PostConfig.LineId==118">
<el-input placeholder="请输入餐厅名称" v-model="dayObj.DinnerArray[1].DinnerName" class="Ht_hotelSelect">
<el-button slot="append" icon="el-icon-search" @click="showDiningDig(dayObj.DinnerArray[1],2)">
</el-button>
</el-input>
</template>
<template v-else>
<el-select v-if="!dayObj.isRead&&IsDirect==1" class="" :placeholder="$t('pub.pleaseSel')" filterable <el-select v-if="!dayObj.isRead&&IsDirect==1" class="" :placeholder="$t('pub.pleaseSel')" filterable
v-model="dayObj.DinnerArray[0].BreakfastUseType" @change="changeBreakfastList(dayObj.DinnerArray[0])"> v-model="dayObj.DinnerArray[1].DinnerId" @visible-change="getDinnerList($event)"
@change="changeDinnerList(dayObj.DinnerArray[1])">
<el-option :label="$t('pub.unlimitedSel')" :value="DefaultSelectValue"></el-option> <el-option :label="$t('pub.unlimitedSel')" :value="DefaultSelectValue"></el-option>
<el-option v-for="item in breakFirstList" :label="item.name" :value="item.Id" :key="item.Id"> <el-option v-for="item in QDinnerList" :label="item.Name" :value="item.ID" :key="item.ID">
<span>{{ item.Name }}</span>
<span class="TC-realSpan">{{item.RealName}}</span>
</el-option> </el-option>
</el-select> </el-select>
<el-input type="text" v-model="dayObj.DinnerArray[0].DinnerName" class="" </template>
v-if="!dayObj.isRead&&IsDirect==0" @change="noDirectDinnerChange(0)"></el-input> <el-input type="text" v-model="dayObj.DinnerArray[1].DinnerName" class="" v-if="!dayObj.isRead&&IsDirect==0"
<span class="TC-hotelName" v-if="dayObj.isRead "> @change="noDirectDinnerChange(1)"></el-input>
{{IsDirect==1? getBreakfirst(dayObj.DinnerArray[0].BreakfastUseType):dayObj.DinnerArray[0].DinnerName}} <span class="TC-hotelName" v-if="dayObj.isRead">
</span> {{IsDirect==1? getQDinnerList(dayObj.DinnerArray[1].DinnerId):dayObj.DinnerArray[1].DinnerName}}
</td> </span>
</tr> </td>
<tr> </tr>
<td width="70" valign="middle" align="center"> <tr class="marginT10">
<img crossorigin="Anonymous" src="../../../assets/img/daily_lunch.png"> <td width="70" valign="middle">
</td> <img src="../../../assets/img/daily_dinner.png">
<td width="140" valign="middle"> </td>
<!-- <template v-if="PostConfig.LineId==14||PostConfig.LineId==118"> <td valign="middle">
<el-input placeholder="请输入餐厅名称" v-model="dayObj.DinnerArray[1].DinnerName" <template v-if="PostConfig.LineId==14||PostConfig.LineId==118">
class="input-with-select dinnerBtn"> <el-input placeholder="请输入餐厅名称" v-model="dayObj.DinnerArray[2].DinnerName" class="Ht_hotelSelect">
<el-button slot="append" icon="el-icon-search" @click="showDiningDig(dayObj.DinnerArray[1])"> <el-button slot="append" icon="el-icon-search" @click="showDiningDig(dayObj.DinnerArray[2],3)">
</el-button> </el-button>
</el-input> </el-input>
</template> </template>
<template v-else> --> <template v-else>
<el-select v-if="!dayObj.isRead&&IsDirect==1" class="" :placeholder="$t('pub.pleaseSel')" filterable <el-select v-if="!dayObj.isRead&&IsDirect==1" class="Ht_hotelSelect" :placeholder="$t('pub.pleaseSel')"
v-model="dayObj.DinnerArray[1].DinnerId" @visible-change="getDinnerList($event)" filterable v-model="dayObj.DinnerArray[2].DinnerId" @visible-change="getDinnerList($event)"
@change="changeDinnerList(dayObj.DinnerArray[1])"> @change="changeDinner2List(dayObj.DinnerArray[2])">
<el-option :label="$t('pub.unlimitedSel')" :value="DefaultSelectValue"></el-option>
<el-option v-for="item in QDinnerList" :label="item.Name" :value="item.ID" :key="item.ID">
<span>{{ item.Name }}</span>
<span class="TC-realSpan">{{item.RealName}}</span>
</el-option>
</el-select>
<!-- </template> -->
<el-input type="text" v-model="dayObj.DinnerArray[1].DinnerName" class=""
v-if="!dayObj.isRead&&IsDirect==0" @change="noDirectDinnerChange(1)"></el-input>
<span class="TC-hotelName" v-if="dayObj.isRead">
{{IsDirect==1? getQDinnerList(dayObj.DinnerArray[1].DinnerId):dayObj.DinnerArray[1].DinnerName}}
</span>
</td>
</tr>
<tr class="marginT10">
<td width="70" valign="middle">
<img src="../../../assets/img/daily_dinner.png">
</td>
<td valign="middle">
<el-select v-if="!dayObj.isRead&&IsDirect==1" class="" style="width: 140px;"
:placeholder="$t('pub.pleaseSel')" filterable v-model="dayObj.DinnerArray[2].DinnerId"
@visible-change="getDinnerList($event)" @change="changeDinner2List(dayObj.DinnerArray[2])">
<el-option :label="$t('pub.unlimitedSel')" :value="DefaultSelectValue"></el-option> <el-option :label="$t('pub.unlimitedSel')" :value="DefaultSelectValue"></el-option>
<el-option v-for="item in QDinnerList2" :label="item.Name" :value="item.ID" :key="item.ID"> <el-option v-for="item in QDinnerList2" :label="item.Name" :value="item.ID" :key="item.ID">
<span>{{ item.Name }}</span> <span>{{ item.Name }}</span>
<span class="TC-realSpan">{{item.RealName}}</span> <span class="TC-realSpan">{{item.RealName}}</span>
</el-option> </el-option>
</el-select> </el-select>
<el-input type="text" v-model="dayObj.DinnerArray[2].DinnerName" class="" </template>
v-if="!dayObj.isRead&&IsDirect==0" @change="noDirectDinnerChange(2)"></el-input>
<span class="TC-hotelName" v-if="dayObj.isRead"> <el-input type="text" v-model="dayObj.DinnerArray[2].DinnerName" class="" v-if="!dayObj.isRead&&IsDirect==0"
{{IsDirect==1?getQDinnerList2(dayObj.DinnerArray[2].DinnerId):dayObj.DinnerArray[2].DinnerName}} @change="noDirectDinnerChange(2)"></el-input>
</span> <span class="TC-hotelName" v-if="dayObj.isRead">
</td> {{IsDirect==1?getQDinnerList2(dayObj.DinnerArray[2].DinnerId):dayObj.DinnerArray[2].DinnerName}}
</tr> </span>
</template> </td>
</tr>
<tr class="marginT10"> <tr class="marginT10">
<td width="70" valign="top"> <td width="70" valign="top">
<img crossorigin="Anonymous" src="../../../assets/img/daily_hotel-1.png"> <img crossorigin="Anonymous" src="../../../assets/img/daily_hotel-1.png">
...@@ -175,7 +182,8 @@ ...@@ -175,7 +182,8 @@
</table> </table>
</div> </div>
<el-dialog custom-class='w750' :title="dialogDiningTitle" :visible.sync="isShowDiningDig" center> <el-dialog custom-class='w750' :title="dialogDiningTitle" :visible.sync="isShowDiningDig" center>
<travelDinner :Country="651"></travelDinner> <travelDinner :qMsg="qMsg" @chooseDinner="chooseDinner" @closeDinner="closeDinner" :otherDinner="otherDinner"
:breakFirstList="breakFirstList"></travelDinner>
</el-dialog> </el-dialog>
</div> </div>
...@@ -202,18 +210,32 @@ ...@@ -202,18 +210,32 @@
isFirstInitDinner: false, //初始含有酒店列表,加载完酒店数据在初始化餐厅列表 isFirstInitDinner: false, //初始含有酒店列表,加载完酒店数据在初始化餐厅列表
DinnerByKeyList: [], DinnerByKeyList: [],
totalDinnerByKeyList: 0, totalDinnerByKeyList: 0,
checlItem: {}, clickDinner: {},
dialogDiningTitle: "选择餐厅", dialogDiningTitle: "选择餐厅",
isShowDiningDig: false, //是否显示餐弹窗 isShowDiningDig: false, //是否显示餐弹窗
qMsg: {
Country: 651,
DinnerType: 1, //1-早餐,2-午餐,3-晚餐
}
}; };
}, },
components: { components: {
travelDinner: travelDinner, travelDinner: travelDinner,
}, },
methods: { methods: {
showDiningDig(item) { //关闭弹窗
this.checlItem = item; closeDinner() {
this.isShowDiningDig = false;
this.clickDinner = {};
},
chooseDinner(obj) {
this.clickDinner.DinnerId = obj.DiningId;
this.clickDinner.DinnerName = obj.DiningName
this.isShowDiningDig = false;
},
showDiningDig(item, dinnerType) {
this.clickDinner = item;
this.qMsg.DinnerType = dinnerType;
this.isShowDiningDig = true; this.isShowDiningDig = true;
}, },
// 非直采酒店 // 非直采酒店
...@@ -572,7 +594,7 @@ ...@@ -572,7 +594,7 @@
value.UseDinnerType = index + 1; value.UseDinnerType = index + 1;
}); });
} }
this.showDining = true;
}, },
//根据ID遍历早餐酒店名 //根据ID遍历早餐酒店名
getBreakfirst(Id) { getBreakfirst(Id) {
......
...@@ -824,23 +824,18 @@ ...@@ -824,23 +824,18 @@
<p> <p>
<i class="iconfont icon-hangban1"></i>{{ $t("Operation.Op_Warmprompt") }} <i class="iconfont icon-hangban1"></i>{{ $t("Operation.Op_Warmprompt") }}
</p> </p>
<!-- <p style="color:red;">
<span>签证人员</span><i>{{
item.VisaOPName === "" ? "未设置" : item.VisaOPName
}}</i>
</p> -->
<p> <p>
<span>签证OP</span> <span>签证OP</span>
<span class="TCL-redType"> {{item.VisaOPName}}</span> <span class="TCL-redType"> {{item.VisaOPName}}</span>
</p> </p>
<template v-if="item.VisaAssistantList&&item.VisaAssistantList.length>0"> <template v-if="item.VisaAssistantList&&item.VisaAssistantList.length>0">
<p > <p>
<span> 签证助理OP</span> <span> 签证助理OP</span>
<template v-for="(subItem,subIndex) in item.VisaAssistantList"> <template v-for="(subItem,subIndex) in item.VisaAssistantList">
<span :key="subIndex" style="padding-right:3px;">{{subItem}}</span> <span :key="subIndex" style="padding-right:3px;">{{subItem}}</span>
</template> </template>
</p> </p>
</template> </template>
<p style="color:red;"> <p style="color:red;">
<span>{{ $t("visa.v_sqtime") }}</span><i>{{ <span>{{ $t("visa.v_sqtime") }}</span><i>{{
item.SendVisaTime === "" ? "未设置" : item.SendVisaTime item.SendVisaTime === "" ? "未设置" : item.SendVisaTime
...@@ -972,8 +967,13 @@ ...@@ -972,8 +967,13 @@
</div> </div>
</div> </div>
<div class="d6"> <div class="d6">
<el-popover placement="right" width="500" trigger="click" :content="item.ProductRecommend"> <!-- <template v-if="item.ProductRecommend&&item.ProductRecommend!=''">
<span style=" <p>{{ $t("Operation.Op_bentuanMaidian") }}:</p>
<p :title="item.ProductRecommend">{{ item.ProductRecommend }}</p>
</template> -->
<template v-if="item.ProductRecommend&&item.ProductRecommend!=''">
<el-popover placement="right" width="500" trigger="click" :content="item.ProductRecommend">
<span style="
cursor: pointer; cursor: pointer;
padding: 2px 5px; padding: 2px 5px;
display: inline-block; display: inline-block;
...@@ -982,7 +982,8 @@ ...@@ -982,7 +982,8 @@
border: 1px solid #ccc; border: 1px solid #ccc;
font-size: 12px; font-size: 12px;
" slot="reference">{{ $t("Operation.Op_bentuanMaidian") }}</span> " slot="reference">{{ $t("Operation.Op_bentuanMaidian") }}</span>
</el-popover> </el-popover>
</template>
<p>{{ $t("Operation.Op_remark") }}:</p> <p>{{ $t("Operation.Op_remark") }}:</p>
<p :title="item.OpRemark">{{ item.OpRemark }}</p> <p :title="item.OpRemark">{{ item.OpRemark }}</p>
</div> </div>
......
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