Commit 9d848171 authored by 华国豪's avatar 华国豪 🙄
parents 282e32cd ab44a3d6
...@@ -400,5 +400,23 @@ var commonUtils = { ...@@ -400,5 +400,23 @@ var commonUtils = {
} }
return dateStr; return dateStr;
}, },
/**
* 增加减少天数
* date:可以不传
* day:正数
*/
AddDay(date, day) {
var myDate = "";
if (date) {
myDate = new Date(date);
} else {
myDate = new Date();
}
myDate = myDate.setDate(myDate.getDate() + day);
myDate = new Date(myDate);
//返回年月日
return myDate.getFullYear() + '-' + parseInt(myDate.getMonth() + 1) + "-" + myDate.getDate()
}
} }
export default commonUtils export default commonUtils
...@@ -716,23 +716,14 @@ ...@@ -716,23 +716,14 @@
calculationPrice(obj) { calculationPrice(obj) {
let totalPrice = 0; let totalPrice = 0;
obj.OrderDetailsList.forEach((item, index) => { obj.OrderDetailsList.forEach((item, index) => {
var tempPrice=0;
//税别 //税别
if (obj.TaxType == 2) { if (obj.TaxType == 2 && item.RebateRatio>0) {
if (index == 4) { tempPrice= item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item.RebateRatio / 100);
if (obj.DriverGuideIsRebate == 1) {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item.RebateRatio /
100);
} else { } else {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100); tempPrice= item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100);
}
} else {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item.RebateRatio /
100);
}
} else {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100);
} }
totalPrice+=tempPrice;
}) })
totalPrice += obj.ParkFee + obj.CityTax + obj.InTangTax; totalPrice += obj.ParkFee + obj.CityTax + obj.InTangTax;
obj.TotalPrice = totalPrice.toFixed(2); obj.TotalPrice = totalPrice.toFixed(2);
......
...@@ -410,7 +410,7 @@ ...@@ -410,7 +410,7 @@
{{subItem.UseAccount}} {{subItem.UseAccount}}
</td> </td>
<td> <td>
{{peopleStrToWord(childItem.PeopleType)}}:{{childItem.PeopleNum}} {{peopleStrToWord(childItem.PeopleType)}}:{{childItem.UsePeopleNum}}
</td> </td>
<td> <td>
{{childItem.Discount}} {{childItem.Discount}}
...@@ -731,18 +731,8 @@ ...@@ -731,18 +731,8 @@
obj.OrderDetailsList.forEach((item, index) => { obj.OrderDetailsList.forEach((item, index) => {
if (obj.PayStyle === 1) { if (obj.PayStyle === 1) {
//税别 //税别
if (obj.TaxType == 2) { if (obj.TaxType == 2 && item.RebateRatio>0) {
if (index == 4) { totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item.RebateRatio / 100);
if (obj.DriverGuideIsRebate == 1) {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item
.RebateRatio / 100);
} else {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100);
}
} else {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 + 0.08 - item.RebateRatio /
100);
}
//税入 //税入
} else { } else {
totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100); totalPrice += item.UnitPrice * (item.BookNum - item.HotelDiscount) * (1 - item.RebateRatio / 100);
......
<style> <style>
.guidScheduleMg .el-input--prefix .el-input__inner { .guidScheduleMg .el-input--prefix .el-input__inner {
padding-left: 30px; padding-left: 30px;
} }
.guidScheduleMg .query-box ul .el-input {
.guidScheduleMg .query-box ul .el-input {
width: 150px; width: 150px;
} }
.guidScheduleMg .guidScheduleMg_list {
.guidScheduleMg .guidScheduleMg_list {
padding: 20px 0; padding: 20px 0;
} }
.guidScheduleMg .guidScheduleMg_list > li {
.guidScheduleMg .guidScheduleMg_list>li {
float: left; float: left;
height: 180px; height: 180px;
width: 300px; width: 300px;
...@@ -18,23 +21,27 @@ ...@@ -18,23 +21,27 @@
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
-webkit-box-shadow: 0px 0px 20px rgba(191, 191, 191, 1); -webkit-box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1); box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
} }
.guidScheduleMg .guidScheduleMg_list > li > div {
.guidScheduleMg .guidScheduleMg_list>li>div {
height: 180px; height: 180px;
position: relative; position: relative;
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
} }
.guidScheduleMg .guidScheduleMg_list > li .hl_img {
.guidScheduleMg .guidScheduleMg_list>li .hl_img {
width: 100%; width: 100%;
height: 100%; height: 100%;
filter: blur(10px); filter: blur(10px);
position: absolute; position: absolute;
} }
.guidScheduleMg .hl_top {
.guidScheduleMg .hl_top {
color: #ffffff; color: #ffffff;
} }
.guidScheduleMg .hl_tit {
.guidScheduleMg .hl_tit {
width: 230px; width: 230px;
font-size: 14px; font-size: 14px;
position: absolute; position: absolute;
...@@ -45,8 +52,9 @@ ...@@ -45,8 +52,9 @@
white-space: nowrap; white-space: nowrap;
text-decoration: underline; text-decoration: underline;
cursor: pointer; cursor: pointer;
} }
.guidScheduleMg .hl_radius {
.guidScheduleMg .hl_radius {
width: 80px; width: 80px;
height: 80px; height: 80px;
background-color: #ffffff; background-color: #ffffff;
...@@ -61,8 +69,9 @@ ...@@ -61,8 +69,9 @@
color: #e95252; color: #e95252;
text-align: center; text-align: center;
font-size: 16px; font-size: 16px;
} }
.guidScheduleMg .hl_row {
.guidScheduleMg .hl_row {
width: 80%; width: 80%;
height: 30px; height: 30px;
background: rgba(23, 21, 26, 0.2); background: rgba(23, 21, 26, 0.2);
...@@ -74,27 +83,34 @@ ...@@ -74,27 +83,34 @@
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 0 10%; padding: 0 10%;
} }
.guidScheduleMg .hl_row > li {
.guidScheduleMg .hl_row>li {
list-style: disc; list-style: disc;
} }
.guidScheduleMg .guidScheduleMg_info {
.guidScheduleMg .guidScheduleMg_info {
padding: 0 65px; padding: 0 65px;
} }
.guidScheduleMg .guidScheduleMg_info .hl_info {
.guidScheduleMg .guidScheduleMg_info .hl_info {
color: #333333; color: #333333;
} }
.guidScheduleMg .guidScheduleMg_info .hl_info span {
.guidScheduleMg .guidScheduleMg_info .hl_info span {
color: #666666; color: #666666;
} }
.guidScheduleMg .hl_flight {
.guidScheduleMg .hl_flight {
padding-top: 20px; padding-top: 20px;
} }
.guidScheduleMg .hl_flight li {
.guidScheduleMg .hl_flight li {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.guidScheduleMg ._go {
.guidScheduleMg ._go {
display: inline-block; display: inline-block;
height: 20px; height: 20px;
width: 20px; width: 20px;
...@@ -105,66 +121,79 @@ ...@@ -105,66 +121,79 @@
line-height: 20px; line-height: 20px;
border-radius: 4px; border-radius: 4px;
margin-right: 10px; margin-right: 10px;
} }
.guidScheduleMg ._textB14 {
.guidScheduleMg ._textB14 {
color: #333333; color: #333333;
font-size: 14px; font-size: 14px;
} }
.guidScheduleMg ._timeCity {
.guidScheduleMg ._timeCity {
margin: 15px 49px; margin: 15px 49px;
} }
.guidScheduleMg ._time {
.guidScheduleMg ._time {
color: #666666; color: #666666;
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;
} }
.guidScheduleMg ._city {
.guidScheduleMg ._city {
color: #ff7862; color: #ff7862;
font-size: 14px; font-size: 14px;
text-align: center; text-align: center;
} }
.guidScheduleMg ._line {
.guidScheduleMg ._line {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.guidScheduleMg ._line span {
.guidScheduleMg ._line span {
display: inline-block; display: inline-block;
width: 50px; width: 50px;
height: 2px; height: 2px;
background-color: #ff7862; background-color: #ff7862;
} }
.guidScheduleMg ._line span._lr {
.guidScheduleMg ._line span._lr {
width: 8px; width: 8px;
height: 8px; height: 8px;
border-radius: 50%; border-radius: 50%;
border: solid 2px #ff7862; border: solid 2px #ff7862;
background-color: white; background-color: white;
} }
.guidScheduleMg ._flight_num,
._flight_name { .guidScheduleMg ._flight_num,
._flight_name {
color: #999999; color: #999999;
font-size: 14px; font-size: 14px;
font-weight: 700; font-weight: 700;
margin-left: 15px; margin-left: 15px;
} }
.guidScheduleMg ._flight_name {
.guidScheduleMg ._flight_name {
font-weight: lighter; font-weight: lighter;
} }
.guidScheduleMg ._margintop30 {
.guidScheduleMg ._margintop30 {
margin-top: 30px; margin-top: 30px;
} }
.guidScheduleMg ._details {
.guidScheduleMg ._details {
margin-left: 20px; margin-left: 20px;
padding-top: 20px; padding-top: 20px;
} }
.guidScheduleMg ._details > li {
.guidScheduleMg ._details>li {
border-left: 1px solid #e9e9e9; border-left: 1px solid #e9e9e9;
position: relative; position: relative;
padding-bottom: 15px; padding-bottom: 15px;
padding-left: 40px; padding-left: 40px;
padding-top: 15px; padding-top: 15px;
} }
.guidScheduleMg ._d_radius {
.guidScheduleMg ._d_radius {
width: 40px; width: 40px;
height: 40px; height: 40px;
border-radius: 50%; border-radius: 50%;
...@@ -178,65 +207,80 @@ ...@@ -178,65 +207,80 @@
font-size: 18px; font-size: 18px;
color: white; color: white;
font-weight: 700; font-weight: 700;
} }
.guidScheduleMg ._Itinerary {
.guidScheduleMg ._Itinerary {
color: #333333; color: #333333;
font-size: 18px; font-size: 18px;
display: flex; display: flex;
align-items: center; align-items: center;
} }
.guidScheduleMg ._Itinerary .iconfont {
.guidScheduleMg ._Itinerary .iconfont {
color: #666666; color: #666666;
} }
.guidScheduleMg ._d_city,
._d_time { .guidScheduleMg ._d_city,
._d_time {
display: inline-block; display: inline-block;
padding: 0 20px; padding: 0 20px;
} }
.guidScheduleMg ._d_time {
.guidScheduleMg ._d_time {
padding: 0 10px 0 0; padding: 0 10px 0 0;
} }
.guidScheduleMg ._d_info {
.guidScheduleMg ._d_info {
color: #666666; color: #666666;
font-size: 14px; font-size: 14px;
line-height: 22px; line-height: 22px;
padding-top: 16px; padding-top: 16px;
} }
.guidScheduleMg ._food_hotel {
.guidScheduleMg ._food_hotel {
padding-top: 25px; padding-top: 25px;
} }
.guidScheduleMg ._food_hotel ._food,
._hotel { .guidScheduleMg ._food_hotel ._food,
._hotel {
float: left; float: left;
width: 50%; width: 50%;
} }
.guidScheduleMg ._food_hotel .iconfont::before {
.guidScheduleMg ._food_hotel .iconfont::before {
font-size: 18px; font-size: 18px;
color: #07a767; color: #07a767;
} }
.guidScheduleMg ._food_hotel ._hotel .iconfont::before {
.guidScheduleMg ._food_hotel ._hotel .iconfont::before {
color: #2595ee; color: #2595ee;
} }
.guidScheduleMg ._fh_tit {
.guidScheduleMg ._fh_tit {
font-size: 16px; font-size: 16px;
} }
.guidScheduleMg ._fist {
.guidScheduleMg ._fist {
padding-bottom: 10px; padding-bottom: 10px;
} }
.guidScheduleMg ._meidonfxi {
.guidScheduleMg ._meidonfxi {
text-align: center; text-align: center;
padding: 25px 0; padding: 25px 0;
} }
.guidScheduleMg ._meidonfxi .iconfont {
.guidScheduleMg ._meidonfxi .iconfont {
display: block; display: block;
font-size: 50px; font-size: 50px;
color: #d6d6d6; color: #d6d6d6;
} }
.guidScheduleMg ._meidonfxi p {
.guidScheduleMg ._meidonfxi p {
color: #999999; color: #999999;
font-size: 14px; font-size: 14px;
} }
.guidScheduleMg .el-dialog__header .el-dialog__title {
.guidScheduleMg .el-dialog__header .el-dialog__title {
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 1; -webkit-line-clamp: 1;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
...@@ -244,44 +288,85 @@ ...@@ -244,44 +288,85 @@
text-overflow: ellipsis; text-overflow: ellipsis;
max-width: 80%; max-width: 80%;
margin: 0 auto; margin: 0 auto;
} }
.guidScheduleMg .TypeOne {
.guidScheduleMg .TypeOne {
color: #47bf8c; color: #47bf8c;
} }
.guidScheduleMg .TypeTwo {
.guidScheduleMg .TypeTwo {
color: #e95252; color: #e95252;
} }
.guidScheduleMg .typeThree {
.guidScheduleMg .typeThree {
color: #666666; color: #666666;
} }
.guidScheduleMg .leaderName {
.guidScheduleMg .leaderName {
position: relative; position: relative;
top: -10px; top: -10px;
left: 5px; left: 5px;
} }
.guidScheduleMg .headerImg {
.guidScheduleMg .headerImg {
width: 34px; width: 34px;
height: 34px; height: 34px;
border-radius: 50%; border-radius: 50%;
display: inline-block; display: inline-block;
} }
.guidScheduleMg .headerImg img {
.guidScheduleMg .headerImg img {
width: 100%; width: 100%;
height:100%; height: 100%;
border-radius:50%; border-radius: 50%;
} }
.guidScheduleMg .grayLi img {
.guidScheduleMg .grayLi img {
-webkit-filter: grayscale(1) blur(10px) !important; -webkit-filter: grayscale(1) blur(10px) !important;
} }
.guidScheduleMg ._vMG_edit{display: none;position:absolute;bottom:0;font-family: 'PingFangSc-Fine';left: 0;border-top:3px solid #38425d;background-color:#fff;padding:10px;width: 100%;}
.guidScheduleMg ._vMG_edit ._tit{padding-left: 10px;border-left: 3px solid #E95252; font-size: 16px;color: #000000} .guidScheduleMg ._vMG_edit {
.guidScheduleMg ._vMG_edit ._tit span{color: #666666;font-size: 14px} display: none;
.guidScheduleMg ._edHeight{height:400px;} position: absolute;
.guidScheduleMg .edHeight{display: block !important;height: 170px;} bottom: 0;
.guidScheduleMg .edHeight form{padding-top: 20px;} font-family: 'PingFangSc-Fine';
.guidScheduleMg ._vMG_edit .el-date-editor.el-input,.guidScheduleMg ._vMG_edit .el-date-editor.el-input__inner{ left: 0;
border-top: 3px solid #38425d;
background-color: #fff;
padding: 10px;
width: 100%;
}
.guidScheduleMg ._vMG_edit ._tit {
padding-left: 10px;
border-left: 3px solid #E95252;
font-size: 16px;
color: #000000
}
.guidScheduleMg ._vMG_edit ._tit span {
color: #666666;
font-size: 14px
}
.guidScheduleMg ._edHeight {
height: 400px;
}
.guidScheduleMg .edHeight {
display: block !important;
height: 170px;
}
.guidScheduleMg .edHeight form {
padding-top: 20px;
}
.guidScheduleMg ._vMG_edit .el-date-editor.el-input,
.guidScheduleMg ._vMG_edit .el-date-editor.el-input__inner {
width: 100% !important; width: 100% !important;
} }
</style> </style>
<template> <template>
<div class="flexOne guidScheduleMg"> <div class="flexOne guidScheduleMg">
...@@ -291,10 +376,8 @@ ...@@ -291,10 +376,8 @@
<span> <span>
<em>领队/导游</em> <em>领队/导游</em>
<el-select v-model="msg.LeaderId" filterable :placeholder="$t('admin.admin_phBirthPlace')" class="w210"> <el-select v-model="msg.LeaderId" filterable :placeholder="$t('admin.admin_phBirthPlace')" class="w210">
<el-option v-for='item in leaderList' <el-option :label="$t('pub.unlimitedSel')" :value="0"> </el-option>
:key="item.ID" <el-option v-for='item in leaderList' :key="item.ID" :label="item.Name" :value="item.ID">
:label="item.Name"
:value="item.ID">
</el-option> </el-option>
</el-select> </el-select>
</span> </span>
...@@ -303,7 +386,7 @@ ...@@ -303,7 +386,7 @@
<span> <span>
<em>档期类型</em> <em>档期类型</em>
<el-select v-model="msg.ScheduleType" filterable :placeholder="$t('admin.admin_phBirthPlace')" class="w210"> <el-select v-model="msg.ScheduleType" filterable :placeholder="$t('admin.admin_phBirthPlace')" class="w210">
<el-option :label="$t('system.ph_buxian')" value='0'></el-option> <el-option :label="$t('system.ph_buxian')" :value='0'></el-option>
<el-option label="休假" value='1'></el-option> <el-option label="休假" value='1'></el-option>
<el-option label="领队" value='2'></el-option> <el-option label="领队" value='2'></el-option>
<el-option label="领队兼导游" value='3'></el-option> <el-option label="领队兼导游" value='3'></el-option>
...@@ -314,24 +397,23 @@ ...@@ -314,24 +397,23 @@
<li> <li>
<span> <span>
<em>时间</em> <em>时间</em>
<el-date-picker <el-date-picker v-model="msg.YearMonth" value-format="yyyy-MM" type="month" placeholder="选择月">
v-model="msg.YearMonth"
value-format="yyyy-MM"
type="month"
placeholder="选择月">
</el-date-picker> </el-date-picker>
</span> </span>
</li> </li>
<li> <li>
<input type="button" class="normalBtn" value="新增档期" @click="addMsg.LeaderId = msg.LeaderId, addShow = true,text='新增',resetForm('addMsg')"/> <input type="button" class="normalBtn" value="新增档期"
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')" @click="resetPageIndex(),getList()"/> @click="addMsg.LeaderId = msg.LeaderId, addShow = true,text='新增',resetForm('addMsg')" />
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')"
@click="resetPageIndex(),getList()" />
</li> </li>
</ul> </ul>
</div> </div>
<div :class="addShow==true?'_edHeight':''" v-loading="loading"> <div :class="addShow==true?'_edHeight':''">
<table border="0" cellspacing="1" cellpadding="0" class="singeRowTable" style="border: 1px solid rgb(230, 230, 230);background: #ccc;width: 100%"> <table border="0" cellspacing="1" cellpadding="0" class="singeRowTable" v-loading="loading"
style="border: 1px solid rgb(230, 230, 230);background: #ccc;width: 100%">
<tr> <tr>
<th>领队姓名</th> <th>领队/导游姓名</th>
<th>开始日期</th> <th>开始日期</th>
<th>结束日期</th> <th>结束日期</th>
<th>档期类型</th> <th>档期类型</th>
...@@ -341,17 +423,15 @@ ...@@ -341,17 +423,15 @@
<th>操作</th> <th>操作</th>
</tr> </tr>
<tr v-for="(item, index) in dataList"> <tr v-for="(item, index) in dataList">
<td>{{item.LeaderName}}</td> <td>{{item.LeaderName}}/{{item.GuideName}} </td>
<td>{{item.StartDate}}</td> <td>{{item.StartDate}}</td>
<td>{{item.EndDate}}</td> <td>{{item.EndDate}}</td>
<td> <td>
<span v-if="item.ScheduleType===0">无安排</span> <span v-if="item.TypeId===0">系统参团</span>
<span v-if="item.ScheduleType===1">休假</span> <span v-if="item.TypeId===1">休假</span>
<span v-if="item.ScheduleType===2">领队</span>
<span v-if="item.ScheduleType===3">领队兼导游</span>
<span v-if="item.ScheduleType===4">导游</span>
</td> </td>
<td><span style="text-decoration: underline;cursor: pointer;color: #3980C8;" @click="goUrl('productQuery',item.TCID)">{{item.TCID}}</span></td> <td><span style="text-decoration: underline;cursor: pointer;color: #3980C8;"
@click="goUrl('productQuery',item.TCID)">{{item.TCID}}</span></td>
<td>{{item.Remarks}}</td> <td>{{item.Remarks}}</td>
<td>{{item.OperationName}}</td> <td>{{item.OperationName}}</td>
<td> <td>
...@@ -359,7 +439,8 @@ ...@@ -359,7 +439,8 @@
<el-button type="primary" class="iconfont icon-bianji-smal" circle @click="editLeader(item)"></el-button> <el-button type="primary" class="iconfont icon-bianji-smal" circle @click="editLeader(item)"></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top-start"> <el-tooltip class="item" effect="dark" content="删除" placement="top-start">
<el-button type="danger" class="iconfont icon-img_delete_small" circle @click="removeLeader(item)"></el-button> <el-button type="danger" class="iconfont icon-img_delete_small" circle @click="removeLeader(item)">
</el-button>
</el-tooltip> </el-tooltip>
</td> </td>
</tr> </tr>
...@@ -371,8 +452,10 @@ ...@@ -371,8 +452,10 @@
<p class="_tit">{{text}}档期资料</p> <p class="_tit">{{text}}档期资料</p>
</el-col> </el-col>
<el-col :span="4" class="_add_saveBtn"> <el-col :span="4" class="_add_saveBtn">
<button type="button" class="normalBtn" @click="loading ? '' : submitForm('addMsg')">{{$t('pub.saveBtn')}}</button> <button type="button" class="normalBtn"
<button class="hollowFixedBtn" type="button" @click="resetForm('addMsg'),addShow=false">{{$t('pub.cancelBtn')}}</button> @click="loading ? '' : submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
<button class="hollowFixedBtn" type="button"
@click="resetForm('addMsg'),addShow=false">{{$t('pub.cancelBtn')}}</button>
</el-col> </el-col>
</el-row> </el-row>
<el-form class=" clearfix" :model="addMsg" ref="addMsg" :rules="rules" label-width="100px"> <el-form class=" clearfix" :model="addMsg" ref="addMsg" :rules="rules" label-width="100px">
...@@ -380,31 +463,21 @@ ...@@ -380,31 +463,21 @@
<el-col :span="4"> <el-col :span="4">
<el-form-item label="名称:" prop="LeaderId"> <el-form-item label="名称:" prop="LeaderId">
<el-select v-model="addMsg.LeaderId" filterable :placeholder="$t('admin.admin_phBirthPlace')"> <el-select v-model="addMsg.LeaderId" filterable :placeholder="$t('admin.admin_phBirthPlace')">
<el-option v-for='item in leaderList' <el-option :label="$t('pub.unlimitedSel')" :value="0"> </el-option>
:key="item.ID" <el-option v-for='item in leaderList' :key="item.ID" :label="item.Name" :value="item.ID">
:label="item.Name"
:value="item.ID">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="开始时间:" prop="sDate"> <el-form-item label="开始时间:" prop="sDate">
<el-date-picker <el-date-picker v-model="addMsg.StartDate" type="date" placeholder="请选择" value-format="yyyy-MM-dd">
v-model="addMsg.StartDate"
type="date"
placeholder="请选择"
value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item label="结束时间:" prop="eDate"> <el-form-item label="结束时间:" prop="eDate">
<el-date-picker <el-date-picker v-model="addMsg.EndDate" type="date" placeholder="请选择" value-format="yyyy-MM-dd">
v-model="addMsg.EndDate"
type="date"
placeholder="请选择"
value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -419,35 +492,36 @@ ...@@ -419,35 +492,36 @@
<div class="noData" v-show="noData"> <div class="noData" v-show="noData">
{{$t('system.content_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=msg.pageSize :total=total> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total">
</el-pagination> </el-pagination>
<el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="outerVisible" center > <el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="outerVisible" center>
<commonTeamInfo ref="comTeam"></commonTeamInfo> <commonTeamInfo ref="comTeam"></commonTeamInfo>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import commonTeamInfo from "../commonPage/commonTeamInfo.vue"; import commonTeamInfo from "../commonPage/commonTeamInfo.vue";
export default { export default {
data() { data() {
return { return {
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
LeaderId: "0", LeaderId: 0,
ScheduleType:"0", ScheduleType: 0,
YearMonth: "", YearMonth: "",
TCID:0, TCID: 0,
}, },
addMsg: { addMsg: {
LeaderId: '', LeaderId: 0,
StartDate: '', StartDate: '',
EndDate: '', EndDate: '',
Remarks: '', Remarks: '',
}, },
LeaderName: "", LeaderName: "",
EmPhoto:"", EmPhoto: "",
TripList: "", TripList: "",
dataList: "", dataList: "",
total: 0, total: 0,
...@@ -457,25 +531,33 @@ export default { ...@@ -457,25 +531,33 @@ export default {
outerVisible: false, outerVisible: false,
addShow: false, addShow: false,
tripTitle: "", tripTitle: "",
leaderList:[], leaderList: [],
text:'', text: '',
rules: {//表单必填验证 rules: { //表单必填验证
LeaderId: [ LeaderId: [{
{ required: true, message: '请填写领队名称', trigger: 'blur' } required: true,
], message: '请填写领队名称',
StartDate: [ trigger: 'blur'
{ type: 'date', required: true, message: '请选择开始时间', trigger: 'change' } }],
], StartDate: [{
EndDate: [ type: 'date',
{ type: 'date', required: true, message: '请选择结束时间', trigger: 'change' } required: true,
], message: '请选择开始时间',
trigger: 'change'
}],
EndDate: [{
type: 'date',
required: true,
message: '请选择结束时间',
trigger: 'change'
}],
}, },
}; };
}, },
created(){ created() {
let date = new Date(); let date = new Date();
let year = date.getFullYear(); let year = date.getFullYear();
let month = date.getMonth() < 10 ? ('0' + ( date.getMonth()+1)) : date.getMonth() + 1; let month = date.getMonth() < 10 ? ('0' + (date.getMonth() + 1)) : date.getMonth() + 1;
this.msg.YearMonth = year + '-' + month; this.msg.YearMonth = year + '-' + month;
}, },
components: { components: {
...@@ -483,17 +565,26 @@ export default { ...@@ -483,17 +565,26 @@ export default {
}, },
methods: { methods: {
goUrl: function (path, id) { // 页面跳转 goUrl: function (path, id) { // 页面跳转
this.$router.push({path:path,query:{TCIDList:id,blank:'y',isShow:false}}) this.$router.push({
path: path,
query: {
TCIDList: id,
blank: 'y',
isShow: false
}
})
}, },
removeLeader: function (obj) { // 删除安排 removeLeader: function (obj) { // 删除安排
if (obj.ScheduleType === 1) { if (obj.ScheduleType === 1) {
this.$confirm('是否删除“'+obj.LeaderName+'”的休假安排?', '提示', { this.$confirm('是否删除“' + obj.LeaderName + '”的休假安排?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.apipost('LeaderSchedule_post_RemoveHoliday', {Id:obj.Id}, res=>{ this.apipost('LeaderSchedule_post_RemoveHoliday', {
if (res.data.resultCode===1) { Id: obj.Id
}, res => {
if (res.data.resultCode === 1) {
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList(); this.getList();
} else { } else {
...@@ -512,14 +603,14 @@ export default { ...@@ -512,14 +603,14 @@ export default {
}, },
editLeader: function (obj) { // 修改 editLeader: function (obj) { // 修改
if (obj.ScheduleType === 1) { if (obj.ScheduleType === 1) {
this.text='修改'; this.text = '修改';
this.addMsg = JSON.parse(JSON.stringify(obj)); this.addMsg = JSON.parse(JSON.stringify(obj));
this.addShow=true; this.addShow = true;
} else { } else {
this.$message.error('系统参团安排,请联系合作专线人员,凭团号,在报名清单处协助处理!') this.$message.error('系统参团安排,请联系合作专线人员,凭团号,在报名清单处协助处理!')
} }
}, },
submitForm: function (addMsg) {//提交创建、修改表单 submitForm: function (addMsg) { //提交创建、修改表单
let that = this; let that = this;
that.$refs[addMsg].validate((valid) => { that.$refs[addMsg].validate((valid) => {
if (valid) { if (valid) {
...@@ -530,10 +621,10 @@ export default { ...@@ -530,10 +621,10 @@ export default {
} }
}); });
}, },
resetForm: function (formName) {//弹出框取消 初始化谈框内表单 resetForm: function (formName) { //弹出框取消 初始化谈框内表单
this.$refs[formName].resetFields(); this.$refs[formName].resetFields();
this.addMsg = { this.addMsg = {
LeaderId: this.msg.LeaderId, LeaderId: 0,
StartDate: '', StartDate: '',
EndDate: '', EndDate: '',
Remarks: '', Remarks: '',
...@@ -541,8 +632,8 @@ export default { ...@@ -541,8 +632,8 @@ export default {
}, },
addDC: function () { // 保存数据 addDC: function () { // 保存数据
this.loading = true; this.loading = true;
this.apipost('LeaderSchedule_post_SetHolidaySchedule', this.addMsg, res=>{ this.apipost('LeaderSchedule_post_SetHolidaySchedule', this.addMsg, res => {
if (res.data.resultCode===1) { if (res.data.resultCode === 1) {
this.$message.success(res.data.message); this.$message.success(res.data.message);
this.getList(); this.getList();
this.addShow = false; this.addShow = false;
...@@ -553,54 +644,55 @@ export default { ...@@ -553,54 +644,55 @@ export default {
}, null) }, null)
}, },
getLeaderList: function () { // 获取领队下拉列表 getLeaderList: function () { // 获取领队下拉列表
this.apipost('leader_post_GetList', {Type: 0}, res=>{ this.apipost('leader_post_GetList', {
if (res.data.resultCode===1) { Type: 0
}, res => {
if (res.data.resultCode === 1) {
this.leaderList = res.data.data; this.leaderList = res.data.data;
this.msg.LeaderId = this.addMsg.LeaderId = this.leaderList[0].ID;
this.getList(); this.getList();
} else { } else {
this.$message.error(res.data.message); this.$message.error(res.data.message);
} }
}, null) }, null)
}, },
getList: function() { // 获取数据列表 getList: function () { // 获取数据列表
this.loading = true; this.loading = true;
//获取列表数据 //获取列表数据
this.apipost( this.apipost(
"LeaderSchedule_post_GetLeaderGuideSchedulePageList", "LeaderSchedule_post_GetLeaderGuideSchedulePageList",
this.msg, this.msg,
res => { res => {
this.loading = false;
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.LeaderName = res.data.data.pageData.LeaderName; this.LeaderName = res.data.data.pageData.LeaderName;
this.EmPhoto= res.data.data.pageData.EmPhoto; this.EmPhoto = res.data.data.pageData.EmPhoto;
this.total = res.data.data.count; this.total = res.data.data.count;
this.dataList = res.data.data.pageData; this.dataList = res.data.data.pageData;
this.noData = !this.total > 0; this.noData = !this.total > 0;
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
this.loading = false;
}, },
err => {} err => {}
); );
}, },
resetPageIndex: function() { resetPageIndex: function () {
//查询初始化页码 //查询初始化页码
this.msg.pageIndex = 1; this.msg.pageIndex = 1;
this.currentPage = 1; this.currentPage = 1;
}, },
handleCurrentChange: function(val) { handleCurrentChange: function (val) {
//翻页功能按钮 //翻页功能按钮
this.msg.pageIndex = val; this.msg.pageIndex = val;
this.getList(); this.getList();
} }
}, },
mounted() { mounted() {
if(this.$route.query.TCID) if (this.$route.query.TCID) {
{ this.msg.TCID = this.$route.query.TCID;
this.msg.TCID=this.$route.query.TCID;
} }
this.getLeaderList(); this.getLeaderList();
} }
}; };
</script> </script>
<!--第三方酒店信息-->
<style>
.comCheckHotelV2 .comCheckHotelV2 {
width: 100%;
height: 150px;
overflow: auto
}
.comCheckHotelV2 .comCk_list {
padding: 0 20px;
margin: 0 15px 5px 0;
}
.comCheckHotelV2 .cm_Inventory {
margin-left: 20px;
color: red;
display: inline-block;
}
.comCheckHotelV2 .cm_hotelTitle {
width: 100%;
text-align: center;
margin-bottom: 20px;
border-bottom: 1px solid #d1d1d1;
padding: 0 20px 10px 20px;
}
.comCheckHotelV2 .com_SaveBtn {
margin: 10px 20px 0 45%;
}
.comCheckHotelV2 .ckedList {
background-color: #E95252;
color: #fff;
}
.comCheckHotelV2 .Ck_hotelInfo {
width: 100%;
height: 40px;
background-color: #F6F8FB;
text-align: center;
line-height: 40px;
margin-bottom: 10px;
}
.comCheckHotelV2 .ck_goUrl {
color: blue;
cursor: pointer;
margin-left: 10px;
}
.comCheckHotelV2 .tdLeft {
text-align: left;
}
.comCheckHotelV2 .tdRight {
text-align: right;
}
</style>
<template>
<div class="comCheckHotelV2">
<div class="Ck_hotelInfo">
酒店库存信息
</div>
<div class="cm_hotelTitle clearfix">
<table>
<tr>
<td class="tdRight">
类型:
</td>
<td class="tdLeft">
<el-select filterable v-model="qHotelType" class="w120" :placeholder="$t('pub.pleaseSel')">
<el-option label="地接酒店" :value='1'></el-option>
<el-option label="第三方酒店" :value='2'></el-option>
</el-select>
</td>
<td class="tdRight">
地区:
</td>
<td colspan="2" class="tdLeft">
<el-select filterable v-model="qMsg.ProvinceId" class="w120" :placeholder="$t('pub.pleaseSel')">
<el-option label="不限" :value='0'></el-option>
<el-option v-for="item in ProvinceList" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</td>
</tr>
<tr>
<td class="tdRight">
入住时间:
</td>
<td class="tdLeft">
<el-date-picker v-model='qMsg.UseDate' class="w120" value-format="yyyy-MM-dd" type="date"
placeholder="入住时间">
</el-date-picker>
</td>
<td class="tdRight">
酒店名称/电话:
</td>
<td class="tdLeft">
<el-input type="text" v-model="qMsg.Name" class="w120" @keyup.native.enter="getCheckHotel()"
placeholder="酒店名称或电话"></el-input>
</td>
<td>
<input type="button" class="normalBtn" value="查询" @click="getCheckHotel()" />
</td>
</tr>
</table>
</div>
<div>
<el-tabs type="border-card" v-loading="loading" v-if="IsShow">
<el-tab-pane :label="item.ProvinceName" v-for="(item,index) in dataList" :key="item.subCode">
<div class="clearfix comCheckHotelV2">
<div class="comCk_list" v-for="(subItem,subIndex) in item.HotelList">
<input :id="'H'+index+'_'+subIndex" type="checkbox" v-model="subItem.isChecked"
@click="getCheck(item.HotelList,subIndex)" />
<label :for="'H'+index+'_'+subIndex" style="cursor: pointer">{{subItem.Name}}</label>
<span class="cm_Inventory">{{subItem.Inventory}}</span>
<span class="cm_Inventory">剩余:{{subItem.RemainingInventory}}</span>
<span class="ck_goUrl" @click="goUrl(subItem.ID)">新增库存</span>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
<input type="button" class="normalBtn com_SaveBtn" @click="sendCkedHotel()" value="保存" />
</div>
</template>
<script>
export default {
props: [""],
data() {
return {
loading: false,
dataList: [],
ProvinceList: [],
qHotelType: 1, //酒店查询类型
qMsg: {
ProvinceId: 0, //选择个省份编号
Name: "", //酒店名称
UseDate: "", //入住时间
},
IsShow: false,
ckedHotel: {}
};
},
methods: {
getCheckHotel() {
this.loading = true;
this.IsShow = false;
this.dataList = [];
this.HotelList = [];
//地接酒店
if (this.qHotelType == 1) {
this.apipost('hotel_post_GetHasStockHotelList_V2', {
//1-只查询有库存的酒店
IsMoreThanZero: 0,
Country: "651",
IsAllHotel: 1,
Province: this.qMsg.ProvinceId,
Name: this.qMsg.Name,
sDate: this.qMsg.UseDate
}, res => {
this.loading = false;
this.IsShow = true;
if (res.data.resultCode == 1) {
this.dataList = res.data.data;
this.dataList.forEach(x => {
x.HotelList.forEach(y => {
y.isChecked = false;
})
})
} else {
this.Error(res.data.message)
}
}, err => {})
}
//第三方酒店
else {
var nQMsg = {
displayFrom: "1", //当前页
numberOfResults: "10", //每页条数
arrivalDate: this.qMsg.UseDate, //入住时间
departureDate: "", //离店时间
//房间信息列表
searchroomGroup: {
numberOfAdults: 2, //大人数,
numberOfChildren: 0, //儿童数
childAges: 0, //儿童年龄
},
searchHotelIdList:[],//酒店id,[1,2,3]
freeword:this.qMsg.Name,//关键字
//类型 1,地区,2-酒店名称
freewordType:0,
reviewRatingUpperLimits:0,//指定评论分数的上限
reviewRatingLowerLimits:0,//指定评论分数的下限
searchHotelCategory:[],//酒店分类
searchHotelFeatures:[],//酒店的特征
searchRoomType:[],//类型的房间
searchMealType:[],//饮食条件搜索
searchMinRate:0,//検索最小金額,
searchMinRate:100000,//検索最大金額
sort:0,//排序
};
if(nQMsg.arrivalDate=="")
{
this.Info("请选择入住时间!");
return;
}
else
{
nQMsg.departureDate=this.$commonUtils.AddDay(nQMsg.arrivalDate,1);
}
if(nQMsg.freeword!="")
{
nQMsg.freewordType=1;
}
else
{
nQMsg.freewordType=2;
nQMsg.freeword="";
}
console.log("nQMsg",nQMsg);
//多了一个参数调用线上的就酒店数据
this.apipost('dmc_post_Get_GetJAPAN_HotelList', nQMsg, res => {
this.loading = false;
this.IsShow = true;
if (res.data.resultCode == 1) {
console.log("res.data",res.data);
} else {
this.Error(res.data.message)
}
}, err => {},true)
}
},
getCheck(hotelList, index) {
hotelList.forEach((x, subIndex) => {
if (index == subIndex) {
x.isChecked = !x.isChecked;
this.ckedHotel = x;
} else {
x.isChecked = false;
}
})
this.$forceUpdate();
},
//向父组件传递选中酒店
sendCkedHotel() {
var ckHotelObj = {};
if (this.ckedHotel) {
ckHotelObj.ID = this.ckedHotel.ID;
ckHotelObj.Address = this.ckedHotel.Address;
ckHotelObj.Inventory = this.ckedHotel.Inventory;
ckHotelObj.Name = this.ckedHotel.Name;
ckHotelObj.PayStyle = this.ckedHotel.PayStyle;
ckHotelObj.Tel = this.ckedHotel.Tel;
ckHotelObj.RebateRatio = this.ckedHotel.RebateRatio;
ckHotelObj.RebateCount = this.ckedHotel.RebateCount;
ckHotelObj.CostPrice = this.ckedHotel.CostPrice;
}
this.$emit("childHotel", ckHotelObj);
},
//获取日本下面的市->下拉框用
getProvinceList() {
let msg = {
Id: 651
};
this.apipost("dict_post_Destination_GetChildList", msg, res => {
if (res.data.resultCode == 1) {
this.ProvinceList = res.data.data;
} else {
this.Error(res.data.message);
}
},
err => {}
);
},
goUrl(ID) {
this.$router.push({
path: 'HotelProductManage2',
query: {
id: ID,
Country: 651,
IsSelfBook: 1,
blank: 'y',
tab: '报价详情'
}
});
}
},
mounted() {
this.getProvinceList();
}
};
</script>
...@@ -109,10 +109,13 @@ ...@@ -109,10 +109,13 @@
<span v-if="IsDirect==1"> <span v-if="IsDirect==1">
<hotelTrip v-bind:subItemObj="subItem" v-bind:DefaultList="hotelSameList" v-bind:subIndex="subIndex" <hotelTrip v-bind:subItemObj="subItem" v-bind:DefaultList="hotelSameList" v-bind:subIndex="subIndex"
v-bind:DinnerList="DinnerList" v-bind:index="index" :isOpenGroup="isOpenGroup" v-bind:DinnerList="DinnerList" v-bind:index="index" :isOpenGroup="isOpenGroup"
v-bind:subTotalIndex="item.dayArray.length"></hotelTrip> v-bind:subTotalIndex="item.dayArray.length" ></hotelTrip>
<hotelTripV2 v-bind:subItemObj="subItem" v-bind:DefaultList="hotelSameList" v-bind:subIndex="subIndex"
v-bind:DinnerList="DinnerList" v-bind:index="index" :isOpenGroup="isOpenGroup"
v-bind:subTotalIndex="item.dayArray.length" style="display:none;"></hotelTripV2>
</span> </span>
<span v-else> <span v-else>
</span> </span>
</div> </div>
<div v-if="subItem.Type==$tripUtils.TypeKey.scenic"> <div v-if="subItem.Type==$tripUtils.TypeKey.scenic">
...@@ -120,7 +123,6 @@ ...@@ -120,7 +123,6 @@
<scienTrip v-bind:subItemObj="subItem" v-bind:DefaultList="scenicSameList" v-bind:subIndex="subIndex" <scienTrip v-bind:subItemObj="subItem" v-bind:DefaultList="scenicSameList" v-bind:subIndex="subIndex"
v-bind:index="index" :isOpenGroup="isOpenGroup" v-bind:subTotalIndex="item.dayArray.length"></scienTrip> v-bind:index="index" :isOpenGroup="isOpenGroup" v-bind:subTotalIndex="item.dayArray.length"></scienTrip>
</span> </span>
</div> </div>
<div v-if="subItem.Type==$tripUtils.TypeKey.dinner"> <div v-if="subItem.Type==$tripUtils.TypeKey.dinner">
<span v-if="IsDirect==1"> <span v-if="IsDirect==1">
...@@ -163,6 +165,7 @@ ...@@ -163,6 +165,7 @@
import trifficTrip from "../oldTravelGroupControl/trifficTrip"; import trifficTrip from "../oldTravelGroupControl/trifficTrip";
import scienTrip from "../oldTravelGroupControl/scienTrip_Direct"; import scienTrip from "../oldTravelGroupControl/scienTrip_Direct";
import hotelTrip from "../oldTravelGroupControl/hotelTrip_Direct"; import hotelTrip from "../oldTravelGroupControl/hotelTrip_Direct";
import hotelTripV2 from "../oldTravelGroupControl/hotelTrip_Direct_V2";
import dinnerTrip from "../oldTravelGroupControl/dinnerTrip_Direct"; import dinnerTrip from "../oldTravelGroupControl/dinnerTrip_Direct";
import freedomTrip from "../oldTravelGroupControl/freedomTrip"; import freedomTrip from "../oldTravelGroupControl/freedomTrip";
import warmtipTrip from "../oldTravelGroupControl/warmtipTrip"; import warmtipTrip from "../oldTravelGroupControl/warmtipTrip";
...@@ -270,16 +273,10 @@ export default { ...@@ -270,16 +273,10 @@ export default {
}, },
components: { components: {
trifficTrip: trifficTrip, trifficTrip: trifficTrip,
scienTrip: scienTrip, scienTrip: scienTrip,
hotelTrip: hotelTrip, hotelTrip: hotelTrip,
hotelTripV2: hotelTripV2,
dinnerTrip: dinnerTrip, dinnerTrip: dinnerTrip,
freedomTrip: freedomTrip, freedomTrip: freedomTrip,
warmtipTrip: warmtipTrip, warmtipTrip: warmtipTrip,
titleTrip: titleTrip titleTrip: titleTrip
......
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
<el-tooltip class="item" effect="dark" content="上移" placement="top-start" v-if="subIndex!=0&&!isOpenGroup"> <el-tooltip class="item" effect="dark" content="上移" placement="top-start" v-if="subIndex!=0&&!isOpenGroup">
<i class="iconfont icon-shangyi" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,0)"></i> <i class="iconfont icon-shangyi" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,0)"></i>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content="下移" placement="top-start" v-if="subIndex!=subTotalIndex-1&&!isOpenGroup"> <el-tooltip class="item" effect="dark" content="下移" placement="top-start"
v-if="subIndex!=subTotalIndex-1&&!isOpenGroup">
<i class="iconfont icon-xiayi1" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,1)"></i> <i class="iconfont icon-xiayi1" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,1)"></i>
</el-tooltip> </el-tooltip>
</div> </div>
...@@ -23,30 +24,24 @@ ...@@ -23,30 +24,24 @@
<div class="TDLeftPlan"> <div class="TDLeftPlan">
<span style="margin-left:26px;">餐厅</span> <span style="margin-left:26px;">餐厅</span>
<span> <span>
<el-form-item :prop="'DayList.'+index+'.dayArray.'+subIndex+'.childItem.DinnerId'" :rules="dinnerTripRules.DinnerId"> <el-form-item :prop="'DayList.'+index+'.dayArray.'+subIndex+'.childItem.DinnerId'"
<el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable v-model="subItemObj.childItem.DinnerId" :rules="dinnerTripRules.DinnerId">
@visible-change="getDinnerList($event)" @change="changeDinnerList()"> <el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable
v-model="subItemObj.childItem.DinnerId" @visible-change="getDinnerList($event)"
@change="changeDinnerList()">
<el-option :label="$t('pub.unlimitedSel')" :value='Diner.DefaultSelectValue'></el-option> <el-option :label="$t('pub.unlimitedSel')" :value='Diner.DefaultSelectValue'></el-option>
<el-option v-for="item in QDinnerList" :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'>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</span> </span>
<!-- <span class="comTravelLeft">套餐</span>
<span>
<el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable v-model="subItemObj.childItem.MealId"
@visible-change="getDinnerMealList($event)" @change="changeDinnerMealList()">
<el-option :label="$t('pub.unlimitedSel')" :value='Diner.DefaultSelectValue'></el-option>
<el-option v-for="item in QDinnerMealList" :label='item.MealName' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</span> -->
</div> </div>
<div class="TDmealTime"> <div class="TDmealTime">
<label class="TDhotelDiner">用餐时段</label> <label class="TDhotelDiner">用餐时段</label>
<el-checkbox-group v-model="Diner.UseDinerCked"> <el-checkbox-group v-model="Diner.UseDinerCked">
<el-checkbox v-for="item in Diner.UseDinnerType" style="margin-left:5px;" :disabled="isOpenGroup||!varCanChecked(item)" :label="item.Id" <el-checkbox v-for="item in Diner.UseDinnerType" style="margin-left:5px;"
:key='item.Id'>{{item.Name}}</el-checkbox> :disabled="isOpenGroup||!varCanChecked(item)" :label="item.Id" :key='item.Id'>{{item.Name}}
</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
<span class="comTravelLeft">用餐时间</span> <span class="comTravelLeft">用餐时间</span>
<el-input :disabled="isOpenGroup" type="text" class="w60" v-model="subItemObj.childItem.UseTimeHour" <el-input :disabled="isOpenGroup" type="text" class="w60" v-model="subItemObj.childItem.UseTimeHour"
...@@ -57,8 +52,9 @@ ...@@ -57,8 +52,9 @@
</div> </div>
</div> </div>
<div class="TP_edit"> <div class="TP_edit">
<my-edit v-if="isShowEdit" v-on:edit-value="subItemObj.childItem.Description = arguments[0]" v-bind:editValue="subItemObj.childItem.Description" <my-edit v-if="isShowEdit" v-on:edit-value="subItemObj.childItem.Description = arguments[0]"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit> v-bind:editValue="subItemObj.childItem.Description" v-bind:toolbarShow="toolbar"
v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div> </div>
<div class="SiencDiv clearfix"> <div class="SiencDiv clearfix">
<div class="ScLeftImg"> <div class="ScLeftImg">
...@@ -67,16 +63,20 @@ ...@@ -67,16 +63,20 @@
<img v-else :src="item.Url" /> <img v-else :src="item.Url" />
<div class="imgzhe" @click="getPic(subItemObj.childItem.ImaArray,index)"> <div class="imgzhe" @click="getPic(subItemObj.childItem.ImaArray,index)">
<div class="clearfix" style="text-align:center;"> <div class="clearfix" style="text-align:center;">
<div class="re-delte" @click.stop="delImg(index,subItemObj)"><i class="iconfont icon-xingzhuang"></i></div> <div class="re-delte" @click.stop="delImg(index,subItemObj)"><i class="iconfont icon-xingzhuang"></i>
<div class="re-delte" @click.stop="toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)" v-if="index!=0"><i class="iconfont icon-zuoyi"></i></div> </div>
<div class="re-delte" @click.stop="toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)" v-if="index!=subItemObj.childItem.ImaArray.length-1"><i class="iconfont icon-youyi"></i></div> <div class="re-delte" @click.stop="toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)"
v-if="index!=0"><i class="iconfont icon-zuoyi"></i></div>
<div class="re-delte" @click.stop="toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)"
v-if="index!=subItemObj.childItem.ImaArray.length-1"><i class="iconfont icon-youyi"></i></div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="rightAddImg"> <div class="rightAddImg">
<el-upload :file-list="subItemObj.childItem.ImaArray" :http-request="uploadScenImg" :data="subItemObj.childItem" <el-upload :file-list="subItemObj.childItem.ImaArray" :http-request="uploadScenImg"
:multiple="true" accept="image/jpeg,image/gif,image/png,image/bmp" :show-file-list="false" action=""> :data="subItemObj.childItem" :multiple="true" accept="image/jpeg,image/gif,image/png,image/bmp"
:show-file-list="false" action="">
<i class="iconfont icon-img_haha"></i> <i class="iconfont icon-img_haha"></i>
</el-upload> </el-upload>
</div> </div>
...@@ -98,7 +98,8 @@ ...@@ -98,7 +98,8 @@
<el-tooltip class="item" effect="dark" content="上移" placement="top-start" v-if="subIndex!=0&&!isOpenGroup"> <el-tooltip class="item" effect="dark" content="上移" placement="top-start" v-if="subIndex!=0&&!isOpenGroup">
<i class="iconfont icon-shangyi" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,0)"></i> <i class="iconfont icon-shangyi" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,0)"></i>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="dark" content="下移" placement="top-start" v-if="subIndex!=subTotalIndex-1&&!isOpenGroup"> <el-tooltip class="item" effect="dark" content="下移" placement="top-start"
v-if="subIndex!=subTotalIndex-1&&!isOpenGroup">
<i class="iconfont icon-xiayi1" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,1)"></i> <i class="iconfont icon-xiayi1" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,1)"></i>
</el-tooltip> </el-tooltip>
</div> </div>
...@@ -124,21 +125,22 @@ ...@@ -124,21 +125,22 @@
</div> </div>
</div> </div>
<div class="TP_editShow"> <div class="TP_editShow">
<my-edit v-if="isShowEdit" v-on:edit-value="subItemObj.childItem.Description = arguments[0]" v-bind:editValue="subItemObj.childItem.Description" <my-edit v-if="isShowEdit" v-on:edit-value="subItemObj.childItem.Description = arguments[0]"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit> v-bind:editValue="subItemObj.childItem.Description" v-bind:toolbarShow="toolbar"
v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div> </div>
<div class="SiencDiv clearfix"> <div class="SiencDiv clearfix">
<div class="ScLeftImg"> <div class="ScLeftImg">
<div class="TFimgList" v-for="(item,index) in subItemObj.childItem.ImaArray" :key="item.subCode"> <div class="TFimgList" v-for="(item,index) in subItemObj.childItem.ImaArray" :key="item.subCode">
<img v-if="!item.Url" src="../../../assets/img/bg_c3@3x.png" /> <img v-if="!item.Url" src="../../../assets/img/bg_c3@3x.png" />
<img v-else :src="item.Url" @click="getPic(subItemObj.childItem.ImaArray,index)"/> <img v-else :src="item.Url" @click="getPic(subItemObj.childItem.ImaArray,index)" />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div v-if="dspNone" class="viewBigPicLayer myPiclayer" @click="colseLayer"> <div v-if="dspNone" class="viewBigPicLayer myPiclayer" @click="colseLayer">
<i @click="colseLayer" class="el-icon-circle-close-outline clolseViewBigPicLayer" ></i> <i @click="colseLayer" class="el-icon-circle-close-outline clolseViewBigPicLayer"></i>
<el-carousel height="600px" :initial-index='initialIndex' :interval="5000" trigger="click"> <el-carousel height="600px" :initial-index='initialIndex' :interval="5000" trigger="click">
<el-carousel-item v-for="(item,index) in picObj" :key="index"> <el-carousel-item v-for="(item,index) in picObj" :key="index">
<img style="width:100%;" :src="item.Url" /> <img style="width:100%;" :src="item.Url" />
...@@ -148,8 +150,8 @@ ...@@ -148,8 +150,8 @@
</div> </div>
</template> </template>
<script> <script>
import MyEdit from "../../EditTemplate.vue"; import MyEdit from "../../EditTemplate.vue";
export default { export default {
props: [ props: [
"subItemObj", "subItemObj",
"DefaultList", "DefaultList",
...@@ -175,6 +177,72 @@ export default { ...@@ -175,6 +177,72 @@ export default {
} }
}; };
return { return {
//其他餐食
otherDinner: [
{
Id: 1,
Name: "酒店内享用早餐",
City: 0,
About: "",
PicPath: ""
},
{
Id: 2,
Name: "酒店外享用早餐",
City: 0,
About: "",
PicPath: ""
},
{
Id: 3,
Name: "方便游玩敬请自理",
City: 0,
About: "",
PicPath: ""
},
{
Id: 4,
Name: "机上简餐或自理",
City: 0,
About: "",
PicPath: ""
},
{
ID: -1,
Name: "机上简餐或自理",
City: 0,
About: "",
PicPath: ""
},
{
ID: -2,
Name: "酒店享用",
City: 0,
About: "",
PicPath: ""
},
{
ID: -3,
Name: "温泉御膳料理",
City: 0,
About: "",
PicPath: ""
},
{
ID: -4,
Name: "酒店自助百汇",
City: 0,
About: "",
PicPath: ""
},
{
ID: -5,
Name: "方便游玩敬请自理",
City: 0,
About: "",
PicPath: ""
}
],
//餐厅列表 //餐厅列表
QDinnerList: [], QDinnerList: [],
//餐厅套餐列表 //餐厅套餐列表
...@@ -195,8 +263,7 @@ export default { ...@@ -195,8 +263,7 @@ export default {
Diner: { Diner: {
DefaultSelectValue: 0, DefaultSelectValue: 0,
UseDinerCked: [], UseDinerCked: [],
UseDinnerType: [ UseDinnerType: [{
{
Id: "1", Id: "1",
Name: "早" Name: "早"
}, },
...@@ -213,18 +280,14 @@ export default { ...@@ -213,18 +280,14 @@ export default {
//餐厅验证 //餐厅验证
dinnerTripRules: { dinnerTripRules: {
//时间类型验证 //时间类型验证
TimeType: [ TimeType: [{
{
validator: TimeTypeValidate, validator: TimeTypeValidate,
trigger: "change" trigger: "change"
} }],
], DinnerId: [{
DinnerId: [
{
validator: DinnerIdValidate, validator: DinnerIdValidate,
trigger: "change" trigger: "change"
} }]
]
}, },
TheDayHotelUserDinner: [] //当天酒店列表 TheDayHotelUserDinner: [] //当天酒店列表
}; };
...@@ -248,6 +311,7 @@ export default { ...@@ -248,6 +311,7 @@ export default {
res => { res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.QDinnerList = res.data.data; this.QDinnerList = res.data.data;
this.QDinnerList.push(...this.otherDinner);
} }
}, },
err => {} err => {}
...@@ -284,8 +348,7 @@ export default { ...@@ -284,8 +348,7 @@ export default {
if (event) { if (event) {
this.QDinnerMealList = []; this.QDinnerMealList = [];
this.apipost( this.apipost(
"meal_get_GetList", "meal_get_GetList", {
{
DiningId: this.subItemObj.childItem.DinnerId DiningId: this.subItemObj.childItem.DinnerId
}, },
res => { res => {
...@@ -409,6 +472,7 @@ export default { ...@@ -409,6 +472,7 @@ export default {
}); });
} }
} }
this.QDinnerList.push(...this.otherDinner);
}, },
mounted() { mounted() {
this.initTheDayHotelUserDinner(); this.initTheDayHotelUserDinner();
...@@ -426,7 +490,7 @@ export default { ...@@ -426,7 +490,7 @@ export default {
watch: { watch: {
Diner: { Diner: {
//深度监听,可监听到对象、数组的变化 //深度监听,可监听到对象、数组的变化
handler: function(val, oldVal) { handler: function (val, oldVal) {
var ckedDiner = ""; var ckedDiner = "";
this.Diner.UseDinerCked.forEach(x => { this.Diner.UseDinerCked.forEach(x => {
ckedDiner = ckedDiner + x + ","; ckedDiner = ckedDiner + x + ",";
...@@ -440,7 +504,7 @@ export default { ...@@ -440,7 +504,7 @@ export default {
}, },
subItemObj: { subItemObj: {
//深度监听,可监听到对象、数组的变化 //深度监听,可监听到对象、数组的变化
handler: function(val, oldVal) { handler: function (val, oldVal) {
this.subItemObj.childItem.DinnerImg = JSON.stringify( this.subItemObj.childItem.DinnerImg = JSON.stringify(
this.subItemObj.childItem.ImaArray this.subItemObj.childItem.ImaArray
); );
...@@ -449,17 +513,18 @@ export default { ...@@ -449,17 +513,18 @@ export default {
}, },
HotelList: { HotelList: {
//深度监听,可监听到对象、数组的变化 //深度监听,可监听到对象、数组的变化
handler: function(val, oldVal) { handler: function (val, oldVal) {
this.initTheDayHotelUserDinner(); this.initTheDayHotelUserDinner();
}, },
deep: true deep: true
}, },
"subItemObj.childItem.QCity": { "subItemObj.childItem.QCity": {
handler: function(val, oldVal) { handler: function (val, oldVal) {
this.getDinnerList(); this.getDinnerList();
}, },
deep: true deep: true
} }
} }
}; };
</script> </script>
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
<div class="TDLeftPlan"> <div class="TDLeftPlan">
<span>入住酒店</span> <span>入住酒店</span>
<span> <span>
<el-form-item :prop="'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'" :rules="hotelTripRules.HotelId"> <el-form-item :prop="'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'" :rules="hotelTripRules.HotelId">
<el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable v-model="subItemObj.childItem.HotelId" <el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable v-model="subItemObj.childItem.HotelId"
@visible-change="getHotelList($event)" @change="changeHotelList()"> @visible-change="getHotelList($event)" @change="changeHotelList()">
......
<template>
<div class="trip-item-box">
<div class="edit" v-if="isShowEdit">
<div class="TCtraffic flex">
<div class="partName">
<span class="TDTripType">酒店</span>
</div>
<span class="datePickContent" style="display:none">
<el-form-item >
<el-select :disabled="isOpenGroup" class="w160" placeholder="请选择时间" v-model="subItemObj.childItem.TimeType">
<el-option v-for="item in TimeTypeList" :label='item.Name' :value='item.Id' :key='item.Id'>
</el-option>
</el-select>
</el-form-item>
</span>
<div class="delSpan">
<el-tooltip class="item" effect="dark" content="查看" placement="top-start" >
<i class="iconfont icon-chakan" @click="isShowEdit=!isShowEdit"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top-start" v-if="!isOpenGroup">
<i class="iconfont icon-xingzhuang" @click="removeHotelTrip(subItemObj.childItem.DayNum,subIndex)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="上移" placement="top-start" v-if="subIndex!=0 && !isOpenGroup">
<i class="iconfont icon-shangyi" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,0)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="下移" placement="top-start" v-if="subIndex!=subTotalIndex-1 && !isOpenGroup">
<i class="iconfont icon-xiayi1" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,1)"></i>
</el-tooltip>
</div>
<div class="TDplanList clearfix">
<div class="TDLeftPlan">
<span>
<el-popover placement="right" width="540" trigger="click" >
<comCheckHotelV2 :ref="'comCheckHotelV2'+index+subIndex+''" >
</comCheckHotelV2>
<el-button size="small" type="danger" :data-index="'comCheckHotelV2'+index+subIndex+''"
slot="reference" style="cursor:pointer;"
>
酒店选择
</el-button>
<!--@click="getChildHotel(index,subIndex)"-->
</el-popover>
</span>
<span>
<el-form-item :prop="'DayList.'+index+'.dayArray.'+subIndex+'.childItem.HotelId'" :rules="hotelTripRules.HotelId">
<el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable v-model="subItemObj.childItem.HotelId"
@visible-change="getHotelList($event)" @change="changeHotelList()">
<el-option :label="$t('pub.unlimitedSel')" :value='Diner.DefaultSelectValue'></el-option>
<el-option v-for="item in QHotelList" :label='getItemLabel(item)' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</span>
<span class="HD_hotelru">
<el-checkbox :disabled="isOpenGroup" v-model="subItemObj.childItem.IsSameLevel" :checked="subItemObj.childItem.IsSameLevel===CheckedVaule"
:true-label="CheckedVaule" :false-label="UnCheckedVaule" border size="mini">同级酒店</el-checkbox>
</span>
<span class="comTravelLeft">房型选择</span>
<span>
<el-select :disabled="isOpenGroup" class='w160' :placeholder="$t('pub.pleaseSel')" filterable v-model="subItemObj.childItem.HotelProductId"
@visible-change="getHotelProductList($event)" @change="changeHotelProductList()">
<el-option :label="$t('pub.unlimitedSel')" :value='Diner.DefaultSelectValue'></el-option>
<el-option v-for="item in QHotelProductList" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</span>
<span v-if="subItemObj.childItem.IsUseDinner==1">
<span class="TDhotelDiner">酒店含餐</span>
<span>
<el-checkbox-group v-model="Diner.UseDinerCked">
<el-checkbox v-for="item in Diner.UseDinnerArray" :disabled="isOpenGroup||!varCanChecked(item)" :label="item.Id"
:key='item.Id'>{{item.Name}}</el-checkbox>
</el-checkbox-group>
</span>
</span>
</div>
</div>
</div>
<div class="TP_edit">
<my-edit v-if="isShowEdit" v-on:edit-value="subItemObj.childItem.Description = arguments[0]" v-bind:editValue="subItemObj.childItem.Description"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div>
<div class="SiencDiv clearfix">
<div class="ScLeftImg">
<div class="TFimgList" v-for="(item,index) in subItemObj.childItem.ImaArray" :key="item.subCode">
<img v-if="!item.Url" src="../../../assets/img/bg_c3@3x.png" />
<img v-else :src="item.Url" />
<div class="imgzhe" @click="getPic(subItemObj.childItem.ImaArray,index)">
<div class="clearfix" style="text-align:center;">
<div class="re-delte" @click.stop="delImg(index,subItemObj)"><i class="iconfont icon-xingzhuang"></i></div>
<div class="re-delte" @click.stop="toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,0)" v-if="index!=0"><i class="iconfont icon-zuoyi"></i></div>
<div class="re-delte" @click.stop="toExchangeImg(subItemObj.childItem.DayNum,subIndex,index,1)" v-if="index!=subItemObj.childItem.ImaArray.length-1"><i class="iconfont icon-youyi"></i></div>
</div>
</div>
</div>
</div>
<div class="rightAddImg">
<el-upload :file-list="subItemObj.childItem.ImaArray" :http-request="uploadScenImg" :data="subItemObj.childItem"
:multiple="true" accept="image/jpeg,image/gif,image/png,image/bmp" :show-file-list="false" action="">
<i class="iconfont icon-img_haha"></i>
</el-upload>
</div>
</div>
</div>
<div class="read" v-if="!isShowEdit">
<div class="TCtraffic flex">
<div class="partName">
<span class="TDTripType">酒店</span>
</div>
<div class="delSpan">
<el-tooltip class="item" effect="dark" content="编辑" placement="top-start" >
<i class="iconfont icon-bianji" @click="isShowEdit=!isShowEdit"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top-start" v-if="!isOpenGroup">
<i class="iconfont icon-xingzhuang" @click="removeHotelTrip(subItemObj.childItem.DayNum,subIndex)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="上移" placement="top-start" v-if="subIndex!=0 && !isOpenGroup">
<i class="iconfont icon-shangyi" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,0)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="下移" placement="top-start" v-if="subIndex!=subTotalIndex-1 && !isOpenGroup">
<i class="iconfont icon-xiayi1" @click="MoveItem(subItemObj.childItem.DayNum,subIndex,1)"></i>
</el-tooltip>
</div>
<div class="title-box">
<div class="TDLeftPlan">
<span>入住酒店</span>
<span>
{{subItemObj.childItem.HotelName}}
</span>
<span v-if="subItemObj.childItem.IsSameLevel==1">或同级酒店</span>
<span>房型</span>
<span>
{{subItemObj.childItem.HotelProductName}}
</span>
<span v-if="subItemObj.childItem.IsUseDinner==1">
<span class="TDhotelDiner">酒店含餐</span>
<span v-if="Diner.UseDinerCked==1">早餐</span>
<span v-if="Diner.UseDinerCked==2">中餐</span>
<span v-if="Diner.UseDinerCked==3">晚餐</span>
</span>
</div>
</div>
</div>
<div class="TP_editShow">
<pre v-html="subItemObj.childItem.Description"></pre>
</div>
<div class="SiencDiv clearfix">
<div class="ScLeftImg">
<div class="TFimgList" v-for="(item,index) in subItemObj.childItem.ImaArray" :key="item.subCode">
<img v-if="!item.Url" src="../../../assets/img/bg_c3@3x.png" />
<img v-else :src="item.Url" @click="getPic(subItemObj.childItem.ImaArray,index)"/>
</div>
</div>
</div>
</div>
<div v-if="dspNone" class="viewBigPicLayer myPiclayer" @click="colseLayer">
<i @click="colseLayer" class="el-icon-circle-close-outline clolseViewBigPicLayer" ></i>
<el-carousel height="600px" :initial-index='initialIndex' :interval="5000" trigger="click">
<el-carousel-item v-for="(item,index) in picObj" :key="index">
<img style="width:100%;" :src="item.Url" />
</el-carousel-item>
</el-carousel>
</div>
</div>
</template>
<script>
import MyEdit from "../../EditTemplate.vue";
import comCheckHotelV2 from "../../commonPage/comCheckHotelV2.vue";
export default {
props: [
"subItemObj",
"DefaultList",
"DinnerList",
"index",
"subIndex",
"isOpenGroup",
"subTotalIndex",
"TimeTypeList"
],
data() {
var TimeTypeValidate = (rule, value, callback) => {
if (value === 0) {
callback(new Error("请选择时间类型"));
} else {
callback();
}
};
var HotelIdValidate = (rule, value, callback) => {
if (value === 0) {
callback(new Error("请选择酒店"));
} else {
callback();
}
};
return {
//酒店列表
QHotelList: [],
//酒店房型列表
QHotelProductList: [],
toolbar: {
clean: false, //加粗
font: false, //字体
narrative: true //叙述,
},
dspNone:false,
initialIndex:0,
//选中同级酒店
CheckedVaule: 1,
//不选中
UnCheckedVaule: 0,
//是否显示编辑框
isShowEdit: true,
//text框placeholder
placeholder: "请输入酒店信息",
//酒店含餐
Diner: {
DefaultSelectValue: 0,
UseDinerCked: [],
UseDinnerType: [
{
Id: "1",
Name: "早"
},
{
Id: "2",
Name: "中"
},
{
Id: "3",
Name: "晚"
}
],
UseDinnerArray: []
},
//酒店验证
hotelTripRules: {
//时间类型验证
TimeType: [
{
validator: TimeTypeValidate,
trigger: "change"
}
],
HotelId: [
{
validator: HotelIdValidate,
trigger: "change"
}
]
},
TheDayUserDinner: [] //当天餐厅用餐情况
};
},
components: {
"my-edit": MyEdit,
comCheckHotelV2,
},
methods: {
//获取酒店列表
getHotelList(event) {
if (event) {
var msg = {
IsGetPic: 1,
IsGetRemark: 1,
QCity: this.subItemObj.childItem.QCity
};
this.apipost(
"hotel_post_GetLineHotelList",
msg,
res => {
if (res.data.resultCode == 1) {
this.QHotelList = res.data.data;
}
},
err => {}
);
}
},
//酒店选择改变
changeHotelList() {
var that = this;
if (that.subItemObj.childItem.HotelId != 0) {
//获取当前选中的对象
let obj = {};
obj = that.QHotelList.find(item => {
return item.ID === that.subItemObj.childItem.HotelId; //筛选出匹配数据
});
if (obj != undefined) {
that.subItemObj.childItem.HotelProductId = 0;
that.subItemObj.childItem.HotelProductName = "";
that.QHotelProductList = [];
that.Diner.UseDinnerArray = [];
that.subItemObj.childItem.ImaArray = [];
that.subItemObj.childItem.Description = obj.Descriptions;
that.subItemObj.childItem.ImaArray = obj.imgList;
that.subItemObj.childItem.IsUseDinner = obj.IsUseDinner;
that.subItemObj.childItem.HotelName = obj.Name;
let useDinnerTypeStr = that.subItemObj.childItem.UseDinnerType;
if (that.subItemObj.childItem.ID > 0) {
if (obj.UseDinnerType == null || !(obj.UseDinnerType.length > 0)) {
that.Diner.UseDinerCked = [];
that.subItemObj.childItem.UseDinnerType = "";
} else {
let useDinnerTypeStr = that.subItemObj.childItem.UseDinnerType;
if (useDinnerTypeStr != null && useDinnerTypeStr.length > 0) {
let objUseDinnerTypeArr = obj.UseDinnerType.split(",");
let useDinnerTypeArr = useDinnerTypeStr.split(",");
let tmpDinnerTypeArr = [];
useDinnerTypeArr.forEach(x => {
let isRemove = true;
objUseDinnerTypeArr.forEach(y => {
if (x == y) {
isRemove = false;
}
});
if (!isRemove) {
tmpDinnerTypeArr.push(x);
}
});
that.subItemObj.childItem.UseDinnerType = tmpDinnerTypeArr.join(
","
);
that.Diner.UseDinerCked = tmpDinnerTypeArr;
}
}
} else {
if (obj.UseDinnerType != null && obj.UseDinnerType.length > 0) {
that.Diner.UseDinerCked = obj.UseDinnerType.split(",");
}
}
let useDinnerTypeArry = [];
if (obj.UseDinnerType != null && obj.UseDinnerType.length > 0) {
useDinnerTypeArry = obj.UseDinnerType.split(",");
}
useDinnerTypeArry.forEach(y => {
that.Diner.UseDinnerType.forEach(DinerTypeItem => {
if (y == DinerTypeItem.Id) {
that.Diner.UseDinnerArray.push(DinerTypeItem);
}
});
});
that.Diner.UseDinnerArray.sort(
this.$commonUtils.createComprisonFunction("Id")
);
}
}
},
//获取酒店房型列表
getHotelProductList(event) {
if (event) {
this.apipost(
"dict_post_HotelProduc_GetList",
{
Hotel_ID: this.subItemObj.childItem.HotelId
},
res => {
if (res.data.resultCode == 1) {
this.QHotelProductList = res.data.data;
}
},
err => {}
);
}
},
//产品选择改变
changeHotelProductList() {
var that = this;
if (that.subItemObj.childItem.HotelProductId != 0) {
//获取当前选中的对象
let obj = {};
obj = that.QHotelProductList.find(item => {
return item.ID === that.subItemObj.childItem.HotelProductId; //筛选出匹配数据
});
if (obj != undefined) {
this.subItemObj.childItem.HotelProductName = obj.Name;
}
}
},
//上传景点图片
uploadScenImg(item) {
let newArr = [];
newArr.push(item.file);
let path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
var fileObj = this.$commonUtils.FileObject();
fileObj.Url = this.domainManager().ViittoFileUrl + x.data.FilePath,
fileObj.fileName = x.data.FileName;
item.data.ImaArray.push(fileObj);
});
},
//删除酒店
removeHotelTrip(dayNum, subIndex) {
this.$parent.$parent.commonRemove(dayNum, subIndex);
},
//删除图片
delImg(index, subItemObj) {
this.$parent.$parent.commonRemoveImg(index, subItemObj);
},
initTheDayUserDinner() {
let dayNum = this.subItemObj.childItem.DayNum;
this.TheDayUserDinner = [];
this.DinnerList.forEach(x => {
if (x.DayNum == dayNum) {
if (x.UseDinnerType.length > 0) {
let tempDinnerArr = x.UseDinnerType.split(",");
let reg = /^[0-9]+.?[0-9]*/;
tempDinnerArr.forEach(y => {
if (reg.test(y)) {
this.TheDayUserDinner.push(y);
}
});
}
}
});
this.TheDayUserDinner = Array.from(new Set(this.TheDayUserDinner));
},
varCanChecked(dinnerType) {
let canChecked = true;
this.TheDayUserDinner.forEach(x => {
if (x == dinnerType.Id) {
canChecked = false;
}
});
return canChecked;
},
//上移下移
MoveItem(dayNum, subIndex, IsUp) {
this.$parent.$parent.MoveItem(dayNum, subIndex, IsUp);
},
//左右移动
toExchangeImg(dayNum, subIndex, imgIndex, IsMove) {
this.$parent.$parent.ExchangeImg(dayNum, subIndex, imgIndex,IsMove);
},
colseLayer(){
this.dspNone=false;
},
getPic(obj,index){
this.picObj=obj
this.dspNone=true;
this.initialIndex = index;
},
getItemLabel(item){
let returnName = item.Name;
if(item.Inventory>=0){
returnName = returnName+ " " +item.Inventory;
}
return returnName;
}
},
mounted() {
if (this.subItemObj.childItem.ID > 0) {
if (this.subItemObj.childItem.HotelId > 0) {
this.QHotelList.push({
ID: parseInt(this.subItemObj.childItem.HotelId),
Name: this.subItemObj.childItem.HotelName
});
}
if (this.subItemObj.childItem.HotelProductId > 0) {
this.QHotelProductList.push({
ID: parseInt(this.subItemObj.childItem.HotelProductId),
Name: this.subItemObj.childItem.HotelProductName
});
}
}
},
watch: {
subItemObj: {
//深度监听,可监听到对象、数组的变化
handler: function(val, oldVal) {
this.subItemObj.childItem.HotelImg = JSON.stringify(
this.subItemObj.childItem.ImaArray
);
},
deep: true
},
"Diner.UseDinerCked": {
handler: function(val, oldVal) {
this.subItemObj.childItem.UseDinnerType = this.Diner.UseDinerCked.join(
","
);
}
},
DinnerList: {
handler: function(val, oldVal) {
this.initTheDayUserDinner();
},
deep: true
},
"subItemObj.childItem.QCity": {
handler: function(val, oldVal) {
this.getHotelList();
},
deep: true
}
}
};
</script>
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