|
@@ -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>
|