From 2fae357b20387b35a7cf0768120c2d9297b5fe08 Mon Sep 17 00:00:00 2001
From: 584911253@qq.com <584911253@qq.com>
Date: 星期五, 03 三月 2023 15:52:10 +0800
Subject: [PATCH] 空间查询属性点击事件,附件查看

---
 src/components/mapsdk.vue |  177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 170 insertions(+), 7 deletions(-)

diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index ce5fc51..42a1afa 100644
--- a/src/components/mapsdk.vue
+++ b/src/components/mapsdk.vue
@@ -351,8 +351,9 @@
       >
         <el-card class="box-card">
           <div slot="header">
-            <span>{{$store.state.propertiesName}}</span>
+            <span>{{$store.state.propertiesName.tabDesc || '灞炴�т俊鎭�'}}</span>
             <div style="float: right; cursor: pointer">
+              <el-link type="primary" :underline="false" @click="getAttatchList" style="margin-right: 10px">鏌ョ湅闄勪欢</el-link>
               <i
                 class="el-icon-close"
                 @click="closeBufferBox(6)"
@@ -368,12 +369,84 @@
               v-for="(value, key) in $store.state.propertiesInfo"
               :key="key"
             >
-              <span style="font-size: 14px;font-weight: bold;margin-right: 5px">{{key}}:</span>
-              <span>{{value}}</span>
+              <span v-if="key != 'eventid'" style="font-size: 14px;font-weight: bold;margin-right: 5px">{{key}}:</span>
+              <span v-if="key != 'eventid'">{{value}}</span>
             </div>
           </div>
         </el-card>
       </div>
+      <!--闄勪欢鍒楄〃寮圭獥-->
+      <el-dialog
+          title="闄勪欢鍒楄〃"
+          :append-to-body="false"
+          :visible.sync="showAttach"
+          width="30%"
+          :close-on-click-modal="false"
+      >
+        <div>
+          <el-table
+              :data="attachList"
+              height="100%"
+              style="width: 100%"
+              border
+          >
+            <el-table-column
+                align="center"
+                type="index"
+                label="搴忓彿"
+                width="50"
+            />
+            <el-table-column
+                prop="name"
+                label="鍚嶇О"
+                width="150">
+            </el-table-column>
+            <el-table-column
+                prop="createTime"
+                label="鏃堕棿"
+                width="150">
+            </el-table-column>
+            <el-table-column
+                label="鎿嶄綔"
+                width="100">
+              <template slot-scope="scope">
+                <el-button v-if="showAttachDetailBtn(scope.row)" @click="showAttachDetail(scope.row)" type="text" size="small">鏌ョ湅</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </el-dialog>
+      <!--闄勪欢寮圭獥-->
+      <el-dialog
+          title="棰勮"
+          :append-to-body="false"
+          :visible.sync="dialog.dialogVisible"
+          width="70%"
+          :close-on-click-modal="false"
+      >
+        <div
+            v-if="dialog.isPdf"
+            class="pdfClass"
+        >
+          <iframe
+              :src="dialog.src"
+              type="application/x-google-chrome-pdf"
+              width="100%"
+              height="100%"
+          >
+          </iframe>
+        </div>
+        <div
+            v-if="dialog.isJpg"
+            class="pdfClass"
+        >
+          <img
+              style="width:100%; height:100%;background: red"
+              :src="dialog.src"
+              alt=""
+          />
+        </div>
+      </el-dialog>
       <!--      <div-->
       <!--        @click="changeMenulayer"-->
       <!--        class="center CenDiv"-->
@@ -391,13 +464,14 @@
 <script>
 import $ from "jquery";
 import mapMenuTop from "./MapView/mapMenuTop.vue";
-
 import mapSpaceTop from "./MapView/mapSpaceTop.vue";
 import {
   select_Comprehensive_ByPageAndCount,
   select_Comprehensive_SelectWktById,
   comprehensive_selectRoute,
+  dataLib_selectFiles
 } from "../api/api";
+import {getToken} from '@/utils/auth'
 
 export default {
   name: "",
@@ -436,7 +510,6 @@
         lon: "",
         lat: "",
       },
-
       rules: {
         lon: [
           { required: true, message: "璇疯緭鍏ヨ捣鐐圭粡绾害鍧愭爣", trigger: "blur" },
@@ -481,7 +554,6 @@
       layer3: null,
       isActive: false,
       isMenuLayer: true,
-      selFrom: {},
       selectTree: null,
       showTerrainLevelDialog: false,
       menuList: [],
@@ -492,7 +564,16 @@
       show2DMap: false,
       terrainFrom: {
         height: '10'
-      }, showLengendDialog: false,
+      },
+      showLengendDialog: false,
+      showAttach:false,
+      attachList:[],
+      dialog: {
+        dialogVisible: false,
+        isPdf: false,
+        isJpg: false,
+        src: ''
+      }
     };
   },
   mounted() {
@@ -1079,6 +1160,82 @@
       }
       this.$bus.$emit("changemapType", this.show2DMap);
     },
+    //鑾峰彇闄勪欢鍒楄〃
+    async getAttatchList() {
+      let tabName = this.$store.state.propertiesName.ns+'.'+this.$store.state.propertiesName.tab;
+      let eventid = this.$store.state.propertiesInfo.eventid;
+      var obj = {
+        eventid:eventid,
+        tabName:tabName,
+      };
+      const res = await dataLib_selectFiles(obj);
+      if (res.code != 200) {
+        this.$message.error('闄勪欢鏌ヨ澶辫触');
+        return
+      }
+      if (res.result.length <= 0) {
+        this.$message.error('鏆傛棤闄勪欢');
+        return
+      }
+      this.attachList = res.result;
+      this.showAttach = true;
+    },
+    //鏄惁鏄剧ず鏌ョ湅鎸夐挳
+    showAttachDetailBtn(row){
+      var name = row.name;
+      if (name.indexOf('.pdf') != -1 || name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) {
+        return true;
+      }
+      return false;
+    },
+    //鏁版嵁鍒濆鍖�
+    refreshAttatchDetail() {
+      this.dialog.src = "";
+      this.dialog.dialogVisible = false;
+      this.dialog.isPdf = false;
+      this.dialog.isJpg = false;
+    },
+    //鏌ョ湅闄勪欢
+    showAttachDetail(row){
+      this.refreshAttatchDetail();
+      var name = row.name;
+      if (name.indexOf('.pdf') != -1) {
+        this.dialog.dialogVisible = true;
+        this.dialog.isPdf = true;
+        var url = BASE_URL + "/res/downloadForView?guid=" + row.guid + "&token=" + getToken();
+        this.dialog.src = url
+      }
+      else if (name.indexOf('.jpg') != -1 || name.indexOf('.gif') != -1 || name.indexOf('.png') != -1 || name.indexOf('.jpeg') != -1) {
+        this.dialog.dialogVisible = true;
+        this.dialog.isJpg = true;
+        var url = BASE_URL + "/res/downloadForView?guid=" + row.guid + "&token=" + getToken();
+        this.dialog.src = url
+      }
+    },
+    //鏍煎紡鍖栨椂闂�
+    format(shijianchuo) {
+      //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲
+      var time = new Date(shijianchuo);
+      var y = time.getFullYear();
+      var m = time.getMonth() + 1;
+      var d = time.getDate();
+      var h = time.getHours();
+      var mm = time.getMinutes();
+      var s = time.getSeconds();
+      return (
+          y +
+          '-' +
+          this.add0(m) +
+          '-' +
+          this.add0(d) +
+          ' ' +
+          h +
+          ':' +
+          mm +
+          ':' +
+          s
+      );
+    },
   },
 };
 </script>
@@ -1331,6 +1488,12 @@
   background-size: contain;
 }
 
+.pdfClass {
+  height: 70vh;
+  width: 100%;
+  position: relative;
+}
+
 // .menuSelect .el-input__inner {
 //   background: rgba(255, 255, 255, 0.2) !important;
 //   color: white !important;

--
Gitblit v1.9.3