import Vue from "vue"; import { PltUser } from "@szgc/plt-core-v2"; /** * 金格安装配置 */ export interface KgInstallOptions { /** * 金格H5服务地址,Web端电子签章需要使用到 * @description 金格H5服务地址 * @example http://localhost:8080 * @type {string} * @memberof KgInstallOptions */ HTML5Url: string; /** * 当前用户与金格用户Kyesn的映射转换方案 * @description 1、如果传入字符串,则直接在当前用户中获取该字段的值作为keysn * @description 2、如果传入函数,则执行该函数,返回值作为keysn * @default username * @example * ```js * { * convert: "username" * } * ``` * @example * ```js * { * convert: (current: PltUser) => { * return current.username; * } * } * ``` * @type {(string | ((current: PltUser) => Promise))} * @memberof KgInstallOptions */ convert?: string | ((current: PltUser) => Promise); } /** * 表单配置模型 */ export interface FormGetorConfigModel { /** * 权限信息 */ auths?: { [prop: string]: { children: any; read: boolean; required: boolean; write: boolean; }; }; /** * 表单渲染信息 */ formRenderData: string; /** * 表单原始值信息 */ results?: { [prop: string]: { children: any; childrenEmpty: boolean; type: string; value: string; }; }; } export interface FormGetorValueModel { /** * 表单校验结果 */ valid: boolean; /** * 表单返回数据 */ data: { /** * 字段属性 */ [prop: string]: { /** * 组件类型 */ type: string; /** * 值 */ value: string; children?: any[]; }; } | null; } export class SzgcFormGetor extends Vue { /** * 表单原始配置 * 1、config.formRenderData 渲染配置信息,需要JSON.parse。必填 * 2、config.auths 权限信息,非必填 * 3、config.results 结果集信息,非必填 */ config: FormGetorConfigModel; /** * 获取表单值 */ public getFormValues(): Promise; } export class SzgcProcessGetor extends Vue {} export class SzgcMobileGetor extends Vue {} export class SzgcWbench extends Vue {} /** * 数据视图组件 */ export class SzgcModelView extends Vue { viewId: string; /** * form的label宽度 */ labelWidth: string | number; /** * 表格操作列宽度 */ lastWidth: string | number; /** * 表格自定义按钮数组 */ slotItems: any[{ label: string; icon: string | null; }]; /** * 搜索栏大小 */ size: string | null; } /** * 电子签章装载器 */ export function install_kinggrid(options: KgInstallOptions): Promise; /** * 导出流程表单数据到pdf文件 * @param businessId 流程业务id */ export function exportProcessToPdf(businessId: string); /** * 为所有的XMLHttpRequest添加请求头 * @param header 请求头对象 */ export function add_request_header(header: { [prop: string]: string }): void; /** * 为所有的XMLHttpRequest移除请求头 * @param keys 需要移除的请求头key数组 */ export function remove_request_header(keys: string[]): void; /** * 软航控件授权信息 */ export interface NtkoLicenceModel { /** * 64位classid */ classid_x64?: string; /** * 32位classid */ classid_x32?: string; /** * 64位控件包路径 */ codebase_x64?: string; /** * 32位控件包路径 */ codebase_x32?: string; /** * 买断授权秘钥 */ maker_caption?: string; /** * 买断授权秘钥key */ maker_key?: string; /** * 产品秘钥 */ prodcut_caption?: string; /** * 产品秘钥key */ product_key?: string; } type NtkoConvertFunc = ((current: PltUser) => string | Promise) | string; export interface NtkoUseOptions { /** * 软航控件授权信息 */ licence?: NtkoLicenceModel; /** * 软航服务器地址,必须以“/”符号结尾。例如:http://192.168.0.224:1986/ntkoSignServer/ */ svr_url?: string; /** * 软航pdf阅读器地址 */ reader_iframe_url?: string; /** * 平台账号和软航账号的映射转换方案 */ account_convert?: NtkoConvertFunc; /** * 平台密码和软航密码的映射转换方案 */ password_convert?: NtkoConvertFunc; /** * 登录模式 * @default null * @enum "Extension" || "Server" * @example * signMode: "Extension" * or * signMode: "" // 默认 */ signMode?: string; /** * 登录回调地址 */ authorizeCallback?: NtkoConvertFunc; /** * 登录失败回调地址 */ unauthorizeCallback?: NtkoConvertFunc; } /** * 通过平台打开软航控件终端参数 */ export interface NtkoClientOpenOptions { /** * 是否只读 */ readonly?: boolean; /** * 文件网络访问地址 * @description 如果文件需要鉴权,需要在url后面拼接token参数 */ file_url: string; /** * 文件名称 */ file_name: string; /** * 软航签章账号 */ ntko_account?: string; /** * 软航签章密码 */ ntko_password?: string; /** * 软航服务器地址,必须以“/”符号结尾。例如:http://192.168.0.224:1986/ntkoSignServer/ */ ntko_svrurl?: string; /** * 软航控件授权信息 */ licence?: NtkoLicenceModel; /** * 通过软航客户端上传时的后端接口地址 * @description 文件流对象以file为key,上传到后端 * @description 额外参数必须以query的方式拼接在url后面 * @example http://192.168.0.224:1986/client_upload?xxx=xxx&bbb=bbb */ upload_url?: string; /** * 接收软航控件回调的全局函数名称,默认为 onNtkoClientMessage * @description 该函数必须在window对象上存在,否则软航控件无法回调 * @description 平台调用:平台组件组件会根据此参数自动 在 window.NtkoAddonParams.callback 上挂载同名回调函数 * @description 其他场景:需要自行在window对象上挂载同名回调函数 */ callback_name?: string; } /** * 软航控件工具类 */ declare class NtkoAddon { /** * 启用软航控件 * @param options 软航控件启用参数 */ use(options: NtkoUseOptions): Promise<{ success: boolean; message: string; error: any }>; /** * 打开软航控件客户端 * @description 检测到软航控件未安装时,会自动打开安装页面 * @param options */ open(options: NtkoClientOpenOptions): void; } declare class ContractLock { public visible: boolean; public signed: boolean; private openedWindow: Window; private constractId: string; public ext: { attId: string; fileName: string; requestRelativeUri: string }; private onSigned: (params:Record) => any; /** * 构造函数用于初始化签名对象 * * @param {Object} config - 配置对象 * @param {string} [config.signatoryUserName] - 签名者的用户名(可选) * @param {string} [config.attId] - 附件ID(可选) * @param {string} [config.fileName] - 文件名(可选) * @param {string} [config.requestRelativeUri] - 请求的相对URI(可选) * @param {string} [config.constractId] - 合同ID(可选) * @param {Function} [config.onSigned] - 签名完成后的回调函数(可选) */ constructor(config?: { signatoryUserName?: string; attId?: string; fileName?: string; requestRelativeUri?: string; constractId?: string; onSigned?: (params:Record) => any; }); /** * 创建签章 * @param data 文件对象 * @param subject 文件主题 * @returns {Promise} */ createByCategory(data: { raw: File }, subject?: string): Promise; /** * 添加单个签章人 * @param signatoryUserName 签章人,此人在签章系统有账号并已经实名 * @returns {Promise} */ addSignatoryUserName(signatoryUserName: string): Promise; /** * @TODO 未实现,添加多个签章人 */ addSignatoryByList(): Promise; /** * 打开签章页面 * @param signUrl 签章页面url */ openSignPage(signUrl: string): void; /** * 获取签章查看页面地址 * @returns {Promise} */ getContractViewPageUrl(): Promise; /** * 打开签章页面 */ viewContract(): Promise; /** * 下载签章文件 * @returns {boolean} */ download(): boolean; /** * 删除签章文件 * @returns {Promise} */ deleteContract(): Promise; /** * 处理接收到的消息 * @param e 消息事件 * @returns {any} */ onReciveMessage(e: MessageEvent): any; } /** * 软航控件工具类,通过ntko_addon.use进行启用软航控件 */ export const ntko_addon: NtkoAddon; declare global { interface Window { /** * 工作台版本号 */ wbenchVersion: string; /** * 导出流程表单数据到pdf文件 * @param businessId 流程业务id */ exportProcessToPdf(businessId: string); /** * 金格电子签章对象 */ Signature: any; /** * 金格电子签章是否启用,默认为flase,需要调用 kinggrid_installer.install 方法启用 */ SignatureEnable: boolean; /** * ntko_addon对象 */ ntko_addon: NtkoAddon; /** * 软航控件全局参数对象 */ NtkoAddonParams: { /** * 软航控件事件回调 */ callback: { /** * 软航控件事件回调 */ [prop: string]: ( /** * 事件名 */ ev: "FILE_SAVE_SUCCESS" | "FILE_OPEN_SUCCESS" | "CLIENT_CLOSE" | "CLOSE_BY_PARENT", /** * 消息,JSON字符串。使用时根据需要进行格式化 */ message: string ) => void; }; /** * 回调名称 */ callback_name?: string; /** * 软航控件授权信息 */ licence: NtkoLicenceModel; }; } /** * 金格电子签章对象 */ const Signature: any; /** * 金格电子签章是否启用,默认为flase,需要调用 kinggrid_installer.install 方法启用 */ const SignatureEnable: boolean; /** * 软航控件浏览器对象 */ const ntkoBrowser: any; }