Commit 163e76f0 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/superman into master

parents e4460dda e350d00a
......@@ -179,13 +179,16 @@
</el-table-column>
<el-table-column fixed prop="Description" label="备注" > </el-table-column>
<el-table-column fixed="right" label="操作" width="120" >
<el-table-column fixed="right" label="操作" width="150" >
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" content="编辑" placement="top" >
<img src="../../../assets/img/setup/edit.png" alt="" class="imgstyle" @click="Edit(scope.row)">
</el-tooltip>
<el-tooltip class="item" effect="dark" content="删除" placement="top" >
<img src="../../../assets/img/setup/del.png" alt="" class="imgstyle" @click="delete_b(scope.row)">
</el-tooltip>
<el-tooltip class="item" effect="dark" content="报价" placement="top" >
<img src="../../../assets/img/userman/integral.png" alt="" class="imgstyle" @click="baojia(scope.row)">
</el-tooltip>
</template>
</el-table-column>
......@@ -351,6 +354,9 @@
},
baojia(row){
this.$router.push("/lineoffer?id="+row.Id)
},
delete_b(row){
let that=this;
that.Confirm("是否删除", function () {
......
<template>
<div class="hotelProductCalendar">
<div class="hotelProductCalendar_month">
<div onselectstart="return false;">
<span>{{calendar.data.date&&calendar.data.date.split('-')[0]}}</span>
<span>{{calendar.data.date&&calendar.data.date.split('-')[1]}}</span>
</div>
<div>
<span>线路报价表</span>
</div>
<div>
<i class="iconfont icon-cha" @click="calendarHide()"></i>
</div>
</div>
<div class="hotelProductCalendar_week">
<div>{{$t('hotel.hotel_Monday')}}</div>
<div>{{$t('hotel.hotel_Tuesday')}}</div>
<div>{{$t('hotel.hotel_Wednesday')}}</div>
<div>{{$t('hotel.hotel_Thursday')}}</div>
<div>{{$t('hotel.hotel_Friday')}}</div>
<div>{{$t('hotel.hotel_Saturday')}}</div>
<div>{{$t('hotel.hotel_Sunday')}}</div>
</div>
<div class="hotelProductCalendar_day">
<div v-for="(item, index) in calendar.data.days" :key="index">
<div :class="item.month===calendar.data.date?'nowMonth':'otherMonth'">
<span>{{item.date.getMonth()+1}}-{{item.date.getDate()}}</span>
</div>
<div v-if="item.data&&item.month===calendar.data.date" :class="stockColor(item.data.SubList)">
<template v-for="(childItem,childIndex) in item.data.SubList" >
<p>
<span title="点击修改信息" @click="goUrlA('2', item.day,item.data.SubList)">
{{childItem.DepartureTime}} <span class="text_underLine" style="margin:0 2px">{{childItem.Price}}</span> {{childItem.CarName}}
</span><br/>
</p>
</template>
</div>
<div class="noStock" v-if="!item.data&&item.month===calendar.data.date">
<p><span>暂无数据</span></p>
<p><span @click="goUrlA('1', item.day,[])">立即新增</span></p>
</div>
<div class="hasStock" v-if="item.month!==calendar.data.date">
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
'calendar': {
type: Object,
default: function () {
return {
show: false,
data: {}
}
}
}
},
methods: {
stockColor: function (type) {
if(type.length>0){
return 'hasStock hasStock_3'
}
// if (type === 1) {
// return 'hasStock hasStock_1'
// } else if (type === 2) {
// return 'hasStock hasStock_2'
// } else if (type === 3) {
// return 'hasStock hasStock_3'
// } else if (type === 4) {
// return 'hasStock hasStock_4'
// } else if (type === 5) {
// return 'hasStock hasStock_5'
// }
},
calendarHide: function () {
this.calendar.show = false
this.calendar.data = {}
},
goUrlA: function (type, item,BatchNumber) {
let data = JSON.parse(JSON.stringify(BatchNumber))
this.$emit('goEdit', type, item,data)
},
goUrlHotelTeam: function (item) {
this.$router.push({
name: 'HotelsTeam',
query: {
HotelId: item.data.HotelId,
StartDate: item.data.DayStr,
blank: 'y',
tab: '酒店相关团'
}
});
},
goUrlB: function (item) {
this.$router.push({
name: 'HotelTotalStock',
query: {
HotelId: this.hotelId,
blank: 'y',
tab: '总库存看板'
}
});
}
}
}
</script>
<style scoped>
.hotelProductCalendar {
width: 100%;
font-size: 0px;
box-sizing: border-box;
background-color: #f5f5f5;
}
.hotelProductCalendar_month {
position: relative;
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
background: #e95252;
border-radius: 4px 4px 0 0;
}
.hotelProductCalendar_month>div {
display: inline-block;
height: 50px;
line-height: 50px;
vertical-align: top;
}
.hotelProductCalendar_month>div:nth-child(1)>i {
display: inline-block;
font-size: 22px;
color: #ff7e7e;
cursor: pointer;
vertical-align: middle;
}
.hotelProductCalendar_month>div:nth-child(1)>input {
display: inline-block;
width: 60px;
height: 30px;
border-radius: 17px;
outline: none;
border: none;
color: #fff;
background: transparent;
font-size: 18px;
text-align: center;
vertical-align: middle;
}
.hotelProductCalendar_month>div:nth-child(1)>span {
display: inline-block;
padding: 0 5px;
font-size: 18px;
color: #fff;
vertical-align: middle;
}
.hotelProductCalendar_month>div:nth-child(2)>span {
display: inline-block;
padding: 0 20px;
font-size: 18px;
color: #fff;
}
.hotelProductCalendar_month>div:nth-child(3) {
position: absolute;
z-index: 1;
right: 0px;
top: 0px;
width: 50px;
text-align: center;
}
.hotelProductCalendar_month>div:nth-child(3)>i {
font-size: 12px;
color: #ffffff;
cursor: pointer;
}
.hotelProductCalendar_week {
width: 100%;
height: 28px;
background-color: #3fa783;
}
.hotelProductCalendar_week>div {
display: inline-block;
width: 14.2857%;
height: 28px;
line-height: 28px;
text-align: center;
font-size: 14px;
color: #FFFFFF;
}
.hotelProductCalendar_day {
width: 100%;
border-left: 1px solid #dddddd;
}
.hotelProductCalendar_day>div {
display: inline-block;
width: 14.2857%;
height: 148px;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
vertical-align: top;
}
.hotelProductCalendar_day>div>div:nth-child(1) {
width: 100%;
height: 28px;
line-height: 28px;
text-align: center;
}
.hotelProductCalendar_day>div>div:nth-child(1)>span {
font-size: 14px;
}
.hotelProductCalendar_day>div>.nowMonth {
background-color: #CCCCCC;
}
.hotelProductCalendar_day>div>.nowMonth>span {
color: #000000;
}
.hotelProductCalendar_day>div:nth-child(7n-1)>.nowMonth>span {
color: #e95252;
}
.hotelProductCalendar_day>div:nth-child(7n)>.nowMonth>span {
color: #e95252;
}
.hotelProductCalendar_day>div>.otherMonth {
background-color: #DDDDDD;
}
.hotelProductCalendar_day>div>.otherMonth>span {
color: #999999;
}
.hotelProductCalendar_day>div>.hasStock {
width: 100%;
height: 120px;
overflow-y: auto;
}
.hotelProductCalendar_day>div>.hasStock>p {
width: 100%;
min-height: 20px;
padding: 0 10px;
line-height: 19px;
font-size: 12px;
border-bottom: 1px dashed #ccc;
}
.hotelProductCalendar_day>div>.hasStock_1 {
color: #FFFFFF;
background-color: #ff3737;
}
.hotelProductCalendar_day>div>.hasStock_2 {
background-color: #ff99cc;
}
.hotelProductCalendar_day>div>.hasStock_3 {
background-color: #bcd6ee;
}
.hotelProductCalendar_day>div>.hasStock_4 {
background-color: #ffffff;
}
.hotelProductCalendar_day>div>.hasStock_5 {
background-color: #02F78E;
}
.hotelProductCalendar_day>div>.noStock {
padding: 30px 0 0 0;
width: 100%;
height: 120px;
}
.hotelProductCalendar_day>div>.noStock>p:nth-child(1) {
width: 100%;
font-size: 16px;
color: #999999;
text-align: center;
}
.hotelProductCalendar_day>div>.noStock>p:nth-child(2) {
margin: 10px 0 0 0;
width: 100%;
font-size: 12px;
color: #00C6FF;
text-align: center;
cursor: pointer;
}
.text_underLine {
cursor: pointer;
text-decoration: underline
}
</style>
<template>
<div class="hotelProductManage2">
<div class="hotelProductManage2_btnList">
<div class="btn_check" @click="getMonths()">{{$t('pub.searchBtn')}}</div>
<div class="btn_check" @click="goEdit('1')">{{$t('ground.piliangbianji')}}</div>
</div>
<div class="hotelProductManage2_condition">
<div>
<em>{{$t('ground.qishiyue')}}</em>
<el-date-picker v-model="condition.month" type="month" value-format="yyyy-MM" :clearable="false"
:placeholder="$t('ground.xuanzeyue')"></el-date-picker>
</div>
</div>
<div class="hotelProductManage2_calendar">
<div class="hotelProductManage2_calendarItem" v-for="(item, index) in dayList" :key="index">
<div class="calendarItem_month" :title="$t('ground.dianjichakanxq')" @click="calendarShow(item, index)">
{{item.date}}</div>
<div class="hotelproductCkbox">
<el-checkbox v-model="item.isCked" @change="changeHotelStatus(item,index)">全选</el-checkbox>
</div>
<div class="calendarItem_week">
<div>{{$t('hotel.hotel_Sunday')}}</div>
<div>{{$t('hotel.hotel_Monday')}}</div>
<div>{{$t('hotel.hotel_Tuesday')}}</div>
<div>{{$t('hotel.hotel_Wednesday')}}</div>
<div>{{$t('hotel.hotel_Thursday')}}</div>
<div>{{$t('hotel.hotel_Friday')}}</div>
<div>{{$t('hotel.hotel_Saturday')}}</div>
</div>
<div class="calendarItem_day">
<div v-for="(subItem, index2) in item.days" :key="index2"
:class="subItem.month===item.date?'nowMonth':'otherMonth'">
<div :class="stockColor(item,subItem)"
:style="subItem.month===item.date&&msg2.DateList.indexOf(subItem.day)!==-1?'border-color: green':''"
@click="calendarDayOn(item, subItem)">
<el-popover placement="bottom" :title="$t('ground.baojiaxinxi')" width="600" trigger="hover"
v-if="subItem.data&&subItem.data.SubList && subItem.data.SubList[0]">
<template>
<div style="text-align: right;">
<a style="text-decoration:underline;cursor:pointer;color:blue;"
@click="goEdit('2', subItem.day,subItem.data.SubList)">修改</a>
</div>
<table style="margin-left:3px;padding-top:2px;width:600px;">
<tr>
<th width="100" style="text-align:center">出发时间</th>
<th width="100" style="text-align:center">价格</th>
<th width="50" style="text-align:center">订单数</th>
<th width="80" style="text-align:center">车名称</th>
<th width="140" style="text-align:center">车型号</th>
<th width="60" style="text-align:center">品牌</th>
<th width="130" style="text-align:center">乘坐人数</th>
</tr>
<tr v-for="(childItem,childIndex) in subItem.data.SubList" :key="childIndex">
<td style="text-align:center">
{{childItem.DepartureTime}}
</td>
<td style="text-align:center;white-space:nowrap; ">
{{childItem.Price}}
</td>
<td style="text-align:center;white-space:nowrap; ">
{{childItem.EnrollSeat}}
</td>
<td style="text-align:center;white-space:nowrap; ">
{{childItem.CarName}}
</td>
<td style="text-align:center">
{{childItem.CarModel}}
</td>
<td style="text-align:center">
{{childItem.BrandName}}
</td>
<td style="text-align:center">
{{childItem.GuestNum}}
</td>
</tr>
</table>
</template>
<span slot="reference">{{subItem.date.getDate()}}</span>
</el-popover>
<template v-else>
{{subItem.date.getDate()}}
</template>
</div>
</div>
</div>
</div>
<div class="hotelProductManage2_calendarBox" v-show="calendar.show">
<lineProductCalendar ref="lineProductCalendar" :calendar="calendar" @goEdit="goEdit"></lineProductCalendar>
</div>
</div>
<!-- 页面编辑 -->
<div class="hotelProductManage2_edit2">
<div class="hotelProductManage2_edit2_header">
<div>{{$t('restaurant.res_bidManage')}}</div>
<div>
<input type="button" :value="$t('ground.piliangshanchu')" @click="delete2Reset()" class="hollowbtn" />
<input type="button" :value="$t('pub.saveBtn')" @click="edit2Save()" class="normalBtn" />
</div>
</div>
<el-form :model="msg2" :rules="rules2" :inline="true" label-width="100px" ref="hotelProductForm2"
class="hotelProductManage2_edit2_form">
<el-row>
<el-col :span="24" class="HotelProductEdit_date">
<el-form-item :label="$t('ground.yixuanriqi')" 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;" v-for="(x,y) in msg2.PlanList" :key="y">
<el-col :span="4" >
<el-form-item label="出发时间">
<el-time-picker
v-model="x.DepartureTime"
value-format='HH:mm'
format='HH:mm'
placeholder="选择时间">
</el-time-picker>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="车辆">
<span>{{x.CarName!=''?x.CarName:'无'}}</span>
<input type="button" value="选择" @click="cartanc(y,2)" class="normalBtn" />
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="价格">
<el-input v-model="x.Price" placeholder="请输入价格" type="number"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="成本价">
<el-input v-model="x.CostPrice" placeholder="请输入成本价" type="number"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="b2c价格">
<el-input v-model="x.B2CPrice" placeholder="请输入b2c价格" type="number"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-tooltip class="item" effect="dark" content="删除" placement="top" v-if="y!=0" >
<img src="../../../assets/img/setup/del.png" v-if="y!=0" alt="" class="imgstyle" @click="delete_b(y,2)">
</el-tooltip>
</el-col>
</el-row>
<input type="button" value="添加" style="margin-left:30px" @click="addcarlist_o(2)" class="hollowbtn" />
</el-form>
</div>
<!-- 弹出编辑 -->
<div class="hotelProductManage2_edit" v-show="editShow">
<div class="hotelProductManage2_edit_header">
<div>{{$t('restaurant.res_bidManage')}}</div>
<div>
<div @click="editCanel()">{{$t('pub.cancelBtn')}}</div>
<div @click="editSave()">{{$t('pub.saveBtn')}}</div>
</div>
</div>
<el-form :model="msg" :rules="rules" :inline="true" label-width="130px" ref="hotelProductForm"
class="hotelProductManage2_edit_form">
<el-row>
<el-col :span="6">
<el-form-item :label="$t('ground.riqixuanzfs')" prop="DayType">
<el-select v-model="msg.DayType" :placeholder="$t('pub.pleaseSel')" @change="dayTypeChange">
<el-option :label="$t('ground.annian')" value="1"></el-option>
<el-option :label="$t('ground.anyue')" value="2"></el-option>
<el-option :label="$t('ground.anzhou')" value="3"></el-option>
<el-option :label="$t('ground.zidingyi')" value="4"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" class="HotelProductEdit_date">
<div v-show="msg.DayType==='1'||msg.DayType==='3'">
<el-form-item :label="$t('pub.year')" prop="Year">
<el-date-picker v-model="msg.Year" type="year" value-format="yyyy" :placeholder="$t('pub.pleaseSel')">
</el-date-picker>
</el-form-item>
</div>
<div v-show="msg.DayType==='2'">
<el-form-item :label="$t('pub.month')" prop="Month">
<el-date-picker v-model="msg.Month" type="month" value-format="yyyy-MM"
:placeholder="$t('pub.pleaseSel')">
</el-date-picker>
</el-form-item>
</div>
<div v-show="msg.DayType==='3'">
<el-form-item :label="$t('pub.month')" label-width="30px" prop="Month">
<el-select v-model="msg.Month" :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('ground.yuefen2[0]')" value="01"></el-option>
<el-option :label="$t('ground.yuefen2[1]')" value="02"></el-option>
<el-option :label="$t('ground.yuefen2[2]')" value="03"></el-option>
<el-option :label="$t('ground.yuefen2[3]')" value="04"></el-option>
<el-option :label="$t('ground.yuefen2[4]')" value="05"></el-option>
<el-option :label="$t('ground.yuefen2[5]')" value="06"></el-option>
<el-option :label="$t('ground.yuefen2[6]')" value="07"></el-option>
<el-option :label="$t('ground.yuefen2[7]')" value="08"></el-option>
<el-option :label="$t('ground.yuefen2[8]')" value="09"></el-option>
<el-option :label="$t('ground.yuefen2[9]')" value="10"></el-option>
<el-option :label="$t('ground.yuefen2[10]')" value="11"></el-option>
<el-option :label="$t('ground.yuefen2[11]')" value="12"></el-option>
</el-select>
</el-form-item>
</div>
<div v-show="msg.DayType==='3'">
<el-form-item :label="$t('ground.zhou')" label-width="30px" prop="Week">
<el-select v-model="msg.Week" :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('ground.xingqiji[0]')" value="0"></el-option>
<el-option :label="$t('ground.xingqiji[1]')" value="1"></el-option>
<el-option :label="$t('ground.xingqiji[2]')" value="2"></el-option>
<el-option :label="$t('ground.xingqiji[3]')" value="3"></el-option>
<el-option :label="$t('ground.xingqiji[4]')" value="4"></el-option>
<el-option :label="$t('ground.xingqiji[5]')" value="5"></el-option>
<el-option :label="$t('ground.xingqiji[6]')" value="6"></el-option>
</el-select>
</el-form-item>
</div>
<div v-show="msg.DayType==='4'">
<el-form-item :label="$t('ground.zidingyi')" prop="StartDate">
<el-date-picker v-model="msg.StartDate" type="date" :placeholder="$t('ground.qingxuanzekssj')"
format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<em>-</em>
<el-form-item label="" prop="EndDate">
<el-date-picker v-model="msg.EndDate" type="date" :placeholder="$t('ground.qingxuanzejssj')"
format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row style="padding: 20px 0 0 0;border-top: 1px dashed #ccc;" v-for="(x,y) in msg.PlanList" :key="y">
<el-col :span="4" >
<el-form-item label="出发时间">
<el-time-picker
v-model="x.DepartureTime"
value-format='HH:mm'
format='HH:mm'
placeholder="选择时间">
</el-time-picker>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="车辆">
<span>{{x.CarName!=''?x.CarName:'无'}}</span>
<input type="button" value="选择" @click="cartanc(y,1)" class="normalBtn" />
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="价格">
<el-input v-model="x.Price" placeholder="请输入价格" type="number"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="成本价">
<el-input v-model="x.CostPrice" placeholder="请输入成本价" type="number"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-form-item label="b2c价格">
<el-input v-model="x.B2CPrice" placeholder="请输入b2c价格" type="number"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" >
<el-tooltip class="item" effect="dark" content="删除" placement="top" v-if="y!=0" >
<img src="../../../assets/img/setup/del.png" v-if="y!=0" alt="" class="imgstyle" @click="delete_b(y,1)">
</el-tooltip>
</el-col>
</el-row>
<input type="button" value="添加" style="margin-left:30px" @click="addcarlist_o(1)" class="hollowbtn" />
</el-form>
</div>
<el-dialog
title="车辆选择"
:visible.sync="dialogVisible"
width="70%"
>
<div class="query-box">
<ul>
<li><span><em>车辆类型</em><el-select filterable v-model='carmsg.CarType' >
<el-option label="不限" value='0'></el-option>
<el-option v-for='item in companyList'
:label='item.Name'
:value='item.Id'
:key='item.Id'>
</el-option>
</el-select>
</span></li>
<li><span><em>车辆名称</em><el-input v-model='carmsg.CarName' class="permiss-input"></el-input></span></li>
<li><span><em>车辆品牌</em><el-input v-model='carmsg.BrandName' class="permiss-input"></el-input></span></li>
<li>
<input type="button" class="hollowFixedBtn" value="查询" @click="getcarList" />
</li>
<li></li>
</ul>
</div>
<el-table
:data="carList"
border
style="width: 100%">
<el-table-column prop="CarName" label="名称">
<template slot-scope="scope">
<div style="display: flex;align-items: center;">
<div class="app-image" :style="{backgroundImage:'url(' + scope.row.CarLogo + ')',backgroundSize:'cover'}"></div>
<div flex="dir:left cross:center">
{{scope.row.CarName}}
</div>
</div>
</template>
</el-table-column>
<el-table-column prop="CarTypeName" label="类型"> </el-table-column>
<el-table-column prop="CarModel" label="型号"> </el-table-column>
<el-table-column prop="CarColor" label="颜色"> </el-table-column>
<el-table-column prop="BrandName" label="品牌"> </el-table-column>
<el-table-column prop="CarNo" label="车牌号"> </el-table-column>
<el-table-column prop="GuestNum" label="荷载人数"> </el-table-column>
<el-table-column label="操作" width="100" >
<template slot-scope="scope">
<div class="btn_check" style="display: inline-block;
margin: 0 0 0 10px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #E95252;
background: #fff;
border: 1px solid #E95252;
border-radius: 15px;
cursor: pointer;"
@click="carxuanzhe(scope.row)">选择</div>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">关 闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import lineProductCalendar from './lineProductCalendar';
// import commonHotelLog from "../../commonPage/commonHotelLog.vue";
export default {
components: {
lineProductCalendar,
//日志组件
// commonHotelLog
},
data() {
var emptyJudge = (rule, value, callback) => {
let regPos = /^\d+(\.\d+)?$/;
if (!regPos.test(value)) {
this.$message.error(rule.message)
callback(new Error())
} else {
callback()
}
}
var arrJudge = (rule, value, callback) => {
if (value.length === 0) {
this.$message.error(rule.message)
callback(new Error())
} else {
callback()
}
}
var dateJudge = (rule, value, callback) => {
if (this.msg.Year === null) {
this.msg.Year = ''
}
if (this.msg.Month === null) {
this.msg.Month = ''
}
if (this.msg.DayType === '1') {
if (this.msg.Year.toString().trim() === '' && rule.field === 'Year') {
this.$message.error(this.$t('ground.qingxuanzn'))
callback(new Error())
} else {
callback()
}
} else if (this.msg.DayType === '2') {
if (this.msg.Month.toString().trim() === '' && rule.field === 'Month') {
this.$message.error(this.$t('ground.qingxuanzy'))
callback(new Error())
} else {
callback()
}
} else if (this.msg.DayType === '3') {
if (this.msg.Year.toString().trim() === '' && rule.field === 'Year') {
this.$message.error(this.$t('ground.qingxuanzn'))
callback(new Error())
} else if (this.msg.Week.toString().trim() === '' && rule.field === 'Week') {
this.$message.error(this.$t('ground.qingxuanzz'))
callback(new Error())
} else {
callback()
}
} else if (this.msg.DayType === '4') {
if (this.msg.StartDate.toString().trim() === '' && rule.field === 'StartDate') {
this.$message.error(this.$t('ground.qingxuanzekssj'))
callback(new Error())
} else if (this.msg.EndDate.toString().trim() === '' && rule.field === 'EndDate') {
this.$message.error(this.$t('ground.qingxuanzejssj'))
callback(new Error())
} else {
callback()
}
}
}
return {
hotelId: '0',
dialogVisible:false,
condition: {
month: ''
},
hotelInfo: {
HotelName: '',
TotalInventory: '',
Validity: ''
},
dayList: [],
calendar: {
num: 0,
show: false,
data: {}
},
editShow: false,
msg: {
ProductId:'0',
DayType: '4',
StartDate: '',
EndDate: '',
Year: '',
Month: '',
Week: '',
DateList: [],
PlanList:[
{DepartureTime:'',CarId:'',Price:'', CostPrice:'',B2CPrice:'',CarName:''}
]
},
msg2: {
ProductId: '0',
DayType: '5',
StartDate: '',
EndDate: '',
Year: '',
Month: '',
Week: '',
DateList: [],
PlanList:[
{DepartureTime:'',CarId:'',Price:'', CostPrice:'',B2CPrice:'',CarName:''}
]
},
carmsg:{
CarType:'0',
CarName:'',
BrandName:'',
},
rules: {
InventoryType: {
validator: emptyJudge,
message: this.$t("ground.fromrule[0]"),
trigger: 'blur'
},
DayType: {
validator: emptyJudge,
message: this.$t("ground.fromrule[1]"),
trigger: 'blur'
},
Year: {
validator: dateJudge,
message: this.$t("ground.fromrule[2]"),
trigger: 'blur'
},
Month: {
validator: dateJudge,
message: this.$t("ground.fromrule[3]"),
trigger: 'blur'
},
Week: {
validator: dateJudge,
message: this.$t("ground.fromrule[4]"),
trigger: 'blur'
},
StartDate: {
validator: dateJudge,
message: this.$t("ground.fromrule[5]"),
trigger: 'blur'
},
EndDate: {
validator: dateJudge,
message: this.$t("ground.fromrule[6]"),
trigger: 'blur'
},
Inventory: {
validator: emptyJudge,
message: this.$t("ground.fromrule[7]"),
trigger: 'blur'
},
CostPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[8]"),
trigger: 'blur'
},
BidroomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[9]"),
trigger: 'blur'
},
SingleroomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[10]"),
trigger: 'blur'
},
ChildNotBedPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[11]"),
trigger: 'blur'
},
AddBedPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[12]"),
trigger: 'blur'
},
DriverRoomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[13]"),
trigger: 'blur'
},
GuideRoomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[14]"),
trigger: 'blur'
},
CurrencyId: {
validator: emptyJudge,
message: this.$t("ground.fromrule[15]"),
trigger: 'blur'
},
CurrentRate: {
validator: emptyJudge,
message: this.$t("ground.fromrule[16]"),
trigger: 'blur'
},
WeekendAddPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[17]"),
trigger: 'blur'
},
InteriorAddPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule[18]"),
trigger: 'blur'
},
},
rules2: {
InventoryType: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[0]"),
trigger: 'blur'
},
DateList: {
validator: arrJudge,
message: this.$t("ground.fromrule2[1]"),
trigger: 'blur'
},
Inventory: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[2]"),
trigger: 'blur'
},
CostPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[3]"),
trigger: 'blur'
},
BidroomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[4]"),
trigger: 'blur'
},
SingleroomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[5]"),
trigger: 'blur'
},
ChildNotBedPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[6]"),
trigger: 'blur'
},
AddBedPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[7]"),
trigger: 'blur'
},
DriverRoomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[8]"),
trigger: 'blur'
},
GuideRoomPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[9]"),
trigger: 'blur'
},
CurrencyId: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[10]"),
trigger: 'blur'
},
CurrentRate: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[11]"),
trigger: 'blur'
},
WeekendAddPrice: {
validator: emptyJudge,
message: this.$t("ground.fromrule2[12]"),
trigger: 'blur'
},
},
companyList:[],//车辆类型
carList:[],//车辆列表
msgindex:0,
msg2index:0,
msgtype:1,//1是页面下面的选择 2是弹窗的选择
}
},
methods: {
//库存类型
stockColor: function (item, item2, childItem) {
if (item.date === item2.month && item2.hasOwnProperty('data')) {
let type = item2.data.SubList.length;
if(type>0){
return 'hasStock_1';
}
// if (type === 1) {
// return 'hasStock_1';
// } else if (type === 2) {
// return 'hasStock_2';
// } else if (type === 3) {
// return 'hasStock_3';
// } else if (type === 4) {
// return 'hasStock_4';
// } else if (type === 5) {
// return 'hasStock_5';
// }
} else {
return;
}
},
//日历点击事件
calendarDayOn: function (item, item2) {
if (item.date === item2.month) {
let dayIndex = this.msg2.DateList.indexOf(item2.day)
if (dayIndex === -1) {
this.msg2.DateList.push(item2.day)
this.msg2.DateList.sort()
} else {
this.msg2.DateList.splice(dayIndex, 1)
}
}
},
calendarDayOff: function (item) {
let dayIndex = this.msg2.DateList.indexOf(item)
this.msg2.DateList.splice(dayIndex, 1)
},
getData: function (date, key) {
this.apipost('car_get_GetLineProductPriceMonthStatistics', {
ProductId: this.hotelId,
Year: date.split('-')[0],
Month: date.split('-')[1]
}, res => {
if (res.data.resultCode === 1) {
let json = res.data.data;
for (let i = 0; i < this.dayList[key].days.length; i++) {
for (let j = 0; j < json.length; j++) {
if (this.dayList[key].days[i].day === json[j].DayStr) {
this.dayList[key].days[i]['data'] = json[j]
}
}
}
console.log(this.dayList[key])
if (key === this.calendar.num) {
this.$set(this.calendar, 'data', this.dayList[this.calendar.num])
}
this.$forceUpdate();
}
})
},
getCalendarDays: function (date, key) {
let month = new Date(date).Format('yyyy-MM')
let tempMonth = this.$calendarUtils.createCalendar_V2(date).DayArray;
let days = [];
for (let i = 0; i < tempMonth.length; i++) {
let month = tempMonth[i].day.Format('yyyy-MM');
let day = tempMonth[i].day.Format('yyyy-MM-dd');
days.push({
date: tempMonth[i].day,
month: month,
day: day
});
};
this.dayList[key] = {
date: month,
days: days,
isCked: false
};
this.getData(date, key);
},
getMonths: function () {
let month = this.condition.month + '-1'
for (let i = 0; i < 4; i++) {
if (i !== 0) {
let newDate = new Date(month).setDate(32);
month = new Date(newDate).Format('yyyy-MM') + '-1';
}
this.getCalendarDays(month, i);
}
},
calendarShow: function (item, index) {
this.calendar.num = index;
this.calendar.data = item;
this.calendar.show = true;
},
addcarlist_o(type){
let obj = {DepartureTime:'',CarId:'',Price:'', CostPrice:'',B2CPrice:'',CarName:''}
if(type==1){
this.msg.PlanList.push(obj)
}else if(type==2){
this.msg2.PlanList.push(obj)
}
},
delete_b(index,y){//删除
if(y == 1){
this.msg.PlanList.splice(index,1)
}else if(y==2){
this.msg2.PlanList.splice(index,1)
}
},
carxuanzhe(row){
if(this.msgtype == 1){
this.msg.PlanList[this.msgindex].CarId = row.Id
this.msg.PlanList[this.msgindex].CarName = row.CarName
}else if(this.msgtype == 2){
this.msg2.PlanList[this.msg2index].CarId = row.Id
this.msg2.PlanList[this.msg2index].CarName = row.CarName
}
this.dialogVisible = false
},
cartanc(y,type){//选择车辆弹窗
if(type==1){
this.msgindex = y;
}else if(type==2){
this.msg2index = y;
}
this.msgtype = type
this.dialogVisible = true
},
getcarList(){
this.apipost('car_get_GetCarInfoList', this.carmsg, res => {
if (res.data.resultCode === 1) {
this.carList = res.data.data
} else {
this.Error(res.data.message)
}
})
},
getCompany() {//车辆类型
this.apipost('car_get_GetCarCustomTypeEnumList', {}, res => {
if(res.data.resultCode == 1) {
this.companyList = res.data.data;
}
}, err => {})
},
// 日期类型切换
dayTypeChange: function (val) {
this.msg.Year = ''
this.msg.Month = ''
this.msg.Week = ''
this.msg.StartDate = ''
this.msg.EndDate = ''
},
// 打开编辑窗口
goEdit: function (type, date, BatchNumber) {
let nowDate = new Date().Format('yyyy-MM-dd');
this.msg.StartDate = date === undefined ? nowDate : date;
this.msg.EndDate = date === undefined ? nowDate : date;
if (type === '2' && date) {
this.msg.DayType = '4'
this.msg.PlanList = BatchNumber
}
this.$forceUpdate();
this.editShow = true;
},
// 取消按钮
editCanel: function () {
this.editShow = false;
this.$refs['hotelProductForm'].resetFields();
},
// 弹窗初始化
tancchushih(){
this.msg= {
ProductId:this.hotelId,
DayType: '4',
StartDate: '',
EndDate: '',
Year: '',
Month: '',
Week: '',
DateList: [],
PlanList:[
{DepartureTime:'',CarId:'',Price:'', CostPrice:'',B2CPrice:'',CarName:''}
]
};
},
// 保存按钮
editSave: function () {
this.$refs['hotelProductForm'].validate((valid) => {
if (valid) {
this.apipost('car_post_SetLineProductPrice', this.msg, res => {
if (res.data.resultCode === 1) {
this.Success(this.$t('ground.bianjichenggong'))
this.getMonths()
this.editShow = false
this.tancchushih()//初始化数据
} else {
this.Error(res.data.message)
}
})
} else {
return false;
}
});
},
//批量删除
delete2Reset: function () {
var that = this;
if(that.msg2.DateList.length==0){
that.Error('选择要删除的日期')
return false
}
this.Confirm(this.$t('tips.shifoushanchu'), function () {
that.apipost('car_post_DelLineProductPrice', {
ProductId:that.hotelId,
DateList:that.msg2.DateList
}, res => {
if (res.data.resultCode == 1) {
that.Success(res.data.message)
that.getMonths();
that.msg2.DateList= []
} else {
that.Error(res.data.message)
}
}, err => {})
});
},
// 页面编辑保存
edit2Save: function () {
this.$refs['hotelProductForm2'].validate((valid) => {
if (valid) {
this.apipost('car_post_SetLineProductPrice', this.msg2, res => {
if (res.data.resultCode === 1) {
this.Success(this.$t('ground.bianjichenggong'))
this.getMonths();
this.msg2= {//初始化数据
ProductId:this.hotelId,
DayType: '5',
StartDate: '',
EndDate: '',
Year: '',
Month: '',
Week: '',
DateList: [],
PlanList:[
{DepartureTime:'',CarId:'',Price:'', CostPrice:'',B2CPrice:'',CarName:''}
]
};
} else {
this.Error(res.data.message)
}
})
} else {
return false;
}
});
},
//增加全选
changeHotelStatus(item, index) {
if (item.isCked) {
item.days.forEach(x => {
if (x.month == item.date) {
if (this.msg2.DateList.indexOf(x.day) == -1) {
this.msg2.DateList.push(x.day);
}
}
})
} else {
item.days.forEach(x => {
this.msg2.DateList.forEach((y, index) => {
if (x.day == y) {
this.msg2.DateList.splice(index, 1)
}
})
})
}
}
},
created: function () {
this.hotelId = this.$route.query.id === undefined ? '0' : this.$route.query.id;
this.msg.ProductId = this.$route.query.id === undefined ? '0' : this.$route.query.id;
this.msg2.ProductId = this.$route.query.id === undefined ? '0' : this.$route.query.id;
this.condition.month = new Date().Format('yyyy-MM');
let nowDate = new Date().Format('yyyy-MM-dd');
this.msg.DayType = '4';
this.msg.StartDate = nowDate;
this.msg.EndDate = nowDate;
},
mounted: function () {
this.getMonths();
this.getcarList()//获取车辆列表
this.getCompany()//获取车辆类型
}
}
</script>
<style>
.hotelProductManage2 {
padding: 20px 0;
}
.hotelproductCkbox {
width: 10%;
height: 30px;
float: right;
margin: 5px 20px 0 0;
}
.hotelProductManage2>.hotelProductManage2_btnList {
position: fixed;
top: 36px;
right: 20px;
text-align: right;
margin: 20px 0 0 0;
}
.hotelProductManage2_btnList>.btn_check {
display: inline-block;
margin: 0 0 0 10px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #E95252;
background: #fff;
border: 1px solid #E95252;
border-radius: 15px;
cursor: pointer;
}
.hotelProductManage2_condition {
padding: 0 0 0 0;
text-align: right;
}
.hotelProductManage2_condition>div {
display: inline-block;
text-align: left;
}
.hotelProductManage2_condition>div>em {
margin: 0 5px 0 0;
font-size: 14px;
color: #666666;
}
.hotelProductManage2_tableBox {
padding: 20px 0;
}
.hotelProductManage2_table {
width: 100%;
color: #333;
border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc;
}
.hotelProductManage2_table tr {
background: #fff;
}
.hotelProductManage2_table tr th {
background: #e6e6e6;
height: 40px;
font-size: 12px;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.hotelProductManage2_table tr td {
height: 40px;
font-size: 12px;
text-align: center;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.hotelProductManage2_calendar {
position: relative;
padding: 20px 0;
width: 100%;
border-top: 1px solid #E5E5E5;
border-bottom: 1px solid #E5E5E5;
}
.hotelProductManage2_calendarBox {
position: absolute;
z-index: 2;
left: 0px;
top: 0px;
padding: 20px 0;
width: 100%;
}
.hotelProductManage2_calendarItem {
display: inline-block;
margin: 0 5px;
width: 24%;
/* width:438px; */
background-color: #fff;
border: 1px solid #d1d1d1;
border-radius: 4px;
font-size: 0px;
}
.hotelProductManage2_calendarItem:hover {
box-shadow: 0px 0px 5px 5px #E5E5E5;
}
.hotelProductManage2_calendarItem>.calendarItem_month {
width: 50%;
height: 30px;
float: left;
margin-left: 110px;
line-height: 30px;
text-align: center;
font-size: 14px;
cursor: pointer;
text-decoration: underline;
}
.hotelProductManage2_calendarItem>.calendarItem_week {
display: flex;
justify-content: space-around;
padding: 10px 0;
width: 100%;
height: 36px;
}
.hotelProductManage2_calendarItem>.calendarItem_week>div {
display: inline-block;
width: 14.2%;
height: 16px;
line-height: 16px;
text-align: center;
font-size: 14px;
color: #999999;
}
.hotelProductManage2_calendarItem>.calendarItem_day {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
padding-bottom: 20px;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div {
display: inline-block;
padding: 15px 0;
width: 14.2%;
position: relative;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div>div {
margin: auto;
width: 30px;
height: 30px;
text-align: center;
line-height: 26px;
font-size: 14px;
border: 2px solid transparent;
border-radius: 50%;
}
.hotelProductManage2_calendarItem>.calendarItem_day>.nowMonth>div {
color: #000000;
cursor: pointer;
}
.hotelProductManage2_calendarItem>.calendarItem_day>.otherMonth>div {
color: gainsboro;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_1 {
background-color: #ff6363;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_2 {
background-color: #ff99cc;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_3 {
background-color: #bcd6ee;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_4 {
background-color: #DDDDDD;
}
.hotelProductManage2_calendarItem>.calendarItem_day>div>.hasStock_5 {
background-color: #02F78E;
}
/* 页面编辑 */
.hotelProductManage2_edit2 {
margin: 20px 0 0 0;
padding: 10px 10px 0;
width: 100%;
border-radius: 4px;
border: 1px solid #E5E5E5;
background-color: #FFFFFF;
overflow: auto;
}
.hotelProductManage2_edit2>.hotelProductManage2_edit2_header {
position: relative;
width: 100%;
height: 30px;
}
.hotelProductManage2_edit2_header>div:nth-child(1) {
display: inline-block;
padding: 0 20px;
width: 200px;
height: 30px;
line-height: 30px;
font-size: 16px;
border-left: 3px solid #E95252;
}
.hotelProductManage2_edit2_header>div:nth-child(2) {
position: absolute;
top: 0px;
right: 0px;
height: 30px;
}
.hotelProductManage2_edit2_header>div:nth-child(2)>div:nth-child(1) {
display: inline-block;
margin: 0 5px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #E95252;
background: #fff;
border: 1px solid #E95252;
border-radius: 15px;
vertical-align: top;
cursor: pointer;
}
.hotelProductManage2_edit2_header>div:nth-child(2)>div:nth-child(2) {
display: inline-block;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #fff;
background: #E95252;
border: 1px solid #E95252;
border-radius: 15px;
vertical-align: top;
cursor: pointer;
}
.hotelProductManage2_edit2>.hotelProductManage2_edit2_form {
padding: 10px 0;
}
.hotelProductManage2_edit2_form .el-input {
width: 160px;
}
.hotelProductManage2_edit2_form .el-input-number {
width: 160px;
}
.hotelProductManage2_edit2_form .el-input__inner {
width: 160px;
}
.hotelProductManage2_edit2_form .el-textarea__inner {
resize: none;
}
.hotelProductManage2_edit2_form .HotelProductEdit_date .el-form-item__content {
width: 1000px;
min-height: 9px;
}
/* 弹出编辑 */
.hotelProductManage2_edit {
position: fixed;
z-index: 50;
bottom: 0;
left: 50px;
width: 100%;
/* padding: 10px 10px 0; */
min-width: 1316px;
min-height: 340px;
border-top: 3px solid #38425d;
background-color: #FFFFFF;
overflow: auto;
}
.hotelProductManage2_edit>.hotelProductManage2_edit_header {
position: relative;
width: 100%;
height: 30px;
padding: 15px 20px;
}
.hotelProductManage2_edit_header>div:nth-child(1) {
display: inline-block;
padding: 0 20px;
width: 200px;
height: 30px;
line-height: 30px;
font-size: 16px;
border-left: 3px solid #E95252;
}
.hotelProductManage2_edit_header>div:nth-child(2) {
position: absolute;
top: 15px;
right: 80px;
height: 30px;
}
.hotelProductManage2_edit_header>div:nth-child(2)>div:nth-child(1) {
display: inline-block;
margin: 0 5px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #E95252;
background: #fff;
border: 1px solid #E95252;
border-radius: 15px;
vertical-align: top;
cursor: pointer;
}
.hotelProductManage2_edit_header>div:nth-child(2)>div:nth-child(2) {
display: inline-block;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #fff;
background: #E95252;
border: 1px solid #E95252;
border-radius: 15px;
vertical-align: top;
cursor: pointer;
}
.hotelProductManage2_edit>.hotelProductManage2_edit_form {
padding: 10px 0;
}
.hotelProductManage2_edit_form .el-input {
width: 180px;
}
.hotelProductManage2_edit_form .el-input__inner {
width: 180px;
}
.hotelProductManage2_edit_form .el-textarea__inner {
resize: none;
}
.hotelProductManage2_edit_form .HotelProductEdit_date>div {
display: inline-block;
vertical-align: middle;
}
.hotelProductManage2_edit_form .HotelProductEdit_date>div>em {
display: inline-block;
margin: 7px 10px 0 0;
padding: 0 0 0 0;
}
.hotelProductManage2 .RabateDiv {
margin-left: 25px;
}
.hotelProductManage2 .RebateCount {
height: 34px;
border-radius: 17px;
float: left;
}
.hotelProductManage2 .reOne,
.hotelProductManage2 .reTwo,
.hotelProductManage2.dayNum {
position: relative;
}
.hotelProductManage2 .leftPnum {
float: left;
background-color: #f5f7fa;
height: 40px;
line-height: 40px;
text-align: center;
border-right: 1px solid #cccccc;
position: absolute;
left: 1px;
top: 1px;
font-size: 14px;
padding: 0 10px;
color: #606266;
}
.hotelProductManage2 .toolInput {
height: 42px;
padding-left: 5px;
border: none;
}
.hotelProductManage2 .inpuOne {
width: 225px;
padding-left: 120px;
border: 1px solid #d1d1d1;
border-right: none;
}
.hotelProductManage2 .inpuTwo {
width: 166px;
padding: 0 45px 0 77px;
border: 1px solid #d1d1d1;
}
.hotelProductManage2 .fanNum {
float: left;
background-color: #f5f7fa;
height: 40px;
line-height: 40px;
text-align: center;
border-right: 1px solid #cccccc;
position: absolute;
left: 1px;
top: 1px;
padding: 0 10px;
color: #606266;
font-size: 14px;
}
.popList {
font-size: 12px;
line-height: 15px;
text-align: left;
}
.hotelProductManage2_calendarItem>.calendarItem_day>.nowMonth:hover .detailInfo {
display: block;
}
.hotelProductManage2 .detailInfo {
display: none;
position: absolute;
left: -145px;
top: 50px;
z-index: 999;
}
.hotelProductManage2 .triangle_border_up {
width: 0;
height: 0;
border-width: 0 175px 30px;
border-style: solid;
opacity: 0.75;
border-color: transparent transparent rgba(233, 82, 82, 1);
/*透明 透明 灰*/
}
.hotelProductManage2 .detailInfo .popContent {
width: 350px;
min-height: 80px;
background-color: #e95252;
text-align: left;
color: #fff;
font-size: 12px;
margin-top: -2px;
overflow: auto;
padding-bottom: 10px;
}
.hotelProductManage2 .popList label:first-child {
display: inline-block;
width: 40%;
margin: 10px 0 0 10px;
text-align: left;
}
.hotelProductManage2 .popList label:last-child {
display: inline-block;
width: 40%;
margin: 10px 10px 0 0;
text-align: right;
}
.hotelProductManage2 .Htupbtn {
padding: 0 10px;
height: 25px;
margin: 10px 0 0 75px;
}
</style>
......@@ -2667,8 +2667,14 @@ export default {
title: '线路管理'
},
},
{
path: '/lineoffer', //定制包车=>线路报价
name: 'lineoffer',
component: resolve => require(['@/components/TravelManager/customizedcar/lineoffer'], resolve),
meta: {
title: '线路报价'
},
},
......
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