<template>
|
<div id="index" v-loading="loading">
|
<el-container class="pohtoData" v-show="!loading">
|
<div class="imageData">
|
<el-card class="box-card" style="border:none">
|
<div class="images" v-for="(item,index) in items" :key="index">
|
<p class="title-half"><!-- 标题 -->
|
<i v-if="item.required">*</i> <!-- 是否必填 -->
|
{{item.description}}
|
<span>{{item.count?`(${item.count}张)`:''}}</span><!-- 当前影像多少张 -->
|
</p>
|
<!-- -->
|
<div class="imagesList"> <!-- 包含所有图片的最外层 -->
|
<div v-for="(image,i) in item.images" :key="i" v-show="item.isShow?true:i>3?false:true">
|
<img
|
src="@/assets/PDF.svg"
|
v-if="image.imagetype=='PDF'"
|
alt
|
@click="handleImageClick(image,item.objectNo,item.docType)"
|
/> <!--上传的pdf显示的图片 -->
|
<img
|
src="@/assets/excel.svg"
|
v-else-if="image.imagetype=='XLSX'"
|
alt
|
@click="handleImageClick(image,item.objectNo,item.docType)"
|
/>
|
<img
|
src="@/assets/ppt.svg"
|
v-else-if="image.imagetype=='PPTX'"
|
alt
|
@click="handleImageClick(image,item.objectNo,item.docType)"
|
/>
|
<img
|
src="@/assets/word.svg"
|
v-else-if="image.imagetype=='DOCX'"
|
alt
|
@click="handleImageClick(image,item.objectNo,item.docType)"
|
/>
|
<!-- <img :src="child.url" alt @click="previewImage(child,item.isedit)" /> --> <!-- 上传图片则图片显示正常 -->
|
<img :src="image.url" v-else @click="handleImageClick(image,item.objectNo,item.docType)" />
|
</div>
|
<img
|
src="@/assets/images/hide.png"
|
alt
|
v-show="item.isShow&&item.images.length > 4"
|
@click="hide(item,index)"
|
/><!-- 多张图右下角的显示图标 -->
|
<img
|
src="@/assets/images/show.png"
|
alt=""
|
v-show="!item.isShow&&item.images.length > 4"
|
@click="show(item)"
|
/><!-- 多张图右下角的显示图标 -->
|
</div>
|
</div>
|
</el-card>
|
</div>
|
</el-container>
|
</div>
|
</template>
|
|
<script>
|
import '@/views/area/style/images.styl'
|
import {
|
queryBuildImageInfo
|
} from '@/api/area/building'
|
import { mapState } from 'vuex'
|
export default {
|
data: function () {
|
return {
|
loading: true,
|
items: '',
|
newWindow: null,
|
}
|
},
|
computed: {
|
...mapState({
|
buildParams: state => state.risk.buildParams
|
})
|
},
|
created () {
|
this.getForm()
|
},
|
methods: {
|
getForm (i) {
|
let params = {
|
serialno: this.buildParams.serialNo
|
}
|
queryBuildImageInfo(params).then(res => {
|
if (res.code == '00') {
|
res.result.forEach((value, index) => {
|
if (value.images.length < 5) {
|
value.isShow = true
|
} else {
|
value.isShow = false
|
}
|
if (value.images.length >= 5) {
|
if (i === index) {
|
this.show(value)
|
} else {
|
this.hide(value)
|
}
|
}
|
value.images.forEach((item) => {
|
// item.imagetype = item.filename.split('.')[1].toUpperCase()
|
item.imagetype = item.filename.split('.').slice(-1).toString().toUpperCase()
|
})
|
})
|
}
|
// res.result.forEach((value, index) => {
|
// value.images.forEach((item) => {
|
// item.imagetype = item.filename.split('.')[1].toUpperCase()
|
// })
|
// })
|
this.items = res.result
|
this.loading = false
|
})
|
},
|
handleImageClick(image, objectno, typeno) {
|
// 根据路由模式判断路径分割方式
|
const routeStr = location.href.includes('#') ? '#/' : ''
|
// 图片点击事件
|
let attachmentno = image.attachmentno
|
let serialno = objectno
|
let objectType = 'jbo.customer.SH_BUILD'
|
let type = '4' // 1-项目 2-企业 3-合作方 4-楼栋
|
let params = `attachmentno=${attachmentno}&serialno=${serialno}&objectno=${objectno}&objectType=${objectType}&typeno=${typeno}&type=${type}`
|
this.newWindow = window.open(
|
`${location.origin}${process.env.VUE_APP_HOST_PATH}${routeStr}photoViewer?${params}`,
|
'newwindow',
|
'height=700px, width=800px, top=100px,left=400px, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no'
|
)
|
},
|
// 展开图片
|
show(row) {
|
row.isShow = true
|
},
|
// 收起图片
|
hide(row) {
|
row.isShow = false
|
},
|
/* handleImageClick (attachmentno) {
|
// 图片点击事件
|
let serialNo = this.buildParams.serialNo
|
this.newWindow = window.open(
|
`/#/area/building/imgDialog?serialNo=${serialNo}&attachmentno=${attachmentno}`,
|
'newwindow',
|
'height=600px, width=600px, top=100px,left=300px, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no'
|
)
|
} */
|
}
|
}
|
</script>
|
|
<style scoped lang="stylus">
|
.pohtoData
|
padding-bottom 50px
|
</style>
|