From ea52d833b81dcfb841d5d6646ef0cea32185d614 Mon Sep 17 00:00:00 2001 From: jian Date: Wed, 3 Jan 2024 17:00:48 +0800 Subject: [PATCH] =?UTF-8?q?BI-137665=20fix:=20=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fineui/src/base/foundation/message.js | 429 +++++++++--------- .../typescript/base/foundation/message.ts | 2 - 2 files changed, 212 insertions(+), 219 deletions(-) diff --git a/packages/fineui/src/base/foundation/message.js b/packages/fineui/src/base/foundation/message.js index 3866f2475..400185774 100644 --- a/packages/fineui/src/base/foundation/message.js +++ b/packages/fineui/src/base/foundation/message.js @@ -21,254 +21,249 @@ import { } from "../../core"; import { Toast } from "../single"; -export const Msg = (() => { - let $mask, $pop; +let $mask, $pop; - const messageShows = []; +const messageShows = []; - const toastStack = []; +const toastStack = []; - const defaultConfig = { - buttonHeight: 24, - }; +const defaultConfig = { + buttonHeight: 24, +}; - return { - alert(title, message, callback, config = defaultConfig) { - this._show(false, title, message, callback, config); - }, - confirm(title, message, callback, config = defaultConfig) { - this._show(true, title, message, callback, config); - }, - prompt(title, message, value, callback, min_width) { - // Msg.prompt(title, message, value, callback, min_width); - }, - toast(message, options, context) { - isString(options) && (options = { level: options }); - options = options || {}; - context = context || Widget._renderEngine.createElement("body"); - const level = options.level || "common"; - const autoClose = isNull(options.autoClose) ? true : options.autoClose; - const callback = isFunction(options.callback) ? options.callback : emptyFn; - const toast = createWidget({ - type: "bi.toast", - cls: "bi-message-animate bi-message-leave", - level, - autoClose, - closable: options.closable, - text: message, - listeners: [ - { - eventName: Toast.EVENT_DESTORY, - action() { - remove(toastStack, toast.element); - let _height = SIZE_CONSANTS.TOAST_TOP; - each(toastStack, (i, element) => { - element.css({ top: _height }); - _height += element.outerHeight() + 10; - }); - callback(); - }, - } - ], - }); - let height = SIZE_CONSANTS.TOAST_TOP; - each(toastStack, (i, element) => { - height += element.outerHeight() + 10; - }); - createWidget({ - type: "bi.absolute", - element: context, - items: [ - { - el: toast, - left: "50%", - top: height, - } - ], - }); - toastStack.push(toast.element); - toast.element.css({ "margin-left": (-1 * toast.element.outerWidth()) / 2 }); - toast.element.removeClass("bi-message-leave").addClass("bi-message-enter"); +export const Msg = { + alert(title, message, callback, config = defaultConfig) { + this._show(false, title, message, callback, config); + }, + confirm(title, message, callback, config = defaultConfig) { + this._show(true, title, message, callback, config); + }, + toast(message, options, context) { + isString(options) && (options = { level: options }); + options = options || {}; + context = context || Widget._renderEngine.createElement("body"); + const level = options.level || "common"; + const autoClose = isNull(options.autoClose) ? true : options.autoClose; + const callback = isFunction(options.callback) ? options.callback : emptyFn; + const toast = createWidget({ + type: "bi.toast", + cls: "bi-message-animate bi-message-leave", + level, + autoClose, + closable: options.closable, + text: message, + listeners: [ + { + eventName: Toast.EVENT_DESTORY, + action() { + remove(toastStack, toast.element); + let _height = SIZE_CONSANTS.TOAST_TOP; + each(toastStack, (i, element) => { + element.css({ top: _height }); + _height += element.outerHeight() + 10; + }); + callback(); + }, + } + ], + }); + let height = SIZE_CONSANTS.TOAST_TOP; + each(toastStack, (i, element) => { + height += element.outerHeight() + 10; + }); + createWidget({ + type: "bi.absolute", + element: context, + items: [ + { + el: toast, + left: "50%", + top: height, + } + ], + }); + toastStack.push(toast.element); + toast.element.css({ "margin-left": (-1 * toast.element.outerWidth()) / 2 }); + toast.element.removeClass("bi-message-leave").addClass("bi-message-enter"); - autoClose && - delay(() => { - toast.element.removeClass("bi-message-enter").addClass("bi-message-leave"); - toast.destroy?.(); - }, 5000); + autoClose && + delay(() => { + toast.element.removeClass("bi-message-enter").addClass("bi-message-leave"); + toast.destroy?.(); + }, 5000); - return function() { - toast.element.removeClass("bi-message-enter").addClass("bi-message-leave"); - toast.destroy?.(); - }; - }, - _show(hasCancel, title, message, callback, config) { - isNull($mask) && - ($mask = Widget._renderEngine - .createElement("
") - .css({ - position: "absolute", - zIndex: zIndex_tip - 2, - top: 0, - left: 0, - right: 0, - bottom: 0, - opacity: 0.5, - }) - .appendTo("body")); - $pop = Widget._renderEngine - .createElement("
") - .css({ - position: "absolute", - zIndex: zIndex_tip - 1, - top: 0, - left: 0, - right: 0, - bottom: 0, - }) - .appendTo("body"); + return function() { + toast.element.removeClass("bi-message-enter").addClass("bi-message-leave"); + toast.destroy?.(); + }; + }, + _show(hasCancel, title, message, callback, config) { + isNull($mask) && + ($mask = Widget._renderEngine + .createElement("
") + .css({ + position: "absolute", + zIndex: zIndex_tip - 2, + top: 0, + left: 0, + right: 0, + bottom: 0, + opacity: 0.5, + }) + .appendTo("body")); + $pop = Widget._renderEngine + .createElement("
") + .css({ + position: "absolute", + zIndex: zIndex_tip - 1, + top: 0, + left: 0, + right: 0, + bottom: 0, + }) + .appendTo("body"); - function close() { - messageShows[messageShows.length - 1].destroy(); - messageShows.pop(); - if (messageShows.length === 0) { - $mask.remove(); - $mask = null; - } + function close() { + messageShows[messageShows.length - 1].destroy(); + messageShows.pop(); + if (messageShows.length === 0) { + $mask.remove(); + $mask = null; } + } - const controlItems = []; - if (hasCancel === true) { - controlItems.push({ - el: { - type: "bi.button", - height: config.buttonHeight, - text: i18nText("BI-Basic_Cancel"), - light: true, - handler() { - close(); - if (isFunction(callback)) { - callback.apply(null, [false]); - } - }, - }, - }); - } + const controlItems = []; + if (hasCancel === true) { controlItems.push({ el: { type: "bi.button", height: config.buttonHeight, - text: i18nText("BI-Basic_OK"), + text: i18nText("BI-Basic_Cancel"), + light: true, handler() { close(); if (isFunction(callback)) { - callback.apply(null, [true]); + callback.apply(null, [false]); } }, }, }); - const conf = { - element: $pop, - type: "bi.center_adapt", - items: [ - { - type: "bi.border", - attributes: { - tabIndex: 1, - }, - mounted() { - this.element.keyup(e => { - if (e.keyCode === KeyCode.ENTER) { - close(); + } + controlItems.push({ + el: { + type: "bi.button", + height: config.buttonHeight, + text: i18nText("BI-Basic_OK"), + handler() { + close(); + if (isFunction(callback)) { + callback.apply(null, [true]); + } + }, + }, + }); + const conf = { + element: $pop, + type: "bi.center_adapt", + items: [ + { + type: "bi.border", + attributes: { + tabIndex: 1, + }, + mounted() { + this.element.keyup(e => { + if (e.keyCode === KeyCode.ENTER) { + close(); + if (isFunction(callback)) { + callback.apply(null, [true]); + } + } else if (e.keyCode === KeyCode.ESCAPE) { + close(); + if (hasCancel === true) { if (isFunction(callback)) { - callback.apply(null, [true]); - } - } else if (e.keyCode === KeyCode.ESCAPE) { - close(); - if (hasCancel === true) { - if (isFunction(callback)) { - callback.apply(null, [false]); - } + callback.apply(null, [false]); } } - }); - try { - this.element.focus(); - } catch (e) { } - }, - cls: "bi-card", - items: { - north: { - el: { - type: "bi.border", - cls: "bi-message-title bi-background", - items: { - center: { - el: { - type: "bi.label", - cls: "bi-font-bold", - text: title || i18nText("BI-Basic_Prompt"), - textAlign: "left", - hgap: 20, - height: 40, - }, + }); + try { + this.element.focus(); + } catch (e) { + } + }, + cls: "bi-card", + items: { + north: { + el: { + type: "bi.border", + cls: "bi-message-title bi-background", + items: { + center: { + el: { + type: "bi.label", + cls: "bi-font-bold", + text: title || i18nText("BI-Basic_Prompt"), + textAlign: "left", + hgap: 20, + height: 40, }, - east: { - el: { - type: "bi.icon_button", - cls: "bi-message-close close-font", - // height: 50, - handler() { - close(); - if (isFunction(callback)) { - callback.apply(null, [false]); - } - }, + }, + east: { + el: { + type: "bi.icon_button", + cls: "bi-message-close close-font", + // height: 50, + handler() { + close(); + if (isFunction(callback)) { + callback.apply(null, [false]); + } }, - width: 56, }, + width: 56, }, }, - height: 40, - }, - center: { - el: isPlainObject(message) - ? message - : { - type: "bi.label", - vgap: 10, - hgap: 20, - whiteSpace: "normal", - text: message, - }, }, - south: { - el: { - type: "bi.absolute", - items: [ - { - el: { - type: "bi.right_vertical_adapt", - lgap: 10, - items: controlItems, - }, - top: 0, - left: 20, - right: 20, - bottom: 0, - } - ], + height: 40, + }, + center: { + el: isPlainObject(message) + ? message + : { + type: "bi.label", + vgap: 10, + hgap: 20, + whiteSpace: "normal", + text: message, }, - height: 44, + }, + south: { + el: { + type: "bi.absolute", + items: [ + { + el: { + type: "bi.right_vertical_adapt", + lgap: 10, + items: controlItems, + }, + top: 0, + left: 20, + right: 20, + bottom: 0, + } + ], }, + height: 44, }, - width: 450, - height: 200, - } - ], - }; + }, + width: 450, + height: 200, + } + ], + }; - messageShows[messageShows.length] = createWidget(conf); - }, - }; -})(); + messageShows[messageShows.length] = createWidget(conf); + }, +}; diff --git a/packages/fineui/typescript/base/foundation/message.ts b/packages/fineui/typescript/base/foundation/message.ts index 2094d7fea..421d6e2a7 100644 --- a/packages/fineui/typescript/base/foundation/message.ts +++ b/packages/fineui/typescript/base/foundation/message.ts @@ -14,7 +14,5 @@ export declare namespace Msg { [key: string]: any }, callback?: (result: boolean) => void): void - function prompt(title: string, message?: string, value?: any, callback?: (result: string) => void, minWidth?: number): void - function toast(message: string | Obj, options?: toastOptions | string, context?: HTMLElement): Function }