凉纪 2 yıl önce
ebeveyn
işleme
8cfcbc0033

+ 43 - 41
package-lock.json

@@ -2089,6 +2089,49 @@
         "webpack-merge": "^5.7.3",
         "webpack-virtual-modules": "^0.4.2",
         "whatwg-fetch": "^3.6.2"
+      },
+      "dependencies": {
+        "@vue/vue-loader-v15": {
+          "version": "npm:vue-loader@15.10.2",
+          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.2.tgz",
+          "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
+          "dev": true,
+          "requires": {
+            "@vue/component-compiler-utils": "^3.1.0",
+            "hash-sum": "^1.0.2",
+            "loader-utils": "^1.1.0",
+            "vue-hot-reload-api": "^2.3.0",
+            "vue-style-loader": "^4.1.0"
+          },
+          "dependencies": {
+            "hash-sum": {
+              "version": "1.0.2",
+              "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-1.0.2.tgz",
+              "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+              "dev": true
+            }
+          }
+        },
+        "json5": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz",
+          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.2",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz",
+          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        }
       }
     },
     "@vue/cli-shared-utils": {
@@ -2253,47 +2296,6 @@
         }
       }
     },
-    "@vue/vue-loader-v15": {
-      "version": "npm:vue-loader@15.10.2",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.2.tgz",
-      "integrity": "sha512-ndeSe/8KQc/nlA7TJ+OBhv2qalmj1s+uBs7yHDRFaAXscFTApBzY9F1jES3bautmgWjDlDct0fw8rPuySDLwxw==",
-      "dev": true,
-      "requires": {
-        "@vue/component-compiler-utils": "^3.1.0",
-        "hash-sum": "^1.0.2",
-        "loader-utils": "^1.1.0",
-        "vue-hot-reload-api": "^2.3.0",
-        "vue-style-loader": "^4.1.0"
-      },
-      "dependencies": {
-        "hash-sum": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
-          "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
-          "dev": true
-        },
-        "json5": {
-          "version": "1.0.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
-          "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
-          "dev": true,
-          "requires": {
-            "minimist": "^1.2.0"
-          }
-        },
-        "loader-utils": {
-          "version": "1.4.2",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
-          "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
-          "dev": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^1.0.1"
-          }
-        }
-      }
-    },
     "@vue/web-component-wrapper": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",

+ 1 - 1
public/index.html

@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no viewport-fit=cover" >
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover" >
     <link rel="icon" href="<%= BASE_URL %>favicon.ico">
     <!-- <% for (var i in
       htmlWebpackPlugin.options.cdn&&htmlWebpackPlugin.options.cdn.css) { %>

+ 3 - 2
src/utils/globalMixins.js

@@ -2,6 +2,7 @@ import { getDict } from '@/api/toConsult.js'
 import dayjs from 'dayjs'
 import Dicts from '../utils/dicts'
 import {mapActions} from 'vuex'
+import {imgUrl} from "@/utils/index";
 export default {
   data() {
     return {
@@ -63,10 +64,10 @@ export default {
     },
     //调用预览和pdf(内网银行)
     openFilePreview(item) {
-     
+
       let system = this.isAndroidOrIos
       const parms = {
-        url: item.url,
+        url: imgUrl(item.url),
         name: item.name
       }
       if (system === 1) {

+ 29 - 15
src/views/menu/message/index.vue

@@ -30,6 +30,8 @@
       </Scroll>
     </div>
   </div>
+
+  <!-- 消息详情 -->
   <div v-else class="message-detail">
     <van-nav-bar
       title="消息详情"
@@ -39,16 +41,17 @@
     <van-panel v-if="selected" :title="selected.title" :desc="selected.orgName">
       <div class="message-content">
         <p>{{selected.content}}</p>
-        <div class="file-box" >
-          <div>
-            <a :href="imgUrl(v.url)" v-for="(v,i) in selected.fileList" :key="v.name" type="download">{{v.name}}</a>
-          </div>
-          <div>
-            <div v-if="v.img" class="nfc-img" v-for="(v,i) in imageList" :key="v.img" @click="preViewNFC(i)">
-              <img :src="imgUrl(v.img)" alt="" >
-              <span>{{v.checkName}}</span>
-            </div>
+        <div v-if="selected.fileList" class="file-box" >
+          附件:
+          <div v-for="(v,i) in selected.fileList">
+            <span style="color: #1989fa;" @click="preview(v)"  :key="v.name">{{v.name}}</span>
           </div>
+<!--          <div>-->
+<!--            <div v-if="imageList" class="nfc-img" v-for="(v,i) in imageList" :key="v.img" @click="preViewNFC(i)">-->
+<!--              <img :src="imgUrl(v.img)" alt="" >-->
+<!--              <span>{{v.checkName}}</span>-->
+<!--            </div>-->
+<!--          </div>-->
         </div>
         <p class="cell-time">{{selected.publishTime}}</p>
       </div>
@@ -63,6 +66,7 @@ import NavBar from '@/components/NavBar'
 import Scroll from '@/components/scroll/scroll'
 import {msgList,dataList} from './api'
 import {mapGetters} from "vuex";
+import {imgUrl} from "@/utils";
 
 export default {
   components: {
@@ -91,16 +95,21 @@ export default {
     this.getDataList();
   },
   methods:{
+    preview(file){
+      this.openFilePreview(file);
+    },
     onClickLeft(){
       this.show = false;
     },
     clickItem(v){
-      v.fileList.forEach(v=>{
-        //p:获取url中的后缀名
-        let p = v.url.split('.');
-        console.log(p,'pppppppp')
-        //v.type = url.
-      })
+      if(v.fileList?.length > 0){
+        v.fileList.forEach(v=>{
+          //p:获取url中的后缀名
+          let p = v.url.split('.');
+          console.log(p,'pppppppp')
+          //v.type = url.
+        })
+      }
       this.selected = v;
       this.show = true;
     },
@@ -223,6 +232,11 @@ export default {
     width: 100%;
     min-height: 40px;
     padding: 20px 0;
+    >div{
+      line-height: 40px;
+      height: 40px;
+      padding-left: 20px;
+    }
   }
 }
 </style>

+ 1 - 1
vue.config.js

@@ -125,7 +125,7 @@ module.exports = defineConfig({
           '^/chao':'/'
         }
       },
-    
+
     }
   },
   css: {