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
<template>
  <div id="index" v-loading="loading">
    <el-container v-show="!loading">
      <el-main>
        <el-row :gutter="20" id="images">
          <el-col :span="12" v-for="(item, index) in items" :key="index">
            <p class="title" :class="item.required?'image-title-required':''">{{ item.description }}</p>
            <div class="imgList">
              <div
                v-for="(image, index) in item.images"
                class="imgbox"
                :key="index"
              >
                <!-- <img :src="image.url" @click="handleImageClick(image.attachmentno)"/> -->
                <img
                  src="@/assets/PDF.svg"
                  v-if="image.imagetype=='PDF'"
                  alt
                  @click="handleImageClick(image,item.objectNo,item.docType)"
                /> 
                <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 v-else :src="image.url" @click="handleImageClick(image,item.objectNo,item.docType)" />
              </div>
            </div>
          </el-col>
        </el-row>
      </el-main>
    </el-container>
  </div>
</template>
 
<script>
import '@/views/area/style/images.styl'
import {
  queryProjectImageInfo
} from '@/api/area'
import { mapState } from 'vuex'
export default {
  data: function () {
    return {
      loading: true,
      items: '',
      newWindow: null,
    }
  },
  computed: {
    ...mapState({
      detailsParams: state => state.risk.detailsParams
    })
  },
  created () {
    this.getForm()
  },
  methods: {
    getForm () {
      let params = {
        objectType: this.detailsParams.objectType,
        dataType: this.detailsParams.dataType,
        projectFlag: this.detailsParams.projectFlag,
        projectType: this.detailsParams.projectType,
        serialno: this.detailsParams.objectNo
      }
      queryProjectImageInfo(params).then(res => {
        res.result.forEach((value,index) => {
          // if (value.images.length < 4) {
          //   value.isShow = true
          // } else {
          //   value.isShow = false
          // }
          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 = this.detailsParams.objectNo
            // console.log('image.attachmentno:'+image.attachmentno)
            let objectType = 'jbo.customer.AUTOTROPHY_INFO'
            let type = '1' // 1-项目 2-企业 3-合作方
            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'
            )
    },
  }
}
</script>
 
<style scoped lang="stylus">
 
</style>