浏览代码

消息弹窗完成

chen 3 年之前
父节点
当前提交
4cdf00f7f1

+ 40 - 0
src/api/dashboard.js

@@ -8,3 +8,43 @@ export function getNoticeList(params) {
     params,
   });
 }
+// 获取消息列表详情
+export function getNoticeDetail(params) {
+  return request({
+    url: "/notice/detail",
+    method: "get",
+    params,
+  });
+}
+// 万能通用附件列表
+export function getComListList(params) {
+  return request({
+    url: "/com/list/list",
+    method: "get",
+    params,
+  });
+}
+// 下载万能通用列表附件
+export function getComListDownload(params) {
+  return request({
+    url: "/com/list/download",
+    method: "get",
+    params,
+  });
+}
+// 查收
+export function confirmCheck(params) {
+  return request({
+    url: "/notice/mark/read",
+    method: "post",
+    params,
+  });
+}
+// 列表
+export function getRebateOrderList(params) {
+  return request({
+    url: "/rebate/order/list",
+    method: "get",
+    params,
+  });
+}

+ 241 - 31
src/views/dashboard/index.vue

@@ -65,8 +65,13 @@
             min-width="160"
             show-overflow-tooltip
           >
-            <template slot-scope="">
-              <el-button type="text" class="textColor">查看</el-button>
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                class="textColor"
+                @click="lookInDialog(scope.row.id)"
+                >查看</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -75,7 +80,7 @@
       <div v-show="type == '2'">
         <el-table
           v-loading="listLoading"
-          :data="dataList"
+          :data="fileList"
           element-loading-text="Loading"
           border
           fit
@@ -98,25 +103,30 @@
           <el-table-column
             align="center"
             label="来源"
-            prop="source"
+            prop="operatorNickName"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
             label="时间"
-            prop="issueTime"
+            prop="createTime"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
-            label=""
+            label="操作"
             min-width="160"
             show-overflow-tooltip
           >
-            <template slot-scope="">
-              <el-button type="text" class="textColor">下载</el-button>
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                class="textColor"
+                @click="downloadFn(scope.row.id)"
+                >下载</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -125,7 +135,7 @@
       <div v-show="type == '3'">
         <el-table
           v-loading="listLoading"
-          :data="dataList"
+          :data="rebateList"
           element-loading-text="Loading"
           border
           fit
@@ -141,21 +151,21 @@
           <el-table-column
             align="center"
             label="经销商名称"
-            prop=""
+            prop="customerName"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
             label="确认人"
-            prop="customerName"
+            prop="examineBy"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
           <el-table-column
             align="center"
             label="确认时间"
-            prop="customerName"
+            prop="examineTime"
             min-width="160"
             show-overflow-tooltip
           ></el-table-column>
@@ -165,8 +175,13 @@
             min-width="160"
             show-overflow-tooltip
           >
-            <template slot-scope="">
-              <el-button type="text" class="textColor">复核</el-button>
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                class="textColor"
+                @click="secondFn(scope.row.rebateOrderId)"
+                >复核</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -187,6 +202,73 @@
         >
         </el-pagination>
       </div>
+      <!-- 内层弹窗 -->
+      <el-dialog
+        width="40%"
+        title="消息标题"
+        :visible.sync="inDialog"
+        append-to-body
+      >
+        <div class="detail-container">
+          <div class="title">{{ detailData.title }}</div>
+          <div class="text">
+            发布人:{{ detailData.issueNickName
+            }}<el-divider direction="vertical"></el-divider>发布时间:{{
+              detailData.issueTime
+            }}
+          </div>
+          <el-divider></el-divider>
+          <div class="content">{{ detailData.content }}</div>
+          <el-divider
+            v-if="detailData.files && detailData.files.length > 0"
+          ></el-divider>
+          <div
+            class="file"
+            v-if="detailData.files && detailData.files.length > 0"
+          >
+            <div>附件:</div>
+            <div class="file-list">
+              <div
+                v-for="(item, index) in detailData.files"
+                :key="index"
+                class="item"
+              >
+                <el-image
+                  v-if="checkFileType(item.url) == 'image'"
+                  class="img"
+                  :src="imageURL + item.url"
+                  :preview-src-list="[imageURL + item.url]"
+                ></el-image>
+                <div v-else class="box2" @click="openLink(item.url)">
+                  <img
+                    src="@/assets/common/word.png"
+                    v-if="checkFileType(item.url) == 'word'"
+                  />
+                  <img
+                    src="@/assets/common/excel.png"
+                    v-if="checkFileType(item.url) == 'excel'"
+                  />
+                  <img
+                    src="@/assets/common/ppt.png"
+                    v-if="checkFileType(item.url) == 'ppt'"
+                  />
+                  <img
+                    src="@/assets/common/pdf.png"
+                    v-if="checkFileType(item.url) == 'pdf'"
+                  />
+                  <div class="name ellipsis-3">{{ item.name }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="confirmCheck(detailData.id)"
+            >确认接收</el-button
+          >
+          <el-button @click="inDialog = false">关 闭</el-button>
+        </div>
+      </el-dialog>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="closeFn">关闭</el-button>
       </div>
@@ -195,7 +277,14 @@
 </template>
 
 <script>
-import { getNoticeList } from "@/api/dashboard";
+import {
+  getNoticeList,
+  getComListList,
+  getComListDownload,
+  getNoticeDetail,
+  confirmCheck,
+  getRebateOrderList,
+} from "@/api/dashboard";
 import { mapGetters } from "vuex";
 import { getInfo, getOrder, getGoodsRank } from "@/api/dashboard";
 import { dateFormat } from "@/utils/util";
@@ -206,7 +295,7 @@ export default {
     this.getDataList({
       pageSize: this.pageSize,
       pageNum: this.currentPage,
-      type: this.type,
+      readFlag: true,
     });
   },
   computed: {
@@ -214,33 +303,138 @@ export default {
   },
   data() {
     return {
+      imageURL: this.$imageUrl,
       type: "1",
       currentPage: 1, // 当前页码
       pageSize: 10, // 每页数量
       listTotal: 0, // 列表总数
       dataList: [],
       listLoading: false, // 列表加载loading
+      fileList: [],
+      inDialog: false,
+      detailData: [],
+      rebateList: [],
     };
   },
   methods: {
+    //复核
+    secondFn(id) {
+      this.$router.push({
+        path: "/finance/rebate_list",
+        query: {
+          id,
+        },
+      });
+    },
+    // 确认查收
+    confirmCheck(id) {
+      confirmCheck({ noticeIds: id }).then((res) => {
+        this.$successMsg("查收成功");
+        this.inDialog = false;
+        this.getDataList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          readFlag: true,
+        });
+      });
+    },
+    // 检查文件类型
+    checkFileType(url) {
+      if (!url) return "";
+      const fileSuffix = url.substring(url.lastIndexOf(".") + 1);
+
+      if (["jpg", "jpeg", "png"].includes(fileSuffix)) {
+        return "image";
+      } else if (["doc", "docx", "dot", "wps", "wpt"].includes(fileSuffix)) {
+        return "word";
+      } else if (["xls", "xlsx", "xlt", "et", "ett"].includes(fileSuffix)) {
+        return "excel";
+      } else if (
+        ["ppt", "pptx", "dps", "dpt", "pot", "pps"].includes(fileSuffix)
+      ) {
+        return "ppt";
+      } else if (["pdf"].includes(fileSuffix)) {
+        return "pdf";
+      } else {
+        return "";
+      }
+    },
+    //查看
+    async lookInDialog(id) {
+      let res = await getNoticeDetail({ id });
+      // console.log(res, 7898);
+      this.detailData = res.data;
+      this.inDialog = true;
+    },
+    //下载
+    async downloadFn(id) {
+      const res = await getComListDownload({ id });
+      if (res.data) {
+        window.open(this.imageURL + res.data);
+      }
+    },
+    //获取文件列表数据
+    async getFileList(data) {
+      let res = await getComListList(data);
+      this.fileList = res.data.records;
+      this.listTotal = res.data.total;
+    },
     // 更改每页数量
     handleSizeChange(val) {
       this.pageSize = val;
       this.currentPage = 1;
-      this.getDataList({
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-        type: this.type,
-      });
+      if (this.type == 1) {
+        this.getDataList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          readFlag: true,
+        });
+      }
+      if (this.type == 2) {
+        this.getFileList({
+          needDown: true,
+          pageSize: this.pageSize,
+          pageNo: this.currentPage,
+        });
+      }
+      if (this.type == 3) {
+        this.getRebateList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          isSecondExamine: true,
+        });
+      }
     },
     // 更改当前页
     handleCurrentChange(val) {
       this.currentPage = val;
-      this.getDataList({
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-        type: this.type,
-      });
+      if (this.type == 1) {
+        this.getDataList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          readFlag: true,
+        });
+      }
+      if (this.type == 2) {
+        this.getFileList({
+          needDown: true,
+          pageSize: this.pageSize,
+          pageNo: this.currentPage,
+        });
+      }
+      if (this.type == 3) {
+        this.getRebateList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          isSecondExamine: true,
+        });
+      }
+    },
+    //获取返利确认单数据
+    async getRebateList(data) {
+      const res = await getRebateOrderList(data);
+      this.rebateList = res.data.records;
+      this.listTotal = res.data.total;
     },
     //获取列表数据
     async getDataList(data) {
@@ -252,11 +446,27 @@ export default {
     //选择
     checkFn(v) {
       this.type = v;
-      this.getDataList({
-        pageSize: this.pageSize,
-        pageNum: this.currentPage,
-        type: this.type,
-      });
+      if (v == 1) {
+        this.getDataList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          readFlag: true,
+        });
+      }
+      if (v == 2) {
+        this.getFileList({
+          needDown: true,
+          pageSize: this.pageSize,
+          pageNo: this.currentPage,
+        });
+      }
+      if (v == 3) {
+        this.getRebateList({
+          pageSize: this.pageSize,
+          pageNum: this.currentPage,
+          isSecondExamine: false,
+        });
+      }
     },
     //关闭
     closeFn() {

+ 4 - 6
src/views/finance/balance_sum.vue

@@ -101,7 +101,7 @@
               <el-button
                 type="text"
                 class="textColor"
-                @click="seeFN(row.customerName,row.customerNumber)"
+                @click="seeFN(row.customerName, row.customerNumber)"
               >
                 明细
               </el-button>
@@ -158,19 +158,18 @@ export default {
     walletFn(v) {
       this.$router.push({
         path: "/finance/wallet",
-
         query: {
           id: v,
         },
       });
     },
     //明细
-    seeFN(customerName,customerNumber) {
+    seeFN(customerName, customerNumber) {
       this.$router.push({
         path: "/finance/standbook_list",
         query: {
           customerName,
-          customerNumber
+          customerNumber,
         },
       });
     },
@@ -178,5 +177,4 @@ export default {
 };
 </script>
 
-<style>
-</style>
+<style></style>

+ 2 - 2
src/views/finance/components/rebate_list-apply.vue

@@ -66,7 +66,7 @@
                 placeholder=""
               ></el-input>
               <el-input
-                v-if="this.searchForm.examineBy != null"
+                v-else
                 disabled
                 v-model="searchForm.examineBy"
                 placeholder=""
@@ -82,7 +82,7 @@
                 placeholder=""
               ></el-input>
               <el-input
-                v-if="this.searchForm.examineTime != null"
+                v-else
                 disabled
                 v-model="searchForm.examineTime"
                 placeholder=""

+ 8 - 8
src/views/finance/components/rebate_list-confirm.vue

@@ -99,29 +99,29 @@
           <el-table-column
             align="center"
             label="总返利金额"
-            prop=""
+            prop="amount"
             min-width="160"
             show-overflow-tooltip
           >
-            <template slot-scope="scope">
-              {{ Math.abs(scope.row.amount) + scope.row.withholdAmount }}
-            </template>
+            <!-- <template slot-scope="scope">
+             
+            </template> -->
           </el-table-column>
           <el-table-column
             align="center"
             label="返利金额"
-            prop="amount"
+            prop=""
             min-width="160"
             show-overflow-tooltip
           >
             <template slot-scope="scope">
-              <el-input v-model="scope.row.amount"></el-input>
+              <el-input v-model="scope.row.rebateAmount"></el-input>
             </template>
           </el-table-column>
           <el-table-column
             align="center"
             label="折让金额"
-            prop="allowanceAmount"
+            prop=""
             min-width="160"
             show-overflow-tooltip
           >
@@ -185,7 +185,7 @@ export default {
         };
       });
       console.log(res, 888);
-      await getRebateOrderAck([{ ...res[0] }]);
+      await getRebateOrderAck(res);
       this.$message.success("确认成功");
     },
     //获取详情数据

+ 2 - 2
src/views/finance/components/rebate_list-review.vue

@@ -68,7 +68,7 @@
                 placeholder=""
               ></el-input>
               <el-input
-                v-if="this.searchForm.examineBy != null"
+                v-else
                 disabled
                 v-model="searchForm.examineBy"
                 placeholder=""
@@ -84,7 +84,7 @@
                 placeholder=""
               ></el-input>
               <el-input
-                v-if="this.searchForm.examineTime != null"
+                v-else
                 disabled
                 v-model="searchForm.examineTime"
                 placeholder=""

+ 45 - 3
src/views/finance/rebate_list.vue

@@ -115,6 +115,21 @@
               </template>
             </el-table-column>
             <el-table-column
+              v-if="isCustomer"
+              align="center"
+              label="是否确认"
+              prop="customerIsConfirm"
+              min-width="160"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <el-tag
+                  v-show="scope.row.customerIsConfirm == 'true' ? '是' : '否'"
+                  >是</el-tag
+                >
+              </template>
+            </el-table-column>
+            <el-table-column
               align="center"
               label="返利单号"
               prop="rebateOrderId"
@@ -175,7 +190,7 @@
               show-overflow-tooltip
             >
               <template slot-scope="scope">
-                {{ scope.row.withholdAmount != 0 ? 0 : 0 }}
+                {{ scope.row.withholdAmount != 0 ? 0 : scope.row.rebateAmount }}
               </template>
             </el-table-column>
             <el-table-column
@@ -369,6 +384,14 @@
               show-overflow-tooltip
             ></el-table-column>
             <el-table-column
+              v-if="isCustomer"
+              align="center"
+              label="确认时间"
+              prop="customerConfirmTime"
+              min-width="160"
+              show-overflow-tooltip
+            ></el-table-column>
+            <el-table-column
               align="center"
               label="操作"
               min-width="160"
@@ -400,7 +423,12 @@
                 <el-button
                   type="text"
                   class="textColor"
-                  v-show="scope.row.examineStatus == 'OK_ONE' && !isCustomer"
+                  v-show="
+                    (scope.row.examineStatus == 'OK_ONE' ||
+                      scope.row.examineStatus == 'OK' ||
+                      scope.row.examineStatus == 'FAIL') &&
+                    !isCustomer
+                  "
                   @click="reviewFn(scope.row.rebateOrderId)"
                   >复核</el-button
                 >
@@ -520,6 +548,7 @@ export default {
       showPage: 1,
       detailId: null,
       isCustomer: null,
+      secondId: null,
     };
   },
   created() {
@@ -530,6 +559,9 @@ export default {
     const res = JSON.parse(localStorage.getItem("supply_user"));
 
     this.isCustomer = res.isCustomer;
+    if (this.$route.query.id) {
+      this.examineFn(this.$route.query.id);
+    }
   },
   methods: {
     //清除
@@ -565,8 +597,18 @@ export default {
     //获取列表数据
     async getDataList(data) {
       const res = await getRebateOrderList(data);
-      this.dataList = res.data.records;
       this.listTotal = res.data.total;
+      let arr = res.data.records;
+      if (this.isCustomer) {
+        let arr2 = arr.filter((v) => {
+          if (v.examineStatus == "OK_ONE" && v.withholdAmount == 0) {
+            return v;
+          }
+        });
+        this.dataList = arr2;
+      } else {
+        this.dataList = arr;
+      }
     },
     //确认
     confirmFn(id) {

+ 206 - 78
src/views/issue/index.vue

@@ -2,17 +2,28 @@
   <div class="app-container">
     <!-- 筛选条件 -->
     <div class="screen-container">
-      <el-form ref="screenForm" :model="screenForm" label-width="60px" size="small" label-position="left">
+      <el-form
+        ref="screenForm"
+        :model="screenForm"
+        label-width="60px"
+        size="small"
+        label-position="left"
+      >
         <el-row :gutter="20">
           <el-col :xs="24" :sm="18" :lg="18">
             <el-form-item label="标题" prop="title">
-              <el-input v-model="screenForm.title" placeholder="请输入标题"></el-input>
+              <el-input
+                v-model="screenForm.title"
+                placeholder="请输入标题"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="6" :lg="6" class="tr">
             <el-form-item label="">
               <el-button size="small" @click="resetScreenForm">清空</el-button>
-              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
             </el-form-item>
           </el-col>
         </el-row>
@@ -22,30 +33,89 @@
     <div class="mymain-container">
       <div class="btn-group clearfix">
         <div class="fl">
-          <el-button class="fl" size="small" type="primary" icon="el-icon-plus" @click="clickImport()">新增</el-button>
-          <div class="tips fl">导入模板第一行必须为空白行、第一列必须为经销商编号(S9219801)</div>
+          <el-button
+            class="fl"
+            size="small"
+            type="primary"
+            icon="el-icon-plus"
+            @click="clickImport()"
+            >新增</el-button
+          >
+          <div class="tips fl">
+            导入模板第一行必须为空白行、第一列必须为经销商编号(S9219801)
+          </div>
         </div>
       </div>
       <div class="table">
-        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
-          <el-table-column align="center" label="操作" fixed="right" width="160">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+        >
+          <el-table-column
+            align="center"
+            label="操作"
+            fixed="right"
+            width="160"
+          >
             <template slot-scope="scope">
-              <el-button type="text" @click="openDetail(scope.row.id)" v-if="checkBtnRole('edit')">详情</el-button>
-              <el-button type="text" @click="handleExport(scope.row)" v-if="checkBtnRole('edit')">下载</el-button>
-              <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @onConfirm="deleteData(scope.row.id)">
+              <el-button
+                type="text"
+                @click="openDetail(scope.row.id)"
+                v-if="checkBtnRole('edit')"
+                >详情</el-button
+              >
+              <el-button
+                type="text"
+                @click="handleExport(scope.row)"
+                v-if="checkBtnRole('edit')"
+                >下载</el-button
+              >
+              <el-popconfirm
+                style="margin-left: 10px"
+                title="确定删除吗?"
+                @onConfirm="deleteData(scope.row.id)"
+              >
                 <el-button slot="reference" type="text">删除</el-button>
               </el-popconfirm>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="标题" prop="title" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="操作人" prop="operatorUserName" min-width="140" show-overflow-tooltip>
+          <el-table-column
+            align="center"
+            label="标题"
+            prop="title"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="操作人"
+            prop="operatorUserName"
+            min-width="140"
+            show-overflow-tooltip
+          >
             <template slot-scope="scope">
-              {{scope.row.operatorNickName}}({{scope.row.operatorUserName}})
+              {{ scope.row.operatorNickName }}({{ scope.row.operatorUserName }})
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="remark" label="备注" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="创建时间" prop="createTime" min-width="160" show-overflow-tooltip></el-table-column>
-
+          <el-table-column
+            align="center"
+            prop="remark"
+            label="备注"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createTime"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
         </el-table>
       </div>
 
@@ -58,23 +128,37 @@
             :page-sizes="[10, 20, 30, 50]"
             :page-size="10"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal">
+            :total="listTotal"
+          >
           </el-pagination>
         </div>
       </div>
     </div>
 
     <!-- 新增 -->
-    <el-dialog title="新增" :visible.sync="importFormDialog" :show-close="false" width="40%" :close-on-click-modal="false">
+    <el-dialog
+      title="新增"
+      :visible.sync="importFormDialog"
+      :show-close="false"
+      width="40%"
+      :close-on-click-modal="false"
+    >
       <el-form ref="importForm" label-position="left" label-width="80px">
         <el-form-item label="标题" prop="title">
-          <el-input v-model="importForm.title" placeholder="请输入标题"></el-input>
+          <el-input
+            v-model="importForm.title"
+            placeholder="请输入标题"
+          ></el-input>
         </el-form-item>
         <el-form-item label="上传文件" prop="fileUrl">
           <FileUpload :fileList="fileList" :fileType="['excel']" />
         </el-form-item>
         <el-form-item label="备注" prop="remark">
-          <el-input type="textarea" v-model="importForm.remark" placeholder="请输入备注"></el-input>
+          <el-input
+            type="textarea"
+            v-model="importForm.remark"
+            placeholder="请输入备注"
+          ></el-input>
         </el-form-item>
       </el-form>
 
@@ -85,24 +169,59 @@
     </el-dialog>
 
     <!-- 详情 -->
-    <el-dialog title="详情" :visible.sync="detailDialog" :show-close="false" width="70%" :close-on-click-modal="false">
-      <div class="table" style="margin: 10px 0 20px;">
+    <el-dialog
+      title="详情"
+      :visible.sync="detailDialog"
+      :show-close="false"
+      width="70%"
+      :close-on-click-modal="false"
+    >
+      <div class="table" style="margin: 10px 0 20px">
         <el-table
           v-loading="detailTable_listLoading"
           :data="detailTable_dataList"
           element-loading-text="Loading"
           tooltip-effect="dark"
           style="width: 100%"
-          max-height="270">
-          <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" prop="title" label="标题" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" prop="websitNumber" label="网点名称" min-width="140" show-overflow-tooltip>
+          max-height="270"
+        >
+          <el-table-column
+            align="center"
+            label="序号"
+            type="index"
+            width="50"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="title"
+            label="标题"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="websitNumber"
+            label="网点名称"
+            min-width="140"
+            show-overflow-tooltip
+          >
             <template slot-scope="scope">
-              {{scope.row.websitName}}({{scope.row.websitNumber}})
+              {{ scope.row.websitName }}({{ scope.row.websitNumber }})
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="remark" label="备注" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" prop="createTime" label="下载时间" min-width="160"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="remark"
+            label="备注"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="下载时间"
+            min-width="160"
+          ></el-table-column>
         </el-table>
       </div>
       <div class="pagination clearfix">
@@ -113,7 +232,8 @@
             :page-size="detailTable_pageSize"
             background
             layout="prev, pager, next"
-            :total="detailTable_listTotal">
+            :total="detailTable_listTotal"
+          >
           </el-pagination>
         </div>
       </div>
@@ -122,18 +242,23 @@
         <el-button @click="detailDialog = false">关 闭</el-button>
       </div>
     </el-dialog>
-
   </div>
 </template>
 
 <script>
-import { getToken } from '@/utils/auth'
-import { getList, getDownloadList, deleteData, exportFile, handleImport } from '@/api/issue'
-import FileUpload from '@/components/Common/file-upload.vue'
+import { getToken } from "@/utils/auth";
+import {
+  getList,
+  getDownloadList,
+  deleteData,
+  exportFile,
+  handleImport,
+} from "@/api/issue";
+import FileUpload from "@/components/Common/file-upload.vue";
 
 export default {
   components: {
-    FileUpload
+    FileUpload,
   },
   data() {
     return {
@@ -143,12 +268,13 @@ export default {
       currentPage: 1, // 当前页码
       pageSize: 10, // 每页数量
       listTotal: 0, // 列表总数
-      screenForm: { // 筛选表单数据
-        title: '',
+      screenForm: {
+        // 筛选表单数据
+        title: "",
       },
       importForm: {
-        title: '',
-        remark: '',
+        title: "",
+        remark: "",
       },
       importFormDialog: false,
       fileList: [],
@@ -159,11 +285,9 @@ export default {
       detailTable_currentPage: 1, // 详情 - 当前页码
       detailTable_pageSize: 10, // 详情 - 每页数量
       detailTable_listTotal: 0, // 详情 - 列表总数
-    }
-  },
-  computed: {
-
+    };
   },
+  computed: {},
   created() {
     this.getList();
   },
@@ -172,7 +296,9 @@ export default {
     checkBtnRole(value) {
       return true;
       let btnRole = this.$route.meta.roles;
-      if(!btnRole) {return true}
+      if (!btnRole) {
+        return true;
+      }
       let index = btnRole.indexOf(value);
       return index >= 0 ? true : false;
     },
@@ -184,12 +310,12 @@ export default {
         pageNo: this.currentPage,
         pageSize: this.pageSize,
         title: this.screenForm.title,
-      }
-      getList(params).then(res => {
+      };
+      getList(params).then((res) => {
         this.listLoading = false;
         this.dataList = res.data ? res.data.records : [];
         this.listTotal = res.data ? res.data.total : 0;
-      })
+      });
     },
 
     // 更改每页数量
@@ -220,10 +346,10 @@ export default {
 
     // 操作 - 删除
     deleteData(id) {
-      deleteData({id}).then(res => {
+      deleteData({ id }).then((res) => {
         this.getList();
         this.$successMsg();
-      })
+      });
     },
 
     // 详情 - 获取列表
@@ -231,12 +357,12 @@ export default {
       getDownloadList({
         pageNo: this.detailTable_currentPage,
         pageSize: this.detailTable_pageSize,
-        id: this.detailId
-      }).then(res => {
+        id: this.detailId,
+      }).then((res) => {
         this.detailTable_dataList = res.data.records;
         this.detailTable_listTotal = res.data.total;
         this.detailTable_listLoading = false;
-      })
+      });
     },
 
     // 详情 - 打开弹窗
@@ -259,54 +385,56 @@ export default {
     },
 
     // 取消 导入
-    cancelImportForm(){
+    cancelImportForm() {
       this.importFormDialog = false;
       this.fileList = [];
-      this.importForm.title = '';
-      this.importForm.remark = '';
+      this.importForm.title = "";
+      this.importForm.remark = "";
     },
 
     // 导入
     async submitImportForm() {
-      if(!this.importForm.title) {
-        return this.$errorMsg('请填写标题');
+      if (!this.importForm.title) {
+        return this.$errorMsg("请填写标题");
       }
-      if(this.fileList.length <= 0) {
-        return this.$errorMsg('请上传文件');
+      if (this.fileList.length <= 0) {
+        return this.$errorMsg("请上传文件");
       }
       const loading = this.$loading({
         lock: true,
-        text: 'Loading',
-        spinner: 'el-icon-loading',
-        background: 'rgba(0, 0, 0, 0.7)'
+        text: "Loading",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
       });
       const formData = {
         file: this.fileList[0].url,
         title: this.importForm.title,
-        remark: this.importForm.remark
+        remark: this.importForm.remark,
       };
-      handleImport(formData).then(res => {
-        this.fileList = [];
-        this.getList();
-        this.importFormDialog = false;
-      }).catch(res => {
-        this.$errorMsg(res.message);
-      }).finally(res => {
-        loading.close();
-      })
+      handleImport(formData)
+        .then((res) => {
+          this.fileList = [];
+          this.getList();
+          this.importFormDialog = false;
+        })
+        .catch((res) => {
+          this.$errorMsg(res.message);
+        })
+        .finally((res) => {
+          loading.close();
+        });
     },
 
     // 下载
     handleExport(item) {
-      exportFile({id: item.id}).then(res => {
-        if(res.data) {
+      exportFile({ id: item.id }).then((res) => {
+        if (res.data) {
           window.open(this.imageURL + res.data);
         }
-      })
+      });
     },
-
-  }
-}
+  },
+};
 </script>
 
 <style scoped>

+ 420 - 196
src/views/notice/index.vue

@@ -2,21 +2,36 @@
   <div class="app-container">
     <!-- 筛选条件 -->
     <div class="screen-container">
-      <el-form ref="screenForm" :model="screenForm" label-width="70px" size="small" label-position="left">
+      <el-form
+        ref="screenForm"
+        :model="screenForm"
+        label-width="70px"
+        size="small"
+        label-position="left"
+      >
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="通知类型" prop="type">
-              <el-input v-model="screenForm.type" placeholder="请输入通知类型"></el-input>
+              <el-input
+                v-model="screenForm.type"
+                placeholder="请输入通知类型"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="文件编码" prop="code">
-              <el-input v-model="screenForm.code" placeholder="请输入文件编码"></el-input>
+              <el-input
+                v-model="screenForm.code"
+                placeholder="请输入文件编码"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
             <el-form-item label="文件标题" prop="title">
-              <el-input v-model="screenForm.title" placeholder="请输入文件标题"></el-input>
+              <el-input
+                v-model="screenForm.title"
+                placeholder="请输入文件标题"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="6">
@@ -25,17 +40,20 @@
                 v-model="screenForm.date"
                 type="datetimerange"
                 range-separator="至"
-                style="width: 100%;"
+                style="width: 100%"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 start-placeholder="开始日期"
-                end-placeholder="结束日期">
+                end-placeholder="结束日期"
+              >
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :lg="24" class="tr">
             <el-form-item label="">
               <el-button size="small" @click="resetScreenForm">清空</el-button>
-              <el-button size="small" type="primary" @click="submitScreenForm">搜索</el-button>
+              <el-button size="small" type="primary" @click="submitScreenForm"
+                >搜索</el-button
+              >
             </el-form-item>
           </el-col>
         </el-row>
@@ -45,29 +63,118 @@
     <div class="mymain-container">
       <div class="btn-group clearfix">
         <div class="fl">
-          <el-button class="fl" size="small" type="primary" icon="el-icon-plus" @click="openMainForm()">新增</el-button>
-          <el-button class="fl" size="small" type="danger" icon="el-icon-minus" @click="batchDelete()">批量删除</el-button>
+          <el-button
+            class="fl"
+            size="small"
+            type="primary"
+            icon="el-icon-plus"
+            @click="openMainForm()"
+            >新增</el-button
+          >
+          <el-button
+            class="fl"
+            size="small"
+            type="danger"
+            icon="el-icon-minus"
+            @click="batchDelete()"
+            >批量删除</el-button
+          >
         </div>
       </div>
       <div class="table">
-        <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe @selection-change="handleSelectionChange">
-          <el-table-column align="center" label="操作" fixed="right" width="120">
+        <el-table
+          v-loading="listLoading"
+          :data="dataList"
+          element-loading-text="Loading"
+          border
+          fit
+          highlight-current-row
+          stripe
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column
+            align="center"
+            label="操作"
+            fixed="right"
+            width="120"
+          >
             <template slot-scope="scope">
-              <el-button type="text" @click="openDetail(scope.row.id)" v-if="checkBtnRole('edit')">浏览</el-button>
-              <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @onConfirm="deleteData(scope.row.noticeId)">
+              <el-button
+                type="text"
+                @click="openDetail(scope.row.id)"
+                v-if="checkBtnRole('edit')"
+                >浏览</el-button
+              >
+              <el-popconfirm
+                style="margin-left: 10px"
+                title="确定删除吗?"
+                @onConfirm="deleteData(scope.row.noticeId)"
+              >
                 <el-button slot="reference" type="text">删除</el-button>
               </el-popconfirm>
             </template>
           </el-table-column>
-          <el-table-column align="center" type="selection" width="55"></el-table-column>
-          <el-table-column align="center" label="通知类型" prop="type" min-width="120" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="文件编码" prop="code" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="文件标题" prop="title" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="接收人" prop="adminNickName" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="发送人" prop="issueNickName" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="发送人编号" prop="issueUserId" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="发布日期" prop="issueTime" min-width="160" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" label="创建时间" prop="createTime" min-width="160" show-overflow-tooltip></el-table-column>
+          <el-table-column
+            align="center"
+            type="selection"
+            width="55"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="通知类型"
+            prop="type"
+            min-width="120"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="文件编码"
+            prop="code"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="文件标题"
+            prop="title"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="接收人"
+            prop="adminNickName"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="发送人"
+            prop="issueNickName"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="发送人编号"
+            prop="issueUserId"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="发布日期"
+            prop="issueTime"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="创建时间"
+            prop="createTime"
+            min-width="160"
+            show-overflow-tooltip
+          ></el-table-column>
           <!-- <el-table-column align="center" label="已确认" prop="readFlag" min-width="140" show-overflow-tooltip></el-table-column> -->
         </el-table>
       </div>
@@ -81,34 +188,59 @@
             :page-sizes="[10, 20, 30, 50]"
             :page-size="10"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="listTotal">
+            :total="listTotal"
+          >
           </el-pagination>
         </div>
       </div>
     </div>
 
     <!-- 新增 -->
-    <el-dialog title="新增" :visible.sync="mainFormDialog" :show-close="false" width="60%" :close-on-click-modal="false">
-      <el-form ref="mainForm" :model="mainForm" :rules="mainFormRules" label-position="right" label-width="90px">
+    <el-dialog
+      title="新增"
+      :visible.sync="mainFormDialog"
+      :show-close="false"
+      width="60%"
+      :close-on-click-modal="false"
+    >
+      <el-form
+        ref="mainForm"
+        :model="mainForm"
+        :rules="mainFormRules"
+        label-position="right"
+        label-width="90px"
+      >
         <el-row :gutter="20">
           <el-col :xs="24" :sm="12" :lg="12">
             <el-form-item label="通知类型" prop="type">
-              <el-input v-model="mainForm.type" placeholder="请输入通知类型"></el-input>
+              <el-input
+                v-model="mainForm.type"
+                placeholder="请输入通知类型"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="12">
             <el-form-item label="文件编号" prop="code">
-              <el-input v-model="mainForm.code" placeholder="请输入文件编号"></el-input>
+              <el-input
+                v-model="mainForm.code"
+                placeholder="请输入文件编号"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="12">
             <el-form-item label="文件标题" prop="title">
-              <el-input v-model="mainForm.title" placeholder="请输入文件标题"></el-input>
+              <el-input
+                v-model="mainForm.title"
+                placeholder="请输入文件标题"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="12">
             <el-form-item label="来源" prop="source">
-              <el-input v-model="mainForm.source" placeholder="请输入来源"></el-input>
+              <el-input
+                v-model="mainForm.source"
+                placeholder="请输入来源"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :lg="24">
@@ -118,13 +250,19 @@
                 type="datetime"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 style="width: 100%"
-                placeholder="选择发布日期">
+                placeholder="选择发布日期"
+              >
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :lg="24">
             <el-form-item label="发布内容" prop="content">
-              <el-input type="textarea" v-model="mainForm.content" placeholder="请输入发布内容" :autosize="{ minRows: 4, maxRows: 8}"></el-input>
+              <el-input
+                type="textarea"
+                v-model="mainForm.content"
+                placeholder="请输入发布内容"
+                :autosize="{ minRows: 4, maxRows: 8 }"
+              ></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :lg="24">
@@ -135,7 +273,8 @@
                 node-key="adminWebsitId"
                 ref="tree"
                 highlight-current
-                :props="props">
+                :props="props"
+              >
               </el-tree>
             </el-form-item>
           </el-col>
@@ -143,7 +282,6 @@
         <el-form-item label="上传附件" prop="fileUrl">
           <ImageUpload :fileList="fileList" :multiple="true" />
         </el-form-item>
-
       </el-form>
 
       <div slot="footer" class="dialog-footer">
@@ -153,24 +291,59 @@
     </el-dialog>
 
     <!-- 已阅记录 -->
-    <el-dialog title="已阅记录" :visible.sync="recordDialog" :show-close="false" width="70%" :close-on-click-modal="false">
-      <div class="table" style="margin: 10px 0 20px;">
+    <el-dialog
+      title="已阅记录"
+      :visible.sync="recordDialog"
+      :show-close="false"
+      width="70%"
+      :close-on-click-modal="false"
+    >
+      <div class="table" style="margin: 10px 0 20px">
         <el-table
           v-loading="detailTable_listLoading"
           :data="detailTable_dataList"
           element-loading-text="Loading"
           tooltip-effect="dark"
           style="width: 100%"
-          max-height="270">
-          <el-table-column align="center" label="序号" type="index" width="50"></el-table-column>
-          <el-table-column align="center" prop="title" label="标题" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" prop="websitNumber" label="网点名称" min-width="140" show-overflow-tooltip>
+          max-height="270"
+        >
+          <el-table-column
+            align="center"
+            label="序号"
+            type="index"
+            width="50"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="title"
+            label="标题"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="websitNumber"
+            label="网点名称"
+            min-width="140"
+            show-overflow-tooltip
+          >
             <template slot-scope="scope">
-              {{scope.row.websitName}}({{scope.row.websitNumber}})
+              {{ scope.row.websitName }}({{ scope.row.websitNumber }})
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="remark" label="备注" min-width="140" show-overflow-tooltip></el-table-column>
-          <el-table-column align="center" prop="createTime" label="下载时间" min-width="160"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="remark"
+            label="备注"
+            min-width="140"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="下载时间"
+            min-width="160"
+          ></el-table-column>
         </el-table>
       </div>
       <div class="pagination clearfix">
@@ -181,7 +354,8 @@
             :page-size="detailTable_pageSize"
             background
             layout="prev, pager, next"
-            :total="detailTable_listTotal">
+            :total="detailTable_listTotal"
+          >
           </el-pagination>
         </div>
       </div>
@@ -192,23 +366,59 @@
     </el-dialog>
 
     <!-- 详情 -->
-    <el-dialog title="浏览" :visible.sync="detailDialog" width="60%" :close-on-click-modal="false">
+    <el-dialog
+      title="浏览"
+      :visible.sync="detailDialog"
+      width="60%"
+      :close-on-click-modal="false"
+    >
       <div class="detail-container">
-        <div class="title">{{detailData.title}}</div>
-        <div class="text">发布人:{{detailData.issueNickName}}<el-divider direction="vertical"></el-divider>发布时间:{{detailData.issueTime}}</div>
+        <div class="title">{{ detailData.title }}</div>
+        <div class="text">
+          发布人:{{ detailData.issueNickName
+          }}<el-divider direction="vertical"></el-divider>发布时间:{{
+            detailData.issueTime
+          }}
+        </div>
         <el-divider></el-divider>
-        <div class="content">{{detailData.content}}</div>
-        <el-divider v-if="detailData.files && detailData.files.length > 0"></el-divider>
-        <div class="file" v-if="detailData.files && detailData.files.length > 0">
+        <div class="content">{{ detailData.content }}</div>
+        <el-divider
+          v-if="detailData.files && detailData.files.length > 0"
+        ></el-divider>
+        <div
+          class="file"
+          v-if="detailData.files && detailData.files.length > 0"
+        >
           <div>附件:</div>
           <div class="file-list">
-            <div v-for="(item, index) in detailData.files" :key="index" class="item">
-              <el-image v-if="checkFileType(item.url) == 'image'" class="img" :src="imageURL + item.url" :preview-src-list="[imageURL + item.url]"></el-image>
+            <div
+              v-for="(item, index) in detailData.files"
+              :key="index"
+              class="item"
+            >
+              <el-image
+                v-if="checkFileType(item.url) == 'image'"
+                class="img"
+                :src="imageURL + item.url"
+                :preview-src-list="[imageURL + item.url]"
+              ></el-image>
               <div v-else class="box2" @click="openLink(item.url)">
-                <img src="@/assets/common/word.png" v-if="checkFileType(item.url) == 'word'" />
-                <img src="@/assets/common/excel.png" v-if="checkFileType(item.url) == 'excel'" />
-                <img src="@/assets/common/ppt.png" v-if="checkFileType(item.url) == 'ppt'" />
-                <img src="@/assets/common/pdf.png" v-if="checkFileType(item.url) == 'pdf'" />
+                <img
+                  src="@/assets/common/word.png"
+                  v-if="checkFileType(item.url) == 'word'"
+                />
+                <img
+                  src="@/assets/common/excel.png"
+                  v-if="checkFileType(item.url) == 'excel'"
+                />
+                <img
+                  src="@/assets/common/ppt.png"
+                  v-if="checkFileType(item.url) == 'ppt'"
+                />
+                <img
+                  src="@/assets/common/pdf.png"
+                  v-if="checkFileType(item.url) == 'pdf'"
+                />
                 <div class="name ellipsis-3">{{ item.name }}</div>
               </div>
             </div>
@@ -217,22 +427,36 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="confirmCheck(detailData.id)" v-if="!detailData.readFlag">确认接收</el-button>
-        <el-button @click="detailDialog = false" v-if="detailData.readFlag">关 闭</el-button>
+        <el-button
+          type="primary"
+          @click="confirmCheck(detailData.id)"
+          v-if="!detailData.readFlag"
+          >确认接收</el-button
+        >
+        <el-button @click="detailDialog = false" v-if="detailData.readFlag"
+          >关 闭</el-button
+        >
       </div>
     </el-dialog>
-
   </div>
 </template>
 
 <script>
-import { getList, getDownloadList, deleteData, addData, getDepartmentList, getDetail, confirmCheck } from '@/api/notice'
-import { getFileUrl } from '@/api/common';
-import ImageUpload from '@/components/Common/image-upload.vue'
+import {
+  getList,
+  getDownloadList,
+  deleteData,
+  addData,
+  getDepartmentList,
+  getDetail,
+  confirmCheck,
+} from "@/api/notice";
+import { getFileUrl } from "@/api/common";
+import ImageUpload from "@/components/Common/image-upload.vue";
 
 export default {
   components: {
-    ImageUpload
+    ImageUpload,
   },
   data() {
     return {
@@ -242,33 +466,30 @@ export default {
       currentPage: 1, // 当前页码
       pageSize: 10, // 每页数量
       listTotal: 0, // 列表总数
-      screenForm: { // 筛选表单数据
-        type: '',
-        code: '',
-        title: '',
-        date: '',
+      screenForm: {
+        // 筛选表单数据
+        type: "",
+        code: "",
+        title: "",
+        date: "",
       },
       mainForm: {
-        type: '',
-        code: '',
-        title: '',
-        source: '',
-        department: '',
-        date: '',
-        content: '',
+        type: "",
+        code: "",
+        title: "",
+        source: "",
+        department: "",
+        date: "",
+        content: "",
       },
       mainFormRules: {
-        type: [
-          { required: true, message: '请输入通知类型', trigger: 'blur' }
-        ],
-        title: [
-          { required: true, message: '请输入文件标题', trigger: 'blur' }
-        ],
+        type: [{ required: true, message: "请输入通知类型", trigger: "blur" }],
+        title: [{ required: true, message: "请输入文件标题", trigger: "blur" }],
         date: [
-          { required: true, message: '请选择发布日期', trigger: 'change' }
+          { required: true, message: "请选择发布日期", trigger: "change" },
         ],
         content: [
-          { required: true, message: '请输入发布内容', trigger: 'blur' }
+          { required: true, message: "请输入发布内容", trigger: "blur" },
         ],
       },
       mainFormDialog: false,
@@ -277,9 +498,9 @@ export default {
       departmentList: [],
       props: {
         multiple: true,
-        value: 'adminWebsitId',
-        label: 'name',
-        children: 'children',
+        value: "adminWebsitId",
+        label: "name",
+        children: "children",
       },
 
       detailDialog: false, // 详情 - 弹窗
@@ -293,11 +514,9 @@ export default {
       detailTable_currentPage: 1, // 已阅记录 - 当前页码
       detailTable_pageSize: 10, // 已阅记录 - 每页数量
       detailTable_listTotal: 0, // 已阅记录 - 列表总数
-    }
-  },
-  computed: {
-
+    };
   },
+  computed: {},
   created() {
     this.getList();
   },
@@ -306,16 +525,18 @@ export default {
     checkBtnRole(value) {
       return true;
       let btnRole = this.$route.meta.roles;
-      if(!btnRole) {return true}
+      if (!btnRole) {
+        return true;
+      }
       let index = btnRole.indexOf(value);
       return index >= 0 ? true : false;
     },
 
     // 获取部门列表
     getTree() {
-      getDepartmentList().then(res => {
+      getDepartmentList().then((res) => {
         this.departmentList = res.data;
-      })
+      });
     },
 
     // 获取列表
@@ -327,14 +548,14 @@ export default {
         type: this.screenForm.type,
         code: this.screenForm.code,
         title: this.screenForm.title,
-        startTime: this.screenForm.date ? this.screenForm.date[0] : '',
-        endTime: this.screenForm.date ? this.screenForm.date[1] : '',
-      }
-      getList(params).then(res => {
+        startTime: this.screenForm.date ? this.screenForm.date[0] : "",
+        endTime: this.screenForm.date ? this.screenForm.date[1] : "",
+      };
+      getList(params).then((res) => {
         this.listLoading = false;
         this.dataList = res.data ? res.data.records : [];
         this.listTotal = res.data ? res.data.total : 0;
-      })
+      });
     },
 
     // 更改每页数量
@@ -370,75 +591,79 @@ export default {
 
     // 批量删除
     batchDelete() {
-      if(this.multipleSelection.length < 1) {
-        return this.$errorMsg('请选择信息');
+      if (this.multipleSelection.length < 1) {
+        return this.$errorMsg("请选择信息");
       }
-      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        let ids = [];
-        this.multipleSelection.forEach(item => {
-          ids.push(item.noticeId);
-        });
-        deleteData({noticeIds: ids.join(',')}).then(res => {
-          this.$successMsg('删除成功');
-          this.getList();
+      this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          let ids = [];
+          this.multipleSelection.forEach((item) => {
+            ids.push(item.noticeId);
+          });
+          deleteData({ noticeIds: ids.join(",") }).then((res) => {
+            this.$successMsg("删除成功");
+            this.getList();
+          });
         })
-      }).catch(() => {});
+        .catch(() => {});
     },
 
     // 操作 - 删除
     deleteData(id) {
-      deleteData({noticeIds: id}).then(res => {
-        this.$successMsg('删除成功');
+      deleteData({ noticeIds: id }).then((res) => {
+        this.$successMsg("删除成功");
         this.getList();
-      })
+      });
     },
 
     // 详情 - 打开弹窗
     openDetail(id) {
-      getDetail({id}).then(res => {
+      getDetail({ id }).then((res) => {
         this.detailData = res.data;
         this.detailDialog = true;
-      })
+      });
     },
 
     // 检查文件类型
     checkFileType(url) {
-      if(!url) return '';
-			const fileSuffix = url.substring(url.lastIndexOf(".") + 1);
-
-			if (['jpg', 'jpeg', 'png'].includes(fileSuffix)) {
-				return 'image';
-			}else if (['doc', 'docx', 'dot', 'wps', 'wpt'].includes(fileSuffix)) {
-				return 'word';
-			}else if(['xls', 'xlsx', 'xlt', 'et', 'ett'].includes(fileSuffix)) {
-				return 'excel';
-			}else if(['ppt', 'pptx', 'dps', 'dpt', 'pot', 'pps'].includes(fileSuffix)) {
-				return 'ppt';
-			}else if(['pdf'].includes(fileSuffix)) {
-				return 'pdf';
-			}else {
-        return '';
+      if (!url) return "";
+      const fileSuffix = url.substring(url.lastIndexOf(".") + 1);
+
+      if (["jpg", "jpeg", "png"].includes(fileSuffix)) {
+        return "image";
+      } else if (["doc", "docx", "dot", "wps", "wpt"].includes(fileSuffix)) {
+        return "word";
+      } else if (["xls", "xlsx", "xlt", "et", "ett"].includes(fileSuffix)) {
+        return "excel";
+      } else if (
+        ["ppt", "pptx", "dps", "dpt", "pot", "pps"].includes(fileSuffix)
+      ) {
+        return "ppt";
+      } else if (["pdf"].includes(fileSuffix)) {
+        return "pdf";
+      } else {
+        return "";
       }
-		},
+    },
 
     // 打开链接
     openLink(url) {
-      getFileUrl({key: url}).then(res => {
+      getFileUrl({ key: url }).then((res) => {
         window.open(res.data);
-      })
+      });
     },
 
     // 确认查收
     confirmCheck(id) {
-      confirmCheck({noticeIds: id}).then(res => {
-        this.$successMsg('查收成功');
+      confirmCheck({ noticeIds: id }).then((res) => {
+        this.$successMsg("查收成功");
         this.detailDialog = false;
         this.getList();
-      })
+      });
     },
 
     // 已阅记录 - 获取列表
@@ -446,12 +671,12 @@ export default {
       getDownloadList({
         pageNo: this.detailTable_currentPage,
         pageSize: this.detailTable_pageSize,
-        id: this.recordId
-      }).then(res => {
+        id: this.recordId,
+      }).then((res) => {
         this.detailTable_dataList = res.data.records;
         this.detailTable_listTotal = res.data.total;
         this.detailTable_listLoading = false;
-      })
+      });
     },
 
     // 已阅记录 - 打开弹窗
@@ -475,7 +700,7 @@ export default {
     },
 
     // 关闭 表单
-    closeMainForm(){
+    closeMainForm() {
       this.mainFormDialog = false;
       this.fileList = [];
       this.$refs.mainForm.resetFields();
@@ -495,74 +720,73 @@ export default {
             adminWebsitIds: this.$refs.tree.getCheckedKeys(),
             files: this.fileList,
           };
-          addData(params).then(res => {
+          addData(params).then((res) => {
             this.closeMainForm();
             this.getList();
             this.mainFormDialog = false;
-          })
+          });
         }
-      })
+      });
     },
-
-  }
-}
+  },
+};
 </script>
 
 <style scoped lang="scss">
-  .detail-container {
-    .title {
-      font-size: 16px;
-      color: #333333;
-      font-weight: 600;
-    }
-    .text {
-      font-size: 14px;
-      color: #999999;
-      margin-top: 10px;
+.detail-container {
+  .title {
+    font-size: 16px;
+    color: #333333;
+    font-weight: 600;
+  }
+  .text {
+    font-size: 14px;
+    color: #999999;
+    margin-top: 10px;
+  }
+  .content {
+    font-size: 14px;
+    color: #666666;
+    line-height: 20px;
+  }
+  .file {
+    .file-list {
+      display: flex;
+      .item {
+        margin-top: 10px;
+        margin-right: 10px;
+      }
     }
-    .content {
-      font-size: 14px;
-      color: #666666;
-      line-height: 20px;
+    .img {
+      width: 80px;
+      height: 80px;
+      display: block;
+      border: 1px solid #e4e7ed;
     }
-    .file {
-      .file-list {
-        display: flex;
-        .item {
-          margin-top: 10px;
-          margin-right: 10px;
-        }
-      }
-      .img {
-        width: 80px;
-        height: 80px;
+    .box2 {
+      flex: 1;
+      display: flex;
+      padding: 10px;
+      align-items: center;
+      border: 1px solid #e4e7ed;
+      width: 240px;
+      height: 80px;
+      cursor: pointer;
+      img {
+        width: 40px;
+        height: 40px;
         display: block;
-        border: 1px solid #e4e7ed;
       }
-      .box2 {
+      .name {
         flex: 1;
-        display: flex;
-        padding: 10px;
-        align-items: center;
-        border: 1px solid #e4e7ed;
-        width: 240px;
-        height: 80px;
-        cursor: pointer;
-        img {
-          width: 40px;
-          height: 40px;
-          display: block;
-        }
-        .name {
-          flex: 1;
-          color: #222;
-          font-weight: 600;
-          margin-left: 10px;
-        }
+        color: #222;
+        font-weight: 600;
+        margin-left: 10px;
       }
     }
   }
-  .el-divider--horizontal {
-    margin: 16px 0;
-  }
+}
+.el-divider--horizontal {
+  margin: 16px 0;
+}
 </style>