fix: customer

pull/159/head
xingyu4j 2025-06-26 18:10:47 +08:00
parent 201f052fab
commit 07f87dfe22
1 changed files with 63 additions and 14 deletions

View File

@ -10,7 +10,13 @@ import { useTabs } from '@vben/hooks';
import { Button, Card, message, Tabs } from 'ant-design-vue'; import { Button, Card, message, Tabs } from 'ant-design-vue';
import { getCustomer, updateCustomerDealStatus } from '#/api/crm/customer'; import {
getCustomer,
lockCustomer,
putCustomerPool,
receiveCustomer,
updateCustomerDealStatus,
} from '#/api/crm/customer';
import { getOperateLogPage } from '#/api/crm/operateLog'; import { getOperateLogPage } from '#/api/crm/operateLog';
import { BizTypeEnum } from '#/api/crm/permission'; import { BizTypeEnum } from '#/api/crm/permission';
import { useDescription } from '#/components/description'; import { useDescription } from '#/components/description';
@ -99,18 +105,45 @@ function handleTransfer() {
} }
/** 锁定客户 */ /** 锁定客户 */
function handleLock() { function handleLock(lockStatus: boolean): Promise<boolean | undefined> {
transferModalApi.setData({ id: customerId.value }).open(); return new Promise((resolve, reject) => {
} confirm({
content: `确定锁定客户【${customer.value.name}】吗?`,
/** 解锁客户 */ })
function handleUnlock() { .then(async () => {
transferModalApi.setData({ id: customerId.value }).open(); const res = await lockCustomer(customerId.value, lockStatus);
if (res) {
message.success(lockStatus ? '锁定客户成功' : '解锁客户成功');
resolve(true);
} else {
reject(new Error(lockStatus ? '锁定客户失败' : '解锁客户失败'));
}
})
.catch(() => {
reject(new Error('取消操作'));
});
});
} }
/** 领取客户 */ /** 领取客户 */
function handleReceive() { function handleReceive(): Promise<boolean | undefined> {
transferModalApi.setData({ id: customerId.value }).open(); return new Promise((resolve, reject) => {
confirm({
content: `确定领取客户【${customer.value.name}】吗?`,
})
.then(async () => {
const res = await receiveCustomer([customerId.value]);
if (res) {
message.success('领取客户成功');
resolve(true);
} else {
reject(new Error('领取客户失败'));
}
})
.catch(() => {
reject(new Error('取消操作'));
});
});
} }
/** 分配客户 */ /** 分配客户 */
@ -119,8 +152,24 @@ function handleDistributeForm() {
} }
/** 客户放入公海 */ /** 客户放入公海 */
function handlePutPool() { function handlePutPool(): Promise<boolean | undefined> {
transferModalApi.setData({ id: customerId.value }).open(); return new Promise((resolve, reject) => {
confirm({
content: `确定将客户【${customer.value.name}】放入公海吗?`,
})
.then(async () => {
const res = await putCustomerPool(customerId.value);
if (res) {
message.success('放入公海成功');
resolve(true);
} else {
reject(new Error('放入公海失败'));
}
})
.catch(() => {
reject(new Error('取消操作'));
});
});
} }
/** 更新成交状态操作 */ /** 更新成交状态操作 */
@ -185,13 +234,13 @@ onMounted(() => {
</Button> </Button>
<Button <Button
v-if="customer.lockStatus && permissionListRef?.validateOwnerUser" v-if="customer.lockStatus && permissionListRef?.validateOwnerUser"
@click="handleUnlock" @click="handleLock(false)"
> >
解锁 解锁
</Button> </Button>
<Button <Button
v-if="!customer.lockStatus && permissionListRef?.validateOwnerUser" v-if="!customer.lockStatus && permissionListRef?.validateOwnerUser"
@click="handleLock" @click="handleLock(true)"
> >
锁定 锁定
</Button> </Button>