Commit 3c20b74f authored by liudong1993's avatar liudong1993
parents 44f6215b 13fa4138
......@@ -167,7 +167,7 @@
<table border="0" cellspacing="1" cellpadding="0" class="dmcTotalTable" v-loading="loading">
<tr>
<th colspan="12">{{$t('ground.gstyxinxi')}}</th>
<th colspan="6">{{$t('ground.tdxuqiubiao')}}</th>
<th colspan="7">{{$t('ground.tdxuqiubiao')}}</th>
<th colspan="9">{{$t('ground.djieopcaozuo')}}</th>
</tr>
<tr>
......@@ -193,6 +193,7 @@
<th width="60">{{$t('Operation.Op_chutuan')}}<br />{{$t('ground.tongzhishu')}}</th>
<th width="70">{{$t('leader.leader_Guide')}}<br />{{$t('ground.jihuabiao')}}</th>
<th width="70">{{$t('leader.leader_Leader')}}<br />{{$t('ground.jiaojiebiao')}}</th>
<th width="70">评价</th>
<th width="60">{{$t('ground.yongkuan')}}<br />{{$t('ground.jihua')}}</th>
<th width="70">{{$t('hotel.hotel')}}</th>
<th width="60">{{$t('scen.sc_piao')}}</th>
......@@ -380,6 +381,84 @@
<span class="colorE95252" v-else>{{item.Associate=='-1'?"x":"O"}}</span>
</div>
</td>
<td>
<div class="fz16 fbold linkspan">
<span style="color: #4BCA81;" v-if="item.PriceCommentFinishStatus==2"></span>
<span class="colorE95252" v-else>{{item.PriceCommentFinishStatus==0?"x":"O"}}</span>
</div>
<!-- <el-popover width="1100" trigger="click" popper-class="DMC_HotelPop">
<div v-if="tcnDatas">
<div class="tcnDatasBox">
<div class="tcnDatasText">
<div>地接团号:</div>
<div>{{ tcnDatas.DMCNum }}</div>
</div>
<div class="tcnDatasText">
<div>领队/导游:</div>
<div>{{ inforDatas.LeaderName }}/{{ inforDatas.GuideName }}</div>
</div>
<div class="tcnDatasText">
<div>线路:</div>
<div>{{ inforDatas.LineName }}</div>
</div>
<div class="tcnDatasText">
<div>系列:</div>
<div>{{ inforDatas.LtName }}</div>
</div>
</div>
<div class="daysTitle-box">
<div class="daysTitle" :class="[current==item.Id?'active':'']" v-for="(item, index) in days"
:key="index" @click="getDay(item.Id,index)">
<span>{{ item.Name }}
<span style="color: #4BCA81;" v-if="item.DayFinishStatus==2"></span>
<span class="colorE95252" v-else>{{item.DayFinishStatus==0?"x":"O"}}</span>
</span>
</div>
</div>
<div class="daysInforBox" v-loading="tcnLoading">
<div class="daysInforFor" v-for="(item,index) in daysInfor" :key="index">
<div class="daysInforTitle">{{item.CommentName}}</div>
<div class="daysInforCenter">
<div class="daysInforCBox" v-for="(child,childIndex) in item.SourceList" :key="childIndex">
<div class="daysInforCBox-left">
<el-image :src="child.CommentImg" :preview-src-list="[child.CommentImg]">
</el-image>
</div>
<div class="daysInforCBox-right">
<div class="daysInforCBox-r-title">
{{ child.SourceName?child.SourceName:'-' }}
<span style="color: #4BCA81;" v-if="child.DetailsId>0"></span>
<span class="colorE95252" v-else>x</span>
</div>
<div class="daysInforCBox-r-addr">地址:{{ child.Address?child.Address:'-' }}</div>
<div v-if="child.Score" class="daysInforCBox-r-score">
<span class="daysInforCBox-r-scoret">评分:</span>
<el-rate v-model="child.Score" disabled text-color="#ff9900">
</el-rate>
<span style="color: #ff9900;">{{child.Score}}</span>
</div>
</div>
<div class="daysInforCBox-right">
<div class="daysInforCBox-r-info">评价:{{ child.Info?child.Info:'-' }}</div>
<div class="ImgListBox">
<div v-for="(items,indexs) in child.ImgList" :key="indexs">
<el-image v-if="checkFileType(items)==1" style="width: 50px; height: 50px"
:src="items" :preview-src-list="[items]">
</el-image>
<video v-else style="width: 50px; height: 50px" :id="`myVideo_${indexs}`" :src="items"
:controls="true" :show-fullscreen-btn="true"></video>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<span slot="reference" class="price" style="cursor:pointer;text-decoration:underline;"
@click="getData(item)">评价信息</span>
</el-popover> -->
</td>
<td>
<div class="fz16 fbold linkspan" @click="goUrlYongKuan('leaderReimbursement',item,outItem,'用款计划')">
<span style="color: #4BCA81;" v-if="item.UseMoney==1"></span>
......@@ -782,7 +861,25 @@
StartDate: "", //开始日期
EndDate: "", //结束日期
EmployeeID: 0,
}
},
tcnLoading: false,
tcnDatas: null,
inforDatas: null,
flightInfor: null,
days: [],
daysInfor: [],
tcnIndex: 0,
current: 1,
types: {
CommentType: 1,
CommentName: '酒店',
CoverImg: null,
DayNum: null,
DayStr: null,
SourceList: [
]
},
}
},
components: {
......@@ -793,6 +890,100 @@
DateLimit
},
methods: {
checkFileType(url) {
// 提取扩展名(去除查询参数)
const path = url.split('?')[0]; // 去掉 ? 后的参数
const extension = path.split('.').pop().toLowerCase();
// 图片扩展名列表
const imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg'];
// 视频扩展名列表
const videoExts = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'mkv', 'flv'];
let fileType = 0;
if (imageExts.includes(extension)) {
fileType = 1;
} else if (videoExts.includes(extension)) {
fileType = 2;
} else {
fileType = '未知类型';
}
return fileType
},
getDay(e, index) {
this.current = e
this.tcnIndex = index
this.daysInfor = []
this.AssemblyData(index)
},
AssemblyData(index) {
let DayList = this.inforDatas.DayList[index]
for (let i = 0; i < DayList.SourceList.length; i++) {
let Source = DayList.SourceList[i]
let findIndex = this.daysInfor.findIndex(item => {
return item.CommentType == Source.CommentType
})
if (findIndex == -1) {
let types = JSON.parse(JSON.stringify(this.types))
if (Source.CommentType == 1) {
types.CommentType = 1
types.CommentName = '酒店'
} else if (Source.CommentType == 2) {
types.CommentType = 2
types.CommentName = '餐'
} else if (Source.CommentType == 3) {
types.CommentType = 3
types.CommentName = '景点'
} else if (Source.CommentType == 4) {
types.CommentType = 4
types.CommentName = '车'
}
types.CoverImg = DayList.CoverImg
types.DayNum = DayList.DayNum
types.SourceList.push(Source)
this.daysInfor.push(types)
} else {
this.daysInfor[findIndex].SourceList.push(Source)
}
}
},
getData(item) {
let msg = {
TCIDs: item.TCID
}
this.current = 1
this.tcnIndex = 0
this.days = []
this.daysInfor = []
this.tcnLoading = true
this.apipost("survey_post_GetPriceCommentInfo", msg, (res) => {
if (res.data.resultCode == 1) {
this.tcnLoading = false
this.tcnDatas = res.data.data
this.inforDatas = res.data.data.priceList[0];
this.AssemblyData(this.tcnIndex)
this.flightInfor = this.inforDatas.flightList[0]
for (let i = 0; i < this.inforDatas.DayNum; i++) {
let name = i + 1 > 9 ? i + 1 : "0" + (i + 1);
var DayFinishStatus = 0;
if (this.inforDatas && this.inforDatas.DayList && this.inforDatas.DayList.length > 0) {
var dayObj = this.inforDatas.DayList.find((qitem) => {
return qitem.DayNum == (i + 1);
})
if (dayObj && dayObj.DayFinishStatus) {
DayFinishStatus = dayObj.DayFinishStatus;
}
}
this.days.push({
Name: name,
Id: i + 1,
DayFinishStatus: DayFinishStatus,
})
}
}
}, (err) => {
this.tcnLoading = false
})
},
GoCompanyAlipay(obj) {
let routeData = this.$router.resolve({
name: 'AlipayManagementDetail',
......@@ -1645,5 +1836,126 @@
border-top: 25px solid #ff0000;
border-right: 50px solid transparent;
} */
.tcnDatasBox,
.tcnDatasText,
.daysTitle-box,
.ImgListBox {
display: flex;
flex-direction: row;
}
.tcnDatasBox,
.tcnDatasText {
flex-wrap: wrap;
}
.tcnDatasText {
width: 25%;
}
.tcnDatasText div:first-child {
margin-right: 5px;
font-weight: bold;
}
.daysTitle-box {
flex-wrap: nowrap;
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;
cursor: pointer;
}
.daysTitle.active {
color: #33B3FF;
border: 1px solid #33B3FF;
background: #fff;
}
.ImgListBox .el-image {
margin-right: 10px;
}
.daysInforBox {
height: 200px;
overflow: auto;
}
/deep/.daysInforBox .el-table .el-table__cell {
padding: 3px 0;
}
/deep/.daysInforBox .el-table tr th {
background: #f6f6f6;
}
.daysInforFor {
border-bottom: 1px solid #ccc;
margin-top: 10px;
margin-bottom: 10px;
}
.daysInforTitle {
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
}
.daysInforCBox {
display: flex;
flex-direction: row;
align-items: center;
margin-bottom: 10px;
}
.daysInforCBox-left {
width: 70px;
height: 70px;
background: #eee;
}
.daysInforCBox-left .el-image {
width: 100%;
height: 100%;
}
.daysInforCBox-right {
flex: 1;
margin-left: 10px;
}
.daysInforCBox-r-title {
font-size: 14px;
font-weight: bold;
}
.daysInforCBox-r-addr,
.daysInforCBox-r-info {
font-size: 13px;
color: #757776;
}
.daysInforCBox-r-score {
display: flex;
}
.ImgListBox {
margin-top: 10px;
}
.daysInforCBox-r-scoret {
font-size: 13px;
}
</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