import { ButtonProps } from 'antd'; /** 附件的字段说明 */ interface IFileFieldsName { /** 附件id */ attachId: string; /** 附件名 */ attachName: string; /** 上一版附件id */ oldVersionId: string; /** 上一版附件名 */ oldVersionName: string; /** 附件大小 bite */ attachSize?: string; /** 附件类型code */ attachType?: string; /** 附件类型名 */ attachTypeName?: string; /** 是否存入样板 */ isCustomerReference?: string; /** 模板附件id */ templateAttachId?: string; /** 模板附件名 */ templateAttachName?: string; /** 模板附件大小 */ templateAttachSize?: string; /** 比对结果附件id */ compareAttachId?: string; /** 比对结果附件名 */ compareAttachName?: string; /** 比对结果附件大小 */ compareAttachSize?: string; /** 是否添加水印 */ isWatermark?: string; /** 是否加盖电子印章 */ isElectronicSeal?: string; /** 样板号 */ templateCrNo?: string; /** 外部客户产融平台电子印章是否勾选 1表示勾选,0表示未勾选 */ fmsIsElectronicSeal?: string; /** 是否展示外部客户产融平台电子印章勾选框 这个字段需要调用开发自行传入。用来控制是否显示勾选框逻辑 */ showFmsIsElectronicSeal?: string; /** 是否推送银行是否勾选 */ fmsIsPushBank?: string; /** 是否展示推送银行按钮,这个字段也需要开发自行传入 */ showFmsIsPushBank?: string; /** 是否盖户用合同章是否勾选 */ openingContractSeal?: string; /** 是否展示推送银行按钮,这个字段也需要开发自行传入 */ showOpeningContractSeal?: string; /** 双签件 */ doubleSignedSealInfoDTOList?: string; /** 是否添加群杰印章信息 */ isQunj?: string; /** 群杰印章盖章地点 */ qunjAddress?: string; /** 群杰印章信息 */ qunjSeal?: string; /** 是否替换附件 */ isReplaceFile?: number; /** 是否有添加水印的按钮 */ showAddWater?: boolean; /** 是否为重要文件 */ isImportant?: string; } interface IElectronSignaturesItem { /** * 相关数据发生改变时的 * 回调事件 */ onValueChange?: (info: { [prop: string]: IChangeValue; }) => void; /** * 附件列表 */ fileList?: IFileItem[]; /** * 附件拆分展示规则 * 需求:”同一类型“的附件,可能要按业务分开成两行显示 * 开发需要根据 record 行数据 来判断当前行属于哪个key,哪个name */ fileSplitRules?: (record: any) => { key: string; name: string; }; /** * 附件拆分展示规则 * 如果fileSplitRules 返回了一系列的key,name * 这个字段可以传入 ['key1', 'key2', 'key3'] 数据将按这种规则排序展示 */ fileSplitStringRules?: string[]; /** * 当前附件上传时的转换 */ parseCurrentUploadFile?: (record: any) => any; /** * 附件字段转换规则 */ fileFieldsName?: IFileFieldsName; /** * 附件类型是否允许修改 */ isAllowedPatchFileType?: boolean; /** * 附件类型字典key值 */ fileTypeKey?: string; /** * 附件类型 需要排除显示的一些字段 */ fileTypeFilterList?: string[]; /** * 是否使用外部传入的附件类型列表 */ useOutsideFileTypeList?: boolean; /** * 附件类型展示字段 如果传了这个 那么以这个的值优先 */ fileTypeList?: any; /** * 数据类型(相同类型的数据 会合并起来) * 类似指定附件归属的key 一个数据归属是一份数据 */ dataType?: string; /** * 数据类型的名称 用户指定附件归属的展示名称 */ dataTypeName?: string; /** * 附件归属是否增加底色 */ isBgColor?: boolean; /** * 是否可以编辑 * 1 可以编辑 * 0 不可编辑 */ canEdit?: number; /** * 是否需要显示达观合同比对功能 * 1 显示 * 0 隐藏 */ needDg?: number; /** * 判断是否显示达观相关组件 * 业务那边有这种判断 只有附加类型是合同本身时 才显示模板比对功能 */ isShowContractComparsion?: (record: any, records?: any[]) => boolean; /** * 是否显示群杰印章 盖物理章使用 * 1 显示 * 0 隐藏 */ needQj?: number; /** * 默认是否勾选群杰印章-用印申请 */ isDefaultQunj?: boolean; /** * 群杰印章盖章地点 下拉列表 */ qunjAddressList?: any; /** * 是否显示群杰印章盖章地点 */ isQunjAddress?: boolean; /** * 当前选中的群杰印章盖章地址 */ qunjAddress?: any; /** * 是否显示契约锁电子印章 盖电子章使用 * 1 显示 * 0 隐藏 */ needQys?: number; /** * 已选中的电子印章 * 回显时使用 */ electronicSealIdList?: string[]; /** 已选中群杰印章列表 */ qunjSeal?: IQunjProps; /** * 已经盖过章的附件id * 其实这个应该是可以通过 docAttachMap 这个数据来取到已经盖了章子的附件 * 用于校验上传的附件是新增还是删除,组件返回这个参数,需要保存,下次调用组件时传入 */ checkAttachIdList?: string[]; /** * 是否默认勾选经济责任人 1为默认勾选 0为不勾选 */ isCheckedEconomic?: number; /** 合同id */ contractId?: string; /** * 后台用于维护 当前合同id下 附件id(key)与文档id(value)的关系map 后台解绑文档时使用 */ docAttachMap?: any; /** * 流程ID 这类流程的一个Key值 加上部门id一起 获取当前的电子印章列表 */ flowId?: string; /** * 流程状态 15 审批中 50 审批完成 */ flowStatus?: any; /** * 部门ID */ deptId?: string; /** * 二级单元ID */ secondDepId?: string; /** * 群杰印章查询时替代部门ID参数 */ qunjReplaceDeptId?: string; /** * 群杰印章列表显示过滤方法 */ qunjListRenderFilter?: (list: any[]) => any[]; /** * 文档id列表 */ documentIdList?: string[]; /** * 点击挑选比对合同 触发事件 */ onCheckedComparison?: (info: any) => void; /** * 是否显示保存为模板 */ isShowSaveTemplate?: boolean; /** * 是否显示选择比对模板 */ isShowChioseTemplate?: boolean; /** 是否合同本身选择模板做是否必填校验 */ isChoiseChangeTemplateValid?: boolean; /** * 公司类型传参,过滤群杰印章列表 */ companyTypes?: string; /** * 当前数据的流程id。用来获取群杰验证码的。 */ wfProcessInstId?: string; /** * 能查看当前数据的群杰验证码的用户id列表。 * 多个用户用逗号隔开 */ verifyUserIds?: string; } interface IElectronSignaturesItemPublic { /** * 前往流程中心用印申请逻辑 */ goWorkflowSeal?: any; /** * 是否显示用印增加申请 */ isShowSealApply?: boolean; /** * 请求方法 */ request?: any; /** * 是否给文档添加翻译功能 */ isTranslation?: boolean; /** * 文档添加翻译功能预览路径 */ previewUrl?: string; /** * 是否开启非受控模式 * 一般情况下 非受控模式不传入value即可。如果要显示默认值也可以传入defaultValue * 但是这个组件的信息过多,这里可以通过传入一个属性控制是否是非受控 * 非受控的性能往往更好 我们只需要在合适的时机调用组件提供的方法 获取值即可 */ isUnControlled?: boolean; /** * 需要显示合同份数的流程id列表 * 群杰物理章那里 是否需要计算每个印章的用印次数 不能大于合同总份数的 多少倍 */ contractNumFlowIds?: string[]; /** * 上传附件的一些公用配置 */ fileUploadProps?: IFileUploadProps; /** * 群杰印章是否每个文件都需要选择对应的印章 */ isSingleQj?: boolean; /** * 默认不显示群杰印章列表,点击 用印时 才弹框显示 * 默认按这个模式展示 */ isQjUseModal?: boolean; /** * 当前流程不需要附件水印版,不需要根据部门查公司id */ isNoWatermarkProcess?: boolean; /** * 当点击仅需要群杰印章时,是否需要删除所有附件信息? * 默认不删除 */ isDeleteAllFileWhenJustUseQj?: boolean; /** * 当传入了不需要契约锁时,是否显示契约锁列信息 * 默认也显示 */ isShowQysWhenNeedNotQys?: boolean; /** * 是否需要契约锁是否由组件内部控制 * 默认是 true * @example 当外部明确知道这个流程不需要契约锁时(切换仅需要群杰、使用契约锁按钮不显示),传递的needQys是0 * 需要传递这个属性为 false * 这个时候。不会显示切换契约锁显示隐藏的按钮 */ isControlNeedQys?: boolean; /** * 切换契约锁、群杰显示 * 默认不显示 */ isToggleQys?: boolean; /** * 默认是否仅显示群杰印章 * 默认是false * @example 如果默认不需要契约锁。但是允许切换显示隐藏 * 需要传递这个属性 为 true * 这个时候,默认不会显示契约锁,但是可以切换显示隐藏显示出来 * 当然前提是 isControlNeedQys没有配置false */ defaultJustNeedQj?: boolean; /** * 是否显示附件归属列 */ isShowFileTypeMerge?: boolean; /** * 是否显示上传附件按钮 */ isShowFileUpload?: boolean; /** * 是否显示上传附件按钮-独立性最强 配置了必定显示上传附件按钮 */ isShowFileUploadIndependence?: boolean; /** * 是否显示批量下载附件原件按钮 */ isShowDownloadBatchBtn?: boolean; /** * 是否显示批量删除按钮 */ isShowBatchDeleteBtn?: boolean; /** * 是否显示批量删除按钮-独立性最强 配置了必定显示批量删除按钮 */ isShowBatchDeleteBtnIndependence?: boolean; /** * 批量删除前的逻辑控制 */ beforeBatchDelete?: (record: any) => boolean; /** * 是否显示批量预览按钮 */ isShowBatchPreviewBtn?: boolean; /** * 是否显示文件比对按钮(这个是整体的文件比对) */ isShowFileComparisonBtn?: boolean; /** * 是否显示批量使用电子印章(这个组件内部还会判断编辑状态以及该流程是否使用了电子章) */ isShowBatchUseElectronicSealBtn?: boolean; /** * 是否显示批量盖户用电子章(这个组件内部还会判断编辑状态以及该流程是否使用了盖户用电子章) */ isShowBatchUseOpeningContractSealBtn?: boolean; /** * 批量下载原件的zip包名 */ batchDownloadZipName?: string; /** * 是否显示批量下载电子签章件按钮 */ isShowElectronBatchBtn?: boolean; /** * 是否显示批量下载双签件 */ isShowDoubleSignedBatchBtn?: boolean; /** * 基地址 */ apiBaseUrl?: string; /** * 附件服务器基地址 */ fileBaseUrl?: string; /** * 需要盖外部客户电子章吗?如果需要的话 可以更改这个文本内容 */ fmsIsElectronicSealLabel?: string; /** * 需要推送银行吗?如果需要的话 可以更改这个文本内容 */ fmsIsElectronicSealPushLabel?: string; /** * 盖户用合同章?如果需要的话,可以更改这个文本内容 */ openingContractSealLabel?: string; /** 是否显示附件类型 */ isShowFileType?: boolean; /** * 附件类型发生改变时触发的方法 */ onFileTypeChangeGetItem?: (info: any) => any; /** * 上传时间取值 */ getCreateTimeHand?: (record: any) => any; /** * 占位符附件数据是否需要删除 */ isDeletePlaceholderFileData?: boolean; /** * 支持无附件选群杰印章 */ isSupportNoAttachQj?: boolean; /** * 当前办理事项id????? 外部传入的 暂时没看到从哪里获取到的 */ caseId?: string; /** * 是否应用 群杰验证码的修改 */ isQjVerifyCode?: boolean; /** * 是否应用 最新的契约锁组件样式 */ isNewQys?: boolean; /** * 户用合同章显示的逻辑的控制 */ isShowOpeningContractSeal?: (record: any, options: any) => boolean; /** * 自定义按钮 */ customButtons?: React.ReactNode; /** * 发起用印申请地点 */ /** * 是否添加标为重要复选框 */ isShowImportantCheckbox?: boolean; /** * 其他列配置 */ otherColumns?: any; /** * 盖户用电子章与契约锁脱离关系 */ isShowOpeningContractSealNotRelyQys?: boolean; } interface IElectronSignaturesProps extends IElectronSignaturesItem, IElectronSignaturesItemPublic { /** * 多余配置 */ otherOptions?: IElectronSignaturesItem | IElectronSignaturesItem[]; /** * 组件暴露给外部的方法 */ electronHandleRef?: any; /** * 最终校验通过的回调 */ isValidateSuccess?: any; /** 刷新验证码权限 */ refreshCode?: boolean; /** * 表格的scroll配置 */ tableScroll?: any; /** * 是否需要获取公司id */ needOrganizationId?: boolean; } /** * 群杰选中数据相关类型 */ interface IQunjProps { /** * 群杰验证码 */ code?: string; /** * 群杰验证码 */ vertifyCode?: number; /** * 合同份数 */ contranctNum?: number | null; /** * 用印方式 0 内部用印 1 外部用印 */ isTakeOut?: number; /** 已选印章 */ details?: ICheckQunjItemProps[]; } /** * 已选中的印章数据类型 */ interface ICheckQunjItemProps { /** 印章名称 */ sealName?: string; /** 印章编码 */ sealNo: string; /** 该印章的用印次数 */ sealCount?: number; /** 暂时不知道什么意思 可能是后台用于区别的类型 */ areaType?: number; [prop: string]: any; } /** 回调触发的类型 */ interface IChangeValue { /** 当前选中的电子印章列表 */ electronicSealIdList?: string[]; /** * 点击指定签署位置后 记录一次当前选中的电子印章数据 * 后续做校验的时候 需要比对一下 点击时 跟当前选中时的电子印章是否一致 */ clickElectronicSealIdList?: string[]; /** 经济责任人是否选中 */ isCheckedEconomic?: boolean; /** 合同ID */ contractId?: IElectronSignaturesItem["contractId"]; /** 后台用于维护当前合同id下附件id(key)与文档id(value)的关系map 后台解绑文档时使用 */ docAttachMap?: IElectronSignaturesItem["docAttachMap"]; /** 文档id 列表 */ documentIdList?: IElectronSignaturesItem["documentIdList"]; /** 当前盖过章的附件列表 */ checkAttachIdList?: IElectronSignaturesItem["checkAttachIdList"]; fileList?: any; /** 当前群杰印章相关数据 */ qunjSeal?: IElectronSignaturesItem["qunjSeal"]; /** 当前群杰盖章地点发生改变 */ qunjAddress?: IElectronSignaturesItem["qunjAddress"]; /** 合同份数是否合理 */ qunjCountIsValidate?: boolean; } interface IFileItem { /** 附件id */ attachId: string; /** 附件名 */ attachName: string; /** 附件大小 bite */ attachSize?: number; /** 附件类型code */ attachType?: string; /** 附件类型名 */ attachTypeName?: string; /** 是否存入样板 */ isCustomerReference?: number; /** 是否显示保存为模板 */ isHideSaveCustomerReference?: boolean; /** 是否显示选择比对模板 */ isHideChoiseChangeTemplate?: boolean; /** 模板附件id */ templateAttachId?: string; /** 模板附件名 */ templateAttachName?: string; /** 模板附件大小 */ templateAttachSize?: string; /** 比对结果附件id */ compareAttachId?: string; /** 比对结果附件名 */ compareAttachName?: string; /** 比对结果附件大小 */ compareAttachSize?: string; /** 是否添加水印 */ isWatermark?: number; /** 是否加盖电子印章 */ isElectronicSeal?: number; /** 样板号 */ templateCrNo?: string; /** 外部客户产融平台电子印章 */ fmsIsElectronicSeal?: any; /** 是否展示外部客户产融平台电子印章勾选框 */ showFmsIsElectronicSeal?: any; /** 双签件 */ doubleSignedSealInfoDTOList?: any; [prop: string]: any; } interface IFileUploadProps { /** 上传地址 */ action?: string; /** 最大支持上传的文件大小 单位字节 */ maxSize?: number; /** 基地址 */ apiBaseUrl?: string; /** 需要传递的头部参数 */ headers?: any; /** 需要传递的额外参数 */ data?: any; /** 是否上传到外网 */ isPublic?: boolean; /** 附件上传需要支持的附件列表 */ acceptList?: string[]; /** 自定义上传前验证 */ beforeUpload?: any; /** 不允许同名附件 */ disAllowDuplicateFile?: boolean; fileList?: any; /** 附件发生改变时触发 */ onFileChange?: any; children?: React.ReactNode; multiple?: boolean; type?: ButtonProps["type"]; } export { IChangeValue, ICheckQunjItemProps, IElectronSignaturesItem, IElectronSignaturesItemPublic, IElectronSignaturesProps, IFileFieldsName, IFileItem, IFileUploadProps, IQunjProps };