1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/geekharmony-hmosapp1

Клонировать/Скачать
README5.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.06.2025 17:52 d53c9aa

hptdialog


Введение


hptdialog — это минималистичная библиотека для отображения диалоговых окон, основанная на пользовательском диалоговом окне CustomDialog. Она упрощает вызовы и помогает разработчикам быстро создавать пользовательские диалоговые окна. В настоящее время включает hptdialog и hptBottomSheet.

Установка


npm install @gancao/hptdialog

Описание интерфейсов и параметров


  • hptdialog


Интерфейсы

Метод Параметры Описание
HPTDialogUtil.show component: Object — this текущего компонента
info: DialogInfo — содержимое диалогового окна, включая заголовок, сообщение и т.д.
config?: DialogConfig — конфигурация стиля диалогового окна
Отображение диалогового окна
------------------------------- ------------------------------------------- --------------------------------------------------------------------
title ResourceStr Заголовок диалогового окна, необязательный
message ResourceStr Содержимое сообщения диалогового окна, необязательное
messageContent CustomBuilder Пользовательское содержимое, используемое для замены поля message;
messagePadding не применимо к этому полю
buttons DialogButton[] Используется при необходимости нескольких кнопок;
Тип DialogButton см. в описании параметров DialogButton
cancel ResourceStr Текст кнопки "Отмена", по умолчанию "Отмена"
confirm ResourceStr Текст кнопки "Ок", по умолчанию "Ок"
cancelOnClick (controller? : DialogController) => void Обработчик события нажатия на кнопку "Отмена", позволяет контролировать закрытие диалогового окна с помощью controller
confirmOnClick (controller? : DialogController) => void Обработчик события нажатия на кнопку "Ок", позволяет контролировать закрытие диалогового окна с помощью controller
cancelCallBack () => void Обработчик события отмены диалогового окна, связан с действиями, такими как нажатие на кнопку "Отмена" или закрытие окна
--------------------------------- --------------------------------- --------------------------------------------------------------
margin Margin Отступ от экрана
padding Padding Внутренний отступ
border BorderOptions Край (с закруглёнными углами)
backgroundColor ResourceColor Цвет фона содержимого
fontSize number или string или Resource Размер шрифта заголовка
fontColor ResourceColor Цвет шрифта заголовка
fontWeight number или FontWeight или string Толщина шрифта
titlePadding Padding Внутренний отступ области заголовка
messageFontSize number или string или Resource Размер шрифта содержимого
messageFontWeight number или FontWeight или string Толщина шрифта содержимого
messagePadding Padding Внутренний отступ области содержимого
buttonsUseVerticalLayoutCount number Количество кнопок для использования вертикального расположения. По умолчанию, если количество меньше этого значения, используется горизонтальное расположение (Row), если больше или равно, используется вертикальное расположение (Column)
buttonVerticalSpacing string или number Вертикальное расстояние между кнопками
buttonHorizontalSpacing string или number Горизонтальное расстояние между кнопками

Свойства кнопки диалогового окна (DialogButton свойства)| Свойство | Тип | Описание |

|------------|-------------------------------------------|------------------------------------| | name | string | Текстовое имя кнопки | | style? | DialogButtonStyle | Стиль кнопки, опционально | | onClick? | (controller?: DialogController) => void | Обратный вызов при нажатии кнопки, может принимать опциональный параметр типа DialogController, опционально |

Свойства стиля кнопки диалогового окна (DialogButtonStyle)

Свойство Тип Описание
height Length Высота кнопки
fontSize number или string или Resource Размер шрифта текста, поддерживает числа, строки или ссылки на ресурсы
fontColor ResourceColor Цвет текста, определяется через ресурс
fontWeight number или FontWeight или string Толщина шрифта текста
backgroundColor ResourceColor Цвет фона кнопки
border BorderOptions Стиль границы кнопки
  • hptBottomSheet


Интерфейс| Метод | Параметры | Описание |

|-------------------------|-----------------------------------------------------------------------------------------------------------------------------|----------| | HPTBottomSheetUtil.show | component: Object текущей this страницы
info: BottomSheetInfo содержимое диалогового окна, включая title, contentList и т.д.
config?: BottomSheetConfig стили диалогового окна | Отображение нижнего диалогового окна |#### BottomSheetInfo свойства (свойства содержимого диалогового окна)| Атрибут | Тип | Описание | |-------------------------------|--------------------------------|--------------------------------------------------------------------| | title | ResourceStr | Заголовок нижнего всплывающего окна | | contentList | ResourceStr[] | Содержимое, отображаемое в виде списка, по умолчанию не предоставляется | | selectedIndex | number | Индекс выбранной строки по умолчанию | | customContent | CustomBuilder | Пользовательское содержимое, используемое для перезаписи поля contentList | | cancel | ResourceStr | Текст кнопки "Отмена", по умолчанию "Отмена" | | disableShowCancel | boolean | Запретить отображение кнопки "Отмена", по умолчанию не запрещено | | cancelOnClick | (controller? ) => void | Обратный вызов при нажатии на кнопку "Отмена", принимает необязательный параметр DialogController для управления логикой закрытия всплывающего окна | | confirmOnClick | (index, controller? ) => void | Обратный вызов при выборе строки, принимает индекс строки index и необязательный параметр DialogController для выполнения соответствующих действий и управления логикой закрытия всплывающего окна || disableClickButtonAutoClose | boolean | Запретить автоматическое закрытие всплывающего окна при нажатии на кнопку, по умолчанию автоматическое закрытие включено | | cancelCallBack | () => void | Обратный вызов при отмене всплывающего окна, связан с нажатием на кнопку "Отмена" или другими действиями отмены |

BottomSheetConfig свойства (описывают стиль всплывающего окна)| Свойство | Тип | Описание |

|-------------------------------|--------------------------------|------------------------| | backgroundColor | ResourceColor | Цвет фона всплывающего окна | | borderRadius | number | Радиус закругления нижней части всплывающего окна | | maxListHeight | number | Максимальная высота всплывающего окна в режиме списка | | itemHeight | number | Высота каждого элемента списка | | itemBackgroundColor | ResourceColor | Цвет фона элемента списка | | itemSelectedBackgroundColor | ResourceColor | Цвет фона выбранного элемента списка | | dividerColor | ResourceColor | Цвет разделительной линии | | dividerHeight | Length | Высота разделительной линии | | cancelSpace | Length | Расстояние между кнопкой отмены и другими элементами | | cancelHeight | Length | Высота кнопки отмены | | titleAlign | TextAlign | Выравнивание заголовка | | titlePadding | Padding | Внутренние отступы заголовка | | titleFontSize | number или string или Resource | Размер шрифта заголовка | | titleFontColor | ResourceColor | Цвет шрифта заголовка | | titleFontWeight | number или FontWeight или string | Толщина шрифта заголовка | | fontSize | number или string или Resource | Размер шрифта текста | | fontColor | ResourceColor | Цвет текста | | fontWeight | number или FontWeight или string | Толщина шрифта текста |# Изменение глобальных значений по умолчанию

HPTDialogUtil.defaultConfig.titlePadding = { bottom: 24 }
HPTDialogUtil.defaultConfig.fontSize = $r("app.float.h3")
HPTDialogUtil.defaultConfig.fontColor = $r("app.color.mainText")
HPTDialogUtil.defaultConfig.messageFontSize = 12
HPTDialogUtil.defaultConfig.messageFontColor = Color.Red
```// BottomSheet
HPTBottomSheetUtil.defaultConfig.itemSelectedBackgroundColor = $r("app.color.primary")

Примеры использования


Пример

Пример

Пример использования HPTDialog

HPTDialogUtil.show(this, {
  title: 'Подтвердите выход из системы?',
  cancel: "Отмена",
  message: "Выход из системы, описание xxxx",
  confirm: "Подтвердить выход",
  confirmOnClick: () => {
    // Выполнить логику выхода из системы
  }
})

Пользовательские настройки

HPTDialogUtil.show(this, {
  title: 'Подтвердите выход из системы?',
  cancel: "Отмена",
  confirm: "Подтвердить выход",
  messageContent: () => this.buildItem("Выход из системы, описание xxxx", () => {

  }),
  confirmOnClick: () => {

  }
})

HPTBottomSheet

HPTBottomSheetUtil.show(this, {
  contentList: ['Заварить', 'Не заваривать', 'Выбирать каждый раз'],
  disableShowTitle: true
})

Внимание ⚠️

this должен быть текущим компонентом @Component. Если вызов диалогового окна происходит в логической части кода, необходимо передать текущий this компонента в логическую функцию. В противном случае диалоговое окно может не отображаться корректно.# Структура проекта

hptdialog
├── src
│   ├── main
│   │   ├── ets
│   │   │   └── components
│   │   │       └── dialog
│   │   │           └── Dialog.ets
│   │   │           └── Config.ets
│   │   │       └── bottomsheet
│   │   │           └── BottomSheet.ets
│   │   │           └── Config.ets
│   │   │       └── DialogController.ets
│   │   └── resources
└── 
```# Адрес проекта
[Репозиторий](https://gitee.com/iJianbao/gancao-hptdialog.git)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/geekharmony-hmosapp1.git
git@api.gitlife.ru:oschina-mirror/geekharmony-hmosapp1.git
oschina-mirror
geekharmony-hmosapp1
geekharmony-hmosapp1
master