From fa7ba545bb58983c8dab5f96cd1f010a48d7420c Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期一, 22 四月 2024 17:39:58 +0800
Subject: [PATCH] 综合展示,附件挂载添加cad查看功能

---
 src/views/Tools/ModelProperty.vue |  292 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 136 insertions(+), 156 deletions(-)

diff --git a/src/views/Tools/ModelProperty.vue b/src/views/Tools/ModelProperty.vue
index 3a2d9ba..fbda31f 100644
--- a/src/views/Tools/ModelProperty.vue
+++ b/src/views/Tools/ModelProperty.vue
@@ -1,26 +1,18 @@
 <template>
-  <Popup
-    ref="pop"
-    :title="title"
-    @close="close(true)"
-    width="400px"
-    @cancel="close(false)"
-    top="0vh"
-    left="30vh"
-  >
-    <el-tabs
-      v-model="activeName"
-      @tab-click="handleClick"
-    >
-      <el-tab-pane
-        label="灞炴��"
-        name="first"
-      >
-        <el-form
-          ref="form"
-          :model="formInline"
-          label-width="80px"
-        >
+  <Popup ref="pop"
+         :title="title"
+         @close="close(true)"
+         width="400px"
+         @cancel="close(false)"
+         top="0vh"
+         left="30vh">
+    <el-tabs v-model="activeName"
+             @tab-click="handleClick">
+      <el-tab-pane label="灞炴��"
+                   name="first">
+        <el-form ref="form"
+                 :model="formInline"
+                 label-width="80px">
           <el-form-item :label="$t('common.name')">
             {{formInline.name}}
           </el-form-item>
@@ -37,49 +29,33 @@
         </el-form>
 
       </el-tab-pane>
-      <el-tab-pane
-        label="闄勪欢"
-        name="second"
-      >
+      <el-tab-pane label="闄勪欢"
+                   name="second">
 
-        <el-table
-          :data="tableData"
-          ref="filterTable"
-          height="calc(100% - 130px)"
-          border
-          style="width: 100%"
-          @selection-change="handleAttatchChange"
-        >
-          <el-table-column
-            type="selection"
-            width="70"
-          />
-          <el-table-column
-            width="60"
-            type="index"
-            :label="$t('common.index')"
-          />
-          <el-table-column
-            prop="name"
-            :label="$t('common.name')"
-          />
+        <el-table :data="tableData"
+                  ref="filterTable"
+                  height="calc(100% - 130px)"
+                  border
+                  style="width: 100%"
+                  @selection-change="handleAttatchChange">
+          <el-table-column type="selection"
+                           width="70" />
+          <el-table-column width="60"
+                           type="index"
+                           :label="$t('common.index')" />
+          <el-table-column prop="name"
+                           :label="$t('common.name')" />
 
-          <el-table-column
-            prop="sizes"
-            :label="$t('common.size')"
-            :formatter="statSizeChange"
-          />
-          <el-table-column
-            align="center"
-            :label="$t('common.operate')"
-            min-width="100"
-          >
+          <el-table-column prop="sizes"
+                           :label="$t('common.size')"
+                           :formatter="statSizeChange" />
+          <el-table-column align="center"
+                           :label="$t('common.operate')"
+                           min-width="100">
             <template slot-scope="scope">
-              <el-link
-                v-if="matchState(scope, /[]/)"
-                @click="setAttatchDetail(scope.$index, scope.row)"
-                class="elLink"
-              >{{ $t('common.see') }}</el-link>
+              <el-link v-if="matchState(scope, /[]/)"
+                       @click="setAttatchDetail(scope.$index, scope.row)"
+                       class="elLink">{{ $t('common.see') }}</el-link>
 
             </template>
           </el-table-column>
@@ -88,36 +64,26 @@
       </el-tab-pane>
 
     </el-tabs>
-    <el-dialog
-      title="棰勮"
-      :append-to-body="false"
-      :visible.sync="dialog.dialogVisible"
-      width="70%"
-      :modal="false"
-      :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%"
-        >
+    <el-dialog title="棰勮"
+               :append-to-body="false"
+               :visible.sync="dialog.dialogVisible"
+               width="70%"
+               :modal="false"
+               :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"
-      >
+      <div v-if="dialog.isJpg"
+           class="pdfClass">
 
-        <el-image
-          style="width:100%; height:100%"
-          :src="dialog.src"
-          :preview-src-list="[dialog.src]"
-        >
+        <el-image style="width:100%; height:100%"
+                  :src="dialog.src"
+                  :preview-src-list="[dialog.src]">
         </el-image>
 
       </div>
@@ -128,7 +94,7 @@
 <script>
 
 import Popup from "./Popup";
-import { comprehensive_selectFiles, comprehensive_selectModelByGuid } from '../../api/api.js'
+import { comprehensive_selectFiles,comprehensive_selectModelByGuid,meta_selectConvertToDwg } from '../../api/api.js'
 import { getToken } from "@/utils/auth";
 
 export default {
@@ -137,7 +103,7 @@
     Popup,
   },
   mixins: [],
-  data() {
+  data () {
     return {
       title: "鍦ㄧ嚎鍦板浘",
       left: undefined,
@@ -172,22 +138,22 @@
   methods: {
 
     // 鍏抽棴寮圭獥
-    close(isCloseBtn, removeLayer = true) {
+    close (isCloseBtn,removeLayer=true) {
       //   removeLayer && this.removeImageLayer();
 
       // 閲嶇疆data鍊�
-      Object.assign(this.$data, this.$options.data());
-      !isCloseBtn && this.$refs.pop.close();
+      Object.assign(this.$data,this.$options.data());
+      !isCloseBtn&&this.$refs.pop.close();
     },
     // 鎵撳紑寮圭獥
-    async open() {
+    async open () {
 
       this.close(true);
 
       this.$refs.pop.open();
-      this.title = this.$store.state.catModelInfo.name;
+      this.title=this.$store.state.catModelInfo.name;
 
-      this.formInline = this.$store.state.catModelInfo;
+      this.formInline=this.$store.state.catModelInfo;
 
     },
 
@@ -195,95 +161,109 @@
     //   this.mapCollection.tokne = token;
     // },
     // 闄勪欢=>琛ㄦ牸閫夋嫨
-    handleAttatchChange(val) {
-      this.attacgSelection = val;
+    handleAttatchChange (val) {
+      this.attacgSelection=val;
     },
-    statSizeChange(row, column) {
+    statSizeChange (row,column) {
       return this.stateFormatSizes(row.sizes)
     },
-    stateFormatSizes(res) {
-      if (res >= 1024) {
-        const val = parseFloat(res / 1024).toFixed(3);
-        return val + ' GB';
+    stateFormatSizes (res) {
+      if(res>=1024) {
+        const val=parseFloat(res/1024).toFixed(3);
+        return val+' GB';
       } else {
-        return res + ' MB';
+        return res+' MB';
       }
     },
-    matchState(state = "", reg) {
-      var row = state.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
-        || name.indexOf('.PDF') != -1
-        || name.indexOf('.JPG') != -1
-        || name.indexOf('.GIF') != -1
-        || name.indexOf('.PNG') != -1
-        || name.indexOf('.JPEG') != -1
-        || name.indexOf('.BMP') != -1
-        || name.indexOf('.bmp') != -1
+    matchState (state="",reg) {
+      var row=state.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
+        ||name.indexOf('.PDF')!=-1
+        ||name.indexOf('.JPG')!=-1
+        ||name.indexOf('.GIF')!=-1
+        ||name.indexOf('.PNG')!=-1
+        ||name.indexOf('.JPEG')!=-1
+        ||name.indexOf('.BMP')!=-1
+        ||name.indexOf('.bmp')!=-1
+        ||name.indexOf('.dwg')!=-1
       ) {
         return true;
       }
       return false;
     },
-    handleClick(tab, event) {
-      if (tab.name == "second") {
+    handleClick (tab,event) {
+      if(tab.name=="second") {
         this.getAttacthFlieList();
       }
     },
 
     //闄勪欢鍒楄〃鏌ヨ
-    async getAttacthFlieList() {
-      var obj = {
+    async getAttacthFlieList () {
+      var obj={
         eventid: this.$store.state.catModelInfo.id,
         tabName: "lf.sys_style"
       };
-      const res = await comprehensive_selectFiles(obj);
-      if (res.code != 200) {
+      const res=await comprehensive_selectFiles(obj);
+      if(res.code!=200) {
         this.$message.error('鍒楄〃璋冪敤澶辫触');
         return
       }
-      this.tableData = res.result;
+      this.tableData=res.result;
     },
 
     //闄勪欢鏌ョ湅
-    setAttatchDetail(index, row) {
+    setAttatchDetail (index,row) {
       this.refreshAttatchDetail()
-      var name = row.name;
-      if (name.indexOf('.pdf') != -1 || name.indexOf('.PDF') != -1) {
-        this.dialog.dialogVisible = true;
-        this.dialog.isPdf = true;
-        var url = BASE_URL + "/comprehensive/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
-        || name.indexOf('.JPG') != -1
-        || name.indexOf('.GIF') != -1
-        || name.indexOf('.PNG') != -1
-        || name.indexOf('.JPEG') != -1
-        || name.indexOf('.BMP') != -1
-        || name.indexOf('.bmp') != -1) {
-        this.dialog.dialogVisible = true;
-        this.dialog.isJpg = true;
-        var url = BASE_URL + "/comprehensive/downloadForView?guid=" + row.guid + "&token=" + getToken();
-        this.dialog.src = url
+      var name=row.name;
+      if(name.indexOf('.pdf')!=-1||name.indexOf('.PDF')!=-1) {
+        this.dialog.dialogVisible=true;
+        this.dialog.isPdf=true;
+        var url=BASE_URL+"/comprehensive/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
+        ||name.indexOf('.JPG')!=-1
+        ||name.indexOf('.GIF')!=-1
+        ||name.indexOf('.PNG')!=-1
+        ||name.indexOf('.JPEG')!=-1
+        ||name.indexOf('.BMP')!=-1
+        ||name.indexOf('.bmp')!=-1
+        ||name.indexOf('.BMP')!=-1) {
+        this.dialog.dialogVisible=true;
+        this.dialog.isJpg=true;
+        var url=BASE_URL+"/comprehensive/downloadForView?guid="+row.guid+"&token="+getToken();
+        this.dialog.src=url
+      } else if(name.indexOf('.dwg')!=-1) {
+        this.handleCAD(row)
       }
     },
-    refreshAttatchDetail() {
-      this.dialog.src = "";
-      this.dialog.dialogVisible = false;
-      this.dialog.isPdf = false;
-      this.dialog.isJpg = false;
+    async handleCAD (row) {
+      const data=await meta_selectConvertToDwg({ id: row.id,type: true });
+      if(data.result) {
+        var url=iisHost+"/dwg/cad/browse/?file=data/"+data.result;
+        window.open(url)
+      } else {
+        return this.$message("鏁版嵁杞崲澶辫触锛屾棤娉曢瑙�");
+      }
+
+    },
+    refreshAttatchDetail () {
+      this.dialog.src="";
+      this.dialog.dialogVisible=false;
+      this.dialog.isPdf=false;
+      this.dialog.isJpg=false;
     },
   },
-  mounted() {
+  mounted () {
 
   }
 };

--
Gitblit v1.9.3