通知消息完善
parent
1a27dbaac0
commit
70f8983d0a
|
@ -1,6 +1,6 @@
|
||||||
import django_filters
|
import django_filters
|
||||||
|
|
||||||
from apps.system.models import DictDetails, DictData, ConfigSettings
|
from apps.system.models import DictDetails, DictData, ConfigSettings, MessagePush
|
||||||
|
|
||||||
|
|
||||||
class DictDataFilter(django_filters.rest_framework.FilterSet):
|
class DictDataFilter(django_filters.rest_framework.FilterSet):
|
||||||
|
@ -32,3 +32,12 @@ class ConfigSettingsFilter(django_filters.rest_framework.FilterSet):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ConfigSettings
|
model = ConfigSettings
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
class MessagePushFilter(django_filters.rest_framework.FilterSet):
|
||||||
|
"""
|
||||||
|
消息通知 简单过滤器
|
||||||
|
"""
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = MessagePush
|
||||||
|
fields = '__all__'
|
||||||
|
|
|
@ -4,4 +4,5 @@ from ..models.dict_details import DictDetails
|
||||||
from ..models.web_set import WebSet
|
from ..models.web_set import WebSet
|
||||||
from ..models.save_file import SaveFile
|
from ..models.save_file import SaveFile
|
||||||
from ..models.message_push import MessagePush
|
from ..models.message_push import MessagePush
|
||||||
|
from ..models.message_push import MessagePushUser
|
||||||
|
|
||||||
|
|
|
@ -11,11 +11,12 @@ from apps.permission.models import UserProfile
|
||||||
|
|
||||||
|
|
||||||
class MessagePush(CoreModel):
|
class MessagePush(CoreModel):
|
||||||
title = CharField(max_length=128, verbose_name="通知标题")
|
title = CharField(max_length=128, verbose_name="消息标题")
|
||||||
content = TextField(verbose_name="通知内容")
|
content = TextField(verbose_name="消息内容")
|
||||||
message_type = CharField(max_length=8, verbose_name="消息类型")
|
message_type = CharField(max_length=8, verbose_name="消息类型")
|
||||||
is_reviewed = BooleanField(default=True, verbose_name="是否审核")
|
is_reviewed = BooleanField(default=True, verbose_name="是否审核")
|
||||||
status = CharField(max_length=8, verbose_name="消息状态")
|
status = CharField(max_length=8, verbose_name="消息状态")
|
||||||
|
to_path = CharField(max_length=256, verbose_name="跳转路径", null=True, blank=True, )
|
||||||
user = ManyToManyField(to="permission.UserProfile",
|
user = ManyToManyField(to="permission.UserProfile",
|
||||||
related_name="user", related_query_name="user_query", through='MessagePushUser',
|
related_name="user", related_query_name="user_query", through='MessagePushUser',
|
||||||
through_fields=('message_push', 'user'))
|
through_fields=('message_push', 'user'))
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from apps.op_drf.serializers import CustomModelSerializer
|
from apps.op_drf.serializers import CustomModelSerializer
|
||||||
from apps.permission.serializers import UserProfileSerializer
|
from apps.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush, MessagePushUser
|
||||||
from apps.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush
|
|
||||||
|
|
||||||
|
|
||||||
# ================================================= #
|
# ================================================= #
|
||||||
|
@ -162,11 +161,6 @@ class MessagePushSerializer(CustomModelSerializer):
|
||||||
"""
|
"""
|
||||||
消息通知 简单序列化器
|
消息通知 简单序列化器
|
||||||
"""
|
"""
|
||||||
# users = UserProfileSerializer(read_only=True)
|
|
||||||
users = serializers.SerializerMethodField(read_only=True)
|
|
||||||
|
|
||||||
def get_users(self, obj):
|
|
||||||
return UserProfileSerializer(obj.user.all(), many=True).data
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MessagePush
|
model = MessagePush
|
||||||
|
@ -198,5 +192,27 @@ class ExportMessagePushSerializer(CustomModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = MessagePush
|
model = MessagePush
|
||||||
fields = (
|
fields = (
|
||||||
'id', 'title', 'content', 'message_type', 'is_reviewed', 'status', 'users', 'creator', 'modifier',
|
'id', 'title', 'content', 'message_type', 'is_reviewed', 'status', 'users', 'creator', 'modifier',
|
||||||
'update_datetime', 'create_datetime')
|
'update_datetime', 'create_datetime')
|
||||||
|
|
||||||
|
class MessagePushUserSerializer(CustomModelSerializer):
|
||||||
|
"""
|
||||||
|
消息通知 用户查询简单序列化器
|
||||||
|
"""
|
||||||
|
# users = UserProfileSerializer(read_only=True)
|
||||||
|
# users = serializers.SerializerMethodField(read_only=True)
|
||||||
|
is_read = serializers.SerializerMethodField(read_only=True)
|
||||||
|
|
||||||
|
# def get_users(self, obj):
|
||||||
|
# return UserProfileSerializer(obj.user.all(), many=True).data
|
||||||
|
# 返回这个消息是否已读
|
||||||
|
def get_is_read(self, obj):
|
||||||
|
object = MessagePushUser.objects.filter(message_push=obj,user=self.context.get('request').user).first()
|
||||||
|
return object.is_read if object else False
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = MessagePush
|
||||||
|
fields = "__all__"
|
||||||
|
|
||||||
|
def save(self, **kwargs):
|
||||||
|
return super().save(**kwargs)
|
||||||
|
|
|
@ -2,7 +2,7 @@ from rest_framework.request import Request
|
||||||
|
|
||||||
from apps.op_drf.filters import DataLevelPermissionsFilter
|
from apps.op_drf.filters import DataLevelPermissionsFilter
|
||||||
from apps.op_drf.viewsets import CustomModelViewSet
|
from apps.op_drf.viewsets import CustomModelViewSet
|
||||||
from apps.system.filters import DictDetailsFilter, DictDataFilter, ConfigSettingsFilter
|
from apps.system.filters import DictDetailsFilter, DictDataFilter, ConfigSettingsFilter, MessagePushFilter
|
||||||
from apps.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush
|
from apps.system.models import DictData, DictDetails, ConfigSettings, SaveFile, MessagePush
|
||||||
from apps.system.serializers import DictDataSerializer, DictDataCreateUpdateSerializer, DictDetailsSerializer, \
|
from apps.system.serializers import DictDataSerializer, DictDataCreateUpdateSerializer, DictDetailsSerializer, \
|
||||||
DictDetailsCreateUpdateSerializer, DictDetailsListSerializer, ConfigSettingsSerializer, \
|
DictDetailsCreateUpdateSerializer, DictDetailsListSerializer, ConfigSettingsSerializer, \
|
||||||
|
@ -137,7 +137,7 @@ class SaveFileModelViewSet(CustomModelViewSet):
|
||||||
serializer_class = SaveFileSerializer
|
serializer_class = SaveFileSerializer
|
||||||
create_serializer_class = SaveFileCreateUpdateSerializer
|
create_serializer_class = SaveFileCreateUpdateSerializer
|
||||||
update_serializer_class = SaveFileCreateUpdateSerializer
|
update_serializer_class = SaveFileCreateUpdateSerializer
|
||||||
# filter_class = ConfigSettingsFilter
|
filter_class = ConfigSettingsFilter
|
||||||
extra_filter_backends = [DataLevelPermissionsFilter]
|
extra_filter_backends = [DataLevelPermissionsFilter]
|
||||||
search_fields = ('configName',)
|
search_fields = ('configName',)
|
||||||
ordering = 'id' # 默认排序
|
ordering = 'id' # 默认排序
|
||||||
|
@ -152,6 +152,7 @@ class MessagePushModelViewSet(CustomModelViewSet):
|
||||||
create_serializer_class = MessagePushCreateUpdateSerializer
|
create_serializer_class = MessagePushCreateUpdateSerializer
|
||||||
update_serializer_class = MessagePushCreateUpdateSerializer
|
update_serializer_class = MessagePushCreateUpdateSerializer
|
||||||
extra_filter_backends = [DataLevelPermissionsFilter]
|
extra_filter_backends = [DataLevelPermissionsFilter]
|
||||||
|
filter_class = MessagePushFilter
|
||||||
ordering = "-update_datetime" # 默认排序
|
ordering = "-update_datetime" # 默认排序
|
||||||
|
|
||||||
def get_message_list(self, request: Request, *args, **kwargs):
|
def get_message_list(self, request: Request, *args, **kwargs):
|
||||||
|
|
|
@ -79,6 +79,6 @@ INSERT INTO `permission_menu` VALUES (45, '', 'admin', '2021-03-03 15:25:15.2249
|
||||||
INSERT INTO `permission_menu` VALUES (46, '', 'admin', '2021-03-03 15:28:30.061632', '2021-03-03 15:27:19.945663', '2', NULL, '文件下载', 4, '1', NULL, NULL, NULL, 'GET', 'system:clearsavefile:download:post', '1', '1', '1', 1, 11);
|
INSERT INTO `permission_menu` VALUES (46, '', 'admin', '2021-03-03 15:28:30.061632', '2021-03-03 15:27:19.945663', '2', NULL, '文件下载', 4, '1', NULL, NULL, NULL, 'GET', 'system:clearsavefile:download:post', '1', '1', '1', 1, 11);
|
||||||
INSERT INTO `permission_menu` VALUES (47, '', 'admin', '2021-03-07 14:35:34.237127', '2021-03-07 14:32:06.754815', '1', 'message', '消息通知', 4, '1', 'system/message', 'system/message/index', '/system/message/', 'GET', 'system:message:get', '1', '1', '1', 1, 1);
|
INSERT INTO `permission_menu` VALUES (47, '', 'admin', '2021-03-07 14:35:34.237127', '2021-03-07 14:32:06.754815', '1', 'message', '消息通知', 4, '1', 'system/message', 'system/message/index', '/system/message/', 'GET', 'system:message:get', '1', '1', '1', 1, 1);
|
||||||
INSERT INTO `permission_menu` VALUES (48, '', 'admin', '2021-03-07 14:35:06.718432', '2021-03-07 14:35:06.718463', '2', NULL, '发布通知', 1, '1', NULL, NULL, '/system/message/', 'POST', 'system:message:post', '1', '1', '1', 1, 47);
|
INSERT INTO `permission_menu` VALUES (48, '', 'admin', '2021-03-07 14:35:06.718432', '2021-03-07 14:35:06.718463', '2', NULL, '发布通知', 1, '1', NULL, NULL, '/system/message/', 'POST', 'system:message:post', '1', '1', '1', 1, 47);
|
||||||
INSERT INTO `permission_menu` VALUES (49, '', 'admin', '2021-03-07 14:36:47.675806', '2021-03-07 14:36:47.675837', '2', NULL, '修改通知', 2, '1', NULL, NULL, '/system/message/', 'PUT', 'system:message:put', '1', '1', '1', 1, 47);
|
INSERT INTO `permission_menu` VALUES (49, '', 'admin', '2021-03-08 13:04:32.158707', '2021-03-07 14:36:47.675837', '2', NULL, '修改通知', 2, '1', NULL, NULL, '/system/message/{id}/', 'PUT', 'system:message:{id}:put', '1', '1', '1', 1, 47);
|
||||||
INSERT INTO `permission_menu` VALUES (50, '', 'admin', '2021-03-07 14:37:52.130536', '2021-03-07 14:37:52.130567', '2', NULL, '删除通知', 3, '1', NULL, NULL, '/permission/menu/', 'DELETE', 'permission:menu:delete', '1', '1', '1', 1, 47);
|
INSERT INTO `permission_menu` VALUES (50, '', 'admin', '2021-03-08 13:04:58.206693', '2021-03-07 14:37:52.130567', '2', NULL, '删除通知', 3, '1', NULL, NULL, '/permission/menu/{id}/', 'DELETE', 'permission:menu:{id}:delete', '1', '1', '1', 1, 47);
|
||||||
INSERT INTO `permission_menu` VALUES (51, '', 'admin', '2021-03-07 14:42:37.410336', '2021-03-07 14:42:37.410366', '2', NULL, '通知导出', 4, '1', NULL, NULL, '/system/message/export/', 'GET', 'system:message:export:get', '1', '1', '1', 1, 47);
|
INSERT INTO `permission_menu` VALUES (51, '', 'admin', '2021-03-07 14:42:37.410336', '2021-03-07 14:42:37.410366', '2', NULL, '通知导出', 4, '1', NULL, NULL, '/system/message/export/', 'GET', 'system:message:export:get', '1', '1', '1', 1, 47);
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询参数列表
|
||||||
|
export function listMessage(query) {
|
||||||
|
return request({
|
||||||
|
url: '/system/message/',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询参数详细
|
||||||
|
export function getMessage(messageId) {
|
||||||
|
return request({
|
||||||
|
url: '/system/message/' + messageId + '/',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增参数配置
|
||||||
|
export function addMessage(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/message/',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改参数配置
|
||||||
|
export function updateMessage(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/message/' + data.id + '/',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除参数配置
|
||||||
|
export function delMessage(messageId) {
|
||||||
|
return request({
|
||||||
|
url: '/system/message/' + messageId + '/',
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 导出参数
|
||||||
|
export function exportMessage(query) {
|
||||||
|
return request({
|
||||||
|
url: '/system/message/export/',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
|
@ -1,22 +1,379 @@
|
||||||
<template>
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<el-form-item label="消息标题" prop="title">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.title"
|
||||||
|
placeholder="请输入消息标题"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
style="width: 240px"
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="消息类型" prop="message_type">
|
||||||
|
<el-select v-model="queryParams.message_type" placeholder="消息类型" clearable size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in MessagePushTypeOptions"
|
||||||
|
:key="dict.dictValue"
|
||||||
|
:label="dict.dictLabel"
|
||||||
|
:value="dict.dictValue"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="消息状态" prop="status">
|
||||||
|
<el-select v-model="queryParams.status" placeholder="消息状态" clearable size="small">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in MessagePushStatusOptions"
|
||||||
|
:key="dict.dictValue"
|
||||||
|
:label="dict.dictLabel"
|
||||||
|
:value="dict.dictValue"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="是否审核" prop="is_reviewed">-->
|
||||||
|
<!-- <el-select v-model="queryParams.is_reviewed" placeholder="是否审核" clearable size="small">-->
|
||||||
|
<!-- <el-option :key="true" label="是" :value="true"/>-->
|
||||||
|
<!-- <el-option :key="false" label="否" :value="false"/>-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['system:message:post']"
|
||||||
|
>发布通知
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['system:message:{id}:put']"
|
||||||
|
>修改通知
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['permission:menu:{id}:delete']"
|
||||||
|
>删除通知
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="warning"
|
||||||
|
plain
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
@click="handleExport"
|
||||||
|
v-hasPermi="['system:message:export:get']"
|
||||||
|
>导出
|
||||||
|
</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center"/>
|
||||||
|
<el-table-column label="消息主键" align="center" prop="id"/>
|
||||||
|
<el-table-column label="消息标题" align="center" prop="title" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column label="消息内容" align="center" prop="content" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column label="消息类型" align="center" prop="message_type" :formatter="typeFormat"/>
|
||||||
|
<!-- <el-table-column label="是否审核通过" align="center" prop="is_reviewed" :formatter="isReviewedFormat"/>-->
|
||||||
|
<el-table-column label="消息状态" align="center" prop="status" :formatter="statusFormat"/>
|
||||||
|
<el-table-column label="跳转路径" align="center" prop="to_path" :show-overflow-tooltip="true"/>
|
||||||
|
<el-table-column label="创建时间" align="center" prop="create_datetime" width="180">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ parseTime(scope.row.create_datetime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="操作"
|
||||||
|
align="center"
|
||||||
|
class-name="small-padding fixed-width"
|
||||||
|
v-if="hasPermi(['system:message:{id}:put','permission:menu:{id}:delete'])">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['system:message:{id}:put']"
|
||||||
|
>修改
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['permission:menu:{id}:delete']"
|
||||||
|
>删除
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改参数配置对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="消息标题" prop="title">
|
||||||
|
<el-input v-model="form.title" placeholder="请输入消息标题"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="消息内容" prop="content">
|
||||||
|
<el-input v-model="form.content" placeholder="请输入消息内容"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="跳转路径" prop="to_path">
|
||||||
|
<el-input v-model="form.to_path" placeholder="请输入跳转路径"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="消息类型" prop="message_type">
|
||||||
|
<el-radio-group v-model="form.message_type">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in MessagePushTypeOptions"
|
||||||
|
:key="dict.dictValue"
|
||||||
|
:label="dict.dictValue"
|
||||||
|
>{{dict.dictLabel}}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="是否审核" prop="is_reviewed">-->
|
||||||
|
<!-- <el-radio-group v-model="form.is_reviewed">-->
|
||||||
|
<!-- <el-radio :label="true">是</el-radio>-->
|
||||||
|
<!-- <el-radio :label="false">否</el-radio>-->
|
||||||
|
<!-- </el-radio-group>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in MessagePushStatusOptions"
|
||||||
|
:key="dict.dictValue"
|
||||||
|
:label="dict.dictValue"
|
||||||
|
>{{dict.dictLabel}}
|
||||||
|
</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
import {addMessage, delMessage, exportMessage, getMessage, listMessage, updateMessage} from "@/api/system/message";
|
||||||
name: "message",
|
|
||||||
data() {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
created() {
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
},
|
|
||||||
methods: {}
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "message",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 参数表格数据
|
||||||
|
configList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 消息类型字典
|
||||||
|
MessagePushTypeOptions: [],
|
||||||
|
// 状态类型字典
|
||||||
|
StatusOptions: [],
|
||||||
|
// 消息类型字典
|
||||||
|
MessagePushStatusOptions: [],
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
title: undefined,
|
||||||
|
content: undefined,
|
||||||
|
message_type: undefined,
|
||||||
|
is_reviewed: undefined,
|
||||||
|
status: undefined
|
||||||
|
},
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
title: [
|
||||||
|
{required: true, message: "消息标题不能为空", trigger: "blur"}
|
||||||
|
],
|
||||||
|
content: [
|
||||||
|
{required: true, message: "消息内容不能为空", trigger: "blur"}
|
||||||
|
],
|
||||||
|
to_path: [
|
||||||
|
{required: false, message: "跳转路径不能为空", trigger: "blur"}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
this.getDicts("sys_message_push_type").then(response => {
|
||||||
|
this.MessagePushTypeOptions = response.data;
|
||||||
|
});
|
||||||
|
this.getDicts("sys_message_push_status").then(response => {
|
||||||
|
this.MessagePushStatusOptions = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询参数列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listMessage(this.addDateRange(this.queryParams)).then(response => {
|
||||||
|
this.configList = response.data.results;
|
||||||
|
this.total = response.data.count;
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
// 消息类型字典翻译
|
||||||
|
typeFormat(row, column) {
|
||||||
|
return this.selectDictLabel(this.MessagePushTypeOptions, row.message_type);
|
||||||
|
},
|
||||||
|
// 消息状态字典翻译
|
||||||
|
statusFormat(row, column) {
|
||||||
|
return this.selectDictLabel(this.MessagePushStatusOptions, row.status);
|
||||||
|
},
|
||||||
|
// 消息状态字典翻译
|
||||||
|
isReviewedFormat(row, column) {
|
||||||
|
return row.is_reviewed === true ? '是' : '否'
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
id: undefined,
|
||||||
|
title: undefined,
|
||||||
|
content: undefined,
|
||||||
|
to_path: undefined,
|
||||||
|
is_reviewed: true,
|
||||||
|
message_type: "1",
|
||||||
|
status: '1',
|
||||||
|
};
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "发布通知";
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.id)
|
||||||
|
this.single = selection.length != 1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const id = row.id || this.ids
|
||||||
|
getMessage(id).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改参数";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm: function () {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.id != undefined) {
|
||||||
|
updateMessage(this.form).then(response => {
|
||||||
|
this.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addMessage(this.form).then(response => {
|
||||||
|
this.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const configIds = row.id || this.ids;
|
||||||
|
this.$confirm('是否确认删除参数编号为"' + configIds + '"的数据项?', "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(function () {
|
||||||
|
return delMessage(configIds);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.msgSuccess("删除成功");
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
const queryParams = this.queryParams;
|
||||||
|
this.$confirm('是否确认导出所有数据项?', "警告", {
|
||||||
|
confirmButtonText: "确定",
|
||||||
|
cancelButtonText: "取消",
|
||||||
|
type: "warning"
|
||||||
|
}).then(function () {
|
||||||
|
return exportMessage(queryParams);
|
||||||
|
}).then(response => {
|
||||||
|
this.download(response.data.file_url, response.data.name);
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
Loading…
Reference in New Issue