Commit d648064e authored by liwei's avatar liwei

增加了异常管理页面

parent ca3f0ee6
import request from '@/utils/request'
import Qs from 'qs'
/**
* 1. 列表查询
* 2. 查询详细信息
* 3. 新增
* 4. 修改
* 5. 逻辑删除
* 6. 导出
*
*/
// 1. 查询动态/评论/留言错误表列表
export function listOpmArticleCommentMessageError(query) {
return request({
url: '/opmArticleCommentMessageError/list',
method: 'get',
params: query
})
}
// 2. 查询动态/评论/留言错误表详细信息
export function getOpmArticleCommentMessageError(businessId) {
return request({
url: '/opmArticleCommentMessageError/detail/' + businessId,
method: 'get'
})
}
// 3. 新增动态/评论/留言错误表
export function addOpmArticleCommentMessageError(data) {
data = Qs.stringify(data)
return request({
url: '/opmArticleCommentMessageError/add',
method: 'post',
data: data
})
}
// 4. 修改动态/评论/留言错误表
export function updateOpmArticleCommentMessageError(data) {
const businessId = data.businessId
data = Qs.stringify(data)
return request({
url: '/opmArticleCommentMessageError/update/' + businessId,
method: 'put',
data
})
}
// 5. 逻辑删除动态/评论/留言错误表
export function delOpmArticleCommentMessageError(businessId) {
return request({
url: '/opmArticleCommentMessageError/deleteLogical/' + businessId,
method: 'delete'
})
}
// 6. 导出动态/评论/留言错误表
export function exportOpmArticleCommentMessageError(query) {
return request({
url: '/opmArticleCommentMessageError/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
......@@ -53,7 +53,7 @@
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column label="用户名称" align="center" prop="username" />
<el-table-column label="登录地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
<el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />
<!-- <el-table-column label="登录地点" align="center" prop="loginLocation" :show-overflow-tooltip="true" />-->
<el-table-column label="登录状态" align="center" prop="status">
<template slot-scope="scope">
<span v-if="scope.row.status === '0'">失败</span>
......
......@@ -75,9 +75,9 @@
{{ scope.row.optionName || '-' }}
</template>
</el-table-column>
<el-table-column label="请求地址" align="center" :show-overflow-tooltip="true" prop="operLocation">
<el-table-column label="请求地址" align="center" :show-overflow-tooltip="true" prop="operUrl">
<template slot-scope="scope">
{{ scope.row.operLocation || '-' }}
{{ scope.row.operUrl || '-' }}
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" label="请求方式" align="center" prop="requestMethod">
......
......@@ -4,6 +4,16 @@
<div v-show="showSwitch.courseContent" class="courseContent">
<div class="search">
<el-form ref="queryForm" style="padding: 30px 0 0 10px" :model="queryParams" :inline="true">
<el-form-item label="动态ID :" prop="businessId">
<el-input
v-model.trim="queryParams.businessId"
placeholder="请输入动态ID"
clearable
:maxlength="30"
size="small"
style="width: 170px"
/>
</el-form-item>
<el-form-item label="话题名称 :" prop="topic">
<el-input
v-model.trim="queryParams.topic"
......@@ -207,7 +217,7 @@
</div>
</el-row>
<div class="commentsSection">
<el-alert v-if="!isEdit && queryParams.examStatus === '2'" :closable="false">驳回原因:{{ form.remarks }}</el-alert>
<el-alert v-if="!isEdit && (queryParams.examStatus === '2' || queryParams.examStatus === '3')" :closable="false">驳回原因:{{ form.remarks }}</el-alert>
<ul v-if="form.articleCommentVOList" class="commentTree">
<li v-for="(comment, index) in form.articleCommentVOList" :key="index" class="commentItem">
<div v-if="index !== null" style="border-top: 1px solid #dadada; margin: 5px 0 7px;" />
......
......@@ -259,6 +259,17 @@
<el-tag v-else type="green" size="medium ">未推荐</el-tag>
</template>
</el-table-column>
<el-table-column align="center" prop="flag" min-width="80" label="状态" show-overflow-tooltip>
<template slot-scope="scope">
<el-tag v-if="scope.row.flag === '1'" type="warning" size="medium ">已启用</el-tag>
<el-tag v-else type="green" size="medium ">已停用</el-tag>
</template>
</el-table-column>
<el-table-column label="恶意留言数" prop="memMaliceLeaveMessageCount" :show-overflow-tooltip="true" min-width="80">
<template slot-scope="scope">
{{ scope.row.memMaliceLeaveMessageCount || '0' }}
</template>
</el-table-column>
<el-table-column label="金币数" prop="goldCoinsCount" :show-overflow-tooltip="true" min-width="80">
<template slot-scope="scope">
{{ scope.row.goldCoinsCount || '0' }}
......
......@@ -456,7 +456,7 @@
<el-input-number
v-model="form.sort"
placeholder="请输入权重"
min="0"
:min="0"
:disabled="secondFromDisabled"
:maxlength="30"
size="small"
......@@ -464,6 +464,8 @@
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="头像开发:" prop="avatarOpen">
<el-select
......@@ -481,6 +483,19 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="恶意留言次数:" prop="memMaliceLeaveMessageCount">
<el-input-number
v-model="form.memMaliceLeaveMessageCount"
placeholder="请输入恶意留言次数"
:min="0"
:disabled="secondFromDisabled"
:maxlength="30"
size="small"
style="width: 300px"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
......
<template>
<div class="app-container">
<el-form ref="queryForm" style="padding: 0 0 0 10px" :model="queryParams" :inline="true">
<el-form-item label="动态id" prop="articleId">
<el-input
v-model="queryParams.articleId"
placeholder="请输入动态id"
clearable
:maxlength="50"
size="small"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="类型" prop="eventType">
<el-select v-model="queryParams.eventType" placeholder="请选择类型" clearable size="small">
<el-option
v-for="dict in typeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="内容" prop="content">
<el-input
v-model="queryParams.content"
placeholder="请输入内容"
clearable
:maxlength="255"
size="small"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="审核类型" prop="examType">
<el-select v-model="queryParams.examType" placeholder="请选择审核类型" clearable size="small">
<el-option
v-for="dict in examTypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="失败原因" prop="reason">
<el-input
v-model="queryParams.reason"
placeholder="请输入失败原因"
clearable
:maxlength="255"
size="small"
style="width: 150px"
/>
</el-form-item>
<el-form-item label="状态" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择状态" clearable size="small">
<el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="发布时间:" prop="createDate">
<el-date-picker
v-model="dateRange"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
style="width: 400px"
@change="handleChangeTime"
/>
</el-form-item>
<el-form-item>
<el-button
:class="commonField.queryClass"
:type="commonField.typePrimary"
:icon="commonField.queryIcon"
:size="commonField.smallSize"
@click="handleQuery"
>查询</el-button>
<el-button
:class="commonField.resetClass"
:icon="commonField.resetIcon"
:size="commonField.smallSize"
@click="resetQuery"
>重置</el-button>
</el-form-item>
<div style="float: right">
<el-form-item>
<el-button
:class="commonField.exportClass"
:type="commonField.typeSuccess"
:icon="commonField.exportIcon"
:size="commonField.smallSize"
@click="handleExport"
>导出</el-button>
</el-form-item>
</div>
</el-form>
<div class="placeholder" />
<div style="padding:5px 10px">
<div class="mb12 font-small-bold">动态/评论/留言错误表列表</div>
<el-table v-loading="loading" border :data="opmArticleCommentMessageErrorList">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="动态ID" prop="articleId" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.articleId || '-' }}
</template>
</el-table-column>
<el-table-column label="创建人" prop="articleId" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ handleCreateUser(scope.row)}}
</template>
</el-table-column>
<el-table-column label="类型" prop="eventType" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ handleType(scope.row.eventType) }}
</template>
</el-table-column>
<el-table-column label="内容" prop="content" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.content || '-' }}
</template>
</el-table-column>
<el-table-column label="审核类型" prop="examType" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ handleExamType(scope.row.examType) }}
</template>
</el-table-column>
<el-table-column label="失败原因" prop="reason" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.reason || '-' }}
</template>
</el-table-column>
<el-table-column label="备注" prop="remarks" :show-overflow-tooltip="true">
<template slot-scope="scope">
{{ scope.row.remarks || '-' }}
</template>
</el-table-column>
<el-table-column label="创建时间" prop="createDate" :show-overflow-tooltip="true">
<template slot-scope="scope">
<span>{{ scope.row.createDate | transformDateByFormat('YYYY-MM-DD HH:mm') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" class-name="small-padding fixed-width" width="200px">
<template slot-scope="scope">
<el-button
:class="commonField.delClass"
:type="commonField.typeParent"
:size="commonField.size"
@click="handleDelete(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.page"
:limit.sync="queryParams.rows"
@pagination="getList"
/>
</div>
</template>
<script>
import {
listOpmArticleCommentMessageError,
delOpmArticleCommentMessageError,
addOpmArticleCommentMessageError,
updateOpmArticleCommentMessageError,
exportOpmArticleCommentMessageError } from '@/api/contentManagement/opmArticleCommentMessageError'
import commonField from '@/utils/commonField'
export default {
name: 'OpmArticleCommentMessageError',
data() {
return {
// 遮罩层
loading: true,
// 总条数
total: 0,
// 动态/评论/留言错误表表格数据
opmArticleCommentMessageErrorList: [],
// 状态菜单
statusOptions: [
{
dictLabel: '启用',
dictValue: '1'
},
{
dictLabel: '停用',
dictValue: '0'
}
],
// 查询参数
queryParams: {
page: 1,
rows: 10,
articleId: undefined,
eventType: undefined,
content: undefined,
examType: undefined,
reason: undefined,
flag: '',
beginTime: '',
endTime: ''
},
// 表单参数
form: {},
// 错误类型选择
typeOptions: [
{
dictLabel: '动态',
dictValue: '1'
},
{
dictLabel: '评论',
dictValue: '2'
},
{
dictLabel: '留言',
dictValue: '3'
}
],
// 审核类型选择
examTypeOptions: [
{
dictLabel: '自动审核',
dictValue: '0'
},
{
dictLabel: '人工审核',
dictValue: '1'
}
],
// 日期范围
dateRange: []
}
},
computed: {
commonField() {
return commonField
}
},
created() {
this.getList() // 列表查询
},
methods: {
handleChangeTime() {
if (this.dateRange && this.dateRange !== '' && this.dateRange !== undefined && this.dateRange.length > 0) {
this.queryParams.beginTime = this.dateRange[0]
this.queryParams.endTime = this.dateRange[1]
} else {
this.queryParams.beginTime = ''
this.queryParams.endTime = ''
}
},
// 处理创建人
handleCreateUser(row){
if (row.createBy !== null && row.createUserName !== null){
return row.createUserName + '(' + row.createBy + ')'
} else {
return '-'
}
},
// 处理类型
handleType(eventType) {
if (eventType === '1') {
// 动态
return '动态'
} else if (eventType === '2') {
// 评论
return '评论'
} else if (eventType === '3') {
// 留言
return '留言'
} else {
return '-'
}
},
// 处理审核类型
handleExamType(examType) {
console.log('examType:',examType)
if (examType === '0') {
// 自动审核
return '自动审核'
} else if (examType === '1') {
// 人工审核
return '人工审核'
} else {
return '-'
}
},
/** 查询动态/评论/留言错误表列表 */
getList() {
this.loading = true
listOpmArticleCommentMessageError(this.queryParams).then(
response => {
this.opmArticleCommentMessageErrorList = response.data
this.total = response.total
this.loading = false
}
)
},
// 表单重置
reset() {
this.form = {
businessId: undefined,
remarks: undefined,
articleId: undefined,
eventType: undefined,
content: undefined,
examType: undefined,
reason: undefined,
flag: '1'
}
this.dateRange = []
this.resetForm('form')
},
/** 查询按钮操作 */
handleQuery() {
this.queryParams.page = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
page: 1,
rows: 10,
articleId: undefined,
eventType: undefined,
content: undefined,
examType: undefined,
reason: undefined,
flag: ''
}
this.handleQuery()
},
// 改变状态
handleStatusChange(row) {
const text = row.flag === '1' ? '启用' : '停用'
this.$confirm('确认操作?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
return updateOpmArticleCommentMessageError(row)
}).then(() => {
this.$message({
message: text + '成功',
type: 'success'
})
}).catch(function() {
row.flag = row.flag === '0' ? '1' : '0'
})
},
/** 提交按钮 */
submitForm: function() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.businessId !== undefined) {
updateOpmArticleCommentMessageError(this.form).then(response => {
this.msgSuccess('修改成功')
this.open = false
this.getList()
})
} else {
addOpmArticleCommentMessageError(this.form).then(response => {
this.msgSuccess('新增成功')
this.open = false
this.getList()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete(row) {
const id = row.businessId
this.$confirm('是否确认操作?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
return delOpmArticleCommentMessageError(id)
}).then(() => {
this.getList()
this.$message({
message: '删除成功',
type: 'success'
})
}).catch(function() {
})
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams
this.$confirm('是否确认操作?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
return exportOpmArticleCommentMessageError(queryParams).then(response => {
const blob = new Blob([response])
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)// 创建下载的链接
downloadElement.href = href
downloadElement.download = '动态/评论/留言错误表信息' + '.xls' // 下载后文件名
document.body.appendChild(downloadElement)
downloadElement.click()// 点击下载
document.body.removeChild(downloadElement)// 下载完成移除元素
window.URL.revokeObjectURL(href)// 释放掉blob对象
})
})
}
}
}
</script>
<style lang="scss" scoped>
.app-container {
font-size: 18px;
padding: 0;
.placeholder {
height: 1.3vh;
background-color: #F4F4F4;
margin-bottom: 10px
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment