Commit 1e1bed36 authored by 黄奎's avatar 黄奎

11

parent f3c0086a
...@@ -394,52 +394,21 @@ ...@@ -394,52 +394,21 @@
<div>{{ tcnDatas.DMCNum }}</div> <div>{{ tcnDatas.DMCNum }}</div>
</div> </div>
<div class="tcnDatasText"> <div class="tcnDatasText">
<div>系列</div> <div>领队/导游</div>
<div>{{ inforDatas.LtName }}</div> <div>{{ inforDatas.LeaderName }}/{{ inforDatas.GuideName }}</div>
</div> </div>
<div class="tcnDatasText"> <div class="tcnDatasText">
<div>线路</div> <div>线路</div>
<div>{{ inforDatas.LineName }} <span>{{ inforDatas.StartDate }}出团)</span></div> <div>{{ inforDatas.LineName }}</div>
</div>
<div class="tcnDatasText">
<div>领队</div>
<div>{{ inforDatas.LeaderName }}</div>
</div>
<div class="tcnDatasText">
<div>导游</div>
<div>{{ inforDatas.GuideName }}</div>
</div>
<div class="tcnDatasText">
<div>人数</div>
<div>{{ inforDatas.OrderNum }}</div>
</div>
<div class="tcnDatasText">
<div>团号</div>
<div>({{ inforDatas.TCID }}){{inforDatas.TCNUM }}</div>
</div> </div>
<div class="tcnDatasText"> <div class="tcnDatasText">
<div>出团公司</div> <div>系列</div>
<div>{{ inforDatas.OutBranchName }}</div> <div>{{ inforDatas.LtName }}</div>
</div>
<div class="tcnDatasText">
<div>集合时间</div>
<div>{{ inforDatas.GatherTime }}</div>
</div>
<div class="tcnDatasText">
<div>航班信息</div>
<div>{{ flightInfor.Flight_number }}-{{flightInfor.AlName}}</div>
</div>
<div class="tcnDatasText">
<div>航班时间</div>
<div>{{flightInfor.FlightDate}} {{ flightInfor.Departure_time }}</div>
</div> </div>
</div> </div>
<div class="daysTitle-box"> <div class="daysTitle-box">
<div class="daysTitle" <div class="daysTitle" :class="[current==item.Id?'active':'']" v-for="(item, index) in days"
:class="[current==item.Id?'active':'']" :key="index" @click="getDay(item.Id,index)">
v-for="(item, index) in days"
:key="index"
@click="getDay(item.Id,index)">
<span>{{ item.Name }}</span> <span>{{ item.Name }}</span>
</div> </div>
</div> </div>
...@@ -449,9 +418,7 @@ ...@@ -449,9 +418,7 @@
<div class="daysInforCenter"> <div class="daysInforCenter">
<div class="daysInforCBox" v-for="(child,childIndex) in item.SourceList" :key="childIndex"> <div class="daysInforCBox" v-for="(child,childIndex) in item.SourceList" :key="childIndex">
<div class="daysInforCBox-left"> <div class="daysInforCBox-left">
<el-image <el-image :src="child.CommentImg" :preview-src-list="[child.CommentImg]">
:src="child.CommentImg"
:preview-src-list="[child.CommentImg]">
</el-image> </el-image>
</div> </div>
<div class="daysInforCBox-right"> <div class="daysInforCBox-right">
...@@ -459,10 +426,7 @@ ...@@ -459,10 +426,7 @@
<div class="daysInforCBox-r-addr">地址:{{ child.Address?child.Address:'-' }}</div> <div class="daysInforCBox-r-addr">地址:{{ child.Address?child.Address:'-' }}</div>
<div v-if="child.Score" class="daysInforCBox-r-score"> <div v-if="child.Score" class="daysInforCBox-r-score">
<span class="daysInforCBox-r-scoret">评分:</span> <span class="daysInforCBox-r-scoret">评分:</span>
<el-rate <el-rate v-model="child.Score" disabled text-color="#ff9900">
v-model="child.Score"
disabled
text-color="#ff9900">
</el-rate> </el-rate>
<span style="color: #ff9900;">{{child.Score}}.0</span> <span style="color: #ff9900;">{{child.Score}}.0</span>
</div> </div>
...@@ -471,92 +435,21 @@ ...@@ -471,92 +435,21 @@
<div class="daysInforCBox-r-info">评价:{{ child.Info?child.Info:'-' }}</div> <div class="daysInforCBox-r-info">评价:{{ child.Info?child.Info:'-' }}</div>
<div class="ImgListBox"> <div class="ImgListBox">
<div v-for="(items,indexs) in child.ImgList" :key="indexs"> <div v-for="(items,indexs) in child.ImgList" :key="indexs">
<el-image v-if="checkFileType(items)==1" <el-image v-if="checkFileType(items)==1" style="width: 50px; height: 50px"
style="width: 50px; height: 50px" :src="items" :preview-src-list="[items]">
:src="items"
:preview-src-list="[items]">
</el-image> </el-image>
<video v-else <video v-else style="width: 50px; height: 50px" :id="`myVideo_${indexs}`" :src="items"
style="width: 50px; height: 50px" :id="`myVideo_${indexs}`" :controls="true" :show-fullscreen-btn="true"></video>
:src="items"
:controls="true"
:show-fullscreen-btn="true"></video>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- <el-table </div>
:data="item.SourceList"
style="width: 100%">
<el-table-column
fixed
label="封面"
width="60">
<template slot-scope="scope">
<el-image
style="width:30px; height: 30px"
:src="scope.row.CommentImg"
:preview-src-list="[scope.row.CommentImg]">
</el-image>
</template>
</el-table-column>
<el-table-column
fixed
prop=""
label="类型"
width="80">
<template slot-scope="scope">
{{item.CommentName}}
</template>
</el-table-column>
<el-table-column
label="资源名称" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.SourceName }}
</template>
</el-table-column>
<el-table-column
label="地址" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.Address }}
</template>
</el-table-column>
<el-table-column
label="评价" show-overflow-tooltip>
<template slot-scope="scope">
{{ scope.row.Info }}
</template>
</el-table-column>
<el-table-column
label="评分"
width="60">
<template slot-scope="scope">
<span v-if="scope.row.Score" style="color: red">{{ scope.row.Score }}.0</span>
</template>
</el-table-column>
<el-table-column
label="图">
<template slot-scope="scope">
<div class="ImgListBox">
<div v-for="(items,indexs) in scope.row.ImgList" :key="indexs">
<el-image
style="width: 30px; height: 30px"
:src="checkFileType(items)?items:''"
:preview-src-list="[checkFileType(items)?items:'']">
</el-image>
</div>
</div>
</template>
</el-table-column>
</el-table> -->
</div>
</div> </div>
</div> </div>
<span slot="reference" class="price" <span slot="reference" class="price" style="cursor:pointer;text-decoration:underline;"
style="cursor:pointer;text-decoration:underline;" @click="getData(item)">评价信息</span>
@click="getData(item)">评价信息</span>
</el-popover> </el-popover>
</td> </td>
<td> <td>
...@@ -968,18 +861,18 @@ ...@@ -968,18 +861,18 @@
flightInfor: null, flightInfor: null,
days: [], days: [],
daysInfor: [], daysInfor: [],
tcnIndex: 0, tcnIndex: 0,
current: 1, current: 1,
types:{ types: {
CommentType: 1, CommentType: 1,
CommentName: '酒店', CommentName: '酒店',
CoverImg: null, CoverImg: null,
DayNum: null, DayNum: null,
DayStr: null, DayStr: null,
SourceList: [ SourceList: [
] ]
}, },
} }
}, },
components: { components: {
...@@ -991,59 +884,61 @@ ...@@ -991,59 +884,61 @@
}, },
methods: { methods: {
checkFileType(url) { checkFileType(url) {
// 提取扩展名(去除查询参数) // 提取扩展名(去除查询参数)
const path = url.split('?')[0]; // 去掉 ? 后的参数 const path = url.split('?')[0]; // 去掉 ? 后的参数
const extension = path.split('.').pop().toLowerCase(); const extension = path.split('.').pop().toLowerCase();
// 图片扩展名列表 // 图片扩展名列表
const imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg']; const imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'];
// 视频扩展名列表 // 视频扩展名列表
const videoExts = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'mkv', 'flv']; const videoExts = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'mkv', 'flv'];
let fileType = 0; let fileType = 0;
if (imageExts.includes(extension)) { if (imageExts.includes(extension)) {
fileType = 1; fileType = 1;
} else if (videoExts.includes(extension)) { } else if (videoExts.includes(extension)) {
fileType = 2; fileType = 2;
} else { } else {
fileType = '未知类型'; fileType = '未知类型';
} }
return fileType return fileType
}, },
getDay(e,index){ getDay(e, index) {
this.current = e this.current = e
this.tcnIndex = index this.tcnIndex = index
this.daysInfor = [] this.daysInfor = []
this.AssemblyData(index) this.AssemblyData(index)
}, },
AssemblyData(index){ AssemblyData(index) {
let DayList = this.inforDatas.DayList[index] let DayList = this.inforDatas.DayList[index]
for (let i = 0; i < DayList.SourceList.length; i++) { for (let i = 0; i < DayList.SourceList.length; i++) {
let Source = DayList.SourceList[i] let Source = DayList.SourceList[i]
let findIndex = this.daysInfor.findIndex(item=>{return item.CommentType == Source.CommentType}) let findIndex = this.daysInfor.findIndex(item => {
if(findIndex==-1){ return item.CommentType == Source.CommentType
let types = JSON.parse(JSON.stringify(this.types)) })
if(Source.CommentType==1){ if (findIndex == -1) {
types.CommentType = 1 let types = JSON.parse(JSON.stringify(this.types))
types.CommentName = '酒店' if (Source.CommentType == 1) {
}else if(Source.CommentType==2){ types.CommentType = 1
types.CommentType = 2 types.CommentName = '酒店'
types.CommentName = '餐' } else if (Source.CommentType == 2) {
}else if(Source.CommentType==3){ types.CommentType = 2
types.CommentType = 3 types.CommentName = '餐'
types.CommentName = '景点' } else if (Source.CommentType == 3) {
}else if(Source.CommentType==4){ types.CommentType = 3
types.CommentType = 4 types.CommentName = '景点'
types.CommentName = '车' } else if (Source.CommentType == 4) {
} types.CommentType = 4
types.CoverImg = DayList.CoverImg types.CommentName = '车'
types.DayNum = DayList.DayNum }
types.SourceList.push(Source) types.CoverImg = DayList.CoverImg
this.daysInfor.push(types) types.DayNum = DayList.DayNum
}else{ types.SourceList.push(Source)
this.daysInfor[findIndex].SourceList.push(Source) this.daysInfor.push(types)
} } else {
} this.daysInfor[findIndex].SourceList.push(Source)
}, }
}
},
getData(item) { getData(item) {
let msg = { let msg = {
TCIDs: item.TCID TCIDs: item.TCID
...@@ -1053,26 +948,26 @@ ...@@ -1053,26 +948,26 @@
this.days = [] this.days = []
this.daysInfor = [] this.daysInfor = []
this.tcnLoading = true this.tcnLoading = true
this.apipost("survey_post_GetPriceCommentInfo", msg,(res) => { this.apipost("survey_post_GetPriceCommentInfo", msg, (res) => {
if(res.data.resultCode == 1 ) { if (res.data.resultCode == 1) {
this.tcnLoading = false this.tcnLoading = false
this.tcnDatas= res.data.data this.tcnDatas = res.data.data
this.inforDatas = res.data.data.priceList[0] this.inforDatas = res.data.data.priceList[0]
this.AssemblyData(this.tcnIndex) this.AssemblyData(this.tcnIndex)
this.flightInfor = this.inforDatas.flightList[0] this.flightInfor = this.inforDatas.flightList[0]
for (let i = 0; i < this.inforDatas.DayNum; i++) { for (let i = 0; i < this.inforDatas.DayNum; i++) {
let name = i + 1>9? i + 1: "0" + (i + 1) let name = i + 1 > 9 ? i + 1 : "0" + (i + 1)
this.days.push({ this.days.push({
Name: name, Name: name,
Id: i+1, Id: i + 1,
}) })
} }
console.log(this.days,'---daysInfor') console.log(this.days, '---daysInfor')
} }
},(err)=>{ }, (err) => {
this.tcnLoading = false this.tcnLoading = false
}) })
}, },
GoCompanyAlipay(obj) { GoCompanyAlipay(obj) {
let routeData = this.$router.resolve({ let routeData = this.$router.resolve({
name: 'AlipayManagementDetail', name: 'AlipayManagementDetail',
...@@ -1925,99 +1820,126 @@ ...@@ -1925,99 +1820,126 @@
border-top: 25px solid #ff0000; border-top: 25px solid #ff0000;
border-right: 50px solid transparent; border-right: 50px solid transparent;
} */ } */
.tcnDatasBox,.tcnDatasText,.daysTitle-box,.ImgListBox{ .tcnDatasBox,
display: flex; .tcnDatasText,
flex-direction: row; .daysTitle-box,
} .ImgListBox {
.tcnDatasBox,.tcnDatasText{ display: flex;
flex-wrap: wrap; flex-direction: row;
} }
.tcnDatasText{
width: 25%; .tcnDatasBox,
} .tcnDatasText {
.tcnDatasText div:first-child{ flex-wrap: wrap;
margin-right: 5px; }
font-weight: bold;
} .tcnDatasText {
.daysTitle-box{ width: 25%;
flex-wrap: nowrap;
padding: 10px 0 10px 0;
} }
.daysTitle{
font-weight: bold; .tcnDatasText div:first-child {
font-size: 14px; margin-right: 5px;
border-radius: 29px; font-weight: bold;
line-height: 25px; }
padding: 0 20px;
color: #757776; .daysTitle-box {
border: 1px solid #F0F0F0; flex-wrap: nowrap;
background: #F0F0F0; padding: 10px 0 10px 0;
}
.daysTitle {
font-weight: bold;
font-size: 14px;
border-radius: 29px;
line-height: 25px;
padding: 0 20px;
color: #757776;
border: 1px solid #F0F0F0;
background: #F0F0F0;
margin-right: 10px; margin-right: 10px;
cursor: pointer; cursor: pointer;
} }
.daysTitle.active{
color: #33B3FF; .daysTitle.active {
border: 1px solid #33B3FF; color: #33B3FF;
background: #fff; border: 1px solid #33B3FF;
} background: #fff;
.ImgListBox .el-image{ }
.ImgListBox .el-image {
margin-right: 10px; margin-right: 10px;
} }
.daysInforBox{
.daysInforBox {
height: 200px; height: 200px;
overflow: auto; overflow: auto;
} }
/deep/.daysInforBox .el-table .el-table__cell{
/deep/.daysInforBox .el-table .el-table__cell {
padding: 3px 0; padding: 3px 0;
} }
/deep/.daysInforBox .el-table tr th{
/deep/.daysInforBox .el-table tr th {
background: #f6f6f6; background: #f6f6f6;
} }
.daysInforFor{
.daysInforFor {
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.daysInforTitle{
.daysInforTitle {
font-size: 16px; font-size: 16px;
font-weight: bold; font-weight: bold;
margin-bottom: 10px; margin-bottom: 10px;
} }
.daysInforCBox{
.daysInforCBox {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
margin-bottom: 10px; margin-bottom: 10px;
} }
.daysInforCBox-left{
width: 70px; .daysInforCBox-left {
width: 70px;
height: 70px; height: 70px;
background: #eee; background: #eee;
} }
.daysInforCBox-left .el-image { .daysInforCBox-left .el-image {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.daysInforCBox-right{
.daysInforCBox-right {
flex: 1; flex: 1;
margin-left: 10px; margin-left: 10px;
} }
.daysInforCBox-r-title{
.daysInforCBox-r-title {
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: bold;
} }
.daysInforCBox-r-addr,.daysInforCBox-r-info{
.daysInforCBox-r-addr,
.daysInforCBox-r-info {
font-size: 13px; font-size: 13px;
color: #757776; color: #757776;
} }
.daysInforCBox-r-score{
.daysInforCBox-r-score {
display: flex; display: flex;
} }
.ImgListBox{
.ImgListBox {
margin-top: 10px; margin-top: 10px;
} }
.daysInforCBox-r-scoret{
.daysInforCBox-r-scoret {
font-size: 13px; font-size: 13px;
} }
</style> </style>
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