feat: 添加用户

This commit is contained in:
wanglihui 2023-07-30 19:33:45 +08:00
parent 87ae166e1f
commit 69bc60f7aa
8 changed files with 244 additions and 66 deletions

View File

@ -35,3 +35,19 @@ export function groupBlacklistGet(params: any, groupNo: string) {
params
});
}
// 禁言/解除禁言
export function groupForbiddenPut(params: any) {
return request({
url: `/manager/groups/${params.groupNo}/forbidden/${params.forbidden}`,
method: 'put'
});
}
// 封禁/解禁
export function groupLiftbanPut(params: any) {
return request({
url: `/manager/group/liftban/${params.groupNo}/${params.status}`,
method: 'put'
});
}

View File

@ -1,5 +1,14 @@
import request from '@/utils/axios';
// 添加用户
export function userAddPost(data: any) {
return request({
url: '/manager/user/add',
method: 'post',
data
});
}
// 用户列表
export function userListGet(params: any) {
return request({

View File

@ -9,13 +9,7 @@
<template #dropdown>
<el-dropdown-menu class="w-180px">
<el-dropdown-item>
<el-icon>
<i-bd-gold-medal-two theme="outline" size="24" />
</el-icon>
当前积分
</el-dropdown-item>
<el-dropdown-item>
<el-dropdown-item @click="onChangePassword">
<el-icon>
<i-bd-lock theme="outline" size="24" />
</el-icon>
@ -42,6 +36,13 @@ const username = computed(() => {
return userStore.userInfo.name;
});
//
const onChangePassword = () => {
router.push({
path: '/setting/updatepwd'
});
};
// 退
const onLogoutClick = () => {
// 1. Token

View File

@ -21,7 +21,7 @@
</div>
</el-scrollbar>
</div>
<el-aside :style="{ width: isCollapse ? '65px' : '210px' }">
<el-aside :class="{ 'not-aside': !subMenuList.length }" :style="{ width: isCollapse ? '65px' : '210px' }">
<div class="logo flex-center">
<span class="logo-text">
{{ isCollapse ? APP_TITLE_SHORT : APP_TITLE }}

View File

@ -11,36 +11,6 @@ const home: Menu.MenuOptions = {
isLink: '',
index: 1,
title: '首页'
},
children: [
{
component: '/home/aa',
name: 'HomeAa',
path: '/home/aa',
meta: {
icon: 'HomeFilled',
isAffix: false,
isFull: false,
isHide: false,
isKeepAlive: true,
isLink: '',
title: 'AA标题'
}
},
{
component: '/home/bb',
name: 'HomeBb',
path: '/home/bb',
meta: {
icon: 'i-bd-off-screen-one',
isAffix: false,
isFull: false,
isHide: false,
isKeepAlive: true,
isLink: '',
title: 'BB标题'
}
}
]
}
};
export default home;

View File

@ -63,10 +63,10 @@ meta:
</route>
<script lang="tsx" setup>
import { ElButton, ElSpace, ElAvatar } from 'element-plus';
import { ElButton, ElSpace, ElAvatar, ElMessage, ElMessageBox } from 'element-plus';
import { BU_DOU_CONFIG } from '@/config';
// API
import { groupDisablelistGet } from '@/api/group';
import { groupDisablelistGet, groupLiftbanPut } from '@/api/group';
/**
* 表格
*/
@ -101,11 +101,11 @@ const column = reactive<Column.ColumnOptions[]>([
label: '群人数'
},
{
prop: 'short_no',
prop: 'create_name',
label: '群主名称'
},
{
prop: 'register_time',
prop: 'create_at',
label: '创建时间'
},
{
@ -117,7 +117,7 @@ const column = reactive<Column.ColumnOptions[]>([
render: (scope: any) => {
return (
<ElSpace>
<ElButton type="primary" onClick={() => aa(scope.row)}>
<ElButton type="primary" onClick={() => onLiftban(scope.row)}>
解禁
</ElButton>
</ElSpace>
@ -157,9 +157,40 @@ const onCurrentChange = (current: number) => {
queryFrom.page_index = current;
getTableList();
};
const aa = (a: any) => {
console.log(a);
// /
const onLiftban = (item: any) => {
const text = item.status == 1 ? '封禁' : '解禁';
ElMessageBox.confirm(`确定要对群组${item.name}${text}吗?`, `${text}群组`, {
confirmButtonText: '确定',
cancelButtonText: '取消',
closeOnClickModal: false,
type: 'warning'
})
.then(() => {
const fromLiftban = {
groupNo: item.group_no,
status: item.status == 1 ? 0 : 1
};
groupLiftbanPut(fromLiftban)
.then((_res: any) => {
getTableList();
ElMessage({
type: 'success',
message: `${text}群组成功!`
});
})
.catch(err => {
if (err.status == 400) {
ElMessage.error(err.msg);
}
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消成功!'
});
});
};
//

View File

@ -12,7 +12,7 @@
<el-input v-model="queryFrom.keyword" placeholder="群名称/群编号" clearable />
</el-form-item>
<el-form-item class="mb-0 !mr-0">
<el-button type="primary" @click="getUserList">查询</el-button>
<el-button type="primary" @click="getTableList">查询</el-button>
</el-form-item>
</el-form>
</div>
@ -64,10 +64,10 @@ meta:
<script lang="tsx" setup>
import { useRouter } from 'vue-router';
import { ElButton, ElSpace, ElAvatar, ElDropdown, ElDropdownMenu, ElDropdownItem } from 'element-plus';
import { ElButton, ElSpace, ElAvatar, ElDropdown, ElDropdownMenu, ElDropdownItem, ElMessage, ElMessageBox } from 'element-plus';
import { BU_DOU_CONFIG } from '@/config';
// API
import { groupListGet } from '@/api/group';
import { groupListGet, groupForbiddenPut, groupLiftbanPut } from '@/api/group';
const router = useRouter();
/**
@ -147,11 +147,26 @@ const column = reactive<Column.ColumnOptions[]>([
dropdown: () => {
return (
<ElDropdownMenu>
<ElDropdownItem onClick={() => onGroupdisablelist(scope.row)}>群成员</ElDropdownItem>
<ElDropdownItem onClick={() => onRcord(scope.row)}>聊天记录</ElDropdownItem>
<ElDropdownItem onClick={() => onBlackList(scope.row)}>黑名单成员</ElDropdownItem>
<ElDropdownItem>{scope.row.forbidden === 1 ? '禁言中' : '禁言'}</ElDropdownItem>
<ElDropdownItem>{scope.row.status === 1 ? '封禁' : '解禁'}</ElDropdownItem>
<ElDropdownItem onClick={() => onGroupdisablelist(scope.row)}>
<i-bd-every-user class={'mr-4px'} />
群成员
</ElDropdownItem>
<ElDropdownItem onClick={() => onRcord(scope.row)}>
<i-bd-log class={'mr-4px'} />
聊天记录
</ElDropdownItem>
<ElDropdownItem onClick={() => onBlackList(scope.row)}>
<i-bd-people-unknown class={'mr-4px'} />
黑名单成员
</ElDropdownItem>
<ElDropdownItem onClick={() => onForbidden(scope.row)}>
<i-bd-forbid class={'mr-4px'} />
{scope.row.forbidden === 1 ? '禁言中' : '禁言'}
</ElDropdownItem>
<ElDropdownItem onClick={() => onLiftban(scope.row)}>
<i-bd-info class={'mr-4px'} />
{scope.row.status === 1 ? '封禁' : '解禁'}
</ElDropdownItem>
</ElDropdownMenu>
);
}
@ -174,7 +189,7 @@ const queryFrom = reactive({
page_index: 1
});
const getUserList = () => {
const getTableList = () => {
loadTable.value = true;
groupListGet(queryFrom).then((res: any) => {
loadTable.value = false;
@ -186,13 +201,18 @@ const getUserList = () => {
// page-size
const onSizeChange = (size: number) => {
queryFrom.page_size = size;
getUserList();
getTableList();
};
// page-size
const onCurrentChange = (current: number) => {
queryFrom.page_index = current;
getUserList();
getTableList();
};
//
const aa = (a: any) => {
console.log(a);
};
//
@ -228,13 +248,80 @@ const onBlackList = (item: any) => {
});
};
const aa = (a: any) => {
console.log(a);
// /
const onForbidden = (item: any) => {
const text = item.forbidden == 1 ? '禁言' : '解除禁言';
ElMessageBox.confirm(`确定要对群组${item.name}${text}吗?`, `${text}群组`, {
confirmButtonText: '确定',
cancelButtonText: '取消',
closeOnClickModal: false,
type: 'warning'
})
.then(() => {
const fromLiftban = {
groupNo: item.group_no,
forbidden: item.forbidden == 1 ? 0 : 1
};
groupForbiddenPut(fromLiftban)
.then((_res: any) => {
getTableList();
ElMessage({
type: 'success',
message: `${text}群组成功!`
});
})
.catch(err => {
if (err.status == 400) {
ElMessage.error(err.msg);
}
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消成功!'
});
});
};
// /
const onLiftban = (item: any) => {
const text = item.status == 1 ? '封禁' : '解禁';
ElMessageBox.confirm(`确定要对群组${item.name}${text}吗?`, `${text}群组`, {
confirmButtonText: '确定',
cancelButtonText: '取消',
closeOnClickModal: false,
type: 'warning'
})
.then(() => {
const fromLiftban = {
groupNo: item.group_no,
status: item.status == 1 ? 0 : 1
};
groupLiftbanPut(fromLiftban)
.then((_res: any) => {
getTableList();
ElMessage({
type: 'success',
message: `${text}群组成功!`
});
})
.catch(err => {
if (err.status == 400) {
ElMessage.error(err.msg);
}
});
})
.catch(() => {
ElMessage({
type: 'info',
message: '取消成功!'
});
});
};
//
onMounted(() => {
getUserList();
getTableList();
});
</script>

View File

@ -1,20 +1,84 @@
<template>
<div>
<div class="wh-full flex-col">
<!-- 布局 -->
添加用户
<div class="flex-1 el-card border-none flex-col box-border overflow-hidden">
<div class="h-50px pl-12px pr-12px box-border flex items-center justify-between bd-title">
<div class="bd-title-left">
<p class="m-0 font-600">添加用户</p>
</div>
<div class="flex items-center h-50px"></div>
</div>
<div class="flex-1 overflow-hidden p-12px">
<div class="w-540px">
<el-form :model="formData" label-width="120px">
<el-form-item label="区号:">
<el-select v-model="formData.zone" class="!w-100%">
<el-option label="0086" value="0086" />
</el-select>
</el-form-item>
<el-form-item label="手机号:">
<el-input v-model="formData.phone" />
</el-form-item>
<el-form-item label="性别:">
<el-radio-group v-model="formData.sex">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="用户昵称:">
<el-input v-model="formData.name" />
</el-form-item>
<el-form-item label="登录密码:">
<el-input v-model="formData.password" type="password" show-password />
</el-form-item>
<el-form-item>
<el-button :loading="loginButLoading" class="!w-100%" type="primary" @click="onSaveClick">保存</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</template>
<route lang="yaml">
meta:
title: 添加用户
isAffix: false
</route>
<script lang="ts" setup>
//
import { ElMessage } from 'element-plus';
// API
import { userAddPost } from '@/api/user';
//
const formData = reactive({
name: '',
zone: '0086',
sex: 1,
phone: '',
password: ''
});
//
const loginButLoading = ref(false);
const onSaveClick = () => {
loginButLoading.value = true;
userAddPost(formData)
.then((_res: any) => {
loginButLoading.value = false;
ElMessage.success('添加成功');
})
.catch(err => {
loginButLoading.value = false;
if (err.status == 400) {
ElMessage.error(err.msg);
}
});
};
</script>
<style lang="scss" scoped>
//
.bd-title {
border-bottom: 1px solid var(--el-card-border-color);
}
</style>