123
This commit is contained in:
@@ -120,6 +120,14 @@ export function userUnBindInvite(userId) {
|
||||
})
|
||||
}
|
||||
|
||||
export function userLogout(userId) {
|
||||
return request({
|
||||
url: '/cai/user/logout',
|
||||
method: 'post',
|
||||
data:{id:userId}
|
||||
})
|
||||
}
|
||||
|
||||
// 绑定用户邀请人
|
||||
export function userBindInvite(userId,inviteUsercode) {
|
||||
return request({
|
||||
|
||||
@@ -17,6 +17,17 @@
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="IM在线" prop="onlineStatus">
|
||||
<el-select v-model="queryParams.onlineStatus" clearable size="small">
|
||||
<el-option
|
||||
v-for="dict in onlineStatusList"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-select>
|
||||
</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>
|
||||
@@ -117,6 +128,11 @@
|
||||
<el-table-column label="礼物分成" align="center" prop="giftRate" />-->
|
||||
<el-table-column label="服务总次数" align="center" prop="serviceCount" />
|
||||
<el-table-column label="服务总时长" align="center" prop="serviceTime" />
|
||||
<el-table-column label="IM在线状态" align="center" prop="onlineStatus" >
|
||||
<template v-slot="scope">
|
||||
<cai-dict-tag :options="onlineStatusList" :value="scope.row.onlineStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status" >
|
||||
<template v-slot="scope">
|
||||
<cai-dict-tag :options="userStatusList" :value="scope.row.status" />
|
||||
@@ -167,7 +183,7 @@
|
||||
|
||||
<script>
|
||||
import {delAnchor, listAnchor, updateAnchor} from '@/api/cai/anchor'
|
||||
import {genderList, userStatusList, videoStatusList} from '@/constant/statusMap'
|
||||
import {genderList, onlineStatusList, userStatusList, videoStatusList} from '@/constant/statusMap'
|
||||
import AddAnchorDialog from "@/views/cai/anchor/add-anchor-dialog";
|
||||
import UpdateAnchorDialog from "@/views/cai/anchor/update-anchor-dialog";
|
||||
import AnchorInfoDialog from "@/views/cai/anchor/anchor-info-dialog";
|
||||
@@ -182,7 +198,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
genderList,userStatusList,videoStatusList,
|
||||
genderList,userStatusList,videoStatusList,onlineStatusList,
|
||||
systemName: process.env.VUE_APP_SYSTEM_HOME,
|
||||
addAnchorDialogVisible: false,
|
||||
updateAnchorDialogVisible: false,
|
||||
@@ -208,7 +224,8 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
usercode: undefined,
|
||||
mobile: undefined
|
||||
mobile: undefined,
|
||||
onlineStatus: undefined
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
@@ -52,6 +52,17 @@
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="IM在线" prop="onlineStatus">
|
||||
<el-select v-model="queryParams.onlineStatus" clearable size="small">
|
||||
<el-option
|
||||
v-for="dict in onlineStatusList"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-select>
|
||||
</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>
|
||||
@@ -120,6 +131,11 @@
|
||||
<cai-dict-tag :options="userStatusList" :value="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="IM在线状态" align="center" prop="onlineStatus" >
|
||||
<template v-slot="scope">
|
||||
<cai-dict-tag :options="onlineStatusList" :value="scope.row.onlineStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="IM状态" align="center" prop="im" >
|
||||
<template v-slot="scope">
|
||||
<el-tag v-if="scope.row.enableIm && scope.row.imSpeck" :disable-transitions="true" type="primary">正常</el-tag>
|
||||
@@ -149,6 +165,7 @@
|
||||
<el-dropdown-item v-hasPermi="['cai:user:im']" v-if="!scope.row.enableIm" command="handleUnlockIm" icon="el-icon-unlock"><span style="color: blue">解封IM</span></el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cai:user:im']" v-if="scope.row.imSpeck" command="handleNoSpeckIm" icon="el-icon-lock"><span style="color: red">禁言</span></el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cai:user:im']" v-if="!scope.row.imSpeck" command="handleEnSpeckIm" icon="el-icon-unlock"><span style="color: blue">解封禁言</span></el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cai:user:im']" command="handleLogoutUser" icon="el-icon-close"><span style="color: red">强制APP下线</span></el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cai:user:restPwd']" command="handleResetPwd" icon="el-icon-key">重置密码</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cai:user:updateMobile']" command="handleResetMobile" icon="el-icon-phone">修改手机</el-dropdown-item>
|
||||
<el-dropdown-item v-hasPermi="['cai:user:lock']" command="handleUserForbid" icon="el-icon-lock">封禁</el-dropdown-item>
|
||||
@@ -184,11 +201,18 @@ import {
|
||||
getFullUser, getUser,
|
||||
listUser, lockIm, noSpeckIm,
|
||||
resetUserMobile,
|
||||
resetUserPassword, unLockIm,
|
||||
resetUserPassword, unLockIm, userLogout,
|
||||
userResetAvatar,
|
||||
userResetNickname, userUnBindInvite
|
||||
} from '@/api/cai/user'
|
||||
import {authList, genderList, isAnchorList, userStatusList, videoStatusList} from '@/constant/statusMap'
|
||||
import {
|
||||
authList,
|
||||
genderList,
|
||||
isAnchorList,
|
||||
onlineStatusList,
|
||||
userStatusList,
|
||||
videoStatusList
|
||||
} from '@/constant/statusMap'
|
||||
import UserAddUpdateDialog from '@/views/cai/user/user-add-update-dialog.vue'
|
||||
import UserInfoDialog from "@/views/cai/user/user-info-dialog";
|
||||
import UserForbidDialog from "@/views/cai/user/user-forbid-dialog";
|
||||
@@ -202,7 +226,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
genderList,authList,userStatusList,isAnchorList,videoStatusList,
|
||||
genderList,authList,userStatusList,isAnchorList,videoStatusList,onlineStatusList,
|
||||
systemName: process.env.VUE_APP_SYSTEM_HOME,
|
||||
userForbidVisible: false,
|
||||
bindInviteDialogVisible: false,
|
||||
@@ -229,7 +253,8 @@ export default {
|
||||
mobile: undefined,
|
||||
gender: undefined,
|
||||
city: undefined,
|
||||
lastLoginIp: undefined
|
||||
lastLoginIp: undefined,
|
||||
onlineStatus: undefined
|
||||
},
|
||||
userAddUpdateDialogVisible: false,
|
||||
userInfoDialogVisible: false
|
||||
@@ -466,6 +491,26 @@ export default {
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
handleLogoutUser(row){
|
||||
let html = `<p>确认踢用户:<span style="color: cadetblue">` + row.nickname + `</span> 的下线?</p>`
|
||||
+ `<p>提醒:<span style="color: red">强制踢用户下线,如果正在用户通话中,可能会有通话中断</span></p>`
|
||||
this.$confirm(html, '警告', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
dangerouslyUseHTMLString: true,
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.loading = true
|
||||
return userLogout(row.id)
|
||||
}).then(() => {
|
||||
this.$modal.msgSuccess("解除成功");
|
||||
this.loading = false
|
||||
this.getList()
|
||||
}).catch(() => {
|
||||
}).finally(()=>{
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
handleCommand(command, row) {
|
||||
switch (command) {
|
||||
case "handleDelete":
|
||||
@@ -504,6 +549,9 @@ export default {
|
||||
case "handleEnSpeckIm":
|
||||
this.handleEnSpeckIm(row);
|
||||
break;
|
||||
case "handleLogoutUser":
|
||||
this.handleLogoutUser(row);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user