Merge branch 'master' of codeup.aliyun.com:6417d67de477e2050c6497df/gm_front

master
czq 2023-08-15 16:53:29 +08:00
commit 465f70c8f2
4 changed files with 320 additions and 1 deletions

View File

@ -412,6 +412,14 @@ export function getNoticeInfo(data) {
})
}
export function getSendMsgList(data) {
return request({
url: '/system/game/sendMsgList',
method: 'get',
data
})
}
export function getNoticeInfoDetail(id) {
return request({
url: `/system/game/getnoticeinfodetail/${id}`,
@ -504,3 +512,11 @@ export function getUserItemList(data) {
})
}
export function sendMsg(data) {
return request({
url: '/system/game/sendmsg',
method: 'post',
data
})
}

View File

@ -204,6 +204,12 @@ export const constantRoutes = [
component: () => import('@/views/sysmanage/game/itemlog'),
meta: { title: '用户操作记录', icon: 'link' }
},
{
path: 'system/game/sendmsg',
name: 'sendmsg',
component: () => import('@/views/sysmanage/game/sendmsg'),
meta: { title: '跑马灯', icon: 'link' }
},
{
path: 'system/gm/sendmail',
name: 'sendmail',
@ -262,7 +268,7 @@ export const constantRoutes = [
path: 'system/game/userItemInfo',
name: 'userItemInfo',
component: () => import('@/views/sysmanage/game/userItemInfo'),
meta: { title: '用户操作记录', icon: 'link' }
meta: { title: '道具查询', icon: 'link' }
},
{
path: 'system/gm/modifyuseritem',

View File

@ -0,0 +1,294 @@
<template>
<div class="app-container">
<div class="search-form" style="margin-bottom:15px">
<!-- openId<el-input v-model="searchForm.openId" size="small" clearable placeholder="请输入openId" style="width:200px;" />-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- size="small"-->
<!-- @click="() => fetchData()"-->
<!-- >-->
<!-- 查询-->
<!-- </el-button>-->
<el-button
type="primary"
size="small"
@click="() => addOrUpdate()"
>
新增
</el-button>
</div>
<div class="div-table">
<el-table
:data="list"
element-loading-text="Loading"
border
fit
highlight-current-row
:header-cell-style="{'text-align':'center'}"
:cell-style="{'text-align':'center'}"
>
<el-table-column label="内容" width="450">
<template slot-scope="scope">
<span>{{ scope.row.content }}</span>
</template>
</el-table-column>
<el-table-column label="发布时间" width="200">
<template slot-scope="scope">
<span>{{ scope.row.sendTime }}</span>
</template>
</el-table-column>
<el-table-column label="服务器" width="500">
<template slot-scope="scope">
<span>{{ scope.row.serverNameList }}</span>
</template>
</el-table-column>
<el-table-column label="发送间隔" width="80">
<template slot-scope="scope">
<span>{{ scope.row.speed }}</span>
</template>
</el-table-column>
<el-table-column label="发送次数" width="80">
<template slot-scope="scope">
<span>{{ scope.row.mulTimes }}</span>
</template>
</el-table-column>
<el-table-column label="操作人" width="160">
<template slot-scope="scope">
<span>{{ scope.row.updateUser }}</span>
</template>
</el-table-column>
<el-table-column label="操作时间" width="160">
<template slot-scope="scope">
<span>{{ scope.row.updateTime }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div>
<pagination :pagination="pagination" />
</div>
<el-dialog :title="activeTitle" :visible.sync="dialogFormVisible">
<el-form ref="form" :rules="rules" :model="form" label-position="right" label-width="120px">
<el-form-item label="跑马灯内容" prop="content">
<el-input v-model="form.content" type="textarea" ></el-input>
</el-form-item>
<el-form-item label="跑马灯发送间隔" prop="speed">
<el-input v-model="form.speed"></el-input>
</el-form-item>
<el-form-item label="跑马灯发送次数" prop="multime">
<el-input v-model="form.multime"></el-input>
</el-form-item>
<el-form-item label="跑马灯开始时间" prop="sendTime">
<el-date-picker
v-model="form.sendTime"
type="datetime"
placeholder="选择日期时间"
value-format="timestamp"
>
</el-date-picker>
</el-form-item>
<el-form-item label="发送服务器" >
<el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange"></el-checkbox>
</el-form-item>
<el-form-item prop="serverId">
<el-checkbox-group v-model="form.serverId" @change="handleCheckedServerChange">
<el-checkbox v-for="item in serverMaps" :key="item.serverid" :label="item.serverid" :value="item.serverid">{{item.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="small" @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" size="small" @click="save"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/Pagination/index'
import { getSendMsgList, delNoticeInfo, sendMsg, getServer } from '@/api/systemapi/game'
import { pageParams } from '@/settings'
export default {
components: {
'pagination': Pagination
},
data() {
return {
isIndeterminate: false,
checkAll: false,
serverIdList: [],
editNotavailable: false,
treeData: null,
serverMaps: {},
list: null,
listLoading: true,
searchForm: {
name: '',
channel: '',
state: '',
isNew: '',
rows: '10',
page: '1'
},
activeTitle: '新增公告信息', //
dialogFormVisible: false, //
formLabelWidth: '100px',
form: {
serverId: []
},
rules: {
content: [
{ required: true, message: '请输入跑马灯内容', trigger: 'blur' }
],
speed: [
{ required: true, message: '请输入跑马灯发送间隔', trigger: 'blur' }
],
multime: [
{ required: true, message: '请输入跑马灯发送次数', trigger: 'blur' }
],
sendTime: [
{ type: 'date', required: true, message: '请选择跑马灯发送时间', trigger: 'blur' }
],
serverId: [
{ type: 'array', required: true, message: '请至少选择一个服务器', trigger: 'blur' }
]
},
//
pagination: pageParams
}
},
watch: {
//
'pagination.currentPage': function() {
this.searchForm.page = this.pagination.currentPage
this.fetchData()
},
'pagination.pageSize': function() {
this.searchForm.rows = this.pagination.pageSize
this.searchForm.page = 1
this.fetchData()
}
},
created() {
this.fetchData()
this.getServerList()
},
methods: {
//
fetchData() {
this.listLoading = true
getSendMsgList({ ...this.searchForm }).then(response => {
this.list = response.data.rows
this.pagination.total = response.data.total
this.pagination.currentPage = response.data.current
this.listLoading = false
})
},
//
addOrUpdate(data) {
this.resetFileds()
this.dialogFormVisible = true
},
//
save() {
this.$refs['form'].validate((valid) => {
if (valid) {
sendMsg({ ...this.form }).then((response) => {
if (response.code === 0) {
this.$message({
message: '操作成功',
type: 'success'
})
this.dialogFormVisible = false
this.fetchData()
} else {
this.$message({
message: response.msg,
type: 'error'
})
}
})
} else {
return false
}
})
},
getServerList() {
getServer().then(response => {
this.serverMaps = response.data
})
},
handleCheckAllChange(val) {
var serverIds = []
for (var i = 0; i < this.serverMaps.length; i++) {
serverIds[i] = this.serverMaps[i].serverid
}
this.form.serverId = val ? serverIds : []
this.isIndeterminate = false
},
handleCheckedServerChange(value) {
console.log(value)
var checkedCount = value.length
this.checkAll = checkedCount === this.serverMaps.length
this.isIndeterminate = checkedCount > 0 && checkedCount < this.serverMaps.length
},
//
del(data) {
this.$confirm('确定要删除 ' + data.title + '’吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delNoticeInfo(data.id).then(response => {
if (response.code === 0) {
this.$message({
message: '删除成功',
type: 'success'
})
this.dialogFormVisible = false
this.fetchData()
} else {
this.$message({
message: response.msg,
type: 'error'
})
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
},
resetFileds() {
this.form = {
serverId: []
}
//
if (this.$refs['noticeInfoListForm']) {
this.$refs['noticeInfoListForm'].resetFields()
}
}
}
}
</script>
<style lang="scss" scoped>
.app-container {
width: 100%;
.div-table{
width:100%;
}
}
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
</style>

View File

@ -37,6 +37,9 @@
<el-table-column label="道具ID">
<template slot-scope="scope">{{ scope.row.itemId}}</template>
</el-table-column>
<el-table-column label="道具名称">
<template slot-scope="scope">{{ scope.row.itemName}}</template>
</el-table-column>
<el-table-column label="道具数量">
<template slot-scope="scope">{{ scope.row.itemNum }}</template>
</el-table-column>