vxe-pc-ui
Version:
A vue based PC component library
121 lines (98 loc) • 3.75 kB
TypeScript
import { RenderFunction, SetupContext, Ref } from 'vue'
import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentAlignType, VxeComponentBaseOptions, VxeComponentEventParams } from '@vxe-ui/core'
/* eslint-disable no-use-before-define,@typescript-eslint/ban-types */
export declare const VxeWatermark: DefineVxeComponentApp<VxeWatermarkProps, VxeWatermarkEventProps, VxeWatermarkSlots>
export type VxeWatermarkComponent = DefineVxeComponentOptions<VxeWatermarkProps, VxeWatermarkEventProps>
export type VxeWatermarkInstance = DefineVxeComponentInstance<VxeWatermarkProps, VxeWatermarkConstructor>
export interface VxeWatermarkConstructor extends VxeComponentBaseOptions, VxeWatermarkMethods {
props: VxeWatermarkProps
context: SetupContext<VxeWatermarkEmits>
reactData: WatermarkReactData
getRefMaps(): WatermarkPrivateRef
getComputeMaps(): WatermarkPrivateComputed
renderVN: RenderFunction
}
export interface WatermarkPrivateRef {
refElem: Ref<HTMLDivElement | undefined>
}
export interface VxeWatermarkPrivateRef extends WatermarkPrivateRef { }
export namespace VxeWatermarkPropTypes {
export type Width = number | string
export type Height = number | string
export type ImageUrl = string
export type Rotate = number | string
export type Gap = number | string | (number | string)[]
export type Content = number | string | VxeWatermarkDefines.ContentConf | (number | string | VxeWatermarkDefines.ContentConf)[]
export type Font = {
fontSize?: number | string
color?: string
align?: VxeComponentAlignType
fontWeight?: number | 'normal' | 'bolder' | 'bold' | 'lighter'
fontFamily?: string
fontStyle?: 'normal' | 'italic' | 'oblique'
}
export type Offset = number | string | (number | string)[]
export type ZIndex = number | string
}
export interface VxeWatermarkProps {
width?: VxeWatermarkPropTypes.Width
height?: VxeWatermarkPropTypes.Height
imageUrl?: VxeWatermarkPropTypes.ImageUrl
rotate?: VxeWatermarkPropTypes.Rotate
gap?: VxeWatermarkPropTypes.Gap
content?: VxeWatermarkPropTypes.Content
font?: VxeWatermarkPropTypes.Font
offset?: VxeWatermarkPropTypes.Offset
zIndex?: VxeWatermarkPropTypes.ZIndex
}
export interface WatermarkPrivateComputed {
}
export interface VxeWatermarkPrivateComputed extends WatermarkPrivateComputed { }
export interface WatermarkReactData {
markUrl: string
}
export interface WatermarkMethods {
}
export interface VxeWatermarkMethods extends WatermarkMethods { }
export interface WatermarkPrivateMethods { }
export interface VxeWatermarkPrivateMethods extends WatermarkPrivateMethods { }
export type VxeWatermarkEmits = []
export namespace VxeWatermarkDefines {
export interface WatermarkEventParams extends VxeComponentEventParams {
$watermark: VxeWatermarkConstructor
}
export interface ContentConf {
font?: VxeWatermarkPropTypes.Font
textContent: string
}
export interface ContentObj {
text: string
fontSize: number
font: VxeWatermarkPropTypes.Font | undefined
width: number
height: number
}
}
export type VxeWatermarkEventProps = {}
export interface VxeWatermarkListeners { }
export namespace VxeWatermarkEvents { }
export namespace VxeWatermarkSlotTypes {
}
export interface VxeWatermarkSlots {
}
/**
* 全局水印控制器
*/
export interface WatermarkController {
/**
* 加载水印
* @param options 参数
*/
load(options: VxeWatermarkProps): Promise<any>
/**
* 清除水印
*/
clear(): Promise<any>
}
export const Watermark: typeof VxeWatermark
export default VxeWatermark