提交 99aa9f01 authored 作者: 王鹏飞's avatar 王鹏飞

chore: 新增团队成员审核和成员删除

上级 e8892b3f
......@@ -27,3 +27,13 @@ export function getTeam(params: {
export function deleteFileOrQuestion(data: { id: string; type: 'question' | 'file' }) {
return httpRequest.post('/api/psp/backend/team/file-or-question-delete', data)
}
// 团队管理-成员审核
export function submitMemberAudit(data: { team_id: string; user_id: string; status: '1' | '4' }) {
return httpRequest.post('/api/psp/backend/team/member-audit', data)
}
// 团队管理-成员删除
export function deleteMember(data: { team_id: string; user_id: string }) {
return httpRequest.post('/api/psp/backend/team/member-delete', data)
}
<script setup lang="ts">
import { getTeam } from '../api'
import { ArrowDown } from '@element-plus/icons-vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getTeam, submitMemberAudit, deleteMember } from '../api'
const props = defineProps<{ id: string }>()
const appList = ref()
......@@ -20,9 +22,34 @@ const listOptions = {
columns: [
{ label: '头像', prop: 'user_info.avatar', slots: 'table-logo', width: 74 },
{ label: '姓名', prop: 'user_info.name' },
{ label: '手机号', prop: 'user_info.mobile' }
{ label: '手机号', prop: 'user_info.mobile' },
{ label: '操作', slots: 'table-operate', width: 180, align: 'right' }
]
}
// 审核
const onAudit = (row: any, status: '1' | '4') => {
submitMemberAudit({ team_id: props.id, user_id: row.user_id, status }).then(() => {
ElMessage({ type: 'success', message: '审核完成' })
appList.value?.refetch()
})
}
// 审核拒绝
const onAuditReject = (row: any, status: '1' | '4') => {
// ElMessageBox.prompt('请输入拒绝原因', '提示').then(({ value }) => {
// onAudit(row, status, value)
// })
onAudit(row, status)
}
// 删除
const onRemove = (row: any) => {
ElMessageBox.confirm('确定要删除吗?', '提示').then(() => {
deleteMember({ team_id: props.id, user_id: row.user_id }).then(() => {
ElMessage({ type: 'success', message: '删除成功' })
appList.value?.refetch(true)
})
})
}
</script>
<template>
......@@ -30,5 +57,21 @@ const listOptions = {
<template #table-logo="{ row }">
<el-avatar :size="50" :src="row.user_info.avatar + '?x-oss-process=image/resize,m_fill,h_100,w_200'" />
</template>
<template #table-operate="{ row }">
<el-space>
<el-dropdown v-if="row.status === '3'">
<el-button type="primary">
审核<el-icon class="el-icon--right"><arrow-down /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="onAudit(row, '1')">通过</el-dropdown-item>
<el-dropdown-item @click="onAuditReject(row, '4')">拒绝</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
<el-button plain type="danger" @click="onRemove(row)" v-if="row.status === '1'">删除</el-button>
</el-space>
</template>
</AppList>
</template>
......@@ -28,7 +28,7 @@ const listOptions = {
{ label: 'Logo', prop: 'logo', slots: 'table-logo', width: 224 },
{ label: '团队名称', prop: 'name' },
{ label: '团队口号', prop: 'slogan' },
{ label: '团队简介', prop: 'brief' },
// { label: '团队简介', prop: 'brief' },
{ label: '成员数量', prop: 'members_count' },
{ label: '积分', prop: 'star' },
{ label: '资料数量', prop: 'files_count' },
......@@ -50,14 +50,7 @@ const onAudit = (row: any, status: 0 | 1) => {
<AppCard>
<AppList v-bind="listOptions" ref="appList">
<template #table-logo="{ row }">
<el-image
:src="row.logo + '?x-oss-process=image/resize,m_fill,h_100,w_200'"
:preview-src-list="[row.logo]"
preview-teleported
lazy
fit="cover"
style="width: 200px; height: 100px"
/>
<el-image :src="row.logo + '?x-oss-process=image/resize,m_fill,h_100,w_200'" :preview-src-list="[row.logo]" preview-teleported lazy fit="cover" style="width: 200px; height: 100px" />
</template>
<template #table-operate="{ row }">
<el-space>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论