diff --git a/apps/web-antd/src/api/crm/clue/index.ts b/apps/web-antd/src/api/crm/clue/index.ts index 9d3447b88..a3a378b67 100644 --- a/apps/web-antd/src/api/crm/clue/index.ts +++ b/apps/web-antd/src/api/crm/clue/index.ts @@ -77,7 +77,7 @@ export function transferClue(data: CrmPermissionApi.TransferReq) { /** 线索转化为客户 */ export function transformClue(id: number) { - return requestClient.put('/crm/clue/transform', { id }); + return requestClient.put(`/crm/clue/transform?id=${id}`); } /** 获得分配给我的、待跟进的线索数量 */ diff --git a/apps/web-antd/src/views/crm/clue/data.ts b/apps/web-antd/src/views/crm/clue/data.ts index abc05ed4e..4d3926695 100644 --- a/apps/web-antd/src/views/crm/clue/data.ts +++ b/apps/web-antd/src/views/crm/clue/data.ts @@ -7,6 +7,7 @@ import { h } from 'vue'; import { formatDateTime } from '@vben/utils'; import { getAreaTree } from '#/api/system/area'; +import { getSimpleUserList } from '#/api/system/user'; import { DictTag } from '#/components/dict-tag'; import { DICT_TYPE, getDictOptions, getRangePickerDefaultProps } from '#/utils'; @@ -32,7 +33,7 @@ export function useFormSchema(): VbenFormSchema[] { label: '客户来源', component: 'Select', componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_SOURCE), + options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_SOURCE, 'number'), }, rules: 'required', }, @@ -44,9 +45,12 @@ export function useFormSchema(): VbenFormSchema[] { { fieldName: 'ownerUserId', label: '负责人', - component: 'Select', + component: 'ApiSelect', componentProps: { - api: 'getSimpleUserList', + api: getSimpleUserList, + labelField: 'nickname', + valueField: 'id', + allowClear: true, }, rules: 'required', }, @@ -75,7 +79,7 @@ export function useFormSchema(): VbenFormSchema[] { label: '客户行业', component: 'Select', componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY), + options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_INDUSTRY, 'number'), }, }, { @@ -83,7 +87,7 @@ export function useFormSchema(): VbenFormSchema[] { label: '客户级别', component: 'Select', componentProps: { - options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_LEVEL), + options: getDictOptions(DICT_TYPE.CRM_CUSTOMER_LEVEL, 'number'), }, }, { @@ -299,10 +303,6 @@ export function useDetailBaseSchema(): DescriptionItemSchema[] { field: 'mobile', label: '手机', }, - { - field: 'ownerUserName', - label: '负责人', - }, { field: 'telephone', label: '电话', @@ -312,13 +312,18 @@ export function useDetailBaseSchema(): DescriptionItemSchema[] { label: '邮箱', }, { - field: 'wechat', - label: '微信', + field: 'areaName', + label: '地址', + content: (data) => data?.areaName + data?.detailAddress, }, { field: 'qq', label: 'QQ', }, + { + field: 'wechat', + label: '微信', + }, { field: 'industryId', label: '客户行业', @@ -337,14 +342,6 @@ export function useDetailBaseSchema(): DescriptionItemSchema[] { value: data?.level, }), }, - { - field: 'areaId', - label: '地址', - }, - { - field: 'detailAddress', - label: '详细地址', - }, { field: 'contactNextTime', label: '下次联系时间', @@ -369,9 +366,9 @@ export function useDetailSystemSchema(): DescriptionItemSchema[] { label: '最后跟进记录', }, { - field: 'contactLastContent', + field: 'contactLastTime', label: '最后跟进时间', - content: (data) => formatDateTime(data?.contactLastContent) as string, + content: (data) => formatDateTime(data?.contactLastTime) as string, }, { field: 'creatorName', diff --git a/apps/web-antd/src/views/crm/clue/modules/detail-info.vue b/apps/web-antd/src/views/crm/clue/modules/detail-info.vue index 36784a1df..ea3cb1fbf 100644 --- a/apps/web-antd/src/views/crm/clue/modules/detail-info.vue +++ b/apps/web-antd/src/views/crm/clue/modules/detail-info.vue @@ -9,7 +9,7 @@ import { useDetailBaseSchema, useDetailSystemSchema } from '../data'; defineOptions({ name: 'CrmClueDetailsInfo' }); -const { clue } = defineProps<{ +defineProps<{ clue: CrmClueApi.Clue; // 线索信息 }>(); @@ -21,7 +21,6 @@ const [BaseDescription] = useDescription({ class: 'mx-4', }, schema: useDetailBaseSchema(), - data: clue, }); const [SystemDescription] = useDescription({ @@ -32,14 +31,13 @@ const [SystemDescription] = useDescription({ class: 'mx-4', }, schema: useDetailSystemSchema(), - data: clue, }); diff --git a/apps/web-antd/src/views/crm/clue/modules/detail.vue b/apps/web-antd/src/views/crm/clue/modules/detail.vue index 7c9d29b2a..fc07fdbd9 100644 --- a/apps/web-antd/src/views/crm/clue/modules/detail.vue +++ b/apps/web-antd/src/views/crm/clue/modules/detail.vue @@ -1,18 +1,22 @@ diff --git a/apps/web-antd/src/views/crm/clue/modules/transfer.vue b/apps/web-antd/src/views/crm/clue/modules/transfer.vue deleted file mode 100644 index d076ec4e6..000000000 --- a/apps/web-antd/src/views/crm/clue/modules/transfer.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/apps/web-antd/src/views/crm/followup/index.vue b/apps/web-antd/src/views/crm/followup/index.vue index 410e10c13..b6b81dda2 100644 --- a/apps/web-antd/src/views/crm/followup/index.vue +++ b/apps/web-antd/src/views/crm/followup/index.vue @@ -1,18 +1,22 @@ diff --git a/apps/web-antd/src/views/crm/permission/modules/data.ts b/apps/web-antd/src/views/crm/permission/modules/data.ts index b3405eca5..2ef822aa2 100644 --- a/apps/web-antd/src/views/crm/permission/modules/data.ts +++ b/apps/web-antd/src/views/crm/permission/modules/data.ts @@ -17,7 +17,7 @@ export function useTransferFormSchema(): VbenFormSchema[] { }, }, { - fieldName: 'ownerUserId', + fieldName: 'newOwnerUserId', label: '选择新负责人', component: 'ApiSelect', componentProps: { diff --git a/apps/web-antd/src/views/crm/permission/modules/permission-list.vue b/apps/web-antd/src/views/crm/permission/modules/permission-list.vue index 87ca2078f..4871f7aa5 100644 --- a/apps/web-antd/src/views/crm/permission/modules/permission-list.vue +++ b/apps/web-antd/src/views/crm/permission/modules/permission-list.vue @@ -109,6 +109,7 @@ function handleDelete() { if (res) { // 提示并返回成功 message.success($t('ui.actionMessage.operationSuccess')); + onRefresh(); resolve(true); } else { reject(new Error('移出失败'));