zhaoxiaoqiang1
2026-01-04 f1d30d03186c79ca2cbcfe60d6d2ce7d73fba97b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<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>