Commit f0a967af authored by 吴春's avatar 吴春
parents 2d23a51d fefac419
...@@ -2,13 +2,7 @@ ...@@ -2,13 +2,7 @@
<div class="hotelProductCalendar"> <div class="hotelProductCalendar">
<div class="hotelProductCalendar_month"> <div class="hotelProductCalendar_month">
<div onselectstart="return false;"> <div onselectstart="return false;">
<!-- <i class="el-icon-caret-left" @click="dateChange('year','left')"></i> -->
<!-- <input type="text" disabled="disabled" v-model="msg.currentYear"> -->
<!-- <i class="el-icon-caret-right" @click="dateChange('year','right')"></i> -->
<span>{{calendar.data.date&&calendar.data.date.split('-')[0]}}</span> <span>{{calendar.data.date&&calendar.data.date.split('-')[0]}}</span>
<!-- <i class="el-icon-caret-left" @click="dateChange('month','left')"></i> -->
<!-- <input type="text" disabled="disabled" v-model="msg.currentMonth"> -->
<!-- <i class="el-icon-caret-right" @click="dateChange('month','right')"></i> -->
<span>{{calendar.data.date&&calendar.data.date.split('-')[1]}}</span> <span>{{calendar.data.date&&calendar.data.date.split('-')[1]}}</span>
</div> </div>
<div> <div>
...@@ -32,18 +26,18 @@ ...@@ -32,18 +26,18 @@
<div :class="item.month===calendar.data.date?'nowMonth':'otherMonth'"> <div :class="item.month===calendar.data.date?'nowMonth':'otherMonth'">
<span>{{item.date.getMonth()+1}}-{{item.date.getDate()}}</span> <span>{{item.date.getMonth()+1}}-{{item.date.getDate()}}</span>
</div> </div>
<div :class="stockColor(item.data.InventoryType)" v-if="item.data&&item.month===calendar.data.date"> <div v-if="item.data&&item.month===calendar.data.date" :class="stockColor(item.data.SubList[0].InventoryType)">
<p><span @click="goUrlA('2', item)" class="text_underLine">价格:{{item.data.CostPrice}}{{item.data.CurrencyName}}</span></p> <template v-for="(childItem,childIndex) in item.data.SubList">
<p><span class="text_underLine" @click="goUrlB(item)">总库存:{{item.data.Inventory}}(间)</span></p> <p>
<p><span class="text_underLine" @click="goUrlHotelTeam(item)">剩余库存:{{item.data.RemainingInventory}}(间)</span></p> <span @click="goUrlA('2', item,childItem.BatchNumber)" class="text_underLine">价格:{{childItem.CostPrice}}{{childItem.CurrencyName}}</span>
<!-- <p><span>剩余库存:{{item.data.RemainingInventory}}(间)</span></p> --> <span class="text_underLine" @click="goUrlB(item)">总库存:{{childItem.Inventory}}(间)</span>
<p><span v-if="item.data.Inventory!==item.data.RemainingInventory" class="text_underLine">已使用库存:{{item.data.UseAmount}}(间)</span></p> <span class="text_underLine" @click="goUrlHotelTeam(item)">剩余库存:{{childItem.RemainingInventory}}(间)</span>
<p><span v-if="item.data.Inventory!==item.data.RemainingInventory">欠房数量:{{item.data.OweAmount}}(间)</span></p> </p>
<p><span v-if="item.data.Inventory!==item.data.RemainingInventory" class="text_underLine">已确定:{{item.data.SureAmount}}(间)</span></p> </template>
</div> </div>
<div class="noStock" v-if="!item.data&&item.month===calendar.data.date"> <div class="noStock" v-if="!item.data&&item.month===calendar.data.date">
<p><span>暂无数据</span></p> <p><span>暂无数据</span></p>
<p><span @click="goUrlA('1', item)">立即新增</span></p> <p><span @click="goUrlA('1', item,1)">立即新增</span></p>
</div> </div>
<div class="hasStock" v-if="item.month!==calendar.data.date"> <div class="hasStock" v-if="item.month!==calendar.data.date">
<p></p> <p></p>
...@@ -81,8 +75,7 @@ ...@@ -81,8 +75,7 @@
return 'hasStock hasStock_3' return 'hasStock hasStock_3'
} else if (type === 4) { } else if (type === 4) {
return 'hasStock hasStock_4' return 'hasStock hasStock_4'
} } else if (type === 5) {
else if (type === 5) {
return 'hasStock hasStock_5' return 'hasStock hasStock_5'
} }
}, },
...@@ -90,27 +83,44 @@ ...@@ -90,27 +83,44 @@
this.calendar.show = false this.calendar.show = false
this.calendar.data = {} this.calendar.data = {}
}, },
goUrlA: function (type, item) { goUrlA: function (type, item,BatchNumber) {
this.$emit('goEdit', type, item.day) this.$emit('goEdit', type, item.day,BatchNumber)
}, },
goUrlHotelTeam:function(item){ goUrlHotelTeam: function (item) {
this.$router.push({ name: 'HotelsTeam', query: { HotelId: item.data.HotelId,StartDate:item.data.DayStr, blank: 'y', tab: '酒店相关团'} }); this.$router.push({
name: 'HotelsTeam',
query: {
HotelId: item.data.HotelId,
StartDate: item.data.DayStr,
blank: 'y',
tab: '酒店相关团'
}
});
}, },
goUrlB: function (item) { goUrlB: function (item) {
this.$router.push({ name: 'HotelTotalStock', query: { HotelId: this.hotelId, blank: 'y', tab: '总库存看板'} }); this.$router.push({
name: 'HotelTotalStock',
query: {
HotelId: this.hotelId,
blank: 'y',
tab: '总库存看板'
}
});
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.hotelProductCalendar{ .hotelProductCalendar {
width: 100%; width: 100%;
font-size: 0px; font-size: 0px;
box-sizing: border-box; box-sizing: border-box;
background-color: #f5f5f5; background-color: #f5f5f5;
} }
.hotelProductCalendar_month{
.hotelProductCalendar_month {
position: relative; position: relative;
width: 100%; width: 100%;
height: 50px; height: 50px;
...@@ -119,20 +129,23 @@ ...@@ -119,20 +129,23 @@
background: #e95252; background: #e95252;
border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0;
} }
.hotelProductCalendar_month>div{
.hotelProductCalendar_month>div {
display: inline-block; display: inline-block;
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
vertical-align: top; vertical-align: top;
} }
.hotelProductCalendar_month>div:nth-child(1)>i{
.hotelProductCalendar_month>div:nth-child(1)>i {
display: inline-block; display: inline-block;
font-size: 22px; font-size: 22px;
color: #ff7e7e; color: #ff7e7e;
cursor: pointer; cursor: pointer;
vertical-align: middle; vertical-align: middle;
} }
.hotelProductCalendar_month>div:nth-child(1)>input{
.hotelProductCalendar_month>div:nth-child(1)>input {
display: inline-block; display: inline-block;
width: 60px; width: 60px;
height: 30px; height: 30px;
...@@ -145,20 +158,23 @@ ...@@ -145,20 +158,23 @@
text-align: center; text-align: center;
vertical-align: middle; vertical-align: middle;
} }
.hotelProductCalendar_month>div:nth-child(1)>span{
.hotelProductCalendar_month>div:nth-child(1)>span {
display: inline-block; display: inline-block;
padding: 0 5px; padding: 0 5px;
font-size: 18px; font-size: 18px;
color: #fff; color: #fff;
vertical-align: middle; vertical-align: middle;
} }
.hotelProductCalendar_month>div:nth-child(2)>span{
.hotelProductCalendar_month>div:nth-child(2)>span {
display: inline-block; display: inline-block;
padding: 0 20px; padding: 0 20px;
font-size: 18px; font-size: 18px;
color: #fff; color: #fff;
} }
.hotelProductCalendar_month>div:nth-child(3){
.hotelProductCalendar_month>div:nth-child(3) {
position: absolute; position: absolute;
z-index: 1; z-index: 1;
right: 0px; right: 0px;
...@@ -166,17 +182,20 @@ ...@@ -166,17 +182,20 @@
width: 50px; width: 50px;
text-align: center; text-align: center;
} }
.hotelProductCalendar_month>div:nth-child(3)>i{
.hotelProductCalendar_month>div:nth-child(3)>i {
font-size: 12px; font-size: 12px;
color: #ffffff; color: #ffffff;
cursor: pointer; cursor: pointer;
} }
.hotelProductCalendar_week{
.hotelProductCalendar_week {
width: 100%; width: 100%;
height: 28px; height: 28px;
background-color: #3fa783; background-color: #3fa783;
} }
.hotelProductCalendar_week>div{
.hotelProductCalendar_week>div {
display: inline-block; display: inline-block;
width: 14.2857%; width: 14.2857%;
height: 28px; height: 28px;
...@@ -185,11 +204,13 @@ ...@@ -185,11 +204,13 @@
font-size: 14px; font-size: 14px;
color: #FFFFFF; color: #FFFFFF;
} }
.hotelProductCalendar_day{
.hotelProductCalendar_day {
width: 100%; width: 100%;
border-left: 1px solid #dddddd; border-left: 1px solid #dddddd;
} }
.hotelProductCalendar_day>div{
.hotelProductCalendar_day>div {
display: inline-block; display: inline-block;
width: 14.2857%; width: 14.2857%;
height: 148px; height: 148px;
...@@ -197,39 +218,49 @@ ...@@ -197,39 +218,49 @@
border-bottom: 1px solid #ddd; border-bottom: 1px solid #ddd;
vertical-align: top; vertical-align: top;
} }
.hotelProductCalendar_day>div>div:nth-child(1){
.hotelProductCalendar_day>div>div:nth-child(1) {
width: 100%; width: 100%;
height: 28px; height: 28px;
line-height: 28px; line-height: 28px;
text-align: center; text-align: center;
} }
.hotelProductCalendar_day>div>div:nth-child(1)>span{
.hotelProductCalendar_day>div>div:nth-child(1)>span {
font-size: 14px; font-size: 14px;
} }
.hotelProductCalendar_day>div>.nowMonth{
.hotelProductCalendar_day>div>.nowMonth {
background-color: #CCCCCC; background-color: #CCCCCC;
} }
.hotelProductCalendar_day>div>.nowMonth>span{
.hotelProductCalendar_day>div>.nowMonth>span {
color: #000000; color: #000000;
} }
.hotelProductCalendar_day>div:nth-child(7n-1)>.nowMonth>span{
.hotelProductCalendar_day>div:nth-child(7n-1)>.nowMonth>span {
color: #e95252; color: #e95252;
} }
.hotelProductCalendar_day>div:nth-child(7n)>.nowMonth>span{
.hotelProductCalendar_day>div:nth-child(7n)>.nowMonth>span {
color: #e95252; color: #e95252;
} }
.hotelProductCalendar_day>div>.otherMonth{
.hotelProductCalendar_day>div>.otherMonth {
background-color: #DDDDDD; background-color: #DDDDDD;
} }
.hotelProductCalendar_day>div>.otherMonth>span{
.hotelProductCalendar_day>div>.otherMonth>span {
color: #999999; color: #999999;
} }
.hotelProductCalendar_day>div>.hasStock{
.hotelProductCalendar_day>div>.hasStock {
width: 100%; width: 100%;
height: 120px; height: 120px;
overflow-y: auto; overflow-y: auto;
} }
.hotelProductCalendar_day>div>.hasStock>p{
.hotelProductCalendar_day>div>.hasStock>p {
width: 100%; width: 100%;
min-height: 20px; min-height: 20px;
padding: 0 10px; padding: 0 10px;
...@@ -237,34 +268,42 @@ ...@@ -237,34 +268,42 @@
font-size: 12px; font-size: 12px;
border-bottom: 1px dashed #ccc; border-bottom: 1px dashed #ccc;
} }
.hotelProductCalendar_day>div>.hasStock_1 { .hotelProductCalendar_day>div>.hasStock_1 {
color: #FFFFFF; color: #FFFFFF;
background-color: #ff3737; background-color: #ff3737;
} }
.hotelProductCalendar_day>div>.hasStock_2 { .hotelProductCalendar_day>div>.hasStock_2 {
background-color: #ff99cc; background-color: #ff99cc;
} }
.hotelProductCalendar_day>div>.hasStock_3 { .hotelProductCalendar_day>div>.hasStock_3 {
background-color: #bcd6ee; background-color: #bcd6ee;
} }
.hotelProductCalendar_day>div>.hasStock_4 { .hotelProductCalendar_day>div>.hasStock_4 {
background-color: #ffffff; background-color: #ffffff;
} }
.hotelProductCalendar_day>div>.hasStock_5 { .hotelProductCalendar_day>div>.hasStock_5 {
background-color: #02F78E; background-color: #02F78E;
} }
.hotelProductCalendar_day>div>.noStock{
.hotelProductCalendar_day>div>.noStock {
padding: 30px 0 0 0; padding: 30px 0 0 0;
width: 100%; width: 100%;
height: 120px; height: 120px;
} }
.hotelProductCalendar_day>div>.noStock>p:nth-child(1){
.hotelProductCalendar_day>div>.noStock>p:nth-child(1) {
width: 100%; width: 100%;
font-size: 16px; font-size: 16px;
color: #999999; color: #999999;
text-align: center; text-align: center;
} }
.hotelProductCalendar_day>div>.noStock>p:nth-child(2){
.hotelProductCalendar_day>div>.noStock>p:nth-child(2) {
margin: 10px 0 0 0; margin: 10px 0 0 0;
width: 100%; width: 100%;
font-size: 12px; font-size: 12px;
...@@ -272,7 +311,9 @@ ...@@ -272,7 +311,9 @@
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
} }
.text_underLine{
.text_underLine {
cursor: pointer; cursor: pointer;
} }
</style> </style>
...@@ -7,7 +7,8 @@ ...@@ -7,7 +7,8 @@
<div class="hotelProductManage2_condition"> <div class="hotelProductManage2_condition">
<div> <div>
<em>起始月</em> <em>起始月</em>
<el-date-picker v-model="condition.month" type="month" value-format="yyyy-MM" :clearable="false" placeholder="选择月"></el-date-picker> <el-date-picker v-model="condition.month" type="month" value-format="yyyy-MM" :clearable="false"
placeholder="选择月"></el-date-picker>
</div> </div>
</div> </div>
<div class="hotelProductManage2_tableBox"> <div class="hotelProductManage2_tableBox">
...@@ -29,11 +30,11 @@ ...@@ -29,11 +30,11 @@
</table> </table>
</div> </div>
<div class="hotelProductManage2_tableBox"> <div class="hotelProductManage2_tableBox">
<span style="color:#000000;background-color: #ff3737;padding:2px 4px;border-radius:5px" >红日</span> <span style="color:#000000;background-color: #ff3737;padding:2px 4px;border-radius:5px">红日</span>
<span style="color:#000000;background-color: #ff99cc;padding:2px 4px;border-radius:5px" >旺季</span> <span style="color:#000000;background-color: #ff99cc;padding:2px 4px;border-radius:5px">旺季</span>
<span style="color:#000000;background-color: #bcd6ee;padding:2px 4px;border-radius:5px" >平季</span> <span style="color:#000000;background-color: #bcd6ee;padding:2px 4px;border-radius:5px">平季</span>
<span style="color:#000000;background-color: #DDDDDD;padding:2px 4px;border-radius:5px">淡季</span> <span style="color:#000000;background-color: #DDDDDD;padding:2px 4px;border-radius:5px">淡季</span>
<span style="color:#000000;background-color: #02F78E;padding:2px 4px;border-radius:5px" >特别价</span> <span style="color:#000000;background-color: #02F78E;padding:2px 4px;border-radius:5px">特别价</span>
</div> </div>
<div class="hotelProductManage2_calendar"> <div class="hotelProductManage2_calendar">
<div class="hotelProductManage2_calendarItem" v-for="(item, index) in days" :key="index"> <div class="hotelProductManage2_calendarItem" v-for="(item, index) in days" :key="index">
...@@ -51,9 +52,17 @@ ...@@ -51,9 +52,17 @@
<div>周日</div> <div>周日</div>
</div> </div>
<div class="calendarItem_day"> <div class="calendarItem_day">
<div v-for="(item2, index2) in item.days" :key="index2" :class="item2.month===item.date?'nowMonth':'otherMonth'"> <div v-for="(subItem, index2) in item.days" :key="index2" :class="subItem.month===item.date?'nowMonth':'otherMonth'">
<div :class="stockColor(item, item2)" :style="item2.month===item.date&&msg2.DateList.indexOf(item2.day)!==-1?'border-color: green':''" <div :class="stockColor(item,subItem)"
@click="calendarDayOn(item, item2)">{{item2.date.getDate()}}</div> :style="subItem.month===item.date&&msg2.DateList.indexOf(subItem.day)!==-1?'border-color: green':''"
@click="calendarDayOn(item, subItem)">
{{subItem.date.getDate()}}<br />
<template v-if="subItem.data&&subItem.data.SubList && subItem.data.SubList[0]">
<template v-for="(childItem,childIndex) in subItem.data.SubList" >
<span v-if="childItem.BatchNumber>1"> {{childItem.BatchNumber}} </span>
</template>
</template>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -71,8 +80,17 @@ ...@@ -71,8 +80,17 @@
<input type="button" value="保存" @click="edit2Save()" class="normalBtn" /> <input type="button" value="保存" @click="edit2Save()" class="normalBtn" />
</div> </div>
</div> </div>
<el-form :model="msg2" :rules="rules2" :inline="true" label-width="130px" ref="hotelProductForm2" class="hotelProductManage2_edit2_form"> <el-form :model="msg2" :rules="rules2" :inline="true" label-width="130px" ref="hotelProductForm2"
class="hotelProductManage2_edit2_form">
<el-row> <el-row>
<el-col :span="24" class="HotelProductEdit_date">
<el-form-item label="已选日期" prop="DateList">
<el-tag v-for="(item, key) in msg2.DateList" :key="key" type="info" style="margin: 0 5px 0 0;" closable
@close="calendarDayOff(item)">{{item}}</el-tag>
</el-form-item>
</el-col>
</el-row>
<el-row style="padding: 20px 0 0 0;border-top: 1px dashed #ccc;">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="库存类型" prop="InventoryType"> <el-form-item label="库存类型" prop="InventoryType">
<el-select v-model="msg2.InventoryType" placeholder="请选择"> <el-select v-model="msg2.InventoryType" placeholder="请选择">
...@@ -89,36 +107,27 @@ ...@@ -89,36 +107,27 @@
<el-input-number v-model="msg2.Inventory" :min="0"></el-input-number> <el-input-number v-model="msg2.Inventory" :min="0"></el-input-number>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" class="HotelProductEdit_date"> <el-col :span="6">
<el-form-item label="已选日期" prop="DateList"> <el-form-item label="批次">
<el-tag v-for="(item, key) in msg2.DateList" :key="key" type="info" style="margin: 0 5px 0 0;" closable <el-select v-model="msg2.BatchNumber" placeholder="请选择">
@close="calendarDayOff(item)">{{item}}</el-tag> <el-option label="第一批" :value="1"></el-option>
<el-option label="第二批" :value="2"></el-option>
<el-option label="第三批" :value="3"></el-option>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row style="padding: 20px 0 0 0;border-top: 1px dashed #ccc;">
<el-col :span="6"> <el-col :span="6">
<!-- <el-form-item label="标准间成本价" prop="CostPrice"> <el-form-item label="标准间成本价">
<el-input-number v-model="msg2.CostPrice" :precision="2" :min="0"></el-input-number> <el-input-number v-model="msg2.CostPrice" :precision="2" :min="0" @keyup.native="checkPrice(msg2,'CostPrice')" maxlength="10"></el-input-number>
</el-form-item> -->
<el-form-item>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">标准间成本价</div>
<input type="text" class="toolInput inpuOne" v-model="msg2.CostPrice" onkeyup="value=value.replace(/[^\d^\.]+/g,'')" maxlength="20">
</div>
<div class="RebateCount reTwo">
<div class="fanNum">散客价</div>
<input type="text" class="toolInput inpuTwo" v-model="msg2.SanKePrice" onkeyup="value=value.replace(/[^\d^\.]+/g,'')" maxlength="20">
</div>
</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="6">
<el-col :span="6">
<el-form-item label="散客价"> <el-form-item label="散客价">
<el-input-number v-model="msg2.SanKePrice" :precision="2" :min="0"></el-input-number> <el-input-number v-model="msg2.SanKePrice" :precision="2" :min="0"
@keyup.native="checkPrice(msg2,'SanKePrice')" maxlength="10"></el-input-number>
</el-form-item> </el-form-item>
</el-col> --> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="大床间成本价" prop="BidroomPrice"> <el-form-item label="大床间成本价" prop="BidroomPrice">
<el-input-number v-model="msg2.BidroomPrice" :precision="2" :min="0"></el-input-number> <el-input-number v-model="msg2.BidroomPrice" :precision="2" :min="0"></el-input-number>
...@@ -155,7 +164,8 @@ ...@@ -155,7 +164,8 @@
<el-form-item label="成本币种" prop="CurrencyId"> <el-form-item label="成本币种" prop="CurrencyId">
<el-select v-model="msg2.CurrencyId" placeholder="请选择" style="width:100px;" @change="currency2Change"> <el-select v-model="msg2.CurrencyId" placeholder="请选择" style="width:100px;" @change="currency2Change">
<el-option :label="$t('pub.unlimitedSel')" value='0'></el-option> <el-option :label="$t('pub.unlimitedSel')" value='0'></el-option>
<el-option v-for="(item,index) in allCurrencyList" :key="index" :label="item.Name" :value="item.ID"></el-option> <el-option v-for="(item,index) in allCurrencyList" :key="index" :label="item.Name" :value="item.ID">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -192,13 +202,15 @@ ...@@ -192,13 +202,15 @@
<el-form-item label="供应商" prop="Supplier"> <el-form-item label="供应商" prop="Supplier">
<el-select v-model="msg2.Supplier" placeholder="请选择"> <el-select v-model="msg2.Supplier" placeholder="请选择">
<el-option :label="$t('pub.unlimitedSel')" value='0'></el-option> <el-option :label="$t('pub.unlimitedSel')" value='0'></el-option>
<el-option v-for="(item,index) in SupplierList" :key="index" :label="item.Name" :value="item.ID"></el-option> <el-option v-for="(item,index) in SupplierList" :key="index" :label="item.Name" :value="item.ID">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="18">
<el-form-item label="备注" prop="Remark"> <el-form-item label="备注" prop="Remark">
<el-input type="textarea" v-model="msg2.Remark" :rows="2" placeholder="请输入内容" style="width: 755px;"></el-input> <el-input type="textarea" v-model="msg2.Remark" :rows="1" placeholder="请输入备注内容" style="width: 600px;">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -213,24 +225,10 @@ ...@@ -213,24 +225,10 @@
<div @click="editSave()">保存</div> <div @click="editSave()">保存</div>
</div> </div>
</div> </div>
<el-form :model="msg" :rules="rules" :inline="true" label-width="130px" ref="hotelProductForm" class="hotelProductManage2_edit_form"> <el-form :model="msg" :rules="rules" :inline="true" label-width="130px" ref="hotelProductForm"
class="hotelProductManage2_edit_form">
<el-row> <el-row>
<el-col :span="6">
<el-form-item label="库存类型" prop="InventoryType">
<el-select v-model="msg.InventoryType" placeholder="请选择">
<el-option label="红日" value="1"></el-option>
<el-option label="旺季" value="2"></el-option>
<el-option label="平季" value="3"></el-option>
<el-option label="淡季" value="4"></el-option>
<el-option label="特别价" value="5"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="库存" prop="Inventory">
<el-input-number v-model="msg.Inventory" :min="0"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="日期选择方式" prop="DayType"> <el-form-item label="日期选择方式" prop="DayType">
<el-select v-model="msg.DayType" placeholder="请选择" @change="dayTypeChange"> <el-select v-model="msg.DayType" placeholder="请选择" @change="dayTypeChange">
...@@ -241,7 +239,7 @@ ...@@ -241,7 +239,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24" class="HotelProductEdit_date"> <el-col :span="12" class="HotelProductEdit_date">
<div v-show="msg.DayType==='1'||msg.DayType==='3'"> <div v-show="msg.DayType==='1'||msg.DayType==='3'">
<el-form-item label="年" prop="Year"> <el-form-item label="年" prop="Year">
<el-date-picker v-model="msg.Year" type="year" value-format="yyyy" placeholder="选择年"></el-date-picker> <el-date-picker v-model="msg.Year" type="year" value-format="yyyy" placeholder="选择年"></el-date-picker>
...@@ -249,7 +247,8 @@ ...@@ -249,7 +247,8 @@
</div> </div>
<div v-show="msg.DayType==='2'"> <div v-show="msg.DayType==='2'">
<el-form-item label="月" prop="Month"> <el-form-item label="月" prop="Month">
<el-date-picker v-model="msg.Month" type="month" value-format="yyyy-MM" placeholder="选择月"></el-date-picker> <el-date-picker v-model="msg.Month" type="month" value-format="yyyy-MM" placeholder="选择月">
</el-date-picker>
</el-form-item> </el-form-item>
</div> </div>
<div v-show="msg.DayType==='3'"> <div v-show="msg.DayType==='3'">
...@@ -290,34 +289,52 @@ ...@@ -290,34 +289,52 @@
</el-form-item> </el-form-item>
<em>-</em> <em>-</em>
<el-form-item label="" prop="EndDate"> <el-form-item label="" prop="EndDate">
<el-date-picker v-model="msg.EndDate" type="date" placeholder="选择结束时间" format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker> <el-date-picker v-model="msg.EndDate" type="date" placeholder="选择结束时间" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="padding: 20px 0 0 0;border-top: 1px dashed #ccc;"> <el-row style="padding: 20px 0 0 0;border-top: 1px dashed #ccc;">
<el-col :span="6"> <el-col :span="6">
<!-- <el-form-item label="标准间成本价" prop="CostPrice"> <el-form-item label="库存类型" prop="InventoryType">
<el-input-number v-model="msg.CostPrice" :precision="2" :min="0"></el-input-number> <el-select v-model="msg.InventoryType" placeholder="请选择">
</el-form-item> --> <el-option label="红日" value="1"></el-option>
<el-form-item> <el-option label="旺季" value="2"></el-option>
<div class="RabateDiv clearfix"> <el-option label="平季" value="3"></el-option>
<div class="RebateCount reOne"> <el-option label="淡季" value="4"></el-option>
<div class="leftPnum">标准间成本价</div> <el-option label="特别价" value="5"></el-option>
<input type="text" class="toolInput inpuOne" v-model="msg.CostPrice" onkeyup="value=value.replace(/[^\d^\.]+/g,'')" maxlength="20"> </el-select>
</div>
<div class="RebateCount reTwo">
<div class="fanNum">散客价</div>
<input type="text" class="toolInput inpuTwo" v-model="msg.SanKePrice" onkeyup="value=value.replace(/[^\d^\.]+/g,'')" maxlength="20">
</div>
</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="6"> <el-col :span="6">
<el-form-item label="库存" prop="Inventory">
<el-input-number v-model="msg.Inventory" :min="0"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="批次">
<el-select v-model="msg.BatchNumber" placeholder="请选择">
<el-option label="第一批" :value="1"></el-option>
<el-option label="第二批" :value="2"></el-option>
<el-option label="第三批" :value="3"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="标准间成本价">
<el-input-number v-model="msg.CostPrice" :precision="2" :min="0"
@keyup.native="checkPrice(msg2,'CostPrice')" maxlength="10"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="散客价"> <el-form-item label="散客价">
<el-input-number v-model="msg.SanKePrice" :precision="2" :min="0"></el-input-number> <el-input-number v-model="msg.SanKePrice" :precision="2" :min="0"
@keyup.native="checkPrice(msg2,'SanKePrice')" maxlength="10"></el-input-number>
</el-form-item> </el-form-item>
</el-col> --> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="大床间成本价" prop="BidroomPrice"> <el-form-item label="大床间成本价" prop="BidroomPrice">
<el-input-number v-model="msg.BidroomPrice" :precision="2" :min="0"></el-input-number> <el-input-number v-model="msg.BidroomPrice" :precision="2" :min="0"></el-input-number>
...@@ -354,7 +371,8 @@ ...@@ -354,7 +371,8 @@
<el-form-item label="成本币种" prop="CurrencyId"> <el-form-item label="成本币种" prop="CurrencyId">
<el-select v-model="msg.CurrencyId" placeholder="请选择" style="width:100px;" @change="currencyChange"> <el-select v-model="msg.CurrencyId" placeholder="请选择" style="width:100px;" @change="currencyChange">
<el-option :label="$t('pub.unlimitedSel')" value='0'></el-option> <el-option :label="$t('pub.unlimitedSel')" value='0'></el-option>
<el-option v-for="(item,index) in allCurrencyList" :key="index" :label="item.Name" :value="item.ID"></el-option> <el-option v-for="(item,index) in allCurrencyList" :key="index" :label="item.Name" :value="item.ID">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -391,13 +409,15 @@ ...@@ -391,13 +409,15 @@
<el-form-item label="供应商" prop="Supplier"> <el-form-item label="供应商" prop="Supplier">
<el-select v-model="msg.Supplier" placeholder="请选择"> <el-select v-model="msg.Supplier" placeholder="请选择">
<el-option :label="$t('pub.unlimitedSel')" value='0'></el-option> <el-option :label="$t('pub.unlimitedSel')" value='0'></el-option>
<el-option v-for="(item,index) in SupplierList" :key="index" :label="item.Name" :value="item.ID"></el-option> <el-option v-for="(item,index) in SupplierList" :key="index" :label="item.Name" :value="item.ID">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="18">
<el-form-item label="备注" prop="Remark"> <el-form-item label="备注" prop="Remark">
<el-input type="textarea" v-model="msg.Remark" :rows="2" placeholder="请输入内容" style="width: 755px;"></el-input> <el-input type="textarea" v-model="msg.Remark" :rows="1" placeholder="请输入备注内容" style="width: 600px;">
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -517,6 +537,7 @@ ...@@ -517,6 +537,7 @@
Week: '', Week: '',
DateList: [], DateList: [],
SanKePrice: 0, //散客价 SanKePrice: 0, //散客价
BatchNumber: 1, //批次号
}, },
msg2: { msg2: {
Hotel: '0', Hotel: '0',
...@@ -545,6 +566,7 @@ ...@@ -545,6 +566,7 @@
Week: '', Week: '',
DateList: [], DateList: [],
SanKePrice: 0, //散客价 SanKePrice: 0, //散客价
BatchNumber: 1 //批次号
}, },
rules: { rules: {
InventoryType: { InventoryType: {
...@@ -736,31 +758,32 @@ ...@@ -736,31 +758,32 @@
}, },
}, },
allCurrencyList: [], allCurrencyList: [],
//供应商数组
SupplierList: [] SupplierList: []
} }
}, },
methods: { methods: {
stockColor: function (item, item2) { //库存类型
stockColor: function (item, item2,childItem) {
if (item.date === item2.month && item2.hasOwnProperty('data')) { if (item.date === item2.month && item2.hasOwnProperty('data')) {
let type = item2.data.InventoryType let type = item2.data.SubList[0].InventoryType;
if (type === 1) { if (type === 1) {
return 'hasStock_1' return 'hasStock_1';
} else if (type === 2) { } else if (type === 2) {
return 'hasStock_2' return 'hasStock_2';
} else if (type === 3) { } else if (type === 3) {
return 'hasStock_3' return 'hasStock_3';
} else if (type === 4) { } else if (type === 4) {
return 'hasStock_4' return 'hasStock_4';
} } else if (type === 5) {
else if (type === 5) { return 'hasStock_5';
return 'hasStock_5'
} }
} else { } else {
return return;
} }
}, },
//日历点击事件
calendarDayOn: function (item, item2) { calendarDayOn: function (item, item2) {
if (item.date === item2.month) { if (item.date === item2.month) {
let dayIndex = this.msg2.DateList.indexOf(item2.day) let dayIndex = this.msg2.DateList.indexOf(item2.day)
if (dayIndex === -1) { if (dayIndex === -1) {
...@@ -770,7 +793,6 @@ ...@@ -770,7 +793,6 @@
this.msg2.DateList.splice(dayIndex, 1) this.msg2.DateList.splice(dayIndex, 1)
} }
} }
console.log(this.msg2.DateList);
}, },
calendarDayOff: function (item) { calendarDayOff: function (item) {
let dayIndex = this.msg2.DateList.indexOf(item) let dayIndex = this.msg2.DateList.indexOf(item)
...@@ -783,10 +805,11 @@ ...@@ -783,10 +805,11 @@
Month: date.split('-')[1] Month: date.split('-')[1]
}, res => { }, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
let json = res.data.data let json = res.data.data;
this.hotelInfo.HotelName = json.HotelName
this.hotelInfo.TotalInventory = json.TotalInventory this.hotelInfo.HotelName = json.HotelName;
this.hotelInfo.Validity = json.Validity this.hotelInfo.TotalInventory = json.TotalInventory;
this.hotelInfo.Validity = json.Validity;
for (let i = 0; i < this.days[key].days.length; i++) { for (let i = 0; i < this.days[key].days.length; i++) {
for (let j = 0; j < json.list.length; j++) { for (let j = 0; j < json.list.length; j++) {
if (this.days[key].days[i].day === json.list[j].DayStr) { if (this.days[key].days[i].day === json.list[j].DayStr) {
...@@ -798,8 +821,6 @@ ...@@ -798,8 +821,6 @@
this.$set(this.calendar, 'data', this.days[this.calendar.num]) this.$set(this.calendar, 'data', this.days[this.calendar.num])
} }
this.$forceUpdate(); this.$forceUpdate();
} else {
this.$message.error('数据获取失败')
} }
}) })
}, },
...@@ -808,52 +829,42 @@ ...@@ -808,52 +829,42 @@
let dayList = this.$calendarUtils.createCalendar(date).DayArray; let dayList = this.$calendarUtils.createCalendar(date).DayArray;
let days = []; let days = [];
for (let i = 0; i < dayList.length; i++) { for (let i = 0; i < dayList.length; i++) {
let month = dayList[i].day.Format('yyyy-MM') let month = dayList[i].day.Format('yyyy-MM');
let day = dayList[i].day.Format('yyyy-MM-dd') let day = dayList[i].day.Format('yyyy-MM-dd');
days.push({ days.push({
date: dayList[i].day, date: dayList[i].day,
month: month, month: month,
day: day day: day
}) });
} };
this.days[key] = { this.days[key] = {
date: month, date: month,
days: days, days: days,
isCked:false isCked: false
} };
this.getData(date, key) this.getData(date, key);
}, },
getMonths: function () { getMonths: function () {
let month = this.condition.month + '-1' let month = this.condition.month + '-1'
for (let i = 0; i < 4; i++) { for (let i = 0; i < 4; i++) {
if (i !== 0) { if (i !== 0) {
let newDate = new Date(month).setDate(32) let newDate = new Date(month).setDate(32);
month = new Date(newDate).Format('yyyy-MM') + '-1' month = new Date(newDate).Format('yyyy-MM') + '-1';
} }
this.getCalendarDays(month, i) this.getCalendarDays(month, i);
} }
}, },
calendarShow: function (item, index) { calendarShow: function (item, index) {
this.calendar.num = index this.calendar.num = index;
this.calendar.data = item this.calendar.data = item;
this.calendar.show = true this.calendar.show = true;
},
goUrlA: function () {
this.$router.push({
name: 'HotelProductEdit',
query: {
type: '1',
HotelId: this.hotelId,
blank: 'y',
tab: '报价管理'
}
});
}, },
// 获取详情 // 获取详情
getDetail: function (date) { getDetail: function (date,BatchNumber) {
this.apipost('dict_post_HotelOffer_GetHotelPriceInfo', { this.apipost('dict_post_HotelOffer_GetHotelPriceInfo', {
HotelId: this.msg.Hotel, HotelId: this.msg.Hotel,
Time: date Time: date,
BatchNumber:BatchNumber
}, res => { }, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
let data = res.data.data; let data = res.data.data;
...@@ -876,9 +887,8 @@ ...@@ -876,9 +887,8 @@
this.msg.WeekendAddPrice = data.WeekendAddPrice this.msg.WeekendAddPrice = data.WeekendAddPrice
this.msg.InteriorAddPrice = data.InteriorAddPrice this.msg.InteriorAddPrice = data.InteriorAddPrice
this.msg.GuideRoomPrice = data.GuideRoomPrice; this.msg.GuideRoomPrice = data.GuideRoomPrice;
this.msg.SanKePrice=data.SanKePrice; this.msg.SanKePrice = data.SanKePrice;
} else { this.msg.BatchNumber = data.BatchNumber;
this.$message.error(res.data.message)
} }
}) })
}, },
...@@ -895,8 +905,6 @@ ...@@ -895,8 +905,6 @@
this.apipost("financeinfo_post_GetList", {}, res => { this.apipost("financeinfo_post_GetList", {}, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.allCurrencyList = res.data.data; this.allCurrencyList = res.data.data;
} else {
this.$message.error('币种获取失败')
} }
}, err => {}); }, err => {});
}, },
...@@ -925,27 +933,25 @@ ...@@ -925,27 +933,25 @@
}, res => { }, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.SupplierList = res.data.data; this.SupplierList = res.data.data;
} else {
this.$message.error('供应商获取失败')
} }
}, err => {}); }, err => {});
}, },
// 打开编辑窗口 // 打开编辑窗口
goEdit: function (type, date) { goEdit: function (type, date,BatchNumber) {
let nowDate = new Date().Format('yyyy-MM-dd') let nowDate = new Date().Format('yyyy-MM-dd');
this.msg.StartDate = date === undefined ? nowDate : date this.msg.StartDate = date === undefined ? nowDate : date;
this.msg.EndDate = date === undefined ? nowDate : date this.msg.EndDate = date === undefined ? nowDate : date;
if (type === '2' && date) { if (type === '2' && date) {
this.getDetail(date) this.getDetail(date,BatchNumber);
} }
this.editShow = true this.editShow = true;
}, },
// 取消按钮 // 取消按钮
editCanel: function () { editCanel: function () {
this.editShow = false; this.editShow = false;
this.$refs['hotelProductForm'].resetFields(); this.$refs['hotelProductForm'].resetFields();
this.msg.CostPrice=0; this.msg.CostPrice = 0;
this.msg.SanKePrice=0; this.msg.SanKePrice = 0;
}, },
// 保存按钮 // 保存按钮
editSave: function () { editSave: function () {
...@@ -953,14 +959,15 @@ ...@@ -953,14 +959,15 @@
if (valid) { if (valid) {
this.apipost('dict_post_HotelOffer_SetNewHotelPrice', this.msg, res => { this.apipost('dict_post_HotelOffer_SetNewHotelPrice', this.msg, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.$message.success('编辑成功') this.Success('编辑成功')
this.getMonths() this.getMonths()
this.editShow = false this.editShow = false
this.$refs['hotelProductForm'].resetFields(); this.$refs['hotelProductForm'].resetFields();
this.msg.CostPrice=0; this.msg.CostPrice = 0;
this.msg.SanKePrice=0; this.msg.SanKePrice = 0;
this.msg.BatchNumber = 1;
} else { } else {
this.$message.error(res.data.message) this.Error(res.data.message)
} }
}) })
} else { } else {
...@@ -971,32 +978,25 @@ ...@@ -971,32 +978,25 @@
// 页面编辑重置 // 页面编辑重置
edit2Reset: function () { edit2Reset: function () {
this.$refs['hotelProductForm2'].resetFields(); this.$refs['hotelProductForm2'].resetFields();
this.msg2.CostPrice=0; this.msg2.CostPrice = 0;
this.msg2.SanKePrice=0; this.msg2.SanKePrice = 0;
}, },
//批量删除 //批量删除
delete2Reset: function () { delete2Reset: function () {
this.$confirm('是否删除?', '提示', { var that = this;
confirmButtonText: '确定', this.Confirm("是否删除?", function () {
cancelButtonText: '取消', that.apipost('dict_post_HotelOffer_RemoveNewHotelPrice', that.msg2, res => {
type: 'warning'
}).then(() => {
this.apipost('dict_post_HotelOffer_RemoveNewHotelPrice', this.msg2, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.$message.success(res.data.message) that.Success(res.data.message)
this.getMonths() that.getMonths();
this.$refs['hotelProductForm2'].resetFields(); that.$refs['hotelProductForm2'].resetFields();
this.msg2.CostPrice=0; that.msg2.CostPrice = 0;
this.msg2.SanKePrice=0; that.msg2.SanKePrice = 0;
that.msg2.BatchNumber = 1;
} else { } else {
this.$message.error(res.data.message) that.Error(res.data.message)
} }
}, err => {}) }, err => {})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
}); });
}, },
// 页面编辑保存 // 页面编辑保存
...@@ -1005,13 +1005,14 @@ ...@@ -1005,13 +1005,14 @@
if (valid) { if (valid) {
this.apipost('dict_post_HotelOffer_SetNewHotelPrice', this.msg2, res => { this.apipost('dict_post_HotelOffer_SetNewHotelPrice', this.msg2, res => {
if (res.data.resultCode === 1) { if (res.data.resultCode === 1) {
this.$message.success('编辑成功') this.Success('编辑成功')
this.getMonths() this.getMonths();
this.$refs['hotelProductForm2'].resetFields(); this.$refs['hotelProductForm2'].resetFields();
this.msg2.CostPrice=0; this.msg2.CostPrice = 0;
this.msg2.SanKePrice=0; this.msg2.SanKePrice = 0;
this.msg2.BatchNumber = 1;
} else { } else {
this.$message.error(res.data.message) this.Error(res.data.message)
} }
}) })
} else { } else {
...@@ -1020,19 +1021,19 @@ ...@@ -1020,19 +1021,19 @@
}); });
}, },
//增加全选 //增加全选
changeHotelStatus(item,index){ changeHotelStatus(item, index) {
if(item.isCked){ if (item.isCked) {
item.days.forEach(x=>{ item.days.forEach(x => {
if(x.month==item.date){ if (x.month == item.date) {
if(this.msg2.DateList.indexOf(x.day)==-1){ if (this.msg2.DateList.indexOf(x.day) == -1) {
this.msg2.DateList.push(x.day); this.msg2.DateList.push(x.day);
} }
} }
}) })
}else{ } else {
item.days.forEach(x=>{ item.days.forEach(x => {
this.msg2.DateList.forEach((y,index)=>{ this.msg2.DateList.forEach((y, index) => {
if(x.day==y){ if (x.day == y) {
this.msg2.DateList.splice(index, 1) this.msg2.DateList.splice(index, 1)
} }
}) })
...@@ -1041,19 +1042,19 @@ ...@@ -1041,19 +1042,19 @@
} }
}, },
created: function () { created: function () {
this.hotelId = this.$route.query.id === undefined ? '0' : this.$route.query.id this.hotelId = this.$route.query.id === undefined ? '0' : this.$route.query.id;
this.msg.Hotel = this.$route.query.id === undefined ? '0' : this.$route.query.id this.msg.Hotel = this.$route.query.id === undefined ? '0' : this.$route.query.id;
this.msg2.Hotel = this.$route.query.id === undefined ? '0' : this.$route.query.id this.msg2.Hotel = this.$route.query.id === undefined ? '0' : this.$route.query.id;
this.condition.month = new Date().Format('yyyy-MM') this.condition.month = new Date().Format('yyyy-MM');
let nowDate = new Date().Format('yyyy-MM-dd') let nowDate = new Date().Format('yyyy-MM-dd');
this.msg.DayType = '4' this.msg.DayType = '4';
this.msg.StartDate = nowDate this.msg.StartDate = nowDate;
this.msg.EndDate = nowDate this.msg.EndDate = nowDate;
}, },
mounted: function () { mounted: function () {
this.getMonths() this.getMonths();
this.getAllCurrency() this.getAllCurrency();
this.initSupplier() this.initSupplier();
} }
} }
...@@ -1063,12 +1064,14 @@ ...@@ -1063,12 +1064,14 @@
.hotelProductManage2 { .hotelProductManage2 {
padding: 20px 0; padding: 20px 0;
} }
.hotelproductCkbox{
width:10%; .hotelproductCkbox {
height:30px; width: 10%;
float:right; height: 30px;
margin:5px 20px 0 0; float: right;
margin: 5px 20px 0 0;
} }
.hotelProductManage2>.hotelProductManage2_btnList { .hotelProductManage2>.hotelProductManage2_btnList {
position: fixed; position: fixed;
top: 36px; top: 36px;
...@@ -1173,8 +1176,8 @@ ...@@ -1173,8 +1176,8 @@
.hotelProductManage2_calendarItem>.calendarItem_month { .hotelProductManage2_calendarItem>.calendarItem_month {
width: 50%; width: 50%;
height: 30px; height: 30px;
float:left; float: left;
margin-left:110px; margin-left: 110px;
line-height: 30px; line-height: 30px;
text-align: center; text-align: center;
font-size: 14px; font-size: 14px;
...@@ -1203,11 +1206,12 @@ ...@@ -1203,11 +1206,12 @@
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
flex-wrap: wrap; flex-wrap: wrap;
padding-bottom:20px;
} }
.hotelProductManage2_calendarItem>.calendarItem_day>div { .hotelProductManage2_calendarItem>.calendarItem_day>div {
display: inline-block; display: inline-block;
padding: 5px 0; padding: 15px 0;
width: 14.2%; width: 14.2%;
} }
...@@ -1242,9 +1246,11 @@ ...@@ -1242,9 +1246,11 @@
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_3 { .hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_3 {
background-color: #bcd6ee; background-color: #bcd6ee;
} }
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_4 { .hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_4 {
background-color: #DDDDDD; background-color: #DDDDDD;
} }
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_5 { .hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_5 {
background-color: #02F78E; background-color: #02F78E;
} }
...@@ -1345,7 +1351,7 @@ ...@@ -1345,7 +1351,7 @@
left: 50px; left: 50px;
padding: 10px 10px 0; padding: 10px 10px 0;
min-width: 1316px; min-width: 1316px;
height: 640px; /* height: 640px; */
border-top: 3px solid #38425d; border-top: 3px solid #38425d;
background-color: #FFFFFF; background-color: #FFFFFF;
overflow: auto; overflow: auto;
...@@ -1429,18 +1435,23 @@ ...@@ -1429,18 +1435,23 @@
margin: 7px 10px 0 0; margin: 7px 10px 0 0;
padding: 0 0 0 0; padding: 0 0 0 0;
} }
.hotelProductManage2 .RabateDiv { .hotelProductManage2 .RabateDiv {
margin-left: 25px; margin-left: 25px;
} }
.hotelProductManage2 .RebateCount { .hotelProductManage2 .RebateCount {
height: 34px; height: 34px;
border-radius: 17px; border-radius: 17px;
float: left; float: left;
} }
.hotelProductManage2 .reOne,.hotelProductManage2 .reTwo,
.hotelProductManage2 .reOne,
.hotelProductManage2 .reTwo,
.hotelProductManage2.dayNum { .hotelProductManage2.dayNum {
position: relative; position: relative;
} }
.hotelProductManage2 .leftPnum { .hotelProductManage2 .leftPnum {
float: left; float: left;
background-color: #f5f7fa; background-color: #f5f7fa;
...@@ -1451,26 +1462,30 @@ ...@@ -1451,26 +1462,30 @@
position: absolute; position: absolute;
left: 1px; left: 1px;
top: 1px; top: 1px;
font-size:14px; font-size: 14px;
padding:0 10px; padding: 0 10px;
color:#606266; color: #606266;
} }
.hotelProductManage2 .toolInput { .hotelProductManage2 .toolInput {
height: 42px; height: 42px;
padding-left: 5px; padding-left: 5px;
border: none; border: none;
} }
.hotelProductManage2 .inpuOne { .hotelProductManage2 .inpuOne {
width: 225px; width: 225px;
padding-left: 120px; padding-left: 120px;
border: 1px solid #d1d1d1; border: 1px solid #d1d1d1;
border-right: none; border-right: none;
} }
.hotelProductManage2 .inpuTwo { .hotelProductManage2 .inpuTwo {
width: 166px; width: 166px;
padding: 0 45px 0 77px; padding: 0 45px 0 77px;
border: 1px solid #d1d1d1; border: 1px solid #d1d1d1;
} }
.hotelProductManage2 .fanNum { .hotelProductManage2 .fanNum {
float: left; float: left;
background-color: #f5f7fa; background-color: #f5f7fa;
...@@ -1481,9 +1496,9 @@ ...@@ -1481,9 +1496,9 @@
position: absolute; position: absolute;
left: 1px; left: 1px;
top: 1px; top: 1px;
padding:0 10px; padding: 0 10px;
color:#606266; color: #606266;
font-size:14px; font-size: 14px;
} }
</style> </style>
...@@ -2,6 +2,29 @@ ...@@ -2,6 +2,29 @@
<div> <div>
<div class="query-box" style="border-bottom: none;"> <div class="query-box" style="border-bottom: none;">
<ul> <ul>
<li>
<span>
<em>{{$t('system.quety_area')}}</em>
<el-select v-model="msg.Province" filterable @change="getProvinceList(msg.Province,2)"
:placeholder="$t('hotel.hotel_province')">
<el-option :key="0" :value="0" label="请选择"></el-option>
<el-option v-for="item in provinceList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
<el-select v-model="msg.City" filterable :placeholder="$t('hotel.hotel_city')">
<el-option :key="0" :value="0" label="请选择"></el-option>
<el-option v-for="item in cityList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</span>
</li>
<li>
<span><em>{{$t('admin.admin_company')}}</em>
<el-select filterable v-model='msg.OutBranchId' :placeholder="$t('pub.unlimitedSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='-1'></el-option>
<el-option v-for='item in companyList' :label='item.BName' :value='item.Id' :key="item.Id">
</el-option>
</el-select>
</span>
</li>
<li> <li>
<span> <span>
<em>酒店</em> <em>酒店</em>
...@@ -18,12 +41,15 @@ ...@@ -18,12 +41,15 @@
</span> </span>
</li> </li>
<li> <li>
<input type="button" class="normalBtn" value="温馨提示"
@click="showNotice=true,resetPageIndex(),GetHotelTipList()" />
<input type="button" class="normalBtn" value="查询" @click="getList()" /> <input type="button" class="normalBtn" value="查询" @click="getList()" />
</li> </li>
</ul> </ul>
</div> </div>
<div style="width: 100%;min-height:200px; overflow-x: auto;padding-bottom: 10px; " class="HotelQueryList" v-loading="loading"> <div style="width: 100%;min-height:200px; overflow-x: auto;padding-bottom: 10px; " class="HotelQueryList"
v-loading="loading">
<div class="hotelProductManage2_tableBox"> <div class="hotelProductManage2_tableBox">
<span style="color:#000000;background-color: #ff3737;padding:2px 4px;border-radius:5px">红日</span> <span style="color:#000000;background-color: #ff3737;padding:2px 4px;border-radius:5px">红日</span>
<span style="color:#000000;background-color: #ff99cc;padding:2px 4px;border-radius:5px">旺季</span> <span style="color:#000000;background-color: #ff99cc;padding:2px 4px;border-radius:5px">旺季</span>
...@@ -35,16 +61,20 @@ ...@@ -35,16 +61,20 @@
<tr> <tr>
<th width="300">酒店名称</th> <th width="300">酒店名称</th>
<th width="80"></th> <th width="80"></th>
<template v-if="dataList.length>0">
<th v-for="item in dataList[0].subList"> <th v-for="item in dataList[0].subList">
{{getDateList(item.DateStr)}} {{getDateList(item.DateStr)}}
</th> </th>
</template>
</tr> </tr>
<tr> <tr>
<th></th> <th></th>
<th></th> <th></th>
<template v-if="dataList.length>0">
<th v-for="item in dataList[0].subList"> <th v-for="item in dataList[0].subList">
{{getWeek(item.DateStr)}} {{getWeek(item.DateStr)}}
</th> </th>
</template>
</tr> </tr>
<tr v-for="item in dataList"> <tr v-for="item in dataList">
<td> <td>
...@@ -69,9 +99,101 @@ ...@@ -69,9 +99,101 @@
</tr> </tr>
</table> </table>
</div> </div>
<div class="combottomDiv HqCom_bottom" v-if="showNotice">
<el-form label-width="80px">
<el-row>
<el-col :span="20">
<el-form-item label="日期">
<el-date-picker class="w150" type="date" v-model="queryMsg.QStartDate"
:picker-options="pickerBeginDateBefore" value-format="yyyy-MM-dd" placeholder></el-date-picker>
<el-date-picker class="w150" type="date" v-model="queryMsg.QEndDate"
:picker-options="pickerBeginDateAfter" value-format="yyyy-MM-dd" placeholder></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<input type="button" class="normalBtn" value="查询" @click="resetPageIndex(),GetHotelTipList()" />
<input type="button" class="normalBtn" value="关闭" @click="showNotice=false" />
</el-col>
</el-row>
<div class="Hq_addDetail">
<el-row>
<el-col :span="9">
<el-form-item label="说明">
<el-input type="textarea" v-model="postMsg.TipContent" class="w600" maxlength="200"></el-input>
</el-form-item>
</el-col>
<el-col :span="15">
<input type="button" class="normalBtn" value="保存" @click="SaveHotelTip()" />
</el-col>
</el-row>
</div>
</el-form>
<div>
<table border="0" cellspacing="1" cellpadding="0" class="HouseTypeList Hq_addTable" style="width:97%;">
<tr>
<th>编号</th>
<th>内容</th>
<th>操作人</th>
<th>操作时间</th>
<th>操作</th>
</tr>
<template v-if="queryMsg.total>0">
<tr v-for="(item,index) in HotelTipList">
<td>{{item.Id}}</td>
<td>{{item.TipContent}}</td>
<td>{{item.CreateByName}}</td>
<td>{{item.CreateTimeStr}}</td>
<td>
<el-tooltip class="item" effect="dark" content="编辑" placement="top">
<el-button type="primary" icon="el-icon-edit" circle @click="GetHotelTip(item.Id)"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top">
<el-button type="danger" icon="el-icon-delete" circle @click="RemoveHotelTip(item.Id)"></el-button>
</el-tooltip>
</td>
</tr>
</template>
<tr v-else>
<td colspan="5">暂无数据...</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryMsg.currentPage"
:page-size="queryMsg.pageSize" layout="total,prev, pager, next, jumper" :total="queryMsg.total">
</el-pagination>
</div>
</div>
<el-dialog custom-class="w800" title="信息" :visible.sync="showHQinfo" center>
<el-form>
<table border="0" cellspacing="1" cellpadding="0" class="HouseTypeList Hq_addTable" style="width:100%;">
<tr>
<th>编号</th>
<th>内容</th>
<th>操作人</th>
<th>操作时间</th>
</tr>
<template v-if="queryMsg.total>0">
<tr v-for="(item,index) in HotelTipList">
<td>{{item.Id}}</td>
<td>{{item.TipContent}}</td>
<td>{{item.CreateByName}}</td>
<td>{{item.CreateTimeStr}}</td>
</tr>
</template>
<tr v-else>
<td colspan="5">暂无数据...</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryMsg.currentPage"
:page-size="queryMsg.pageSize" layout="total,prev, pager, next, jumper" :total="queryMsg.total">
</el-pagination>
</el-form>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="showHQinfo = false">关闭</button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
...@@ -80,11 +202,53 @@ ...@@ -80,11 +202,53 @@
HotelId: 0, HotelId: 0,
StartDate: new Date().Format("yyyy-MM-dd"), StartDate: new Date().Format("yyyy-MM-dd"),
EndDate: this.setEdate(), EndDate: this.setEdate(),
//只查询日本
Country: "651",
Province: 0,
City: 0,
OutBranchId: -1,
},
//分公司列表
companyList: [],
defaultSelectValue: 0,
//国家 省市 区
provinceList: [],
cityList: [],
district: [],
queryMsg: {
QStartDate: '',
QEndDate: '',
pageIndex: 1,
pageSize: 5,
currentPage: 1,
total: 0
},
postMsg: {
Id: 0,
TipContent: ''
}, },
//默认显示弹窗信息
showHQinfo: true,
//酒店温馨提示列表
HotelTipList: [],
HotelList: [], HotelList: [],
dataList: [], dataList: [],
isShow: false, isShow: false,
loading:false, loading: false,
showNotice: false,
pickerBeginDateBefore: {
disabledDate: time => {
let endTime = new Date(this.queryMsg.QStartDate)
return endTime.getTime() < time.getTime()
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.queryMsg.QEndDate)
return startTime.getTime() >= time.getTime()
}
}
}; };
}, },
methods: { methods: {
...@@ -101,7 +265,7 @@ ...@@ -101,7 +265,7 @@
} }
}, },
getList() { getList() {
this.loading=true; this.loading = true;
if (this.msg.StartDate == null) { if (this.msg.StartDate == null) {
this.msg.StartDate = new Date().Format("yyyy-MM-dd") this.msg.StartDate = new Date().Format("yyyy-MM-dd")
} }
...@@ -182,11 +346,123 @@ ...@@ -182,11 +346,123 @@
break; break;
} }
return classStr; return classStr;
},
handleCurrentChange(val) {
this.queryMsg.pageIndex = val;
this.GetHotelTipList();
},
resetPageIndex() {
this.queryMsg.pageIndex = 1;
this.queryMsg.currentPage = 1;
},
//获取酒店列表
GetHotelTipList() {
this.apipost(
"hoteltip_get_GetPageList", this.queryMsg,
res => {
if (res.data.resultCode == 1) {
this.HotelTipList = res.data.data.pageData;
this.queryMsg.total = res.data.data.count;
}
},
err => {}
);
},
SaveHotelTip() {
this.apipost(
"hoteltip_post_SetHotelTip", this.postMsg,
res => {
if (res.data.resultCode == 1) {
this.Success("保存成功!");
this.postMsg.Id = 0;
this.postMsg.TipContent = "";
this.GetHotelTipList();
} else {
this.Error("保存失败!");
} }
}, },
err => {}
);
},
RemoveHotelTip(Id) {
var that = this;
this.Confirm('是否要删除此数据?', function () {
that.apipost(
"hoteltip_post_RemoveHotelTip", {
ID: Id
},
res => {
if (res.data.resultCode == 1) {
that.Success("删除成功!");
that.GetHotelTipList();
} else {
that.Error("删除失败!");
}
},
err => {}
);
})
},
GetHotelTip(Id) {
this.apipost(
"hoteltip_get_GetHotelTip", {
ID: Id
},
res => {
if (res.data.resultCode == 1) {
this.postMsg.Id = res.data.data.Id;
this.postMsg.TipContent = res.data.data.TipContent;
} else {
this.Error("获取数据失败!");
}
},
err => {}
);
},
getProvinceList(ID, type) {
//根据省份获取城市
let msg = {
Id: ID
};
if (type == 1) {
this.msg.Province = 0;
this.msg.City = 0;
this.provinceList = [];
this.cityList = [];
} else if (type == 2) {
this.msg.City = 0;
this.cityList = [];
}
this.apipost(
"dict_post_Destination_GetChildList",
msg,
res => {
if (type == 1) {
this.provinceList = res.data.data;
} else if (type == 2) {
this.cityList = res.data.data;
}
},
err => {}
);
},
getBranchList() {
this.apipost('admin_get_BranchGetList', {
RB_Group_Id: '2',
Status: 0,
}, res => {
if (res.data.resultCode == 1) {
this.companyList = res.data.data;
}
}, err => {})
},
},
mounted() { mounted() {
this.getBranchList();
this.getProvinceList(651, 1);
this.GetHotelList(); this.GetHotelList();
this.getList(); this.getList();
this.GetHotelTipList();
} }
}; };
...@@ -264,4 +540,25 @@ ...@@ -264,4 +540,25 @@
margin: 0 10px 10px 0; margin: 0 10px 10px 0;
} }
.Hq_addDetail {
margin-top: 20px;
}
.Hq_addDetail .el-textarea__inner {
resize: none;
}
.Hq_addTable .el-button.is-circle {
padding: 5px;
}
.HqCom_bottom .el-form-item {
margin-bottom: 0
}
.HqCom_bottom {
height: 350px;
padding-top: 35px;
}
</style> </style>
...@@ -224,7 +224,7 @@ ...@@ -224,7 +224,7 @@
<span><em>{{$t('admin.admin_company')}}</em> <span><em>{{$t('admin.admin_company')}}</em>
<el-select filterable v-model='msg.OutBranchId' <el-select filterable v-model='msg.OutBranchId'
:placeholder="$t('pub.unlimitedSel')"> :placeholder="$t('pub.unlimitedSel')">
<el-option :label="$t('pub.unlimitedSel')" value='-1'></el-option> <el-option :label="$t('pub.unlimitedSel')" :value='-1'></el-option>
<el-option v-for='item in companyList' :label='item.BName' :value='item.Id' :key="item.Id"> <el-option v-for='item in companyList' :label='item.BName' :value='item.Id' :key="item.Id">
</el-option> </el-option>
</el-select> </el-select>
...@@ -313,7 +313,7 @@ ...@@ -313,7 +313,7 @@
Province: 0, Province: 0,
City: 0, City: 0,
loading: false, loading: false,
OutBranchId:0, OutBranchId:-1,
}, },
//分公司列表 //分公司列表
companyList: [], companyList: [],
......
...@@ -124,7 +124,9 @@ ...@@ -124,7 +124,9 @@
.carPlanOne .w320 { .carPlanOne .w320 {
margin: 5px 0; margin: 5px 0;
} }
.busInfo .w200{
padding:10px 0;
}
</style> </style>
<template> <template>
<div class="flexOne busInfo"> <div class="flexOne busInfo">
...@@ -274,7 +276,7 @@ ...@@ -274,7 +276,7 @@
<span class="subName" :class="{'spanCked':item.AccommodationType==subItem.Id}" <span class="subName" :class="{'spanCked':item.AccommodationType==subItem.Id}"
@click="AccommodationCLick(subItem.Id,index)">{{subItem.Name}}</span> @click="AccommodationCLick(subItem.Id,index)">{{subItem.Name}}</span>
<span v-if="subItem.Id==1 && item.AccommodationType==1"> <span v-if="subItem.Id==1 && item.AccommodationType==1">
<el-input class="w135" v-model="item.AccommodationRemark" placeholder="请输入外宿地址"></el-input> <el-input class="w135" style="margin-top:13px;" v-model="item.AccommodationRemark" placeholder="请输入外宿地址"></el-input>
</span> </span>
</span> </span>
</div> </div>
......
...@@ -370,9 +370,7 @@ ...@@ -370,9 +370,7 @@
if (SaveType == 3) { if (SaveType == 3) {
basicData.TravelInfoIsCopy = true; basicData.TravelInfoIsCopy = true;
} }
basicData.TeamType=this.TeamType; basicData.TeamType=this.TeamType;
console.log("basicData",basicData);
this.apipost( this.apipost(
"travel_post_SetTravelConfigInfo", "travel_post_SetTravelConfigInfo",
basicData, basicData,
...@@ -599,7 +597,6 @@ ...@@ -599,7 +597,6 @@
res => { res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
var tempData = res.data.data; var tempData = res.data.data;
console.log("tempData",tempData);
if (tempData.Feature != null) { if (tempData.Feature != null) {
this.FeatureData.ID = tempData.Feature.ID; this.FeatureData.ID = tempData.Feature.ID;
this.FeatureData.ConfigId = tempData.Feature.ConfigId; this.FeatureData.ConfigId = tempData.Feature.ConfigId;
......
...@@ -1466,6 +1466,7 @@ ...@@ -1466,6 +1466,7 @@
this.priceData.IsNew = true; this.priceData.IsNew = true;
} }
} }
}, },
//保存酒店使用情况 //保存酒店使用情况
saveHoteluseDetail() { saveHoteluseDetail() {
......
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