fix: crm detail

This commit is contained in:
xingyu4j
2025-06-06 11:27:12 +08:00
parent 28807fa61b
commit 0597aa602a
7 changed files with 61 additions and 94 deletions

View File

@@ -1,32 +1,49 @@
<script lang="ts" setup>
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { CrmBusinessApi } from '#/api/crm/business';
import type { CrmContractApi } from '#/api/crm/contract';
import type { CrmProductApi } from '#/api/crm/product';
import { ref } from 'vue';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getBusiness } from '#/api/crm/business';
import { getContract } from '#/api/crm/contract';
import { BizTypeEnum } from '#/api/crm/permission';
import { erpPriceInputFormatter } from '#/utils';
import { useDetailListColumns } from '../data';
const props = defineProps<{
bizId: number;
bizType: BizTypeEnum;
business?: CrmBusinessApi.Business; // 商机
contract?: CrmContractApi.Contract; // 合同
}>();
const discountPercent = ref(0);
const totalProductPrice = ref(0);
const [Grid] = useVbenVxeGrid({
gridOptions: {
columns: useDetailListColumns(props.bizType === BizTypeEnum.CRM_BUSINESS),
data:
props.bizType === BizTypeEnum.CRM_BUSINESS
? props.business?.products
: props.contract?.products,
height: 600,
pagerConfig: {
enabled: false,
},
proxyConfig: {
ajax: {
query: async (_params) => {
const data =
props.bizType === BizTypeEnum.CRM_BUSINESS
? await getBusiness(props.bizId)
: await getContract(props.bizId);
discountPercent.value = data.discountPercent;
totalProductPrice.value = data.totalProductPrice;
return data.products;
},
},
},
toolbarConfig: {
refresh: { code: 'query' },
search: true,
},
keepSource: true,
rowConfig: {
keyField: 'id',
@@ -38,21 +55,17 @@ const [Grid] = useVbenVxeGrid({
<template>
<div>
<Grid />
<div class="flex justify-end">
<span class="font-bold text-red-500">
整单折扣{{
erpPriceInputFormatter(
business ? business.discountPercent : contract?.discountPercent,
)
}}%
</span>
<div class="flex flex-col items-end justify-end">
<span class="ml-4 font-bold text-red-500">
产品总金额{{
erpPriceInputFormatter(
business ? business.totalProductPrice : contract?.totalProductPrice,
)
{{ `产品总金额:${erpPriceInputFormatter(totalProductPrice)}` }}
</span>
<span class="font-bold text-red-500">
{{ `整单折扣:${erpPriceInputFormatter(discountPercent)}%` }}
</span>
<span class="font-bold text-red-500">
{{
`实际金额:${erpPriceInputFormatter(totalProductPrice * (1 - discountPercent / 100))}`
}}
</span>
</div>
</div>