import React from 'react'; import { IElectronSignaturesProps, IElectronSignaturesItem, IAppointSignLocationOptions } from '../interface'; import type { SpinProps } from 'antd/es/spin'; interface IOptions { /** * 是否开启非受控模式 * 非受控模式开启后,数值的改变交由内部控制。外部只需要在合适的时机 获取数据即可 */ isUnControlled?: IElectronSignaturesProps['isUnControlled']; /** * 触发外部onChange事件 */ onValueChange?: IElectronSignaturesItem['onValueChange']; /** * 当前数据类型 */ dataType?: IElectronSignaturesItem['dataType']; /** * 请求方法 */ request?: IElectronSignaturesProps['request']; setLoading?: React.Dispatch>; /** * 新附件 */ records?: IElectronSignaturesItem['fileList']; /** * 部门id */ deptId?: IElectronSignaturesItem['deptId']; /** * 二级单元id */ secondDepId?: IElectronSignaturesItem['secondDepId']; /** * 合同id */ contractId?: IElectronSignaturesItem['contractId']; /** * 文档id列表 */ documentIdList?: IElectronSignaturesItem['documentIdList']; /** * 后台用于维护当前合同id下附件id(key)与文档id(value)的关系map 后台解绑文档时使用 */ docAttachMap?: IElectronSignaturesItem['docAttachMap']; /** * 当前选中的电子印章数据 */ electronicSealIdList?: IElectronSignaturesItem['electronicSealIdList']; /** * 当前是否需要一级责任人 */ isCheckedEconomic?: boolean; setCurrentIsCheckedEconomic?: any; /** * 是否可以编辑 1 可以编辑 0 不可编辑 */ canEdit?: IElectronSignaturesItem['canEdit']; /** * 流程状态 */ flowStatus?: IElectronSignaturesItem['flowStatus']; onElectronicSealIdChange?: any; /** * 电子印章列表(用于校验必须共同使用逻辑) */ electronList?: any[]; } /** * 电子印章设置相关操作 */ export default function useParseElectronSetting(options: IOptions): { /** 点击签署位置 实时记录点击时的印章列表 */ clickElectronicSealIdList: string[]; /** 当前合同id数据 */ currentContractId: any; setCurrentContractId: React.Dispatch; /** 当前合同id下 附件与文档的关联关系 */ currentDocAttachMap: any; setCurrentDocAttachMap: React.Dispatch; /** 当前文档列表数据 */ currentDocumentIdList: any; setCurrentDocumentIdList: React.Dispatch; /** 指定签署位置 */ appointSignLocation: (options?: IAppointSignLocationOptions) => void; /** 预览盖章效果 */ viewSignPage: () => void; /** 暴露一个清空数据的方法 */ onClearElectronSetting: () => { contractId: any; docAttachMap: any; documentIdList: any[]; }; /** 查询未确认盖章位置的印章信息列表 */ checkUnStampedSealList: () => any; /** 未确认盖章信息的电子印章列表 */ unElectronicSealList: any; /** 未确认盖章信息的电子印章id列表 */ unElectronicSealIdList: any; }; export {};