From 4d3b6b3b19466d17b7d0d13c1fc3475f55567abd Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 15 Apr 2026 15:17:03 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Select.tsx | 1 - .../contract_archive_use/borrows/index.tsx | 22 +- .../borrows/modals/Create.tsx | 466 ++++++++++++------ .../contract_archive_use/read/index.tsx | 17 +- src/pages/contract/contracts_add/index.tsx | 121 ++--- src/pages/contract/contracts_other/index.tsx | 16 - .../contracts_other/modals/Create.tsx | 105 ++-- .../contracts_other/modals/Update.tsx | 48 +- 8 files changed, 472 insertions(+), 324 deletions(-) diff --git a/src/components/Select.tsx b/src/components/Select.tsx index 00eb18f..4731c3b 100644 --- a/src/components/Select.tsx +++ b/src/components/Select.tsx @@ -247,7 +247,6 @@ export const Selects = { keywords: params?.keyWords === undefined ? params?.name : params?.keyWords, }; - console.log(params, 'Employees'); return ( await Apis.Company.CompanyEmployees.Select({ ...params, diff --git a/src/pages/contract/contract_archive_use/borrows/index.tsx b/src/pages/contract/contract_archive_use/borrows/index.tsx index c68d5cf..dbcaeba 100644 --- a/src/pages/contract/contract_archive_use/borrows/index.tsx +++ b/src/pages/contract/contract_archive_use/borrows/index.tsx @@ -52,17 +52,25 @@ export default function Index({ title = '合同借用' }) { title: '借用信息', search: false, render: (_, item: any) => { - if (!item?.borrow_files || item.borrow_files.length === 0) { + if (!item?.contract_archive_borrow_files) { return '-'; } return (
- {item.borrow_files.map((res: any, index: number) => ( -
- 文件: {res?.file?.name},借用: {res?.borrow_number},遗失:{' '} - {res?.lost_number},损坏: {res?.damaged_number} -
- ))} + {item.contract_archive_borrow_files.map( + (res: any, index: number) => ( +
+ 文件: {res?.contract_archive_file?.name},借用: + {res?.contract_archive_file?.borrow_number},遗失: + {res?.contract_archive_file?.lost_number},损坏: + { + res?.contract_archive_file?.contract_archive_file + ?.lost_number + } + ,损坏: {res?.contract_archive_file?.damaged_number} +
+ ), + )}
); }, diff --git a/src/pages/contract/contract_archive_use/borrows/modals/Create.tsx b/src/pages/contract/contract_archive_use/borrows/modals/Create.tsx index a0d6c76..4b149a5 100644 --- a/src/pages/contract/contract_archive_use/borrows/modals/Create.tsx +++ b/src/pages/contract/contract_archive_use/borrows/modals/Create.tsx @@ -14,12 +14,12 @@ import { } from '@/gen/Enums'; import { BetaSchemaForm, ProCard } from '@ant-design/pro-components'; import { Button, Form, message, Space } from 'antd'; -import { useState } from 'react'; export default function Create(props: MyBetaModalFormProps) { const [form] = Form.useForm(); - const [ApprovalTemplates, setApprovalTemplates] = useState([]); - + // const [ApprovalTemplates, setApprovalTemplates] = useState([]); + let approval_templates_id_store = 0; + let ApprovalTemplates: any = []; return ( {...MyModalFormProps.props} @@ -35,9 +35,8 @@ export default function Create(props: MyBetaModalFormProps) { }} trigger={} onFinish={async (values: any) => { - console.log(values, 'values'); - const { node_approvers } = values; + if (ApprovalTemplates?.length > 0 && node_approvers?.length > 0) { // 遍历模板节点,通过名称找到对应的提交节点进行校验 for (const templateNode of ApprovalTemplates) { @@ -317,17 +316,20 @@ export default function Create(props: MyBetaModalFormProps) { }, colProps: { span: 24 }, formItemProps: { ...rulesHelper.number }, - fieldProps: { - onChange: (e: any) => { - // 确保e是有效值,并且使用正确的value字段 - if (e) { - const templateId = typeof e === 'object' ? e.value : e; + }), + { + valueType: 'dependency', + name: ['approval_templates_id'], + columns: ({ approval_templates_id }) => { + if (approval_templates_id) { + if (approval_templates_id_store !== approval_templates_id) { + approval_templates_id_store = approval_templates_id; Apis.Approval.ApprovalTemplates.Show({ - id: templateId, + id: approval_templates_id, }).then((res) => { // setApprovalTemplates(res?.data?.approval_template_nodes); + ApprovalTemplates = res?.data?.approval_template_nodes; form.setFieldsValue({ - approval_templates_id: templateId, node_approvers: res?.data?.approval_template_nodes?.map( (item: any) => ({ ...item, @@ -339,164 +341,304 @@ export default function Create(props: MyBetaModalFormProps) { }); }); } - // 不返回任何值,防止默认行为 - }, - }, - }), - { - valueType: 'dependency', - name: ['approval_templates_id'], - columns: ({ approval_templates_id }) => { - return approval_templates_id - ? [ + } + return [ + { + valueType: 'formList', + dataIndex: 'node_approvers', + // title: '审批节点', + fieldProps: { + copyIconProps: false, + deleteIconProps: false, + creatorButtonProps: false, + actionRender: (field: any, action: any) => [ + , + , + ], + }, + formItemProps: { + ...rulesHelper.array, + wrapperCol: { span: 24 }, + }, + columns: [ { - valueType: 'formList', - dataIndex: 'node_approvers', - // title: '审批节点', - fieldProps: { - copyIconProps: false, - deleteIconProps: false, - creatorButtonProps: false, - actionRender: (field: any, action: any) => [ - , - , - ], - }, - formItemProps: { - ...rulesHelper.array, - wrapperCol: { span: 24 }, - }, + valueType: 'group', + colProps: { span: 24 }, columns: [ + MyFormItems.EnumSelect({ + key: 'node_type', + // title: `类型`, + valueEnum: ApprovalTemplateNodesNodeTypeEnum, + colProps: { span: 5 }, + formItemProps: { + ...rulesHelper.text, + }, + }), { - valueType: 'group', - colProps: { span: 24 }, - columns: [ - MyFormItems.EnumSelect({ - key: 'node_type', - // title: `类型`, - valueEnum: ApprovalTemplateNodesNodeTypeEnum, - colProps: { span: 5 }, - formItemProps: { - ...rulesHelper.text, - }, - fieldProps: { - disabled: true, - }, - }), - { - // title: '节点名称', - key: 'name', - colProps: { span: 6 }, - formItemProps: { - ...rulesHelper.text, - }, - fieldProps: { - disabled: true, - }, - }, - { - valueType: 'dependency', - name: ['node_type'], - columns: ({ node_type }) => { - return [ - Selects.Employees({ - key: 'members', - title: ``, - colProps: { span: 13 }, - formItemProps: { - ...rulesHelper.array, - }, - fieldProps: { - mode: 'multiple', - showSearch: true, - maxCount: - node_type === - ApprovalTemplateNodesNodeTypeEnum.Approver - .value - ? 1 - : 9, - maxTagTextLength: 3, - labelRender: (res: any) => { - if (res?.label) { - return res?.label; - } else { - return ApprovalTemplates?.map( - (item: any) => { - if ( - item?.node_type === node_type && - item - ?.approval_template_node_members - ?.length - ) { - return item?.approval_template_node_members?.map( - (i: any) => { - if ( - i?.company_employees_id === - res?.value - ) { - return ( - i?.company_employee - ?.name || '' - ); - } - }, - ); - } - }, - ); - } - }, - }, - }), - ]; - }, - }, - ], + // title: '节点名称', + key: 'name', + colProps: { span: 6 }, + formItemProps: { + ...rulesHelper.text, + }, + }, + { + valueType: 'dependency', + name: ['node_type'], + columns: ({ node_type }) => { + return [ + Selects.Employees({ + key: 'members', + title: ``, + colProps: { span: 13 }, + formItemProps: { + ...rulesHelper.array, + }, + fieldProps: { + mode: 'multiple', + showSearch: true, + maxCount: + node_type === + ApprovalTemplateNodesNodeTypeEnum.Approver + .value + ? 1 + : 9, + maxTagTextLength: 3, + labelRender: (res: any) => { + if (res?.label) { + return res?.label; + } else { + return ApprovalTemplates?.map( + (item: any) => { + if ( + item?.node_type === node_type && + item?.approval_template_node_members + ?.length + ) { + return item?.approval_template_node_members?.map( + (i: any) => { + if ( + i?.company_employees_id === + res?.value + ) { + return ( + i?.company_employee?.name || + '' + ); + } + }, + ); + } + }, + ); + } + }, + }, + }), + ]; + }, }, ], }, - ] - : []; + ], + }, + ]; }, }, + + // { + // valueType: 'dependency', + // name: ['approval_templates_id'], + // columns: ({ approval_templates_id }) => { + // return approval_templates_id + // ? [ + // { + // valueType: 'formList', + // dataIndex: 'node_approvers', + // // title: '审批节点', + // fieldProps: { + // copyIconProps: false, + // deleteIconProps: false, + // creatorButtonProps: false, + // actionRender: (field: any, action: any) => [ + // , + // , + // ], + // }, + // formItemProps: { + // ...rulesHelper.array, + // wrapperCol: { span: 24 }, + // }, + // columns: [ + // { + // valueType: 'group', + // colProps: { span: 24 }, + // columns: [ + // MyFormItems.EnumSelect({ + // key: 'node_type', + // // title: `类型`, + // valueEnum: ApprovalTemplateNodesNodeTypeEnum, + // colProps: { span: 5 }, + // formItemProps: { + // ...rulesHelper.text, + // }, + // fieldProps: { + // disabled: true, + // }, + // }), + // { + // // title: '节点名称', + // key: 'name', + // colProps: { span: 6 }, + // formItemProps: { + // ...rulesHelper.text, + // }, + // fieldProps: { + // disabled: true, + // }, + // }, + // { + // valueType: 'dependency', + // name: ['node_type'], + // columns: ({ node_type }) => { + // return [ + // Selects.Employees({ + // key: 'members', + // title: ``, + // colProps: { span: 13 }, + // formItemProps: { + // ...rulesHelper.array, + // }, + // fieldProps: { + // mode: 'multiple', + // showSearch: true, + // maxCount: + // node_type === + // ApprovalTemplateNodesNodeTypeEnum.Approver + // .value + // ? 1 + // : 9, + // maxTagTextLength: 3, + // labelRender: (res: any) => { + // if (res?.label) { + // return res?.label; + // } else { + // return ApprovalTemplates?.map( + // (item: any) => { + // if ( + // item?.node_type === node_type && + // item + // ?.approval_template_node_members + // ?.length + // ) { + // return item?.approval_template_node_members?.map( + // (i: any) => { + // if ( + // i?.company_employees_id === + // res?.value + // ) { + // return ( + // i?.company_employee + // ?.name || '' + // ); + // } + // }, + // ); + // } + // }, + // ); + // } + // }, + // }, + // }), + // ]; + // }, + // }, + // ], + // }, + // ], + // }, + // ] + // : []; + // }, + // }, ]} /> ); diff --git a/src/pages/contract/contract_archive_use/read/index.tsx b/src/pages/contract/contract_archive_use/read/index.tsx index 27af2f5..3ea7ded 100644 --- a/src/pages/contract/contract_archive_use/read/index.tsx +++ b/src/pages/contract/contract_archive_use/read/index.tsx @@ -41,16 +41,21 @@ export default function Index({ title = '合同借阅' }) { title: '借阅信息', search: false, render: (_, item: any) => { - if (!item?.read_files || item.read_files.length === 0) { + if ( + !item?.contract_archive_read_files || + item.contract_archive_read_files.length === 0 + ) { return '-'; } return (
- {item.read_files.map((res: any, index: number) => ( -
- 文件: {res?.file?.name} -
- ))} + {item.contract_archive_read_files.map( + (res: any, index: number) => ( +
+ 文件: {res?.contract_archive_file?.name} +
+ ), + )}
); }, diff --git a/src/pages/contract/contracts_add/index.tsx b/src/pages/contract/contracts_add/index.tsx index 7153396..6eee0d6 100644 --- a/src/pages/contract/contracts_add/index.tsx +++ b/src/pages/contract/contracts_add/index.tsx @@ -3,7 +3,6 @@ import { MyColumns, MyPageContainer, MyProTableProps, - useCurrentPermissions, } from '@/common'; import { Selects } from '@/components/Select'; import { Apis } from '@/gen/Apis'; @@ -25,79 +24,61 @@ import Voided from './modals/Voided'; export default function Index({ title = '补充协议' }) { const navigate = useNavigate(); const [searchParams, setSearchParams]: any = useSearchParams(); - const getCurrentPermissions = useCurrentPermissions(); let tableRender = (item: any, action: any) => { console.log(item, 'item'); - let permissions = getCurrentPermissions({ - update: ( - { - navigate( - `/contract/contracts/pages/contract_add_update?id=${item.id}`, - ); - }} - title="编辑" - /> - ), - }); + let permissions = [ + { + navigate( + `/contract/contracts/pages/contract_add_update?id=${item.id}`, + ); + }} + title="编辑" + />, + ]; - let permissionsSpace = getCurrentPermissions({ - useseal: { - key: '1', - label: ( - - ), - }, - - archives: { - key: '3', - label: ( - - ), - }, - - terminated: { - key: '5', - label: , - }, - voided: { - key: '6', - label: , - }, - delete: { - key: '8', - label: ( - - Apis.Contract.Contracts.SoftDelete({ - id: item.id, - }).then(() => action?.reload()) - } - /> - ), - }, - }); + let permissionsSpace = [ + , + , + , + , + + Apis.Contract.Contracts.SoftDelete({ + id: item.id, + }).then(() => action?.reload()) + } + />, + ]; let Others = ( diff --git a/src/pages/contract/contracts_other/index.tsx b/src/pages/contract/contracts_other/index.tsx index 0f5b33d..7b7cc54 100644 --- a/src/pages/contract/contracts_other/index.tsx +++ b/src/pages/contract/contracts_other/index.tsx @@ -80,12 +80,6 @@ export default function Index({ title = '其他用印' }) { title: '是否用印', dataIndex: 'is_sealed', }), - { - title: '用印日期', - dataIndex: 'use_sealed_date', - valueType: 'date', - search: false, - }, //company_employee { title: '申请人', @@ -97,16 +91,6 @@ export default function Index({ title = '其他用印' }) { }, search: false, }, - { - title: '用印人', - dataIndex: 'use_sealed_by_name', - render: (_, item: any) => { - return `${item.use_sealed_by_name || '-'}${ - item.use_sealed_by_phone || '' - }`; - }, - search: false, - }, MyColumns.UpdatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( diff --git a/src/pages/contract/contracts_other/modals/Create.tsx b/src/pages/contract/contracts_other/modals/Create.tsx index ad68d4d..4d238c5 100644 --- a/src/pages/contract/contracts_other/modals/Create.tsx +++ b/src/pages/contract/contracts_other/modals/Create.tsx @@ -10,13 +10,12 @@ import { SelectContract } from '@/components/SelectContract'; import { Apis } from '@/gen/Apis'; import { ApprovalTemplateNodesNodeTypeEnum } from '@/gen/Enums'; import { BetaSchemaForm } from '@ant-design/pro-components'; -import { Button, Form, message } from 'antd'; -import { useState } from 'react'; +import { Button, Form, message, Space } from 'antd'; export default function Create(props: MyBetaModalFormProps) { const [form] = Form.useForm(); - const [ApprovalTemplates, setApprovalTemplates] = useState([]); - + // const [ApprovalTemplates, setApprovalTemplates] = useState([]); + let ApprovalTemplates: any = []; return ( {...MyModalFormProps.props} @@ -26,9 +25,9 @@ export default function Create(props: MyBetaModalFormProps) { labelCol={{ span: 4 }} wrapperCol={{ span: 20 }} labelAlign="left" - width="600px" + width="680px" form={form} - key={new Date().getDate()} + key={new Date().getTime()} onOpenChange={(open: any) => { if (open && props.item) { form.resetFields(); @@ -39,7 +38,6 @@ export default function Create(props: MyBetaModalFormProps) { }} onFinish={async (values: any) => { const { node_approvers } = values; - if (ApprovalTemplates?.length > 0 && node_approvers?.length > 0) { // 遍历模板节点,通过名称找到对应的提交节点进行校验 for (const templateNode of ApprovalTemplates) { @@ -83,7 +81,7 @@ export default function Create(props: MyBetaModalFormProps) { } } } - + return Apis.Contract.ContractOthers.Store({ ...values, }) @@ -166,7 +164,10 @@ export default function Create(props: MyBetaModalFormProps) { Apis.Approval.ApprovalTemplates.Show({ id: templateId, }).then((res) => { - setApprovalTemplates(res?.data?.approval_template_nodes || []); + ApprovalTemplates = res?.data?.approval_template_nodes || []; + // setApprovalTemplates( + // res?.data?.approval_template_nodes || [], + // ); form.setFieldsValue({ approval_templates_id: templateId, node_approvers: res?.data?.approval_template_nodes?.map( @@ -199,46 +200,48 @@ export default function Create(props: MyBetaModalFormProps) { deleteIconProps: false, creatorButtonProps: false, actionRender: (field: any, action: any) => [ - , - , + + + + , ], }, formItemProps: { @@ -254,7 +257,7 @@ export default function Create(props: MyBetaModalFormProps) { key: 'node_type', // title: `类型`, valueEnum: ApprovalTemplateNodesNodeTypeEnum, - colProps: { span: 5 }, + colProps: { span: 6 }, formItemProps: { ...rulesHelper.text, }, @@ -281,7 +284,7 @@ export default function Create(props: MyBetaModalFormProps) { Selects.Employees({ key: 'members', title: ``, - colProps: { span: 13 }, + colProps: { span: 12 }, formItemProps: { ...rulesHelper.array, }, diff --git a/src/pages/contract/contracts_other/modals/Update.tsx b/src/pages/contract/contracts_other/modals/Update.tsx index ce00ae7..6e94e67 100644 --- a/src/pages/contract/contracts_other/modals/Update.tsx +++ b/src/pages/contract/contracts_other/modals/Update.tsx @@ -8,25 +8,34 @@ import { import { Selects } from '@/components/Select'; import { SelectContract } from '@/components/SelectContract'; import { Apis } from '@/gen/Apis'; -import { ApprovalTemplateNodesNodeTypeEnum } from '@/gen/Enums'; +import { + ApprovalTemplateNodesNodeTypeEnum, + CompanySealsTypeEnum, +} from '@/gen/Enums'; import { BetaSchemaForm } from '@ant-design/pro-components'; import { Button, Form, message } from 'antd'; -import { useState } from 'react'; export default function Create(props: MyBetaModalFormProps) { const [form] = Form.useForm(); - const [ApprovalTemplates, setApprovalTemplates] = useState([]); - + let ApprovalTemplates: any[] = []; return ( {...MyModalFormProps.props} title={`其他用印申请`} - trigger={} + trigger={ + + } layout="horizontal" labelCol={{ span: 4 }} wrapperCol={{ span: 20 }} labelAlign="left" - width="600px" + width="680px" form={form} key={new Date().getTime()} onOpenChange={(open: any) => { @@ -34,12 +43,13 @@ export default function Create(props: MyBetaModalFormProps) { form.resetFields(); form.setFieldsValue({ ...props.item, + seals: props.item?.seals?.map((i: any) => i?.id) || [], }); } }} onFinish={async (values: any) => { const { node_approvers } = values; - + if (ApprovalTemplates?.length > 0 && node_approvers?.length > 0) { // 遍历模板节点,通过名称找到对应的提交节点进行校验 for (const templateNode of ApprovalTemplates) { @@ -83,7 +93,7 @@ export default function Create(props: MyBetaModalFormProps) { } } } - + return Apis.Contract.ContractOthers.Update({ ...values, id: props.item?.id ?? '', @@ -137,6 +147,22 @@ export default function Create(props: MyBetaModalFormProps) { fieldProps: { showSearch: true, mode: 'multiple', + labelRender: (res: any) => { + console.log(res, props?.item); + if (res?.label) { + return res?.label; + } else { + return props?.item?.seals?.map((i: any) => { + if (i?.id === res?.value) { + return `${i?.company_supplier?.name} (${ + CompanySealsTypeEnum[ + i?.type as keyof typeof CompanySealsTypeEnum + ].text + })`; + } + }); + } + }, }, }), MyFormItems.UploadImages({ @@ -167,7 +193,7 @@ export default function Create(props: MyBetaModalFormProps) { Apis.Approval.ApprovalTemplates.Show({ id: templateId, }).then((res) => { - setApprovalTemplates(res?.data?.approval_template_nodes || []); + ApprovalTemplates = res?.data?.approval_template_nodes || []; form.setFieldsValue({ approval_templates_id: templateId, node_approvers: res?.data?.approval_template_nodes?.map( @@ -255,7 +281,7 @@ export default function Create(props: MyBetaModalFormProps) { key: 'node_type', // title: `类型`, valueEnum: ApprovalTemplateNodesNodeTypeEnum, - colProps: { span: 5 }, + colProps: { span: 6 }, formItemProps: { ...rulesHelper.text, }, @@ -282,7 +308,7 @@ export default function Create(props: MyBetaModalFormProps) { Selects.Employees({ key: 'members', title: ``, - colProps: { span: 13 }, + colProps: { span: 12 }, formItemProps: { ...rulesHelper.array, },