This commit is contained in:
张良(004796)
2024-01-31 22:46:19 +08:00
parent 489f3072d7
commit 3bff1021a2
6 changed files with 65 additions and 17 deletions

View File

@@ -17,6 +17,15 @@ export function unForbid(id) {
}) })
} }
export function userForbidInfo(userId) {
return request({
url: '/cai/userForbid/userForbidInfo',
method: 'get',
params:{userId}
})
}
// 封IP // 封IP
export function forbidIp(data) { export function forbidIp(data) {
return request({ return request({

View File

@@ -162,7 +162,7 @@ export default {
handleUserForbid(row){ handleUserForbid(row){
this.userForbidVisible = true this.userForbidVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.userForbid.init(row) this.$refs.userForbid.init(row.userId)
}) })
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */

View File

@@ -87,8 +87,8 @@
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@click="handleStatus(scope.row)" @click="handleUserForbid(scope.row)"
v-hasPermi="['cai:report:edit']" v-hasPermi="['cai:user:lock']"
>封号 >封号
</el-button> </el-button>
<el-button <el-button
@@ -117,19 +117,26 @@
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<user-forbid-dialog v-if="userForbidVisible" ref="userForbid" @refreshDataList="getList" />
</div> </div>
</template> </template>
<script> <script>
import { delReport, listReport, updateReport } from '@/api/cai/report' import { delReport, listReport, updateReport } from '@/api/cai/report'
import { reportStatusList, reportTypeList } from '@/constant/statusMap' import { reportStatusList, reportTypeList } from '@/constant/statusMap'
import UserForbidDialog from "@/views/cai/user/user-forbid-dialog";
export default { export default {
name: 'Report', name: 'Report',
components: {
UserForbidDialog
},
data() { data() {
return { return {
reportTypeList, reportStatusList, reportTypeList, reportStatusList,
systemName: process.env.VUE_APP_SYSTEM_HOME, systemName: process.env.VUE_APP_SYSTEM_HOME,
userForbidVisible: false,
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
@@ -216,7 +223,13 @@ export default {
}).finally(() => { }).finally(() => {
this.loading = false this.loading = false
}) })
} },
handleUserForbid(row){
this.userForbidVisible = true
this.$nextTick(() => {
this.$refs.userForbid.init(row.reportUid)
})
},
} }
} }
</script> </script>

View File

@@ -330,7 +330,7 @@ export default {
handleUserForbid(row){ handleUserForbid(row){
this.userForbidVisible = true this.userForbidVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.userForbid.init(row) this.$refs.userForbid.init(row.id)
}) })
}, },
handleUserResetAvatar(row){ handleUserResetAvatar(row){

View File

@@ -3,14 +3,18 @@
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="封禁用户" prop=""> <el-form-item label="封禁用户" prop="">
<div class="context-avatar-center"> <div class="context-avatar-center">
{{ info.nickname }} {{ info.usercode }} <image-avatar :src="info.avatar"/> {{ userData.nickname }} {{ userData.usercode }} <image-avatar :src="userData.avatar"/>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="用户目前情况" prop="">
<div>用户{{userData.nickname}}: <span v-html="userForbidMessage"/></div>
<div v-if="userInfoData.lastLoginIp">最后登陆IP【{{userInfoData.lastLoginIp}}】: <span v-html="ipForbidMessage"/></div>
</el-form-item>
<el-form-item label="封禁IP确认" v-if="ipShow"> <el-form-item label="封禁IP确认" v-if="ipShow">
<el-input v-model="info.lastLoginIp" disabled /> <el-input v-model="userInfoData.lastLoginIp" disabled />
</el-form-item> </el-form-item>
<el-form-item label="封禁设备确认" v-if="uuidShow"> <el-form-item label="封禁设备确认" v-if="uuidShow">
<el-input v-model="info.mic" disabled /> <el-input v-model="userInfoData.mic" disabled />
</el-form-item> </el-form-item>
<el-form-item label="封禁类型" prop="type"> <el-form-item label="封禁类型" prop="type">
<el-checkbox-group v-model="form.type" @change="typeChange"> <el-checkbox-group v-model="form.type" @change="typeChange">
@@ -41,8 +45,9 @@
<script> <script>
import ImageUpload from '@/components/ImageUpload/index' import ImageUpload from '@/components/ImageUpload/index'
import {userForbid} from '@/api/cai/user' import { getUser, userForbid } from '@/api/cai/user'
import {forbidStatusList, forbidTimeList, forbidTypeList} from "@/constant/statusMap"; import {forbidStatusList, forbidTimeList, forbidTypeList} from "@/constant/statusMap";
import { userForbidInfo } from '@/api/cai/userForbid'
export default { export default {
components: { components: {
@@ -60,9 +65,12 @@ export default {
forbidTime: undefined, forbidTime: undefined,
reason: undefined, reason: undefined,
}, },
info:{ userData:{},
userInfoData:{},
}, userForbid:{},
ipUserForbid:{},
userForbidMessage: '',
ipForbidMessage: '',
// 表单校验 // 表单校验
rules: { rules: {
type: [ type: [
@@ -83,9 +91,27 @@ export default {
created() { created() {
}, },
methods: { methods: {
init (row) { init (userId) {
this.info = row this.$nextTick(() => {
this.form.userId = row.id userForbidInfo(userId).then(res => {
this.userData = res.data.user
this.userInfoData = res.data.userInfo
this.userForbid = res.data.userForbid
this.ipUserForbid = res.data.ipUserForbid
if(this.userForbid){
this.userForbidMessage = `<span style="color: red">`+this.userForbid.endTime+`</span><span style="color: burlywood">`+res.data.userForbidBetween+` 后解封)</span>`
}else{
this.userForbidMessage = `<span style="color: #1ab394">正常</span>`
}
if(this.ipUserForbid){
this.ipForbidMessage = `<span style="color: red">`+this.ipUserForbid.endTime+`</span><span style="color: burlywood">`+res.data.ipForbidBetween+` 后解封)</span>`
}else{
this.ipForbidMessage = `<span style="color: #1ab394">正常</span>`
}
})
})
this.form.userId = userId
this.form.type = [] this.form.type = []
this.form.forbidTime = undefined this.form.forbidTime = undefined
this.form.reason = undefined this.form.reason = undefined

View File

@@ -35,8 +35,8 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
// target: `http://localhost:8080`, target: `http://localhost:8080`,
target: `http://124.222.254.188:9779/prod-api`, // target: `http://124.222.254.188:9779/prod-api`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''