From 1f6893d24ba87313d4114c68813073ead53b2e12 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 30 八月 2024 09:26:22 +0800
Subject: [PATCH] 群发新通讯录懒加载

---
 src/views/Admin/Report.vue |  114 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 82 insertions(+), 32 deletions(-)

diff --git a/src/views/Admin/Report.vue b/src/views/Admin/Report.vue
index d90fbd7..5ba70d7 100644
--- a/src/views/Admin/Report.vue
+++ b/src/views/Admin/Report.vue
@@ -29,8 +29,8 @@
                 style="width: 100%"
             />
           </a-col>
-          <a-col :span="4">
-            <a-button type="primary" @click="getData">查询</a-button>
+          <a-col :span="6">
+            <a-button type="primary" @click="searchData()" v-preventReClick="1500">查询</a-button>
             <a-button style="margin-left: 12px" @click="resetSearch">重置</a-button>
           </a-col>
         </a-row>
@@ -45,9 +45,11 @@
         <template #disasterType="text">
           {{ getRiskName(text) }}
         </template>
-        <template #attachment="text">
-          <span v-if="text==='无'">无</span>
-          <a v-else><b><a-icon type="paper-clip" /> {{text}}</b></a>
+        <template #attachment="attachment">
+          <span v-if="attachment===null|| attachment===[]">无</span>
+          <div v-else>
+            <a-button @click="viewFile(item)" type="link" v-for="(item,index) in attachment" :key="index"><a-icon type="paper-clip"/>{{item.attachmentName}}</a-button>
+          </div>
         </template >
         <template #reviewStatus="reviewStatus">
           <a-tag
@@ -57,9 +59,10 @@
           </a-tag>
         </template>
         <template #operation="text, record, index">
-          <a-button type="primary" v-if="record.reviewStatus == 2" @click="confirmPost(record.id)">确认发布</a-button>
-          <a-button type="link" v-if="record.reviewStatus == 2 || record.reviewStatus == 3" @click="openMod('view',record)">查看信息详情</a-button>
+          <a-button type="primary" v-if="record.reviewStatus == 2" @click="confirmPost(record.id)" v-preventReClick="1500">确认发布</a-button>
+          <a-button type="link" @click="openMod('view',record)">查看信息详情</a-button>
           <a-button class="del" type="link" @click="delData(record.id)">删除</a-button>
+          <a-button v-if="record.reviewStatus == 1 || record.reviewStatus == 3" @click="openMod('edit',record)">修改</a-button>
         </template>
       </a-table>
     </div>
@@ -69,10 +72,13 @@
 
 <script>
 
-import {getReviewDetail, getReviewRecord} from "@/api/review";
+import {getReviewDetail, getReviewDetailByWorker, getReviewRecord} from "@/api/review";
 import msgEditMod from '@/views/Admin/components/msgEditMod'
 import {delRecipient} from "@/api/user";
 import {deleteMsg, publishMsg} from "@/api/send";
+import Cookies from "js-cookie";
+import axios from "axios";
+import {getUserInfo} from "@/util/storage";
 
 export default {
   name: 'msgReview',
@@ -91,9 +97,8 @@
       timeRange: [],
       riskOptions: [
         {name: '地震',value: 1},
-        {name: '洪涝',value: 2},
         {name: '气象',value: 3},
-        {name: '泥石流',value: 4},
+        {name: '地质灾害',value: 4},
         {name: '水旱',value: 5},
         {name: '森林草原火灾',value: 6}
       ],
@@ -143,6 +148,7 @@
           scopedSlots: {
             customRender: 'attachment'
           },
+          width: '15%'
         },
         {
           title: '审核情况',
@@ -154,6 +160,7 @@
         {
           title: '操作',
           dataIndex: 'operation',
+          width: '18%',
           scopedSlots: {
             customRender: 'operation'
           },
@@ -162,12 +169,18 @@
       data: []
     }
   },
+  mounted() {
+    if(getUserInfo().role.id == 1){
+      this.columns = this.columns.filter(i=>i.dataIndex !== 'operation')
+    }
+  },
   created() {
     const t = this
     t.getData()
   },
   methods:{
     async getData(){
+      console.log(111)
       const t = this
       const res = await getReviewRecord(this.search)
       if(res.data.code == 100){
@@ -176,6 +189,11 @@
       }else{
         this.$message.error(res.data.msg)
       }
+    },
+
+    searchData(){
+      this.search.pageIndex = 1
+      this.getData()
     },
 
     resetSearch(){
@@ -209,14 +227,15 @@
         cancelText: '取消',
         okText: '确认',
         centered: true,
-        async onOk() {
-          let res = await publishMsg(id)
-          if(res.data.code == 100){
-            t.$message.success('信息发布成功');
-            t.getData()
-          }else{
-            t.$message.warning(res.data.msg);
-          }
+        onOk() {
+          publishMsg(id).then(res=>{
+            if(res.data.code == 100){
+              t.$message.success('信息发布成功');
+              t.getData()
+            }else{
+              t.$message.warning(res.data.msg);
+            }
+          })
         },
         onCancel() {
           console.log('Cancel');
@@ -232,14 +251,15 @@
         cancelText: '取消',
         okText: '确认',
         centered: true,
-        async onOk() {
-          let res = await deleteMsg(id)
-          if(res.data.code == 100){
-            t.$message.success('信息删除成功');
-            t.getData()
-          }else{
-            t.$message.warning(res.data.msg);
-          }
+        onOk() {
+          deleteMsg(id).then(res=>{
+            if(res.data.code == 100){
+              t.$message.success('信息删除成功');
+              t.getData()
+            }else{
+              t.$message.warning(res.data.msg);
+            }
+          })
         },
         onCancel() {
           console.log('Cancel');
@@ -247,17 +267,47 @@
       });
     },
 
-    openMod(type,data){
+    viewFile(item){
       const t = this
-      getReviewDetail(data.id).then(res=>{
-        if(res.data.code == 100){
-          t.$refs.msgEdit.openMod(type,res.data.data)
-        }else{
-          this.$message.error(res.data.msg)
+      const { baseUrl } = require('../../../config/env.' + process.env.NODE_ENV)
+      axios.get(baseUrl + item.attachment,{headers:{'Content-Type': 'application/json','tk': `${Cookies.get('resTk')}`,'uid':`${Cookies.get('resUid')}`},responseType: 'blob'}).then(res=>{
+        if (res) {
+          const link = document.createElement('a')
+          let blob = new Blob([res.data],{type: res.data.type})
+          link.style.display = "none";
+          link.href = URL.createObjectURL(blob); // 创建URL
+          window.open(link.href)
+          // link.setAttribute("download", item.attachmentName);
+          // document.body.appendChild(link);
+          // link.click();
+          // document.body.removeChild(link);
+        } else {
+          this.$message.error('获取文件失败')
         }
       })
     },
 
+    openMod(type,data){
+      const t = this
+      if(type == 'edit'){
+        getReviewDetailByWorker(data.id).then(res=>{
+          if(res.data.code == 100){
+            t.$refs.msgEdit.openMod(type,res.data.data)
+          }else{
+            this.$message.error(res.data.msg)
+          }
+        })
+      }else{
+        getReviewDetail(data.id).then(res=>{
+          if(res.data.code == 100){
+            t.$refs.msgEdit.openMod(type,res.data.data)
+          }else{
+            this.$message.error(res.data.msg)
+          }
+        })
+      }
+    },
+
     onPageChange(page, pageSize) {
       const t= this
       t.pagination.current = page

--
Gitblit v1.9.2