feat:【antd】【crm】调整操作日志和团队成员的标签顺序,优化表单字段的规则和属性
This commit is contained in:
@@ -64,6 +64,7 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||
placeholder: '请选择客户',
|
||||
},
|
||||
},
|
||||
// TODO @AI:这里的合同名称不对;
|
||||
{
|
||||
fieldName: 'contractId',
|
||||
label: '合同名称',
|
||||
@@ -121,14 +122,12 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||
},
|
||||
},
|
||||
{
|
||||
fieldName: 'returnTime',
|
||||
label: '回款日期',
|
||||
component: 'DatePicker',
|
||||
fieldName: 'returnType',
|
||||
label: '回款方式',
|
||||
component: 'Select',
|
||||
componentProps: {
|
||||
placeholder: '请选择回款日期',
|
||||
showTime: false,
|
||||
valueFormat: 'x',
|
||||
format: 'YYYY-MM-DD',
|
||||
options: getDictOptions(DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE, 'number'),
|
||||
placeholder: '请选择回款方式',
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -143,13 +142,15 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||
},
|
||||
},
|
||||
{
|
||||
fieldName: 'returnType',
|
||||
label: '回款方式',
|
||||
component: 'Select',
|
||||
fieldName: 'returnTime',
|
||||
label: '回款日期',
|
||||
component: 'DatePicker',
|
||||
rules: 'required',
|
||||
componentProps: {
|
||||
options: getDictOptions(DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE, 'number'),
|
||||
placeholder: '请选择回款方式',
|
||||
placeholder: '请选择回款日期',
|
||||
showTime: false,
|
||||
valueFormat: 'x',
|
||||
format: 'YYYY-MM-DD',
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -160,6 +161,7 @@ export function useFormSchema(): VbenFormSchema[] {
|
||||
placeholder: '请输入备注',
|
||||
rows: 4,
|
||||
},
|
||||
formItemClass: 'md:col-span-2',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -16,8 +16,9 @@ export function useDetailSchema(): DescriptionItemSchema[] {
|
||||
},
|
||||
{
|
||||
field: 'totalPrice',
|
||||
label: '合同金额',
|
||||
content: (data) => erpPriceInputFormatter(data.totalPrice),
|
||||
label: '合同金额(元)',
|
||||
content: (data) =>
|
||||
erpPriceInputFormatter(data?.contract?.totalPrice ?? data.totalPrice),
|
||||
},
|
||||
{
|
||||
field: 'returnTime',
|
||||
@@ -26,7 +27,7 @@ export function useDetailSchema(): DescriptionItemSchema[] {
|
||||
},
|
||||
{
|
||||
field: 'price',
|
||||
label: '回款金额',
|
||||
label: '回款金额(元)',
|
||||
content: (data) => erpPriceInputFormatter(data.price),
|
||||
},
|
||||
{
|
||||
@@ -77,3 +78,27 @@ export function useDetailBaseSchema(): DescriptionItemSchema[] {
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
/** 系统信息字段 */
|
||||
export function useDetailSystemSchema(): DescriptionItemSchema[] {
|
||||
return [
|
||||
{
|
||||
field: 'ownerUserName',
|
||||
label: '负责人',
|
||||
},
|
||||
{
|
||||
field: 'creatorName',
|
||||
label: '创建人',
|
||||
},
|
||||
{
|
||||
field: 'createTime',
|
||||
label: '创建时间',
|
||||
content: (data) => formatDateTime(data?.createTime) as string,
|
||||
},
|
||||
{
|
||||
field: 'updateTime',
|
||||
label: '更新时间',
|
||||
content: (data) => formatDateTime(data?.updateTime) as string,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -114,7 +114,10 @@ onMounted(() => {
|
||||
<Tabs.TabPane tab="详细资料" key="1" :force-render="true">
|
||||
<Info :receivable="receivable" />
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="团队成员" key="2" :force-render="true">
|
||||
<Tabs.TabPane tab="操作日志" key="2" :force-render="true">
|
||||
<OperateLog :log-list="logList" />
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="团队成员" key="3" :force-render="true">
|
||||
<PermissionList
|
||||
ref="permissionListRef"
|
||||
:biz-id="receivableId"
|
||||
@@ -123,9 +126,6 @@ onMounted(() => {
|
||||
@quit-team="handleBack"
|
||||
/>
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="操作日志" key="3" :force-render="true">
|
||||
<OperateLog :log-list="logList" />
|
||||
</Tabs.TabPane>
|
||||
</Tabs>
|
||||
</Card>
|
||||
</Page>
|
||||
|
||||
@@ -4,9 +4,8 @@ import type { CrmReceivableApi } from '#/api/crm/receivable';
|
||||
import { Divider } from 'ant-design-vue';
|
||||
|
||||
import { useDescription } from '#/components/description';
|
||||
import { useFollowUpDetailSchema } from '#/views/crm/followup/data';
|
||||
|
||||
import { useDetailBaseSchema } from '../data';
|
||||
import { useDetailBaseSchema, useDetailSystemSchema } from '../data';
|
||||
|
||||
defineProps<{
|
||||
receivable: CrmReceivableApi.Receivable; // 收款信息
|
||||
@@ -29,7 +28,7 @@ const [SystemDescriptions] = useDescription({
|
||||
column: 3,
|
||||
class: 'mx-4',
|
||||
},
|
||||
schema: useFollowUpDetailSchema(),
|
||||
schema: useDetailSystemSchema(),
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -15,23 +15,24 @@ export function useDetailSchema(): DescriptionItemSchema[] {
|
||||
label: '客户名称',
|
||||
},
|
||||
{
|
||||
field: 'totalPrice',
|
||||
label: '合同金额',
|
||||
content: (data) => erpPriceInputFormatter(data.totalPrice),
|
||||
},
|
||||
{
|
||||
field: 'returnTime',
|
||||
label: '回款日期',
|
||||
content: (data) => formatDateTime(data?.returnTime) as string,
|
||||
field: 'contractNo',
|
||||
label: '合同编号',
|
||||
},
|
||||
{
|
||||
field: 'price',
|
||||
label: '回款金额',
|
||||
label: '计划回款金额',
|
||||
content: (data) => erpPriceInputFormatter(data.price),
|
||||
},
|
||||
{
|
||||
field: 'ownerUserName',
|
||||
label: '负责人',
|
||||
field: 'returnTime',
|
||||
label: '计划回款日期',
|
||||
content: (data) => formatDateTime(data?.returnTime) as string,
|
||||
},
|
||||
{
|
||||
field: 'receivable',
|
||||
label: '实际回款金额',
|
||||
content: (data) =>
|
||||
erpPriceInputFormatter(data?.receivable?.price ?? 0),
|
||||
},
|
||||
];
|
||||
}
|
||||
@@ -40,40 +41,87 @@ export function useDetailSchema(): DescriptionItemSchema[] {
|
||||
export function useDetailBaseSchema(): DescriptionItemSchema[] {
|
||||
return [
|
||||
{
|
||||
field: 'no',
|
||||
label: '回款编号',
|
||||
field: 'period',
|
||||
label: '期数',
|
||||
},
|
||||
{
|
||||
field: 'customerName',
|
||||
label: '客户名称',
|
||||
},
|
||||
{
|
||||
field: 'contract',
|
||||
field: 'contractNo',
|
||||
label: '合同编号',
|
||||
content: (data) => data?.contract?.no,
|
||||
},
|
||||
{
|
||||
field: 'returnTime',
|
||||
label: '回款日期',
|
||||
label: '计划回款日期',
|
||||
content: (data) => formatDateTime(data?.returnTime) as string,
|
||||
},
|
||||
{
|
||||
field: 'price',
|
||||
label: '回款金额',
|
||||
label: '计划回款金额',
|
||||
content: (data) => erpPriceInputFormatter(data.price),
|
||||
},
|
||||
{
|
||||
field: 'returnType',
|
||||
label: '回款方式',
|
||||
label: '计划回款方式',
|
||||
content: (data) =>
|
||||
h(DictTag, {
|
||||
type: DICT_TYPE.CRM_RECEIVABLE_RETURN_TYPE,
|
||||
value: data?.returnType,
|
||||
}),
|
||||
},
|
||||
{
|
||||
field: 'remindDays',
|
||||
label: '提前几天提醒',
|
||||
},
|
||||
{
|
||||
field: 'receivable',
|
||||
label: '实际回款金额',
|
||||
content: (data) =>
|
||||
erpPriceInputFormatter(data?.receivable?.price ?? 0),
|
||||
},
|
||||
{
|
||||
field: 'receivableRemain',
|
||||
label: '未回款金额',
|
||||
content: (data) => {
|
||||
const paid = data?.receivable?.price ?? 0;
|
||||
return erpPriceInputFormatter(Math.max(data.price - paid, 0));
|
||||
},
|
||||
},
|
||||
{
|
||||
field: 'receivable.returnTime',
|
||||
label: '实际回款日期',
|
||||
content: (data) =>
|
||||
formatDateTime(data?.receivable?.returnTime) as string,
|
||||
},
|
||||
{
|
||||
field: 'remark',
|
||||
label: '备注',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
/** 系统信息字段 */
|
||||
export function useDetailSystemSchema(): DescriptionItemSchema[] {
|
||||
return [
|
||||
{
|
||||
field: 'ownerUserName',
|
||||
label: '负责人',
|
||||
},
|
||||
{
|
||||
field: 'creatorName',
|
||||
label: '创建人',
|
||||
},
|
||||
{
|
||||
field: 'createTime',
|
||||
label: '创建时间',
|
||||
content: (data) => formatDateTime(data?.createTime) as string,
|
||||
},
|
||||
{
|
||||
field: 'updateTime',
|
||||
label: '更新时间',
|
||||
content: (data) => formatDateTime(data?.updateTime) as string,
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -121,7 +121,10 @@ onMounted(() => {
|
||||
<Tabs.TabPane tab="详细资料" key="1" :force-render="true">
|
||||
<ReceivablePlanDetailsInfo :receivable-plan="receivablePlan" />
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="团队成员" key="2" :force-render="true">
|
||||
<Tabs.TabPane tab="操作日志" key="2" :force-render="true">
|
||||
<OperateLog :log-list="logList" />
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="团队成员" key="3" :force-render="true">
|
||||
<PermissionList
|
||||
ref="permissionListRef"
|
||||
:biz-id="receivablePlanId"
|
||||
@@ -130,9 +133,6 @@ onMounted(() => {
|
||||
@quit-team="handleBack"
|
||||
/>
|
||||
</Tabs.TabPane>
|
||||
<Tabs.TabPane tab="操作日志" key="3" :force-render="true">
|
||||
<OperateLog :log-list="logList" />
|
||||
</Tabs.TabPane>
|
||||
</Tabs>
|
||||
</Card>
|
||||
</Page>
|
||||
|
||||
@@ -4,9 +4,8 @@ import type { CrmReceivablePlanApi } from '#/api/crm/receivable/plan';
|
||||
import { Divider } from 'ant-design-vue';
|
||||
|
||||
import { useDescription } from '#/components/description';
|
||||
import { useFollowUpDetailSchema } from '#/views/crm/followup/data';
|
||||
|
||||
import { useDetailBaseSchema } from '../data';
|
||||
import { useDetailBaseSchema, useDetailSystemSchema } from '../data';
|
||||
|
||||
defineProps<{
|
||||
receivablePlan: CrmReceivablePlanApi.Plan; // 收款计划信息
|
||||
@@ -29,7 +28,7 @@ const [SystemDescriptions] = useDescription({
|
||||
column: 3,
|
||||
class: 'mx-4',
|
||||
},
|
||||
schema: useFollowUpDetailSchema(),
|
||||
schema: useDetailSystemSchema(),
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user