fix:合同
All checks were successful
Build and Push Docker Image / build (push) Successful in 5m10s

This commit is contained in:
Your Name 2026-04-15 15:17:03 +08:00
parent 41755cdd24
commit 4d3b6b3b19
8 changed files with 472 additions and 324 deletions

View File

@ -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,

View File

@ -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 (
<div>
{item.borrow_files.map((res: any, index: number) => (
{item.contract_archive_borrow_files.map(
(res: any, index: number) => (
<div key={index} style={{ marginBottom: 4 }}>
: {res?.file?.name}: {res?.borrow_number}:{' '}
{res?.lost_number}: {res?.damaged_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}
</div>
))}
),
)}
</div>
);
},

View File

@ -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<any>([]);
// const [ApprovalTemplates, setApprovalTemplates] = useState<any>([]);
let approval_templates_id_store = 0;
let ApprovalTemplates: any = [];
return (
<BetaSchemaForm<ApiTypes.Contract.ContractArchiveBorrows.Store>
{...MyModalFormProps.props}
@ -35,9 +35,8 @@ export default function Create(props: MyBetaModalFormProps) {
}}
trigger={<MyButtons.Create title={`${props.title}`} />}
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,16 +341,8 @@ 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',
@ -378,8 +372,8 @@ export default function Create(props: MyBetaModalFormProps) {
action.add(
{
node_type:
ApprovalTemplateNodesNodeTypeEnum.Approver
.value,
ApprovalTemplateNodesNodeTypeEnum.Approver.value,
name: '审批人',
},
field.name + 1,
);
@ -392,6 +386,7 @@ export default function Create(props: MyBetaModalFormProps) {
type="link"
size="small"
danger
disabled={!field.name}
onClick={() => {
action.remove(field.name);
}}
@ -417,9 +412,6 @@ export default function Create(props: MyBetaModalFormProps) {
formItemProps: {
...rulesHelper.text,
},
fieldProps: {
disabled: true,
},
}),
{
// title: '节点名称',
@ -428,9 +420,6 @@ export default function Create(props: MyBetaModalFormProps) {
formItemProps: {
...rulesHelper.text,
},
fieldProps: {
disabled: true,
},
},
{
valueType: 'dependency',
@ -462,8 +451,7 @@ export default function Create(props: MyBetaModalFormProps) {
(item: any) => {
if (
item?.node_type === node_type &&
item
?.approval_template_node_members
item?.approval_template_node_members
?.length
) {
return item?.approval_template_node_members?.map(
@ -473,8 +461,8 @@ export default function Create(props: MyBetaModalFormProps) {
res?.value
) {
return (
i?.company_employee
?.name || ''
i?.company_employee?.name ||
''
);
}
},
@ -493,10 +481,164 @@ export default function Create(props: MyBetaModalFormProps) {
},
],
},
]
: [];
];
},
},
// {
// 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) => [
// <Button
// key="add"
// type="link"
// size="small"
// onClick={() => {
// const currentNodeType = form.getFieldValue([
// 'node_approvers',
// field.name,
// 'node_type',
// ]);
// if (
// currentNodeType ===
// ApprovalTemplateNodesNodeTypeEnum.CC.value
// ) {
// message.warning('抄送节点不允许添加');
// return;
// }
// action.add(
// {
// node_type:
// ApprovalTemplateNodesNodeTypeEnum.Approver
// .value,
// },
// field.name + 1,
// );
// }}
// >
// 添加
// </Button>,
// <Button
// key="delete"
// type="link"
// size="small"
// danger
// onClick={() => {
// action.remove(field.name);
// }}
// >
// 删除
// </Button>,
// ],
// },
// 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 || ''
// );
// }
// },
// );
// }
// },
// );
// }
// },
// },
// }),
// ];
// },
// },
// ],
// },
// ],
// },
// ]
// : [];
// },
// },
]}
/>
);

View File

@ -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 (
<div>
{item.read_files.map((res: any, index: number) => (
<div key={index} style={{ marginBottom: 4 }}>
: {res?.file?.name}
{item.contract_archive_read_files.map(
(res: any, index: number) => (
<div key={`item_${index}`} style={{ marginBottom: 4 }}>
: {res?.contract_archive_file?.name}
</div>
))}
),
)}
</div>
);
},

View File

@ -3,7 +3,6 @@ import {
MyColumns,
MyPageContainer,
MyProTableProps,
useCurrentPermissions,
} from '@/common';
import { Selects } from '@/components/Select';
import { Apis } from '@/gen/Apis';
@ -25,12 +24,10 @@ 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: (
let permissions = [
<MyButtons.Default
key="Update"
size="small"
@ -44,45 +41,31 @@ export default function Index({ title = '补充协议' }) {
);
}}
title="编辑"
/>
),
});
/>,
];
let permissionsSpace = getCurrentPermissions({
useseal: {
key: '1',
label: (
let permissionsSpace = [
<UseSeal
key="UseSeal"
item={{ ...item, disabled: true }}
reload={action?.reload}
title="申请用印"
/>
),
},
archives: {
key: '3',
label: (
/>,
<Archives
key="Archives"
item={{ ...item, disabled: true }}
reload={action?.reload}
title="归档"
/>
),
},
terminated: {
key: '5',
label: <Terminated item={item} reload={action?.reload} title="解除" />,
},
voided: {
key: '6',
label: <Voided item={item} reload={action?.reload} title="撤销" />,
},
delete: {
key: '8',
label: (
/>,
<Terminated
item={item}
reload={action?.reload}
title="解除"
key="Terminated"
/>,
<Voided item={item} reload={action?.reload} title="撤销" key="Voided" />,
<MyButtons.Default
key="Delete"
title="取消"
disabled={
item?.status !== 'TemporaryStorage' && item?.status !== 'Voided'
@ -94,10 +77,8 @@ export default function Index({ title = '补充协议' }) {
id: item.id,
}).then(() => action?.reload())
}
/>
),
},
});
/>,
];
let Others = (
<Dropdown menu={{ items: permissionsSpace }} trigger={['click']}>

View File

@ -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) => (

View File

@ -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<any[]>([]);
// const [ApprovalTemplates, setApprovalTemplates] = useState<any[]>([]);
let ApprovalTemplates: any = [];
return (
<BetaSchemaForm<ApiTypes.Contract.ContractOthers.Store>
{...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) {
@ -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,6 +200,7 @@ export default function Create(props: MyBetaModalFormProps) {
deleteIconProps: false,
creatorButtonProps: false,
actionRender: (field: any, action: any) => [
<Space key={`items_${field.name}`}>
<Button
key="add"
type="link"
@ -227,7 +229,7 @@ export default function Create(props: MyBetaModalFormProps) {
}}
>
</Button>,
</Button>
<Button
key="delete"
type="link"
@ -238,7 +240,8 @@ export default function Create(props: MyBetaModalFormProps) {
}}
>
</Button>,
</Button>
</Space>,
],
},
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,
},

View File

@ -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<any[]>([]);
let ApprovalTemplates: any[] = [];
return (
<BetaSchemaForm<ApiTypes.Contract.ContractOthers.Update>
{...MyModalFormProps.props}
title={`其他用印申请`}
trigger={<MyButtons.Default title="重新申请" />}
trigger={
<MyButtons.Default
disabled={
props?.item?.status === 'Pending' ||
props?.item?.status === 'Approved'
}
title="重新申请"
/>
}
layout="horizontal"
labelCol={{ span: 4 }}
wrapperCol={{ span: 20 }}
labelAlign="left"
width="600px"
width="680px"
form={form}
key={new Date().getTime()}
onOpenChange={(open: any) => {
@ -34,6 +43,7 @@ export default function Create(props: MyBetaModalFormProps) {
form.resetFields();
form.setFieldsValue({
...props.item,
seals: props.item?.seals?.map((i: any) => i?.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,
},