fastlion-amis
Version:
一种MIS页面生成工具
121 lines (120 loc) • 3.59 kB
TypeScript
import React from 'react';
import { Api } from '../../../../types';
import { FormInstance } from 'antd/es/form';
import { RendererEnv } from '../../../../env';
import { LabelData, PrinterParam, Template } from '../type';
declare type SelectOptions = {
optionName: string;
optionValue: string;
}[];
interface LabelPrintProps {
defValAddApi: Api;
defValDelApi: Api;
defValGetApi: Api;
labelDataApi: Api;
templateApi: Api;
callbackApi: any;
numberField?: string[];
labelId?: string;
env: RendererEnv;
classnames: (...args: any[]) => string;
ctx: {
items: Array<any>;
rows: Array<any>;
selectedItems: Array<any>;
unSelectedItems: Array<any>;
ids: string;
primaryField?: string;
[key: string]: any;
};
onHide: (e?: any) => void;
remark?: React.ReactNode;
isRow?: boolean;
query?: any;
filterKey?: string;
[key: string]: any;
printers: string[];
baseUrl: string;
modalContainer?: () => HTMLElement;
popupContainer?: () => HTMLElement;
}
interface LabelPrintState {
templateInputShow: boolean;
templateInputValue: string;
templateSelectValue: string | number;
printConfigs: PrintConfig[];
templateInfos: Template[];
typeOptions: SelectOptions;
operateOptions: SelectOptions;
showEmpty: boolean;
previewLoading: boolean;
}
interface PrintConfig {
caption: string;
printer: string;
pageSize: string;
templateId: string;
direction: 0 | 1;
width: number;
height: number;
topMargin: number;
bottomMargin: number;
leftMargin: number;
rightMargin: number;
rowSpacing: number;
colSpacing: number;
horArrange: 0 | 1;
}
interface LabelPrintFormValues {
printer: string;
label: string;
range: number;
startPage: number;
endPage: number;
/** 纵向/横向 */
direction: 0 | 1;
/** 全部数据/选中数据 */
content: 0 | 1;
pageSize: string;
pageWidth: number;
pageHeight: number;
marginTop: number;
marginBottom: number;
marginLeft: number;
marginRight: number;
rowSpacing: number;
colSpacing: number;
/** 排列 */
repeat: 0 | 1;
/** 打印份数 */
count: number;
type: string;
operate: string;
}
export default class LabelPrint extends React.Component<LabelPrintProps, LabelPrintState> {
formRef: React.RefObject<FormInstance<LabelPrintFormValues>>;
cacheLabelData?: LabelData;
constructor(props: LabelPrintProps);
componentDidMount(): Promise<void>;
getTemplateInfos(): Promise<Template[]>;
getPrintConfigs(): Promise<PrintConfig[]>;
setPrintConfig(value: string | number): void;
addPrintConfig(): Promise<void>;
deletePrintConfig(value: string | number): void;
savePrintInfo(): void;
handleClose(e: MouseEvent): void;
handleAddInput(): void;
getLabelPrintData(isAll: boolean): Promise<LabelData | null | undefined>;
arrangeData(labelPrintData: LabelData): Promise<{
handlePrintData: any[];
previewData: {
[key: string]: any;
}[];
templateInfo: Template | undefined;
}>;
private showModalTip;
handleLabelPrint(preview: boolean): Promise<void>;
callLabelPreview(templateContent: string, printData: any, printerParam: PrinterParam, countOfPage: number, countOfColumn: number): void;
render(): JSX.Element;
}
export {};