通告、意见反馈、举报

This commit is contained in:
13405411873 2025-03-28 18:59:15 +08:00
parent ff2a920934
commit 16a435654f
7 changed files with 226 additions and 327 deletions

View File

@ -42,3 +42,11 @@ export function delFeedback(id) {
method: 'delete'
})
}
export function dealFeedback(data) {
return request({
url: '/busi/feedback/dealFeedback',
method: 'post',
data: data
})
}

View File

@ -35,6 +35,24 @@ export function updateNotice(data) {
})
}
export function auditInfo(data) {
return request({
url: '/busi/notice/auditInfo',
method: 'post',
data: data
})
}
export function publishTakeDown(data) {
return request({
url: '/busi/notice/publishTakeDown',
method: 'post',
params: data
})
}
// 删除通告
export function delNotice(id) {
return request({

View File

@ -35,6 +35,16 @@ export function updateReport(data) {
})
}
export function dealReport(data) {
return request({
url: '/busi/report/dealReport',
method: 'post',
data: data
})
}
// 删除举报记录
export function delReport(id) {
return request({

View File

@ -1,40 +1,22 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户" prop="userId">
<el-form-item label="用户" prop="userNickName">
<el-input
v-model="queryParams.userId"
v-model="queryParams.userNickName"
placeholder="请输入用户"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户类型" prop="userType">
<el-select v-model="queryParams.userType" placeholder="请选择用户类型" clearable>
<el-option
v-for="dict in dict.type.dl_user_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="回馈人" prop="backUserId">
<el-form-item label="回馈人" prop="backUserNickName">
<el-input
v-model="queryParams.backUserId"
v-model="queryParams.backUserNickName"
placeholder="请输入回馈人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker clearable
v-model="queryParams.createTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择创建时间">
</el-date-picker>
</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>
@ -42,27 +24,6 @@
</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="['busi:feedback:add']"
>新增</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="['busi:feedback:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
@ -74,23 +35,12 @@
v-hasPermi="['busi:feedback:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['busi:feedback:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="feedbackList" @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="userId" />
<el-table-column label="用户" align="center" prop="userNickName" />
<el-table-column label="用户类型" align="center" prop="userType">
<template slot-scope="scope">
<dict-tag :options="dict.type.dl_user_type" :value="scope.row.userType"/>
@ -113,7 +63,7 @@
<span>{{ parseTime(scope.row.backTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="回馈人" align="center" prop="backUserId" />
<el-table-column label="回馈人" align="center" prop="backUserNickName" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
@ -127,7 +77,7 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['busi:feedback:edit']"
>修改</el-button>
>回馈</el-button>
<el-button
size="mini"
type="text"
@ -138,7 +88,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -148,23 +98,13 @@
/>
<!-- 添加或修改意见反馈对话框 -->
<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="userType">
<el-select v-model="form.userType" placeholder="请选择用户类型">
<el-option
v-for="dict in dict.type.dl_user_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="反馈意见" prop="content">
<el-dialog title="意见回馈" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="反馈内容" prop="content">
<el-input v-model="form.content" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="反馈图片" prop="images">
<image-upload v-model="form.images"/>
<image-upload :disabled="true" v-model="form.images"/>
</el-form-item>
<el-form-item label="回馈内容" prop="backContent">
<el-input v-model="form.backContent" type="textarea" placeholder="请输入内容" />
@ -172,14 +112,6 @@
<el-form-item label="回馈图片" prop="backImages">
<image-upload v-model="form.backImages"/>
</el-form-item>
<el-form-item label="回馈时间" prop="backTime">
<el-date-picker clearable
v-model="form.backTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择回馈时间">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -190,7 +122,7 @@
</template>
<script>
import { listFeedback, getFeedback, delFeedback, addFeedback, updateFeedback } from "@/api/busi/feedback";
import { listFeedback, getFeedback, delFeedback, addFeedback, dealFeedback } from "@/api/busi/feedback";
export default {
name: "Feedback",
@ -218,16 +150,15 @@ export default {
//
queryParams: {
pageNum: 1,
pageSize: 10,
userId: null,
userType: null,
backUserId: null,
createTime: null,
pageSize: 10
},
//
form: {},
//
rules: {
backContent: [
{ required: true, message: "回馈内容不能为空", trigger: "blur" }
]
}
};
},
@ -305,19 +236,11 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateFeedback(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addFeedback(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
dealFeedback(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
}
});
},

View File

@ -55,23 +55,12 @@
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="赠品价值(元)" prop="giftPrice">
<el-input-number :precision="2" min="0" v-model="form.giftPrice" placeholder="请输入赠品价值(元)" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="赠品明细" prop="giftDetail">
<el-input v-model="form.giftDetail" type="textarea" placeholder="请输入内容" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招募名额" prop="needNum">
<el-input-number :precision="0" :min="0" v-model="form.needNum" placeholder="请输入招募名额" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="是否公开品牌" prop="isShowBrand">
<el-select v-model="form.isShowBrand" placeholder="请选择是否公开品牌" :disabled="isDetail">
@ -89,6 +78,9 @@
<el-input v-model="form.brand" placeholder="请输入品牌" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="地区要求" prop="region">
<el-select v-model="form.province" @change="provinceChange" placeholder="请选择省份" :disabled="isDetail">
@ -109,108 +101,45 @@
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="粉丝要求下限" prop="fansDown">
<el-input-number :precision="0" min="0" v-model="form.fansDown" placeholder="请输入粉丝要求下限" :disabled="isDetail" />
<el-input-number :precision="0" min="0" v-model="form.fansDown" placeholder="粉丝要求下限" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="粉丝要求上限" prop="fansUp">
<el-input-number :precision="0" min="0" v-model="form.fansUp" placeholder="请输入粉丝要求上限" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报名需符合粉丝要求" prop="isEligible">
<el-select v-model="form.isEligible" placeholder="报名是否需符合粉丝要求" :disabled="isDetail">
<el-option
v-for="dict in dict.type.true_or_false"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
<el-input-number :precision="0" min="0" v-model="form.fansUp" placeholder="粉丝要求上限" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="内容形式" prop="pic">
<el-select v-model="form.pic" placeholder="请选择内容形式" :disabled="isDetail">
<el-form-item label="博主类型" prop="bloggerTypeList">
<el-select v-model="form.bloggerTypeList" multiple filterable placeholder="请选择博主类型" :disabled="isDetail">
<el-option
v-for="dict in dict.type.notice_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
v-for="data in bloggerList"
:key="data.code"
:label="data.title"
:value="data.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="展示要求" prop="collect">
<el-select v-model="form.collect" placeholder="请选择展示要求" :disabled="isDetail">
<el-option
v-for="dict in dict.type.notice_collect"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否使用通告券" prop="isUseCoupon">
<el-select v-model="form.isUseCoupon" placeholder="请选择是否使用通告券" :disabled="isDetail">
<el-option
v-for="dict in dict.type.true_or_false"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="博主类型" prop="bloggerTypes">
<el-input v-model="form.bloggerTypes" type="textarea" placeholder="请输入内容" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否公开联系方式" prop="isShowTel">
<el-select v-model="form.isShowTel" placeholder="请选择是否公开联系方式" :disabled="isDetail">
<el-option
v-for="dict in dict.type.true_or_false"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="微信号" prop="wechat">
<el-input v-model="form.wechat" placeholder="请输入微信号" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="电话" prop="tel">
<el-input v-model="form.tel" placeholder="请输入电话" :disabled="isDetail" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="微信群码图片" prop="groupImage">
<image-upload :limit="1" v-model="form.groupImage" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="产品图" prop="images">
<image-upload :limit="9" v-model="form.images" :disabled="isDetail" />
</el-form-item>
<el-row :gutter="20">
<el-col :span="16">
<el-form-item label="产品图" prop="images">
<image-upload :limit="9" v-model="form.images" :disabled="isDetail" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="通告明细" prop="detail">
<Editor v-model="form.detail" style="height: 300px" placeholder="请输入内容" :read-only="isDetail" />
</el-form-item>
@ -233,6 +162,7 @@ export default {
platformList:[],
provinceList:[],
cityList:[],
bloggerList:[],
//
rules: {
title: [
@ -258,6 +188,12 @@ export default {
],
detail: [
{ required: true, message: "通告明细不能为空", trigger: "blur" }
],
brand:[
{ required: true, message: "品牌不能为空", trigger: "blur" }
],
fansDown:[
{ required: true, message: "粉丝下限不能为空", trigger: "blur" }
]
},
}
@ -265,6 +201,7 @@ export default {
mounted() {
this.getPlatform()
this.getProvince()
this.getBloggerList()
},
methods: {
provinceChange(e){
@ -290,6 +227,12 @@ export default {
this.platformList = res.data
})
},
getBloggerList(){
listByCode({code:'dl_blogger_type'}).then(res=>{
this.bloggerList = res.data
})
},
}
}
</script>

View File

@ -183,8 +183,9 @@
<el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="平台" width="100" align="center" prop="platformName" />
<el-table-column label="发布者" width="100" align="center" prop="userNickName" />
<el-table-column label="标题" width="100" align="center" prop="title" />
<el-table-column label="发布者" width="100" align="center" prop="userNickName" />
<el-table-column label="浏览量" width="100" align="center" prop="viewNum" />
<el-table-column label="平台名称" width="100" align="center" prop="platformName" />
<el-table-column label="稿费下限" width="100" align="center" prop="feeDown" />
@ -194,8 +195,6 @@
<dict-tag :options="dict.type.true_or_false" :value="scope.row.isSelfPrice"/>
</template>
</el-table-column>
<el-table-column label="赠品明细" width="100" align="center" prop="giftDetail" />
<el-table-column label="赠品价值(元)" width="100" align="center" prop="giftPrice" />
<el-table-column label="截止日期" width="100" align="center" prop="endDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
@ -223,21 +222,32 @@
<dict-tag :options="dict.type.true_or_false" :value="scope.row.isUseCoupon"/>
</template>
</el-table-column>
<el-table-column label="审核备注" align="center" prop="approvalRemark" />
<el-table-column label="认证时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="审核状态" align="center" prop="approvalStatus">
<el-table-column fixed="right" label="审核状态" width="100" align="center" prop="approvalStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.dl_approval_status" :value="scope.row.approvalStatus"/>
</template>
</el-table-column>
<el-table-column fixed="right" label="审核人" align="center" prop="approvalUserId" />
<el-table-column fixed="right" label="审核人" align="center" prop="approvalUserName" >
<template slot-scope="scope">
<span v-if="scope.row.approvalUserName">
{{scope.row.approvalUserName}}
</span>
<span v-else>
<span v-if="scope.row.approvalStatus == 1">
{{"自动通过"}}
</span>
</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="审核备注" align="center" prop="approvalRemark" />
<el-table-column fixed="right" label="审核时间" align="center" prop="approvalTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.approvalTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.approvalTime, '{y}-{m}-{d} {h}:{i}') }}</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="220px" align="center" class-name="small-padding fixed-width">
@ -245,28 +255,32 @@
<el-button
size="mini"
type="text"
icon="el-icon-s-data"
@click="handleDetail(scope.row)"
>详情</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-s-check"
v-if="scope.row.approvalStatus == 0"
@click="handleAudit(scope.row)"
v-hasPermi="['busi:notice:audit']"
v-hasPermi="['busi:notice:edit']"
>审核</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
v-if="scope.row.approvalStatus == 1"
@click="closeNotice(scope.row)"
v-hasPermi="['busi:notice:edit']"
>关闭</el-button>
<el-button
size="mini"
type="text"
v-if="scope.row.approvalStatus == 0"
@click="handleUpdate(scope.row)"
v-hasPermi="['busi:notice:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['busi:notice:remove']"
>删除</el-button>
@ -283,18 +297,46 @@
/>
<!-- 添加或修改通告对话框 -->
<el-dialog append-to-body :title="title" :visible.sync="open" width="1500px" append-to-body>
<EditForm ref="editForm" :is-detail="isDetail"></EditForm>
<el-dialog :title="title" :visible.sync="open" width="1500px" append-to-body>
<EditForm ref="editForm" v-if="open" :is-detail="isDetail"></EditForm>
<div slot="footer" class="dialog-footer" v-if="!isDetail">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 审核功能弹窗 -->
<el-dialog title="通告审核" :visible.sync="auditOpen" width="800px" append-to-body>
<el-form ref="form" :model="auditForm" v-if="auditOpen" label-width="150px">
<el-row :gutter="20">
<el-form-item label="审核结果" prop="approvalStatus">
<el-radio-group v-model="auditForm.approvalStatus">
<el-radio :label="1">通过</el-radio>
<el-radio :label="0">拒绝</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<el-form-item label="备注" prop="detail">
<el-input
type="textarea"
placeholder="请输入内容"
v-model="auditForm.approvalRemark">
</el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer" >
<el-button type="primary" @click="auditFunction()"> </el-button>
<el-button @click="auditOpen = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listNotice, getNotice, delNotice, addNotice, updateNotice } from "@/api/busi/notice";
import {listNotice, getNotice, delNotice, addNotice, updateNotice, auditInfo,publishTakeDown} from "@/api/busi/notice";
import {listByCode} from "@/api/base/category";
import {getRegion} from "@/api/base/util";
import EditForm from "./component/EditForm.vue"
@ -305,6 +347,7 @@ export default {
components: {EditForm},
data() {
return {
isDetail:false,
//
loading: true,
//
@ -323,6 +366,7 @@ export default {
title: "",
//
open: false,
auditOpen:false,
//
daterangeCreateTime: [],
//
@ -361,6 +405,10 @@ export default {
},
//
form: {},
auditForm:{
approvalStatus:1,
approvalRemark:null
},
//
rules: {
title: [
@ -398,6 +446,13 @@ export default {
this.getPlatform()
},
methods: {
auditFunction(){
auditInfo(this.auditForm).then(response => {
this.$modal.msgSuccess("审核成功");
this.auditOpen = false;
this.getList();
});
},
getProvince(){
getRegion(null).then(res=>{
this.provinceList = res.data
@ -432,7 +487,6 @@ export default {
this.open = false;
this.reset();
},
isDetail:false,
//
reset() {
this.form = {
@ -507,13 +561,26 @@ export default {
this.isDetail = true
this.open = true;
this.$nextTick(() => {
this.$refs.editForm.form.bloggerTypeList = response.data.bloggerTypes.split(',')
this.$refs.editForm.form = response.data;
});
this.title = "通告详情";
});
},
closeNotice(row){
let param = {}
param.noticeId = row.id
param.publishTakeDown = '0'
publishTakeDown(param).then(response => {
this.$modal.msgSuccess("关闭成功");
this.getList();
});
},
handleAudit(row) {
this.audit
this.auditForm.id = row.id
this.auditForm.approvalStatus = 1
this.auditForm.approvalRemark = null
this.auditOpen = true
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -524,6 +591,7 @@ export default {
this.open = true;
this.$nextTick(() => {
this.$refs.editForm.form = response.data;
this.$refs.editForm.form.bloggerTypeList = response.data.bloggerTypes.split(',')
});
this.title = "修改通告";
});
@ -532,14 +600,16 @@ export default {
submitForm() {
this.$refs.editForm.$refs["form"].validate(valid => {
if (valid) {
if (this.$refs.editForm.form.id != null) {
updateNotice(this.$refs.editForm.form).then(response => {
let requestData = this.$refs.editForm.form
requestData.bloggerTypes = this.$refs.editForm.form.bloggerTypeList.join(',')
if (requestData.id != null) {
updateNotice(requestData).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addNotice(this.$refs.editForm.form).then(response => {
addNotice(requestData).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();

View File

@ -1,33 +1,25 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="被举报人" prop="reportUserId">
<el-form-item label="被举报人" prop="reportUserNickName">
<el-input
v-model="queryParams.reportUserId"
v-model="queryParams.reportUserNickName"
placeholder="请输入被举报人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="被举报的通告" prop="reportNoticeId">
<el-form-item label="通告" prop="reportNoticeTitle">
<el-input
v-model="queryParams.reportNoticeId"
placeholder="请输入被举报的通告"
v-model="queryParams.reportNoticeTitle"
placeholder="请输入通告"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="举报类型文本" prop="reportTitle">
<el-form-item label="处理人" prop="dealUserName">
<el-input
v-model="queryParams.reportTitle"
placeholder="请输入举报类型文本"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="处理人" prop="dealUserId">
<el-input
v-model="queryParams.dealUserId"
v-model="queryParams.dealUserName"
placeholder="请输入处理人"
clearable
@keyup.enter.native="handleQuery"
@ -40,27 +32,6 @@
</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="['busi:report:add']"
>新增</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="['busi:report:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
@ -72,27 +43,23 @@
v-hasPermi="['busi:report:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['busi:report:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="reportList" @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="userId" />
<el-table-column label="被举报人" align="center" prop="reportUserId" />
<el-table-column label="被举报的通告" align="center" prop="reportNoticeId" />
<el-table-column label="举报类型文本" align="center" prop="reportTitle" />
<el-table-column label="处理人" align="center" prop="dealUserId" />
<el-table-column label="用户" align="center" prop="userNickName" />
<el-table-column label="被举报人" align="center" prop="reportUserNickName" />
<el-table-column label="被举报的通告" align="center" prop="reportNoticeTitle" />
<el-table-column label="举报类型" align="center" prop="reportTitle" />
<el-table-column label="举报内容" align="center" prop="content" />
<el-table-column label="举报图片" align="center" prop="images" >
<template slot-scope="scope">
<image-preview :src="scope.row.images" :width="50" :height="50"/>
</template>
</el-table-column>
<el-table-column label="处理人" align="center" prop="dealUserName" />
<el-table-column label="处理结果" align="center" prop="dealResult" />
<el-table-column label="处理时间" align="center" prop="dealTime" width="180">
<template slot-scope="scope">
@ -107,7 +74,7 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['busi:report:edit']"
>修改</el-button>
>处理</el-button>
<el-button
size="mini"
type="text"
@ -118,7 +85,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -128,54 +95,23 @@
/>
<!-- 添加或修改举报记录对话框 -->
<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="userType">
<el-select v-model="form.userType" placeholder="请选择用户类型">
<el-option
v-for="dict in dict.type.dl_user_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="被举报人" prop="reportUserId">
<el-input v-model="form.reportUserId" placeholder="请输入被举报人" />
</el-form-item>
<el-form-item label="被举报人类型" prop="reportUserType">
<el-select v-model="form.reportUserType" placeholder="请选择被举报人类型">
<el-option
v-for="dict in dict.type.dl_user_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="被举报的通告" prop="reportNoticeId">
<el-input v-model="form.reportNoticeId" placeholder="请输入被举报的通告" />
</el-form-item>
<el-form-item label="举报类型文本" prop="reportTitle">
<el-input v-model="form.reportTitle" placeholder="请输入举报类型文本" />
</el-form-item>
<el-dialog title="举报处理" :visible.sync="open" width="1000px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="举报描述" prop="content">
<el-input v-model="form.content" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="举报图片" prop="images">
<image-upload v-model="form.images"/>
<image-upload :disabled="true" v-model="form.images"/>
</el-form-item>
<el-form-item label="处理人" prop="dealUserId">
<el-input v-model="form.dealUserId" placeholder="请输入处理人" />
</el-form-item>
<el-form-item label="处理时间" prop="dealTime">
<el-date-picker clearable
v-model="form.dealTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择处理时间">
</el-date-picker>
<el-form-item label="处理结果" prop="dealResult">
<el-input
type="textarea"
placeholder="请输入内容"
v-model="form.dealResult">
</el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -186,7 +122,7 @@
</template>
<script>
import { listReport, getReport, delReport, addReport, updateReport } from "@/api/busi/report";
import {listReport, getReport, delReport, addReport, updateReport, dealReport} from "@/api/busi/report";
export default {
name: "Report",
@ -215,16 +151,14 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
userId: null,
reportUserId: null,
reportNoticeId: null,
reportTitle: null,
dealUserId: null,
},
//
form: {},
//
rules: {
dealResult: [
{ required: true, message: "处理结果不能为空", trigger: "blur" }
]
}
};
},
@ -306,20 +240,13 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateReport(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addReport(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
dealReport(this.form).then(response => {
this.$modal.msgSuccess("处理成功");
this.open = false;
this.getList();
});
}
});
},
/** 删除按钮操作 */