Commit 87654a7c authored by 黄奎's avatar 黄奎

新增页面路由

parent 92eaf56b
<template>
<div class="roomQuery">
<div class="query-box" style="border-bottom: none;">
<ul style="position:relative;">
<li>
<span>
<em>月份</em>
<el-date-picker v-model="msg.MonthStr" type="monthrange" range-separator="至" start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
</span>
</li>
<li style="position:absolute;right:10px;top:0;">
<input type="button" class="normalBtn" value="查询" @click="getList();resetPageIndex()" />
<input type="button" class="normalBtn" value="下载" @click="DownLoadHotel()" />
</li>
</ul>
</div>
<div style="width: 100%; overflow-x: auto;padding-bottom: 10px; " class="ownScrollbarStyle">
<div style="font-size:12px;padding:2px 4px 3px 20px;">
<div style="display:inline-block;color:red">注意事项:每次导出数据最好不要超过一个月。</div>
<div class="rq_comSpan" style="display:inline-block;">颜色说明:
<span class="rq_span1">未操作</span><span class="rq_span2">操作中</span><span class="rq_span3">操作完成</span><span
class="rq_span4">机位数和人数不相符</span>
</div>
</div><br />
<table border="0" cellspacing="1" cellpadding="0" class="roomQuery_SupplierTable" v-loading='loading'>
<tr>
<th width="100">序号</th>
<th width="120">出发地</th>
<th width="100">公司团号</th>
<th width="80">团队状态</th>
<th width="100">系列</th>
<th width="120">机位总数<br />(Y/E/F)</th>
<th width="100">时间</th>
<th width="150">酒店</th>
<th width="100">酒店使用情况</th>
<th width="100">操作</th>
</tr>
<tr v-if="dataList.length==0">
<td colspan="9">暂无数据</td>
</tr>
<template v-for="(item,index) in dataList">
<template v-for="(subItem,subIndex) in item.subList">
<tr v-for="(childItem,childIndex) in subItem.hotelList" :class="{roomQuerySplitTrCss:index%2!=0}">
<td v-if="childIndex==0&&subIndex==0" :rowspan="item.RowSpan">
{{item.NewCombinationNum}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.StartCityNames}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.TCNUMS}}
</td>
<td v-if="childIndex==0"
:rowspan="subItem.SupplierRemarks!=''?subItem.hotelList.length+1:subItem.hotelList.length">
<span v-if="subItem.TCState==3&&subItem.Status==1">正常</span>
<span v-else>取消</span>
</td>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.LineteamIdNames}}
</td>
<td v-if="childIndex==0" :rowspan="subItem.hotelList.length">
{{subItem.TotalSeat}}/{{subItem.RealityYSeatNum}}/{{subItem.RealityESeatNum}}/{{subItem.RealityFSeatNum}}
</td>
<td>
{{childItem.CheckInDateStr}}
</td>
<td class="tdLeft">
<template v-if="childItem.SupplierId==UserInfo.SupplierId">
<template v-if="childItem.SupplierHotelStatus==0"> {{childItem.NewHotelName}}</template>
<template v-else-if="childItem.SupplierHotelStatus==1">
<a style="color:#7abd53">{{childItem.NewHotelName}}</a></template>
<template v-else-if="childItem.SupplierHotelStatus==2">
<a style="color:blue">{{childItem.NewHotelName}}</a>
</template>
(
<template v-if="subItem.TotalSeat/2!=childItem.SupplierBookNum">
<a style="font-weight:bold; color:red;" title="总机位数和预订间数不相符"> {{childItem.SupplierBookNum}} </a>
</template>
<template v-else>
<a style="font-weight:bold;"> {{childItem.SupplierBookNum}} </a>
</template>
间)</template>
<template v-else>
组团社自理
</template>
</td>
<td>
<!--<span >
<template v-if="childItem.SupplierId==UserInfo.SupplierId">
<template v-if="childItem.OPState==1">[OP选房-OK]</template>
<template v-else-if="childItem.OPState==2&&childItem.DMCState==0">[OP-暂定]</template>
<template
v-else>{{childItem.DMCState==1?"[地接-OK]":(childItem.DMCState==0?"[地接-未操作]":"[地接-暂定]")}}</template>
</template>
</span>
-->
<template v-if="childItem.SupplierId==UserInfo.SupplierId">
<template v-if="childItem.SupplierHotelStatus==0">未操作</template>
<template v-else-if="childItem.SupplierHotelStatus==1"><a style="color:#7abd53">操作中</a></template>
<template v-else-if="childItem.SupplierHotelStatus==2"><a style="color:blue">操作完成</a></template>
</template>
</td>
<td v-if="childIndex==0"
:rowspan="subItem.SupplierRemarks!=''?subItem.hotelList.length+1:subItem.hotelList.length">
<el-tooltip class="item" effect="dark" content="操作信息" placement="top-start">
<el-popover placement="bottom" width="500" trigger="click">
<table>
<tr>
<th width="90">
时间
</th>
<th width="160">
酒店
</th>
<th width="100">
数量
</th>
<th width="100">
状态
</th>
</tr>
<tr v-for="opItem in CurrentHotelList">
<template v-if="opItem.SupplierId==UserInfo.SupplierId">
<td>
{{opItem.CheckInDateStr}}
</td>
<td style="padding-right:10px;">
{{opItem.NewHotelName}}
</td>
<td>
<el-input style="width:60px;" v-model='opItem.SupplierBookNum' type='text'
placeholder="预订数量">
</el-input>
</td>
<td>
<el-select v-model="opItem.SupplierHotelStatus" filterable class="multiple_input"
:placeholder="$t('pub.pleaseSel')">
<el-option label='未操作' :value='0' :key='0'>
</el-option>
<el-option label='操作中' :value='1' :key='1'>
</el-option>
<el-option label='操作完成' :value='2' :key='2'>
</el-option>
</el-select>
</td>
</template>
</tr>
</table>
<p class="alcenter mt10">
<input type="button" value="保存" @click="SaveSupplierData(CurrentHotelList)" class="normalBtn" />
</p>
<a style="text-decoration:underline;color:blue;cursor:pointer" slot="reference"
@click="GetItemHotelData(subItem.hotelList)">操作</a>
</el-popover>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="日志信息" placement="top-start">
<el-popover placement="bottom" width="500" trigger="click">
<table border="0" cellspacing="1" cellpadding="0" class="queryLogTable"
style=" border-collapse:collapse;">
<tr>
<th width="100"
style="background: #e6e6e6; height: 35px; font-size: 12px;color: #333;text-align:center;border:1px solid #d1d1d1;">
操作人</th>
<th width="100"
style="background: #e6e6e6; height: 35px; font-size: 12px;color: #333;text-align:center;border:1px solid #d1d1d1;">
日期</th>
<th width="100"
style="background: #e6e6e6; height: 35px; font-size: 12px;color: #333;text-align:center;border:1px solid #d1d1d1;">
操作时间</th>
<th width="190"
style="background: #e6e6e6; height: 35px; font-size: 12px;color: #333;text-align:center;border:1px solid #d1d1d1;">
内容</th>
</tr>
<template v-if="LogsList.length>0">
<tr v-for="(item,index) in LogsList">
<td style="height: 35px; font-size: 12px;text-align:center;border:1px solid #d1d1d1;">
{{item.CreateByName}}</td>
<td style="height: 35px; font-size: 12px;text-align:center;border:1px solid #d1d1d1;">
{{item.UseTimeStr}}</td>
<td style="height: 35px; font-size: 12px;text-align:center;border:1px solid #d1d1d1;">
{{item.CreateTimeStr}}
</td>
<td style="height: 35px; font-size: 12px;text-align:left;border:1px solid #d1d1d1;">
{{item.Remarks}}</td>
</tr>
</template>
<tr v-else>
<td colspan="5">暂无数据...</td>
</tr>
</table>
<el-pagination background @current-change="handleCurrentChange2"
:current-page.sync="queryLogMsg.currentPage" :page-size="queryLogMsg.pageSize"
layout="total,prev, pager, next, jumper" :total="queryLogMsg.total">
</el-pagination>
<a style="text-decoration:underline;color:blue;cursor:pointer" slot="reference"
@click="getLogsList(subItem.TCID)">日志</a>
</el-popover>
</el-tooltip>
<a style="text-decoration:underline;color:blue;cursor:pointer"
@click="AddSupplierComplain(subItem.Complain_Extend.Id,subItem.Complain_Extend.TCID)">
<template v-if="subItem.Complain_Extend.Id>0">编辑投诉</template>
<template v-else>添加投诉</template>
</a>
<a style="text-decoration:underline;color:red;cursor:pointer" v-if="subItem.Complain_Extend.Id>0"
@click="DeleteSupplierComplain(subItem.Complain_Extend.Id)">删除</a>
</td>
</tr>
<template v-if="subItem.SupplierRemarks">
<tr v-if="subIndex==0" :class="{roomQuerySplitTrCss:index%2!=0}">
<td colspan="9" class="redTip">
<p>备注:{{subItem.SupplierRemarks}}</p>
</td>
</tr>
</template>
</template>
</template>
</table>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"> </el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
loading: false,
currentPage: 1,
total: 0,
msg: {
pageIndex: 1,
pageSize: 5,
SelectType: 1,
StartDate: '',
EndDate: '',
//酒店编号
HotelId: 0,
//日期
DateStr: "",
//出团公司
OutBranchIds: [],
LineId: 14,
PlaceID: 0,
LineteamId: 0,
//航空公司
AirLineId: 0,
CreateBy: 0,
TCNUM: '',
PriceStatus: 0,
CombinationNum: '',
MonthStr: "" //月份字符串
},
UserInfo: {},
//分公司类表
companyList: [],
//酒店列表
HotelList: [],
LineList: [],
LineTeamList: [],
thLengthTitle: [],
dataList: [],
//日志信息
LogsList: [],
queryLogMsg: {
pageIndex: 1,
pageSize: 5,
currentPage: 1,
total: 0,
HotelId: 0,
TCID: 0
},
queryCommonData: {
//公司数据
BranchList: [],
//国家
PlaceList: [],
LineList: [],
LineTeamList: [],
AirlineList: [],
EmployeeList: [],
},
//当前酒店列表
CurrentHotelList: [],
pickerBeginDateBefore: {
disabledDate: time => {
if (this.msg.EndDate == null) {
return false;
} else {
let endTime = new Date(this.msg.EndDate)
return endTime.getTime() < time.getTime()
}
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.msg.StartDate)
return startTime.getTime() >= time.getTime()
}
}
}
},
methods: {
handleCurrentChange2(val) {
this.queryLogMsg.pageIndex = val;
this.getLogsList();
},
//获取日志
getLogsList(TCID) {
if (TCID) {
this.queryLogMsg.TCID = TCID;
}
this.ApiPost2('DmcInfoChangeLog_get_GetHotelLogList', this.queryLogMsg, res => {
if (res.data.resultCode == 1) {
this.LogsList = res.data.data.pageData;
this.queryLogMsg.total = res.data.data.count;
}
}, err => {})
},
GetItemHotelData(hotelList) {
this.CurrentHotelList = JSON.parse(JSON.stringify(hotelList));
},
//删除投诉
DeleteSupplierComplain(Id) {
if (Id > 0) {
var that = this;
this.Confirm("是否此投诉信息删除?", function () {
var msg = {
Id: Id
};
that.ApiPost2("supplierComplain_Post_RemoveSupplierComplain", msg,
res => {
if (res.data.resultCode == 1) {
that.Success('删除成功!');
that.getList();
} else {
that.Error(res.data.data);
}
}, null);
});
}
},
getLineList() {
this.ApiPost2("line_post_GetAllList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.LineTeamList = [];
this.ApiPost2(
"team_post_GetList", {
lineID: 14,
isTOOP: 1
},
res => {
if (res.data.resultCode == 1) {
this.msg.LineteamId = "-1";
this.LineTeamList = res.data.data;
}
}
);
},
AddSupplierComplain(id, tcid) {
this.$router.push({
name: 'AddSupplierComplaints',
query: {
Id: id,
TCID: tcid,
blank: 'y',
tab: '供应商投诉'
}
})
},
goUrlR(path, obj, title) {
this.$router.push({
name: path,
query: {
"ID": obj,
blank: 'y',
tab: title
}
})
},
goUrlT(path, obj, title) {
this.$router.push({
name: path,
query: {
"id": obj,
blank: 'y',
tab: title
}
})
},
goUrl(path, obj, outItem, title) {
this.$router.push({
name: path,
query: {
"id": obj.TCIDS,
'TCNUM': obj.TCNUMS,
'flightTotal': obj.TotalSeat,
'GuestNum': obj.CommonReport.HouseStatistics.RealityNum,
'NewCombinationNum': outItem.NewCombinationNum,
blank: 'y',
tab: title
}
})
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList() {
this.loading = true;
this.ApiPost2('dmcstatistics_post_GetUniteCombinationNumService_Supplier', this.msg, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.dataList = res.data.data.pageData;
} else {
this.$message.error(res.data.message)
}
}, err => {})
},
//获取酒店列表
GetHotelList() {
this.ApiPost2(
"hotel_post_GetHasStockHotelList_Supplier", {
Country: 651,
IsMoreThanZero: 1
},
res => {
if (res.data.resultCode == 1) {
this.HotelList = res.data.data;
}
},
err => {}
);
},
//保存酒店新
SaveSupplierData(hotelList) {
this.ApiPost2(
"dmcstatistics_post_SetNewHotelOrder_Supplier", hotelList,
res => {
if (res.data.resultCode == 1) {
this.Success("操作成功!");
this.getList();
} else {
this.Error("操作失败!");
}
},
err => {}
);
},
//下载Excel
DownLoadHotel() {
this.loading = true;
let qMsg = {
queryMsg: this.msg,
uid: this.UserInfo.SupplierAccountId,
OPType: 1
};
let fileName = "订房查询" + this.$commonUtils.getCurrentDate() + ".xls";
this.GetLocalFile("hotel_get_downloadHotel", qMsg, fileName,
res => {
this.loading = false;
});
},
//获取目的地列表
getLinePlaceList() {
this.msg.PlaceID = 0;
this.msg.LineteamId = 0;
let msg = {
lineID: this.msg.LineId,
}
this.ApiPost2('team_post_GetLinePlace', msg, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.PlaceList = res.data.data
this.queryCommonData.LineTeamList = []
}
})
},
//获取系列列表
getLineTeamList() {
this.msg.LineteamId = 0
let msg = {
lineID: this.msg.LineId,
placeID: this.msg.PlaceID,
isTOOP: 1
}
this.ApiPost2('team_post_GetList', msg, res => {
if (res.data.resultCode == 1) {
this.queryCommonData.LineTeamList = res.data.data
}
})
},
//获取航空公司
getAirlineList() {
this.ApiPost2(
'airline_post_GetList', {},
res => {
if (res.data.resultCode == 1) {
this.queryCommonData.AirlineList = res.data.data
}
},
err => {}
)
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
let userInfo = this.getLocalStorage()
let msg = {
GroupId: userInfo.RB_Group_id,
BranchId: '-1',
DepartmentId: '-1',
PostId: '-1',
IsLeave: '0'
}
this.ApiPost2(
'admin_get_EmployeeGetList', {},
res => {
if (res.data.resultCode == 1) {
this.queryCommonData.EmployeeList = res.data.data
}
},
err => {}
)
},
//初始化公司
getCompanyList() {
let userInfo = this.getLocalStorage()
var RB_Group_id = userInfo.RB_Group_id
let msg = {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id
}
this.ApiPost2(
'admin_get_BranchGetList',
msg,
res => {
if (res.data.resultCode == 1) {
this.queryCommonData.BranchList = res.data.data;
}
},
err => {}
)
},
},
mounted() {
this.UserInfo = this.getLocalStorageSupplier();
let myDate = new Date();
let nowDate =
myDate.getFullYear() +
"-" +
parseInt(myDate.getMonth() + 1) +
"-" +
myDate.getDate();
if (this.$route.query.hotelId) {
this.msg.HotelId = this.$route.query.hotelId;
}
if (this.$route.query.dateStr) {
this.msg.DateStr = this.$route.query.dateStr;
}
if (this.$route.query.hotelId || this.$route.query.dateStr) {
this.msg.StartDate = "";
} else {
this.msg.StartDate = nowDate;
}
this.getLinePlaceList();
this.getAirlineList();
this.getEmployeeList();
this.getCompanyList();
this.GetHotelList();
this.getList();
},
}
</script>
<style>
.roomQuerySplitTrCss td {
background: #eee !important;
}
.roomQuery_SupplierTable {
width: 98%;
font-size: 12px;
color: #333;
margin: auto;
border-collapse: collapse;
background-color: #fff;
border: 1px solid #d1d1d1;
}
.roomQuery_SupplierTable tr th {
background: #E6E6E6;
height: 40px;
font-size: 12px;
color: #333;
}
.roomQuery_SupplierTable tr td {
border: 1px solid #d1d1d1;
text-align: center;
padding: 5px 0;
}
.roomQuery_SupplierTable .tdLeft {
text-align: left;
padding-left: 5px;
}
.roomQuery_SupplierTable .redTip {
text-align: left;
color: red;
padding-left: 5px;
}
.roomQuery .rq_comSpan {
font-size: 14px;
margin-left: 20px;
}
.roomQuery .rq_comSpan>span {
display: inline-block;
padding: 2px 4px;
color: #fff;
border-radius: 5px;
margin-right: 10px;
}
.roomQuery .rq_span1 {
background-color: #333;
}
.roomQuery .rq_span2 {
background-color: #7abd53;
}
.roomQuery .rq_span3 {
background-color: blue;
}
.roomQuery .rq_span4 {
background-color: red;
}
</style>
......@@ -3457,6 +3457,14 @@ export default {
title: '定房查询'
},
},
{
path: '/roomQuery3', //供应商->定房查询
name: 'roomQuery3',
component: resolve => require(['@/components/Supplier/roomQuery2'], resolve),
meta: {
title: '定房查询'
},
},
{
path: '/HotelQueryList2', //供应商->酒店查询
name: 'HotelQueryList2',
......
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