diff --git a/src/api/crm/backlog/index.ts b/src/api/crm/backlog/index.ts deleted file mode 100644 index 7ea01990..00000000 --- a/src/api/crm/backlog/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -import request from '@/config/axios' -// TODO 芋艿:融合下 - -// 5. 获得待审核合同数量 -export const getCheckContractCount = async () => { - return await request.get({ url: '/crm/contract/check-contract-count' }) -} - -// 6. 获得待审核回款数量 -export const getCheckReceivablesCount = async () => { - return await request.get({ url: '/crm/receivable/check-receivables-count' }) -} - -// 7. 获得待回款提醒数量 -export const getRemindReceivablePlanCount = async () => { - return await request.get({ url: '/crm/receivable-plan/remind-receivable-plan-count' }) -} - -// 8. 获得即将到期的合同数量 -export const getEndContractCount = async () => { - return await request.get({ url: '/crm/contract/end-contract-count' }) -} diff --git a/src/api/crm/contract/index.ts b/src/api/crm/contract/index.ts index bd9e93e0..faee9495 100644 --- a/src/api/crm/contract/index.ts +++ b/src/api/crm/contract/index.ts @@ -21,6 +21,7 @@ export interface ContractVO { totalProductPrice: number discountPercent: number totalPrice: number + totalReceivablePrice: number signContactId: number signContactName?: string signUserId: number @@ -66,9 +67,9 @@ export const getContract = async (id: number) => { } // 查询 CRM 合同下拉列表 -export const getCrmContractSimpleListByCustomerId = async (customerId: number) => { +export const getContractSimpleList = async (customerId: number) => { return await request.get({ - url: `/crm/contract/list-all-simple-by-customer?customerId=${customerId}` + url: `/crm/contract/simple-list?customerId=${customerId}` }) } diff --git a/src/api/crm/receivable/index.ts b/src/api/crm/receivable/index.ts index 7d2d3a2d..069d6c4a 100644 --- a/src/api/crm/receivable/index.ts +++ b/src/api/crm/receivable/index.ts @@ -5,14 +5,24 @@ export interface ReceivableVO { no: string planId: number customerId: number + customerName?: string contractId: number + contract?: { + no: string + totalPrice: number + } auditStatus: number processInstanceId: number returnTime: Date returnType: string price: number ownerUserId: number + ownerUserName?: string remark: string + creator: string // 创建人 + creatorName?: string // 创建人名称 + createTime: Date // 创建时间 + updateTime: Date // 更新时间 } // 查询回款列表 @@ -54,3 +64,8 @@ export const exportReceivable = async (params) => { export const submitReceivable = async (id: number) => { return await request.put({ url: `/crm/receivable/submit?id=${id}` }) } + +// 获得待审核回款数量 +export const getAuditReceivableCount = async () => { + return await request.get({ url: '/crm/receivable/audit-count' }) +} diff --git a/src/api/crm/receivable/plan/index.ts b/src/api/crm/receivable/plan/index.ts index be5a4535..6e0cab4a 100644 --- a/src/api/crm/receivable/plan/index.ts +++ b/src/api/crm/receivable/plan/index.ts @@ -4,16 +4,26 @@ export interface ReceivablePlanVO { id: number period: number receivableId: number - finishStatus: number - processInstanceId: number price: number returnTime: Date remindDays: number + returnType: number remindTime: Date customerId: number + customerName?: string contractId: number + contractNo?: string ownerUserId: number + ownerUserName?: string remark: string + creator: string // 创建人 + creatorName?: string // 创建人名称 + createTime: Date // 创建时间 + updateTime: Date // 更新时间 + receivable?: { + price: number + returnTime: Date + } } // 查询回款计划列表 @@ -32,9 +42,9 @@ export const getReceivablePlan = async (id: number) => { } // 查询回款计划下拉数据 -export const getReceivablePlanListByContractId = async (customerId: number, contractId: number) => { +export const getReceivablePlanSimpleList = async (customerId: number, contractId: number) => { return await request.get({ - url: `/crm/receivable-plan/list-all-simple-by-customer?customerId=${customerId}&contractId=${contractId}` + url: `/crm/receivable-plan/simple-list?customerId=${customerId}&contractId=${contractId}` }) } @@ -57,3 +67,8 @@ export const deleteReceivablePlan = async (id: number) => { export const exportReceivablePlan = async (params) => { return await request.download({ url: `/crm/receivable-plan/export-excel`, params }) } + +// 获得待回款提醒数量 +export const getReceivablePlanRemindCount = async () => { + return await request.get({ url: '/crm/receivable-plan/remind-count' }) +} diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index 08d5db98..f63bee6e 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -539,6 +539,28 @@ const remainingRouter: AppRouteRecordRaw[] = [ }, component: () => import('@/views/crm/contract/detail/index.vue') }, + { + path: 'receivable-plan/detail/:id', + name: 'CrmReceivablePlanDetail', + meta: { + title: '回款计划详情', + noCache: true, + hidden: true, + activeMenu: '/crm/receivable-plan' + }, + component: () => import('@/views/crm/receivable/plan/detail/index.vue') + }, + { + path: 'receivable/detail/:id', + name: 'CrmReceivableDetail', + meta: { + title: '回款详情', + noCache: true, + hidden: true, + activeMenu: '/crm/receivable' + }, + component: () => import('@/views/crm/receivable/detail/index.vue') + }, { path: 'contact/detail/:id', name: 'CrmContactDetail', diff --git a/src/views/crm/backlog/components/ContractAuditList.vue b/src/views/crm/backlog/components/ContractAuditList.vue index 62a80b4d..9c13237c 100644 --- a/src/views/crm/backlog/components/ContractAuditList.vue +++ b/src/views/crm/backlog/components/ContractAuditList.vue @@ -101,7 +101,24 @@ - + + + + - + + + + + + + diff --git a/src/views/crm/backlog/components/ReceivablePlanRemindList.vue b/src/views/crm/backlog/components/ReceivablePlanRemindList.vue new file mode 100644 index 00000000..9a3cf0cf --- /dev/null +++ b/src/views/crm/backlog/components/ReceivablePlanRemindList.vue @@ -0,0 +1,220 @@ + + + + diff --git a/src/views/crm/backlog/index.vue b/src/views/crm/backlog/index.vue index b5c3a9a4..3dc069c0 100644 --- a/src/views/crm/backlog/index.vue +++ b/src/views/crm/backlog/index.vue @@ -18,28 +18,29 @@ - + - + - - diff --git a/src/views/crm/backlog/tables/RemindReceivables.vue b/src/views/crm/backlog/tables/RemindReceivables.vue deleted file mode 100644 index 8ca3fd4d..00000000 --- a/src/views/crm/backlog/tables/RemindReceivables.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - diff --git a/src/views/crm/backlog/tables/common.ts b/src/views/crm/backlog/tables/common.ts deleted file mode 100644 index fafc154f..00000000 --- a/src/views/crm/backlog/tables/common.ts +++ /dev/null @@ -1,38 +0,0 @@ -/** 跟进状态 */ -export const FOLLOWUP_STATUS = [ - { label: '已跟进', value: true }, - { label: '待跟进', value: false } -] - -/** 归属范围 */ -export const SCENE_TYPES = [ - { label: '我负责的', value: 1 }, - { label: '我参与的', value: 2 }, - { label: '下属负责的', value: 3 } -] - -/** 联系状态 */ -export const CONTACT_STATUS = [ - { label: '今日需联系', value: 1 }, - { label: '已逾期', value: 2 }, - { label: '已联系', value: 3 } -] - -/** 审批状态 */ -export const AUDIT_STATUS = [ - { label: '已审批', value: 20 }, - { label: '待审批', value: 10 } -] - -/** 回款提醒类型 */ -export const RECEIVABLE_REMIND_TYPE = [ - { label: '待回款', value: 1 }, - { label: '已逾期', value: 2 }, - { label: '已回款', value: 3 } -] - -/** 合同过期状态 */ -export const CONTRACT_EXPIRY_TYPE = [ - { label: '即将过期', value: 1 }, - { label: '已过期', value: 2 } -] diff --git a/src/views/crm/business/BusinessForm.vue b/src/views/crm/business/BusinessForm.vue index 4c7d253f..6b03047b 100644 --- a/src/views/crm/business/BusinessForm.vue +++ b/src/views/crm/business/BusinessForm.vue @@ -175,7 +175,6 @@ const formRules = reactive({ const formRef = ref() // 表单 Ref const userOptions = ref([]) // 用户列表 const statusTypeList = ref([]) // 商机状态类型列表 -// TODO 芋艿:统一的客户选择面板 const customerList = ref([]) // 客户列表的数据 /** 子表的表单 */ diff --git a/src/views/crm/contact/ContactForm.vue b/src/views/crm/contact/ContactForm.vue index 14f0d1f2..ac749da9 100644 --- a/src/views/crm/contact/ContactForm.vue +++ b/src/views/crm/contact/ContactForm.vue @@ -214,7 +214,6 @@ const formRules = reactive({ }) const formRef = ref() // 表单 Ref const userOptions = ref([]) // 用户列表 -// TODO 芋艿:统一的客户选择面板 const customerList = ref([]) // 客户列表 const contactList = ref([]) // 联系人列表 diff --git a/src/views/crm/contract/ContractForm.vue b/src/views/crm/contract/ContractForm.vue index 5ea55720..9c5b2c6a 100644 --- a/src/views/crm/contract/ContractForm.vue +++ b/src/views/crm/contract/ContractForm.vue @@ -235,7 +235,6 @@ const formRules = reactive({ }) const formRef = ref() // 表单 Ref const userOptions = ref([]) // 用户列表 -// TODO 芋艿:统一的客户选择面板 const customerList = ref([]) // 客户列表的数据 const businessList = ref([]) const contactList = ref([]) diff --git a/src/views/crm/contract/detail/ContractDetailsHeader.vue b/src/views/crm/contract/detail/ContractDetailsHeader.vue index 775a3f47..9cfbfc74 100644 --- a/src/views/crm/contract/detail/ContractDetailsHeader.vue +++ b/src/views/crm/contract/detail/ContractDetailsHeader.vue @@ -26,8 +26,9 @@ {{ formatDate(contract.orderDate) }} - - 待实现 + + {{ erpPriceInputFormatter(contract.totalReceivablePrice) }} + {{ contract.ownerUserName }} diff --git a/src/views/crm/contract/detail/index.vue b/src/views/crm/contract/detail/index.vue index 96613dac..bd30489a 100644 --- a/src/views/crm/contract/detail/index.vue +++ b/src/views/crm/contract/detail/index.vue @@ -23,7 +23,7 @@ { /** 从回款计划创建回款 */ const receivableListRef = ref>() // 回款列表 Ref -const crateReceivable = (planData: any) => { - receivableListRef.value?.crateReceivable(planData) +const createReceivable = (planData: any) => { + receivableListRef.value?.createReceivable(planData) } /** 转移 */ diff --git a/src/views/crm/contract/index.vue b/src/views/crm/contract/index.vue index ed266057..1461df04 100644 --- a/src/views/crm/contract/index.vue +++ b/src/views/crm/contract/index.vue @@ -150,7 +150,24 @@ - + + + + ([]) // 客户列表 +/** tab 切换 */ +const handleTabClick = (tab: TabsPaneContext) => { + queryParams.sceneType = tab.paneName + handleQuery() +} + /** 查询列表 */ const getList = async () => { loading.value = true diff --git a/src/views/crm/customer/CustomerImportForm.vue b/src/views/crm/customer/CustomerImportForm.vue index af802ab2..7f92dc83 100644 --- a/src/views/crm/customer/CustomerImportForm.vue +++ b/src/views/crm/customer/CustomerImportForm.vue @@ -81,6 +81,7 @@ const submitForm = async () => { const formData = new FormData() formData.append('updateSupport', updateSupport.value) formData.append('file', fileList.value[0].raw) + // TODO @芋艿:后面是不是可以采用这种形式,去掉 uploadHeaders await CustomerApi.handleImport(formData) } diff --git a/src/views/crm/customer/detail/index.vue b/src/views/crm/customer/detail/index.vue index aed4c6f2..031fcfbf 100644 --- a/src/views/crm/customer/detail/index.vue +++ b/src/views/crm/customer/detail/index.vue @@ -64,7 +64,7 @@ - + @@ -199,8 +199,8 @@ const getOperateLog = async () => { /** 从回款计划创建回款 */ const receivableListRef = ref>() // 回款列表 Ref -const crateReceivable = (planData: any) => { - receivableListRef.value?.crateReceivable(planData) +const createReceivable = (planData: any) => { + receivableListRef.value?.createReceivable(planData) } const close = () => { diff --git a/src/views/crm/customer/limitConfig/CustomerLimitConfigForm.vue b/src/views/crm/customer/limitConfig/CustomerLimitConfigForm.vue index d8aa9240..c7338a43 100644 --- a/src/views/crm/customer/limitConfig/CustomerLimitConfigForm.vue +++ b/src/views/crm/customer/limitConfig/CustomerLimitConfigForm.vue @@ -82,7 +82,6 @@ const formRules = reactive({ maxCount: [{ required: true, message: '数量上限不能为空', trigger: 'blur' }] }) const formRef = ref() // 表单 Ref -// TODO @芋艿:看看怎么搞个部门选择组件 const deptTree = ref() // 部门树形结构 const userOptions = ref([]) // 用户列表 diff --git a/src/views/crm/permission/components/PermissionForm.vue b/src/views/crm/permission/components/PermissionForm.vue index 3eff4e6a..c86e8bd0 100644 --- a/src/views/crm/permission/components/PermissionForm.vue +++ b/src/views/crm/permission/components/PermissionForm.vue @@ -129,7 +129,6 @@ const resetForm = (bizType: number, bizId: number) => { } onMounted(async () => { // 获得用户列表 - // TODO 芋艿:用户列表的选择组件 userOptions.value = await UserApi.getSimpleUserList() }) diff --git a/src/views/crm/permission/components/TransferForm.vue b/src/views/crm/permission/components/TransferForm.vue index c9f5eed1..3b4e6dfb 100644 --- a/src/views/crm/permission/components/TransferForm.vue +++ b/src/views/crm/permission/components/TransferForm.vue @@ -40,7 +40,7 @@ - +