|
@@ -43,6 +43,9 @@
|
|
|
<el-table-column label="发布人" prop="oper" width="120"/>
|
|
|
<el-table-column label="站点" prop="siteName" width="220"/>
|
|
|
<el-table-column label="站点类型" prop="siteType" width="120"/>
|
|
|
+ <el-table-column label="已登录查阅次数" prop="count" width="120"/>
|
|
|
+ <el-table-column label="一类单位" prop="unitName" width="120"/>
|
|
|
+ <el-table-column label="分数" prop="integral" width="120"/>
|
|
|
<el-table-column label="处理状态" prop="status" width="120">
|
|
|
<template #default="scope">
|
|
|
<el-tag v-show="scope.row.status == 'Untreated'" type="warning">未处理</el-tag>
|
|
@@ -61,6 +64,8 @@
|
|
|
</el-button>
|
|
|
<el-button type="danger" icon="el-icon-delete" size="mini" @click="deleteRow(scope.row)">删除</el-button>
|
|
|
<el-button type="small" icon="el-icon-download" size="mini" @click="handlePdf(scope.row)">导出为pdf</el-button>
|
|
|
+ <el-button type="small" icon="el-icon-s-comment" size="mini" @click="openUser(scope.row)">发送公众号通知</el-button>
|
|
|
+ <el-button type="small" icon="el-icon-user" size="mini" @click="showReadInfo(scope.row)">已查阅详情</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -74,6 +79,46 @@
|
|
|
@current-change="handleCurrentChange"
|
|
|
@size-change="handleSizeChange"
|
|
|
/>
|
|
|
+ <el-dialog title="选择通知人" v-model="noticeList" width="500px" append-to-body>
|
|
|
+ <el-form v-model="noticeUser" label-width="120px">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="选择通知人" :rules="{required: true, message: '请选择通知人'}">
|
|
|
+ <el-select
|
|
|
+ v-model="noticeUser.userList"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ multiple
|
|
|
+ size="small"
|
|
|
+ style="width: 240px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="id in Object.keys(userIds)"
|
|
|
+ :key="id"
|
|
|
+ :label="userIds[id]"
|
|
|
+ :value="id"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="sendUser">确 定</el-button>
|
|
|
+ <el-button @click="closeSend">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="已阅详情"
|
|
|
+ v-model="dialogVisibleRead"
|
|
|
+ width="30%">
|
|
|
+ <div style="text-align: center;padding-bottom: 20px">
|
|
|
+ <span>{{ readMsg }}</span>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="closeRead">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
<el-dialog ref="problemInfo" v-model="dialogFormVisible" id="problemInfo" :before-close="closeDialog" title="问题详情">
|
|
|
<el-form :model="formData" label-position="right" label-width="80px">
|
|
|
<el-card class="box-card">
|
|
@@ -147,10 +192,11 @@ import {
|
|
|
updateProblemInfo,
|
|
|
findProblemInfo,
|
|
|
getProblemInfoList,
|
|
|
- exportExcel
|
|
|
+ exportExcel, sendUserProblemInfo, getReadCountList
|
|
|
} from '@/api/problemInfo' // 此处请自行替换地址
|
|
|
import infoList from '@/mixins/infoList'
|
|
|
-import { getDict } from '@/utils/dictionary'
|
|
|
+import {getDict} from '@/utils/dictionary'
|
|
|
+import {getUserPList} from "@/api/user";
|
|
|
|
|
|
export default {
|
|
|
name: 'ProblemInfo',
|
|
@@ -161,6 +207,14 @@ export default {
|
|
|
dialogFormVisible: false,
|
|
|
type: '',
|
|
|
siteType: [],
|
|
|
+ noticeList: false,
|
|
|
+ userIds: {},
|
|
|
+ dialogVisibleRead: false,
|
|
|
+ readMsg: '',
|
|
|
+ noticeUser: {
|
|
|
+ userList: []
|
|
|
+ },
|
|
|
+ sendId: 0,
|
|
|
deleteVisible: false,
|
|
|
multipleSelection: [],
|
|
|
matterList: [],
|
|
@@ -212,7 +266,41 @@ export default {
|
|
|
async handlePdf(row) {
|
|
|
const href = window.location.origin
|
|
|
const params = `/#/proInfo?Id=${row.ID}`
|
|
|
- window.open(href + params, '_blank','width=1200,height=1000,location=no,toolbar=no,status=no,scrollbars=yes,titlebar=no,')
|
|
|
+ window.open(href + params, '_blank', 'width=1200,height=1000,location=no,toolbar=no,status=no,scrollbars=yes,titlebar=no,')
|
|
|
+ },
|
|
|
+ async openUser(row) {
|
|
|
+ this.sendId = row.ID
|
|
|
+ this.noticeList = true
|
|
|
+ getUserPList({page: 1, pageSize: 9999}).then(res => {
|
|
|
+ for (const user in res.data.list) {
|
|
|
+ this.userIds[res.data.list[user].ID] = res.data.list[user].userName
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ sendUser() {
|
|
|
+ sendUserProblemInfo({ID: this.noticeUser.userList, ProblemID: this.sendId}).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ this.closeSend()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ closeSend() {
|
|
|
+ this.noticeList = false
|
|
|
+ this.userIds = {}
|
|
|
+ this.noticeUser.userList = []
|
|
|
+ this.sendId = 0
|
|
|
+ },
|
|
|
+ showReadInfo(row) {
|
|
|
+ getReadCountList({page: 1, pageSize: 9999, problemId: row.ID}).then(res => {
|
|
|
+ this.dialogVisibleRead = true;
|
|
|
+ this.readMsg = ''
|
|
|
+ for (const read in res.data.list) {
|
|
|
+ this.readMsg=this.readMsg.concat(res.data.list[read].userName + ':' + res.data.list[read].count + '次、')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ closeRead() {
|
|
|
+ this.dialogVisibleRead = false;
|
|
|
+ this.readMsg = ''
|
|
|
},
|
|
|
async onDelete() {
|
|
|
const ids = []
|