123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- // 假设这些类型和接口的定义
- interface IPage {
- // 这里可以定义 IPage 接口的具体属性和方法
- }
-
- interface TipAdornerPlacement {
- // 这里可以定义 TipAdornerPlacement 接口的具体属性和方法
- }
-
- interface TipAdorner {
- Placement: TipAdornerPlacement;
- Message: string;
- // 这里可以定义 TipAdorner 接口的其他方法
- }
-
- interface FocusManager {
- GetManagerInstance(target: any): FocusManager | null;
- CurrentFocusedElement: any;
- SetFocus(element: any): void;
- IsFocusContinue: boolean;
- }
-
- enum FocusHandledResult {
- System
- }
-
- class ControlHelper {
- static ShowTip(target: any, placement: TipAdornerPlacement, message: string): boolean {
- if (target instanceof IPage) {
- const fm = FocusManager.GetManagerInstance(target);
- if (!fm || !fm.CurrentFocusedElement) {
- return false;
- }
- target = fm.CurrentFocusedElement;
- }
- // 这里假设可以通过某种方式获取 AdornerLayer
- const layer = this.getAdornerLayer(target);
- if (layer) {
- this.RemoveTipAdorner(target, layer);
- const tip: TipAdorner = {
- Placement: placement,
- Message: message ? message.trim() : "输入错误"
- };
- if (target instanceof HTMLInputElement) {
- target.select();
- }
- // 这里假设可以添加装饰器
- this.addTipToLayer(tip, layer);
- target.addEventListener('blur', () => this.OnLostFocus(target));
- }
- return false;
- }
-
- static ShowTipSimple(target: any, message: string): boolean {
- // 假设存在一个默认的底部位置
- const defaultPlacement = {} as TipAdornerPlacement;
- return this.ShowTip(target, defaultPlacement, message);
- }
-
- static RemoveTipAdorner(target: any, layer: any): void {
- if (!layer) {
- return;
- }
- const adorners = this.getAdorners(target, layer);
- if (!adorners) {
- return;
- }
- adorners.forEach((ad: any) => {
- if (this.isTipAdorner(ad)) {
- this.removeAdornerFromLayer(ad, layer);
- }
- });
- }
-
- static OnLostFocus(target: any): void {
- target.removeEventListener('blur', () => this.OnLostFocus(target));
- const layer = this.getAdornerLayer(target);
- this.RemoveTipAdorner(target, layer);
- }
-
- static RemoveTip(target: any): void {
- if (!target) {
- return;
- }
- const layer = this.getAdornerLayer(target);
- if (layer) {
- this.RemoveTipAdorner(target, layer);
- }
- }
-
- static SetFocus(target: IPage, element?: any): void {
- const focusManager = FocusManager.GetManagerInstance(target);
- if (!focusManager) {
- return;
- }
- if (element) {
- focusManager.SetFocus(element);
- }
- focusManager.IsFocusContinue = false;
- }
-
- static get EmptyMouseHandled(): (sender: any, e: any) => void {
- return (sender, e) => { };
- }
-
- static get EmptyFocusHandled(): (sender: any, e: any) => FocusHandledResult {
- return (sender, e) => {
- return FocusHandledResult.System;
- };
- }
-
- // 以下是模拟的辅助方法,需要根据实际情况实现
- private static getAdornerLayer(target: any): any {
- return null;
- }
-
- private static getAdorners(target: any, layer: any): any[] {
- return [];
- }
-
- private static isTipAdorner(ad: any): boolean {
- return false;
- }
-
- private static addTipToLayer(tip: TipAdorner, layer: any): void {
- // 实现添加装饰器的逻辑
- }
-
- private static removeAdornerFromLayer(ad: any, layer: any): void {
- // 实现移除装饰器的逻辑
- }
- }
-
- export default ControlHelper;
|