Compare commits

...

2 Commits

Author SHA1 Message Date
5fa7d71117 Merge remote-tracking branch 'origin/master' 2025-03-28 18:59:47 +08:00
16a435654f 通告、意见反馈、举报 2025-03-28 18:59:15 +08:00
7 changed files with 226 additions and 327 deletions

View File

@ -42,3 +42,11 @@ export function delFeedback(id) {
method: 'delete' 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) { export function delNotice(id) {
return request({ 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) { export function delReport(id) {
return request({ return request({

View File

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

View File

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

View File

@ -183,8 +183,9 @@
<el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <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="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="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="platformName" />
<el-table-column label="稿费下限" width="100" align="center" prop="feeDown" /> <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"/> <dict-tag :options="dict.type.true_or_false" :value="scope.row.isSelfPrice"/>
</template> </template>
</el-table-column> </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"> <el-table-column label="截止日期" width="100" align="center" prop="endDate">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span> <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"/> <dict-tag :options="dict.type.true_or_false" :value="scope.row.isUseCoupon"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审核备注" align="center" prop="approvalRemark" />
<el-table-column label="认证时间" align="center" prop="createTime" width="180"> <el-table-column label="认证时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<dict-tag :options="dict.type.dl_approval_status" :value="scope.row.approvalStatus"/> <dict-tag :options="dict.type.dl_approval_status" :value="scope.row.approvalStatus"/>
</template> </template>
</el-table-column> </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"> <el-table-column fixed="right" label="审核时间" align="center" prop="approvalTime" width="180">
<template slot-scope="scope"> <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> </template>
</el-table-column> </el-table-column>
<el-table-column fixed="right" label="操作" width="220px" align="center" class-name="small-padding fixed-width"> <el-table-column fixed="right" label="操作" width="220px" align="center" class-name="small-padding fixed-width">
@ -245,28 +255,32 @@
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-s-data"
@click="handleDetail(scope.row)" @click="handleDetail(scope.row)"
>详情</el-button> >详情</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-s-check" v-if="scope.row.approvalStatus == 0"
@click="handleAudit(scope.row)" @click="handleAudit(scope.row)"
v-hasPermi="['busi:notice:audit']" v-hasPermi="['busi:notice:edit']"
>审核</el-button> >审核</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" 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)" @click="handleUpdate(scope.row)"
v-hasPermi="['busi:notice:edit']" v-hasPermi="['busi:notice:edit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['busi:notice:remove']" v-hasPermi="['busi:notice:remove']"
>删除</el-button> >删除</el-button>
@ -283,18 +297,46 @@
/> />
<!-- 添加或修改通告对话框 --> <!-- 添加或修改通告对话框 -->
<el-dialog append-to-body :title="title" :visible.sync="open" width="1500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="1500px" append-to-body>
<EditForm ref="editForm" :is-detail="isDetail"></EditForm> <EditForm ref="editForm" v-if="open" :is-detail="isDetail"></EditForm>
<div slot="footer" class="dialog-footer" v-if="!isDetail"> <div slot="footer" class="dialog-footer" v-if="!isDetail">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </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> </div>
</template> </template>
<script> <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 {listByCode} from "@/api/base/category";
import {getRegion} from "@/api/base/util"; import {getRegion} from "@/api/base/util";
import EditForm from "./component/EditForm.vue" import EditForm from "./component/EditForm.vue"
@ -305,6 +347,7 @@ export default {
components: {EditForm}, components: {EditForm},
data() { data() {
return { return {
isDetail:false,
// //
loading: true, loading: true,
// //
@ -323,6 +366,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
auditOpen:false,
// //
daterangeCreateTime: [], daterangeCreateTime: [],
// //
@ -361,6 +405,10 @@ export default {
}, },
// //
form: {}, form: {},
auditForm:{
approvalStatus:1,
approvalRemark:null
},
// //
rules: { rules: {
title: [ title: [
@ -398,6 +446,13 @@ export default {
this.getPlatform() this.getPlatform()
}, },
methods: { methods: {
auditFunction(){
auditInfo(this.auditForm).then(response => {
this.$modal.msgSuccess("审核成功");
this.auditOpen = false;
this.getList();
});
},
getProvince(){ getProvince(){
getRegion(null).then(res=>{ getRegion(null).then(res=>{
this.provinceList = res.data this.provinceList = res.data
@ -432,7 +487,6 @@ export default {
this.open = false; this.open = false;
this.reset(); this.reset();
}, },
isDetail:false,
// //
reset() { reset() {
this.form = { this.form = {
@ -507,13 +561,26 @@ export default {
this.isDetail = true this.isDetail = true
this.open = true; this.open = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.editForm.form.bloggerTypeList = response.data.bloggerTypes.split(',')
this.$refs.editForm.form = response.data; this.$refs.editForm.form = response.data;
}); });
this.title = "通告详情"; this.title = "通告详情";
}); });
}, },
closeNotice(row){
let param = {}
param.noticeId = row.id
param.publishTakeDown = '0'
publishTakeDown(param).then(response => {
this.$modal.msgSuccess("关闭成功");
this.getList();
});
},
handleAudit(row) { handleAudit(row) {
this.audit this.auditForm.id = row.id
this.auditForm.approvalStatus = 1
this.auditForm.approvalRemark = null
this.auditOpen = true
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
@ -524,6 +591,7 @@ export default {
this.open = true; this.open = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.editForm.form = response.data; this.$refs.editForm.form = response.data;
this.$refs.editForm.form.bloggerTypeList = response.data.bloggerTypes.split(',')
}); });
this.title = "修改通告"; this.title = "修改通告";
}); });
@ -532,14 +600,16 @@ export default {
submitForm() { submitForm() {
this.$refs.editForm.$refs["form"].validate(valid => { this.$refs.editForm.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.$refs.editForm.form.id != null) { let requestData = this.$refs.editForm.form
updateNotice(this.$refs.editForm.form).then(response => { requestData.bloggerTypes = this.$refs.editForm.form.bloggerTypeList.join(',')
if (requestData.id != null) {
updateNotice(requestData).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addNotice(this.$refs.editForm.form).then(response => { addNotice(requestData).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();

View File

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