消息推送

This commit is contained in:
liupopo
2023-03-18 19:01:48 +08:00
parent a1abdfe8a7
commit 209666c00f
21 changed files with 714 additions and 52 deletions

View File

@@ -0,0 +1,83 @@
import request from '@/utils/request'
export function fetchList(params) {
return request({
url: '/ums/sysMessageTask/list',
method: 'get',
params: params
})
}
export function createMessageTask(data) {
return request({
url: '/ums/sysMessageTask/create',
method: 'post',
data: data
})
}
export function deleteMessageTask(id) {
return request({
url: '/ums/sysMessageTask/delete/' + id,
method: 'get',
})
}
export function updateShowStatus(data) {
return request({
url: '/ums/sysMessageTask/update/showStatus',
method: 'post',
data: data
})
}
export function updateFactoryStatus(data) {
return request({
url: '/ums/sysMessageTask/update/factoryStatus',
method: 'post',
data: data
})
}
export function getMember(id) {
return request({
url: '/ums/sysMessageTask/' + id,
method: 'get',
})
}
export function updateMember(data) {
return request({
url: '/ums/sysMessageTask/update',
method: 'post',
data: data
})
}
export function updateMemberOrderInfo() {
return request({
url: '/ums/sysMessageTask/updateMemberOrderInfo',
method: 'post'
})
}
export function fetchBlanceList(id) {
return request({
url: '/ums/sysMessageTask/fetchBlanceList/' + id,
method: 'get',
})
}
export function handleEditBlance(data) {
return request({
url: '/ums/sysMessageTask/handleEditBlance',
method: 'post',
data: data
})
}
export function handleEditIntegration(data) {
return request({
url: '/ums/sysMessageTask/handleEditIntegration',
method: 'post',
data: data
})
}

View File

@@ -1140,8 +1140,15 @@ export const constantRouterMap = [{
icon: 'home'
},
children: [
{
path: 'sysMessageTask',
name: 'sysMessageTask',
component: () => import('@/views/ums/sysMessageTask/index'),
meta: {
title: '定时消息',
icon: 'product-list'
}
},
{
path: 'member',
name: 'member',

View File

@@ -211,12 +211,12 @@
<el-dialog title="向指定会员发送信息" :visible.sync="dialogVisibleMessOne" width="40%">
<el-form :model="msgOne" :rules="msgOneRules" ref="msgOneFrom" label-width="150px">
<el-form-item label="会员:">向账号为 {{msgOne.membername}} 的会员发送信息</el-form-item>
<el-form-item label="信息类型:" prop="code">
<!-- <el-form-item label="信息类型:" prop="code">
<el-select v-model="msgOne.code" placeholder="请选择">
<el-option v-for="item in messageCodeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="标题:" prop="params">
<el-input v-model="msgOne.params"></el-input>
</el-form-item>
@@ -234,12 +234,12 @@
<el-dialog title="向选择会员发送信息" :visible.sync="dialogVisibleMessSelect" width="40%">
<el-form :model="msgOne" :rules="msgOneRules" ref="msgSelectFrom" label-width="150px">
<el-form-item label="">&nbsp;向所选择的会员发送信息!</el-form-item>
<el-form-item label="信息类型:" prop="code">
<!-- <el-form-item label="信息类型:" prop="code">
<el-select v-model="msgOne.code" placeholder="请选择">
<el-option v-for="item in messageCodeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="标题:" prop="params">
<el-input v-model="msgOne.params"></el-input>
</el-form-item>
@@ -257,12 +257,12 @@
<el-dialog title="向所有会员发送信息" :visible.sync="dialogVisibleMessAll" width="40%">
<el-form :model="msgOne" :rules="msgOneRules" ref="msgAllFrom" label-width="150px">
<el-form-item label="">&nbsp;向所有的会员发送信息!</el-form-item>
<el-form-item label="信息类型:" prop="code">
<!-- <el-form-item label="信息类型:" prop="code">
<el-select v-model="msgOne.code" placeholder="请选择">
<el-option v-for="item in messageCodeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="标题:" prop="params">
<el-input v-model="msgOne.params"></el-input>
</el-form-item>
@@ -540,8 +540,8 @@
this.dialogVisibleMessSelect = false
},
sendMessageToAll() {
this.msgOne.userId = null
this.msgOne.code = '云链助手'
this.msgOne.userId = 1
this.msgOne.code = '系统消息'
this.msgOne.params = ''
this.msgOne.content = ''
this.msgOne.membername = ''
@@ -571,8 +571,8 @@
},
sendMessageToAllReset() {
this.$refs['msgAllFrom'].resetFields();
this.msgOne.userId = null
this.msgOne.code = '云链助手'
this.msgOne.userId = 1
this.msgOne.code = '系统消息'
this.msgOne.params = ''
this.msgOne.content = ''
this.msgOne.membername = ''

View File

@@ -0,0 +1,210 @@
<template>
<div class="app-container" style="margin-right: 10px;">
<div class="listconadd">
<el-card class="operate-container" shadow="never">
<i class="el-icon-tickets"></i>
<span>定时消息列表</span>
<el-button type="primary" class="btn-add" @click="sendMessageToOne()" size="mini">新增定时消息</el-button>
</el-card>
<div class="table-container">
<el-table ref="brandTable" :data="list" style="width: 100%" v-loading="listLoading" border>
<!-- <el-table-column label="编号" width="80" align="center" prop="id" /> -->
<el-table-column label="标题" width="180" prop="params" align="center" />
<el-table-column label="内容" prop="content" />
<el-table-column label="发送时间" width="180" align="center">
<template slot-scope="scope">
{{ scope.row.sendtime | formatTime }}
</template>
</el-table-column>
<el-table-column label="发送状态" width="100" align="center">
<template slot-scope="scope">
{{ scope.row.status | formatStatus }}
</template>
</el-table-column>
<el-table-column label="操作" width="250" align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="batch-operate-container"></div>
<div class="pagination-container">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
layout="total, sizes,prev, pager, next,jumper"
:page-size="listQuery.pageSize"
:page-sizes="[5, 10, 15]"
:current-page.sync="listQuery.pageNum"
:total="total"
></el-pagination>
</div>
</div>
<el-dialog title="新增定时消息" :visible.sync="dialogVisibleMessOne" width="40%">
<el-form :model="msgOne" :rules="msgOneRules" ref="msgOneFrom" label-width="150px">
<el-form-item label="设定发送时间:" prop="sendtime"><el-date-picker v-model="msgOne.sendtime" type="datetime" placeholder="选择日期时间"></el-date-picker></el-form-item>
<el-form-item label="标题:" prop="params"><el-input v-model="msgOne.params"></el-input></el-form-item>
<el-form-item label="信息内容:" prop="content"><el-input type="textarea" :rows="3" v-model="msgOne.content"></el-input></el-form-item>
<el-form-item>
<el-button @click="sendMessageToOneReset"> </el-button>
<el-button type="primary" @click="sendMessageToOneSubmit"> </el-button>
</el-form-item>
</el-form>
</el-dialog>
</div>
</template>
<script>
import { formatDate } from '@/utils/date'
import { fetchList, createMessageTask, deleteMessageTask } from '@/api/ums/sysMessageTask'
export default {
name: 'sysMessageTaskList',
data() {
return {
dialogVisibleMessOne: false,
msgOne: {
userId: 1,
code: '',
params: '',
content: '',
sendtime: '',
status: 0
},
msgOneRules: {
sendtime: [
{
required: true,
message: '请选择日期时间',
trigger: 'blur'
}
],
params: [
{
required: true,
message: '请输入信息标题',
trigger: 'blur'
}
],
content: [
{
required: true,
message: '信息内容不能为空',
trigger: 'blur'
}
]
},
listQuery: {
keyword: null,
pageNum: 1,
pageSize: 10
},
list: null,
total: null,
listLoading: true
}
},
created() {
this.getList()
},
filters: {
formatTime(time) {
if (time == null || time === '') {
return 'N/A'
}
let date = new Date(time)
return formatDate(date, 'yyyy-MM-dd hh:mm:ss')
},
formatStatus(value) {
if (value === 0) {
return '未发送'
}
return '已发送'
}
},
methods: {
sendMessageToOne() {
this.msgOne.userId = 1
this.msgOne.code = '系统消息'
this.msgOne.params = ''
this.msgOne.content = ''
this.msgOne.sendtime = ''
this.msgOne.status = 0
this.dialogVisibleMessOne = true
},
sendMessageToOneSubmit() {
let _this = this
this.$refs['msgOneFrom'].validate(valid => {
if (valid) {
createMessageTask(_this.msgOne).then(response => {
this.$message({
message: '信息设置成功',
type: 'success',
duration: 1000
})
_this.getList()
_this.sendMessageToOneReset()
})
} else {
_this.$message({
message: '请输入正确的数据',
type: 'error',
duration: 1000
})
return false
}
})
},
sendMessageToOneReset() {
this.$refs['msgOneFrom'].resetFields()
this.msgOne.userId = 1
this.msgOne.code = '系统消息'
this.msgOne.params = ''
this.msgOne.content = ''
this.msgOne.sendtime = ''
this.msgOne.status = 0
this.dialogVisibleMessOne = false
},
getList() {
this.listLoading = true
if (this.listQuery.keyword == '') this.listQuery.keyword = null
fetchList(this.listQuery).then(response => {
this.listLoading = false
this.list = response.data.records
this.total = response.data.total
this.totalPage = response.data.pages
this.pageSize = response.data.size
})
},
handleDelete(row) {
this.$confirm('是否要删除该记录', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteMessageTask(row.id).then(response => {
this.$message({
message: '删除成功',
type: 'success',
duration: 1000
})
this.getList()
})
})
},
handleSizeChange(val) {
this.listQuery.pageNum = 1
this.listQuery.pageSize = val
this.getList()
},
handleCurrentChange(val) {
this.listQuery.pageNum = val
this.getList()
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped></style>