feat: 新增工具接口调试

This commit is contained in:
wanglihui 2023-07-08 21:49:20 +08:00
parent 1b5937445f
commit 0adb7f13b0
7 changed files with 168 additions and 309 deletions

10
src/api/report.ts Normal file
View File

@ -0,0 +1,10 @@
import request from '@/utils/axios';
// 举报列表
export function reportListGet(params: any) {
return request({
url: '/manager/report/list',
method: 'get',
params
});
}

19
src/api/tool.ts Normal file
View File

@ -0,0 +1,19 @@
import request from '@/utils/axios';
// APP列表
export function commonAppversionListGet(params: any) {
return request({
url: '/common/appversion/list',
method: 'get',
params
});
}
// 系统机器人菜单列表
export function robotMenusGet(params: any) {
return request({
url: '/manager/robot/menus',
method: 'get',
params
});
}

View File

@ -6,16 +6,7 @@
<div class="bd-title-left">
<p class="m-0 font-600">举报群聊</p>
</div>
<div class="flex items-center h-50px">
<el-form inline>
<el-form-item class="mb-0 !mr-16px">
<el-input v-model="queryFrom.keyword" placeholder="uid/手机号/用户名" clearable />
</el-form-item>
<el-form-item class="mb-0 !mr-0">
<el-button type="primary" @click="getUserList">查询</el-button>
</el-form-item>
</el-form>
</div>
<div class="flex items-center h-50px"></div>
</div>
<div class="flex-1 overflow-hidden p-12px">
<el-table v-loading="loadTable" :data="tableData" :border="true" style="width: 100%; height: 100%">
@ -63,86 +54,70 @@ meta:
</route>
<script lang="tsx" setup>
import { ElButton, ElSpace, ElAvatar } from 'element-plus';
import { ElAvatar } from 'element-plus';
import { BU_DOU_CONFIG } from '@/config';
// API
import { userListGet } from '@/api/user';
import { reportListGet } from '@/api/report';
/**
* 表格
*/
const column = reactive([
const column = reactive<Column.ColumnOptions[]>([
{
prop: 'name',
label: '用户名',
fixed: 'left',
label: '举报者名称',
width: 140
},
{
prop: 'phone',
label: '手机号',
fixed: 'left',
prop: 'uid',
label: '举报者ID',
width: 120
},
{
prop: 'avatar',
label: '头像',
prop: 'channel_name',
label: '被举报群名称',
width: 200
},
{
prop: 'channel_avatar',
label: '被举报群头像',
align: 'center',
width: 80,
width: 130,
render: (scope: any) => {
let img_url = '';
if (scope.row['uid']) {
img_url = `${BU_DOU_CONFIG.APP_URL}users/${scope.row['uid']}/avatar`;
if (scope.row['channel_id']) {
img_url = `${BU_DOU_CONFIG.APP_URL}groups/${scope.row['channel_id']}/avatar`;
}
return (
<ElAvatar src={img_url} size={54}>
{scope.row['name']}
{scope.row['channel_name']}
</ElAvatar>
);
}
},
{
prop: 'uid',
label: '用户ID',
minWidth: 300
prop: 'channel_id',
label: '被举报群ID',
width: 200
},
{
prop: 'short_no',
label: '悟空号'
prop: 'imgs',
label: '举报图片',
minWidth: 120
},
{
prop: 'sex',
label: '性别',
width: 60,
formatter(row: any) {
return row.sex === 1 ? '男' : '女';
}
prop: 'category_name',
label: '举报原因',
minWidth: 180
},
{
prop: 'register_time',
label: '注册时间',
prop: 'remark',
label: '举报说明',
minWidth: 170
},
{
prop: 'create_at',
label: '举报时间',
width: 170
},
{
prop: 'last_online_time',
label: '封禁日期',
width: 150
},
{
prop: 'operation',
label: '操作',
align: 'center',
fixed: 'right',
width: 180,
render: (scope: any) => {
return (
<ElSpace>
<ElButton type="primary" onClick={() => aa(scope.row)}>
发消息
</ElButton>
<ElButton>更多</ElButton>
</ElSpace>
);
}
}
]);
const tableData = ref<any[]>([]);
@ -152,14 +127,14 @@ const total = ref(0);
//
const queryFrom = reactive({
keyword: '',
channel_type: '2',
page_size: 15,
page_index: 1
});
const getUserList = () => {
const getTableList = () => {
loadTable.value = true;
userListGet(queryFrom).then((res: any) => {
reportListGet(queryFrom).then((res: any) => {
loadTable.value = false;
tableData.value = res.list;
total.value = res.count;
@ -169,22 +144,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();
};
const aa = (a: any) => {
console.log(a);
getTableList();
};
//
onMounted(() => {
getUserList();
getTableList();
});
</script>

View File

@ -6,16 +6,7 @@
<div class="bd-title-left">
<p class="m-0 font-600">举报用户</p>
</div>
<div class="flex items-center h-50px">
<el-form inline>
<el-form-item class="mb-0 !mr-16px">
<el-input v-model="queryFrom.keyword" placeholder="uid/手机号/用户名" clearable />
</el-form-item>
<el-form-item class="mb-0 !mr-0">
<el-button type="primary" @click="getUserList">查询</el-button>
</el-form-item>
</el-form>
</div>
<div class="flex items-center h-50px"></div>
</div>
<div class="flex-1 overflow-hidden p-12px">
<el-table v-loading="loadTable" :data="tableData" :border="true" style="width: 100%; height: 100%">
@ -63,86 +54,70 @@ meta:
</route>
<script lang="tsx" setup>
import { ElButton, ElSpace, ElAvatar } from 'element-plus';
import { ElAvatar } from 'element-plus';
import { BU_DOU_CONFIG } from '@/config';
// API
import { userListGet } from '@/api/user';
import { reportListGet } from '@/api/report';
/**
* 表格
*/
const column = reactive([
const column = reactive<Column.ColumnOptions[]>([
{
prop: 'name',
label: '用户名',
fixed: 'left',
label: '举报者名称',
width: 140
},
{
prop: 'phone',
label: '手机号',
fixed: 'left',
prop: 'uid',
label: '举报者ID',
width: 120
},
{
prop: 'avatar',
label: '头像',
prop: 'channel_name',
label: '被举报用户名称',
width: 200
},
{
prop: 'channel_avatar',
label: '被举报用户头像',
align: 'center',
width: 80,
width: 130,
render: (scope: any) => {
let img_url = '';
if (scope.row['uid']) {
img_url = `${BU_DOU_CONFIG.APP_URL}users/${scope.row['uid']}/avatar`;
if (scope.row['channel_id']) {
img_url = `${BU_DOU_CONFIG.APP_URL}users/${scope.row['channel_id']}/avatar`;
}
return (
<ElAvatar src={img_url} size={54}>
{scope.row['name']}
{scope.row['channel_name']}
</ElAvatar>
);
}
},
{
prop: 'uid',
label: '用户ID',
minWidth: 300
prop: 'channel_id',
label: '被举报用户ID',
width: 200
},
{
prop: 'short_no',
label: '悟空号'
prop: 'imgs',
label: '举报图片',
minWidth: 120
},
{
prop: 'sex',
label: '性别',
width: 60,
formatter(row: any) {
return row.sex === 1 ? '男' : '女';
}
prop: 'category_name',
label: '举报原因',
minWidth: 180
},
{
prop: 'register_time',
label: '注册时间',
prop: 'remark',
label: '举报说明',
minWidth: 170
},
{
prop: 'create_at',
label: '举报时间',
width: 170
},
{
prop: 'last_online_time',
label: '封禁日期',
width: 150
},
{
prop: 'operation',
label: '操作',
align: 'center',
fixed: 'right',
width: 180,
render: (scope: any) => {
return (
<ElSpace>
<ElButton type="primary" onClick={() => aa(scope.row)}>
发消息
</ElButton>
<ElButton>更多</ElButton>
</ElSpace>
);
}
}
]);
const tableData = ref<any[]>([]);
@ -152,14 +127,14 @@ const total = ref(0);
//
const queryFrom = reactive({
keyword: '',
channel_type: '1',
page_size: 15,
page_index: 1
});
const getUserList = () => {
const getTableList = () => {
loadTable.value = true;
userListGet(queryFrom).then((res: any) => {
reportListGet(queryFrom).then((res: any) => {
loadTable.value = false;
tableData.value = res.list;
total.value = res.count;
@ -169,22 +144,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();
};
const aa = (a: any) => {
console.log(a);
getTableList();
};
//
onMounted(() => {
getUserList();
getTableList();
});
</script>

View File

@ -8,11 +8,8 @@
</div>
<div class="flex items-center h-50px">
<el-form inline>
<el-form-item class="mb-0 !mr-16px">
<el-input v-model="queryFrom.keyword" placeholder="uid/手机号/用户名" clearable />
</el-form-item>
<el-form-item class="mb-0 !mr-0">
<el-button type="primary" @click="getUserList">查询</el-button>
<el-button type="primary">新增版本</el-button>
</el-form-item>
</el-form>
</div>
@ -63,86 +60,36 @@ meta:
</route>
<script lang="tsx" setup>
import { ElButton, ElSpace, ElAvatar } from 'element-plus';
import { BU_DOU_CONFIG } from '@/config';
import { ElButton } from 'element-plus';
// API
import { userListGet } from '@/api/user';
import { commonAppversionListGet } from '@/api/tool';
/**
* 表格
*/
const column = reactive([
const column = reactive<Column.ColumnOptions[]>([
{
prop: 'name',
label: '用户名',
fixed: 'left',
prop: 'os',
label: '升级平台',
width: 140
},
{
prop: 'phone',
label: '手机号',
fixed: 'left',
prop: 'app_version',
label: '升级版本号',
width: 120
},
{
prop: 'avatar',
label: '头像',
align: 'center',
width: 80,
render: (scope: any) => {
let img_url = '';
if (scope.row['uid']) {
img_url = `${BU_DOU_CONFIG.APP_URL}users/${scope.row['uid']}/avatar`;
}
return (
<ElAvatar src={img_url} size={54}>
{scope.row['name']}
</ElAvatar>
);
}
prop: 'is_force',
label: '是否强制更新',
width: 220
},
{
prop: 'uid',
label: '用户ID',
minWidth: 300
prop: 'update_desc',
label: '升级说明'
},
{
prop: 'short_no',
label: '悟空号'
},
{
prop: 'sex',
label: '性别',
width: 60,
formatter(row: any) {
return row.sex === 1 ? '男' : '女';
}
},
{
prop: 'register_time',
label: '注册时间',
prop: 'created_at',
label: '发布时间',
width: 170
},
{
prop: 'last_online_time',
label: '封禁日期',
width: 150
},
{
prop: 'operation',
label: '操作',
align: 'center',
fixed: 'right',
width: 180,
render: (scope: any) => {
return (
<ElSpace>
<ElButton type="primary" onClick={() => aa(scope.row)}>
发消息
</ElButton>
<ElButton>更多</ElButton>
</ElSpace>
);
}
}
]);
const tableData = ref<any[]>([]);
@ -152,14 +99,13 @@ const total = ref(0);
//
const queryFrom = reactive({
keyword: '',
page_size: 15,
page_index: 1
});
const getUserList = () => {
const getTableList = () => {
loadTable.value = true;
userListGet(queryFrom).then((res: any) => {
commonAppversionListGet(queryFrom).then((res: any) => {
loadTable.value = false;
tableData.value = res.list;
total.value = res.count;
@ -169,22 +115,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();
};
const aa = (a: any) => {
console.log(a);
getTableList();
};
//
onMounted(() => {
getUserList();
getTableList();
});
</script>

View File

@ -6,16 +6,7 @@
<div class="bd-title-left">
<p class="m-0 font-600">系统机器人菜单列表</p>
</div>
<div class="flex items-center h-50px">
<el-form inline>
<el-form-item class="mb-0 !mr-16px">
<el-input v-model="queryFrom.keyword" placeholder="uid/手机号/用户名" clearable />
</el-form-item>
<el-form-item class="mb-0 !mr-0">
<el-button type="primary" @click="getUserList">查询</el-button>
</el-form-item>
</el-form>
</div>
<div class="flex items-center h-50px"></div>
</div>
<div class="flex-1 overflow-hidden p-12px">
<el-table v-loading="loadTable" :data="tableData" :border="true" style="width: 100%; height: 100%">
@ -39,19 +30,6 @@
</el-table-column>
</el-table>
</div>
<div class="bd-card-footer pl-12px pr-12px mb-12px flex items-center justify-between">
<div></div>
<el-pagination
v-model:current-page="queryFrom.page_index"
v-model:page-size="queryFrom.page_size"
:page-sizes="[15, 20, 30, 50, 100]"
:background="true"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="onSizeChange"
@current-change="onCurrentChange"
/>
</div>
</div>
</div>
</template>
@ -63,83 +41,65 @@ meta:
</route>
<script lang="tsx" setup>
import { ElButton, ElSpace, ElAvatar } from 'element-plus';
import { BU_DOU_CONFIG } from '@/config';
import { ElSpace, ElButton, ElTag, ElText } from 'element-plus';
// API
import { userListGet } from '@/api/user';
import { robotMenusGet } from '@/api/tool';
/**
* 表格
*/
const column = reactive([
const column = reactive<Column.ColumnOptions[]>([
{
prop: 'name',
label: '用户名',
fixed: 'left',
width: 140
},
{
prop: 'phone',
label: '手机号',
fixed: 'left',
width: 120
},
{
prop: 'avatar',
label: '头像',
align: 'center',
width: 80,
prop: 'cmd',
label: '命令',
width: 140,
render: (scope: any) => {
let img_url = '';
if (scope.row['uid']) {
img_url = `${BU_DOU_CONFIG.APP_URL}users/${scope.row['uid']}/avatar`;
}
return (
<ElAvatar src={img_url} size={54}>
{scope.row['name']}
</ElAvatar>
<ElText type="primary" class={'cursor-pointer'}>
{scope.row['cmd']}
</ElText>
);
}
},
{
prop: 'uid',
label: '用户ID',
minWidth: 300
prop: 'robot_id',
label: '机器人ID',
width: 140
},
{
prop: 'short_no',
label: '悟空号'
prop: 'remark',
label: '说明'
},
{
prop: 'sex',
label: '性别',
width: 60,
formatter(row: any) {
return row.sex === 1 ? '男' : '女';
prop: 'type',
label: '类型',
align: 'center',
width: 80,
render: (scope: any) => {
return <ElTag>{scope.row['type']}</ElTag>;
}
},
{
prop: 'register_time',
label: '注册时间',
prop: 'created_at',
label: '创建时间',
width: 170
},
{
prop: 'last_online_time',
label: '封禁日期',
width: 150
prop: 'updated_at',
label: '更新时间',
width: 170
},
{
prop: 'operation',
label: '操作',
align: 'center',
fixed: 'right',
width: 180,
width: 120,
render: (scope: any) => {
return (
<ElSpace>
<ElButton type="primary" onClick={() => aa(scope.row)}>
发消息
<ElButton type="danger" onClick={() => aa(scope.row)}>
删除
</ElButton>
<ElButton>更多</ElButton>
</ElSpace>
);
}
@ -147,44 +107,29 @@ const column = reactive([
]);
const tableData = ref<any[]>([]);
const loadTable = ref<boolean>(false);
//
const total = ref(0);
//
const queryFrom = reactive({
keyword: '',
robot_id: 'u_10000',
page_size: 15,
page_index: 1
});
const getUserList = () => {
const getTableList = () => {
loadTable.value = true;
userListGet(queryFrom).then((res: any) => {
robotMenusGet(queryFrom).then((res: any) => {
loadTable.value = false;
tableData.value = res.list;
total.value = res.count;
tableData.value = res;
});
};
// page-size
const onSizeChange = (size: number) => {
queryFrom.page_size = size;
getUserList();
};
// page-size
const onCurrentChange = (current: number) => {
queryFrom.page_index = current;
getUserList();
};
const aa = (a: any) => {
console.log(a);
};
//
onMounted(() => {
getUserList();
getTableList();
});
</script>

View File

@ -82,10 +82,11 @@ declare namespace Column {
interface ColumnOptions {
prop: string;
label: string;
fixed?: string;
width?: number;
minWidth?: number;
align?: string;
type?: 'selection' | 'index' | 'expand';
fixed?: true | 'left' | 'right';
width?: string | number;
minWidth?: string | number;
align?: 'left' | 'center' | 'right';
formatter?: (scope: any) => void;
render?: (scope: any) => VNode;
}