From 015a1640c1a1c66d6975788158eaeaa4c4200130 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 14 Nov 2023 11:26:07 +0800 Subject: [PATCH] =?UTF-8?q?crm-=E5=9B=A2=E9=98=9F=E6=88=90=E5=91=98?= =?UTF-8?q?=EF=BC=9A=E5=AE=8C=E5=96=84=E5=9B=A2=E9=98=9F=E6=88=90=E5=91=98?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E7=BB=84=E4=BB=B6=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/permission/index.ts | 35 +++++++++++++------ .../crm/components/CrmPermissionForm.vue | 30 +++++++++------- src/views/crm/components/CrmTeamList.vue | 31 ++++++++-------- src/views/crm/components/index.ts | 8 ++++- 4 files changed, 65 insertions(+), 39 deletions(-) diff --git a/src/api/crm/permission/index.ts b/src/api/crm/permission/index.ts index f71e2bfc..c592bb23 100644 --- a/src/api/crm/permission/index.ts +++ b/src/api/crm/permission/index.ts @@ -1,14 +1,14 @@ import request from '@/config/axios' export interface PermissionVO { - id: number // 数据权限编号 - userId: number // 用户编号 - bizType: number // Crm 类型 - bizId: number // Crm 类型数据编号 - level: number // 权限级别 - deptName: string // 部门名称 - nickname: string // 用户昵称 - postNames: string // 岗位名称数组 + id?: number // 数据权限编号 + userId: number | undefined // 用户编号 + bizType: number | undefined // Crm 类型 + bizId: number | undefined // Crm 类型数据编号 + level: number | undefined // 权限级别 + deptName?: string // 部门名称 + nickname?: string // 用户昵称 + postNames?: string // 岗位名称数组 } // 查询团队成员列表 @@ -21,8 +21,8 @@ export const createPermission = async (data: PermissionVO) => { return await request.post({ url: `/crm/permission/add`, data }) } -// 修改团队成员 -export const updatePermission = async (data: PermissionVO) => { +// 修改团队成员权限级别 +export const updatePermission = async (data) => { return await request.put({ url: `/crm/permission/update`, data }) } @@ -30,3 +30,18 @@ export const updatePermission = async (data: PermissionVO) => { export const deletePermission = async (params) => { return await request.delete({ url: '/crm/permission/delete', params }) } + +// 退出团队 +export const quitTeam = async (id) => { + return await request.delete({ url: '/crm/permission/quit-team?id=' + id }) +} + +// 领取公海数据 +export const receive = async (data: { bizType: number; bizId: number }) => { + return await request.put({ url: `/crm/permission/receive`, data }) +} + +// 数据放入公海 +export const putPool = async (data: { bizType: number; bizId: number }) => { + return await request.put({ url: `/crm/permission/put-pool`, data }) +} diff --git a/src/views/crm/components/CrmPermissionForm.vue b/src/views/crm/components/CrmPermissionForm.vue index 1d217323..9754637b 100644 --- a/src/views/crm/components/CrmPermissionForm.vue +++ b/src/views/crm/components/CrmPermissionForm.vue @@ -1,5 +1,5 @@ diff --git a/src/views/crm/components/CrmTeamList.vue b/src/views/crm/components/CrmTeamList.vue index 824409b8..6a1c14bc 100644 --- a/src/views/crm/components/CrmTeamList.vue +++ b/src/views/crm/components/CrmTeamList.vue @@ -25,10 +25,10 @@ @selection-change="handleSelectionChange" > - - - - + + + + @@ -39,6 +39,7 @@ import { ElTable } from 'element-plus' import * as PermissionApi from '@/api/crm/permission' import { useUserStoreWithOut } from '@/store/modules/user' import CrmPermissionForm from './CrmPermissionForm.vue' +import { CrmPermissionLevelEnum } from './index' defineOptions({ name: 'CrmTeam' }) const props = defineProps<{ @@ -65,14 +66,14 @@ const handleSelectionChange = (val: PermissionApi.PermissionVO[]) => { multipleSelection.value = val } const message = useMessage() -const crmPermissionFormRef = ref>(null) +const crmPermissionFormRef = ref>() const handleEdit = () => { if (multipleSelection.value?.length === 0) { message.warning('请先选择团队成员后操作!') return } const ids = multipleSelection.value?.map((item) => item.id) - crmPermissionFormRef.value?.open('update', props.bizType, props.bizId, ids[0]) + crmPermissionFormRef.value?.open('update', props.bizType, props.bizId, ids) } const handleRemove = async () => { if (multipleSelection.value?.length === 0) { @@ -81,13 +82,10 @@ const handleRemove = async () => { } await message.delConfirm() const ids = multipleSelection.value?.map((item) => item.id) - ids?.forEach((id) => { - // TODO 还不确定要不要搞个批量删除,还是一次只能删除一个,先用循环弄一下 - PermissionApi.deletePermission({ - bizType: props.bizType, - bizId: props.bizId, - id - }) + await PermissionApi.deletePermission({ + bizType: props.bizType, + bizId: props.bizId, + ids }) } const handleAdd = () => { @@ -95,14 +93,16 @@ const handleAdd = () => { } const userStore = useUserStoreWithOut() -const handleQuit = () => { +const handleQuit = async () => { const permission = list.value.find( - (item) => item.userId === userStore.getUser.id && item.level === 1 + (item) => item.userId === userStore.getUser.id && item.level === CrmPermissionLevelEnum.OWNER ) if (permission) { message.warning('负责人不能退出团队!') return } + const userPermission = list.value.find((item) => item.userId === userStore.getUser.id) + await PermissionApi.quitTeam(userPermission?.id) } watch( @@ -113,4 +113,3 @@ watch( { immediate: true, deep: true } ) - diff --git a/src/views/crm/components/index.ts b/src/views/crm/components/index.ts index b0bf3e42..c25feef3 100644 --- a/src/views/crm/components/index.ts +++ b/src/views/crm/components/index.ts @@ -8,4 +8,10 @@ enum CrmBizTypeEnum { CRM_CONTRACT = 6 // 合同 } -export { CrmTeam, CrmBizTypeEnum } +enum CrmPermissionLevelEnum { + OWNER = 1, // 负责人 + READ = 2, // 读 + WRITE = 3 // 写 +} + +export { CrmTeam, CrmBizTypeEnum, CrmPermissionLevelEnum }