1e41f4b71Sopenharmony_ci# dialog 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci> **NOTE** 4e41f4b71Sopenharmony_ci> 5e41f4b71Sopenharmony_ci> This component is supported since API version 4. Updates will be marked with a superscript to indicate their earliest API version. 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ciThe **\<dialog>** component is a custom dialog box. 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## Required Permissions 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ciNone 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci## Child Components 15e41f4b71Sopenharmony_ci 16e41f4b71Sopenharmony_ciThis component supports only one child component. 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci## Attributes 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ciIn addition to the [universal attributes](js-components-common-attributes.md), the following attributes are supported. 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci| Name | Type | Default Value | Mandatory | Description | 24e41f4b71Sopenharmony_ci| --------------------- | ------- | ----- | ---- | ------------ | 25e41f4b71Sopenharmony_ci| dragable<sup>7+</sup> | boolean | false | No | Whether the dialog box can be dragged.| 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci> **NOTE** 28e41f4b71Sopenharmony_ci> 29e41f4b71Sopenharmony_ci> The **\<dialog>** component does not support the **focusable** and **click-effect** attributes. 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci 32e41f4b71Sopenharmony_ci## Styles 33e41f4b71Sopenharmony_ci 34e41f4b71Sopenharmony_ciOnly the **width**, **height**, **margin**, **margin-[left|top|right|bottom]**, and **margin-[start|end]** styles in [Universal Styles](js-components-common-styles.md) are supported. 35e41f4b71Sopenharmony_ci 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci## Events 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ciThe following events are supported. The [universal events](js-components-common-events.md) are not supported. 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci| Name | Parameter | Description | 42e41f4b71Sopenharmony_ci| ------------------ | ---- | -------------------------- | 43e41f4b71Sopenharmony_ci| cancel | - | Triggered when a user touches an area outside the dialog box to cancel the dialog box.| 44e41f4b71Sopenharmony_ci| show<sup>7+</sup> | - | Triggered when the dialog box is displayed. | 45e41f4b71Sopenharmony_ci| close<sup>7+</sup> | - | Triggered when the dialog box is closed. | 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci 48e41f4b71Sopenharmony_ci## Methods 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ciThe following methods are supported. The [universal methods](js-components-common-methods.md) are not supported. 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci| Name | Parameter | Description | 53e41f4b71Sopenharmony_ci| ----- | ---- | ------ | 54e41f4b71Sopenharmony_ci| show | - | Shows a dialog box.| 55e41f4b71Sopenharmony_ci| close | - | Close the dialog box.| 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci> **NOTE** 58e41f4b71Sopenharmony_ci> 59e41f4b71Sopenharmony_ci> Attributes and styles of a **\<dialog>** component cannot be dynamically updated. 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci## Example 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci```html 65e41f4b71Sopenharmony_ci<!-- xxx.hml --> 66e41f4b71Sopenharmony_ci<div class="doc-page"> 67e41f4b71Sopenharmony_ci <div class="btn-div"> 68e41f4b71Sopenharmony_ci <button type="capsule" value="Click here" class="btn" onclick="showDialog"></button> 69e41f4b71Sopenharmony_ci </div> 70e41f4b71Sopenharmony_ci <dialog id="simpledialog" dragable="true" class="dialog-main" oncancel="cancelDialog"> 71e41f4b71Sopenharmony_ci <div class="dialog-div"> 72e41f4b71Sopenharmony_ci <div class="inner-txt"> 73e41f4b71Sopenharmony_ci <text class="txt" ondoubleclick="doubleclick">Simple dialog</text> 74e41f4b71Sopenharmony_ci </div> 75e41f4b71Sopenharmony_ci <div class="inner-btn"> 76e41f4b71Sopenharmony_ci <button type="capsule" value="Cancel" onclick="cancelSchedule" class="btn-txt"></button> 77e41f4b71Sopenharmony_ci <button type="capsule" value="Confirm" onclick="setSchedule" class="btn-txt"></button> 78e41f4b71Sopenharmony_ci </div> 79e41f4b71Sopenharmony_ci </div> 80e41f4b71Sopenharmony_ci </dialog> 81e41f4b71Sopenharmony_ci</div> 82e41f4b71Sopenharmony_ci``` 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci```css 85e41f4b71Sopenharmony_ci/* xxx.css */ 86e41f4b71Sopenharmony_ci.doc-page { 87e41f4b71Sopenharmony_ci flex-direction: column; 88e41f4b71Sopenharmony_ci justify-content: center; 89e41f4b71Sopenharmony_ci align-items: center; 90e41f4b71Sopenharmony_ci} 91e41f4b71Sopenharmony_ci.btn-div { 92e41f4b71Sopenharmony_ci width: 100%; 93e41f4b71Sopenharmony_ci height: 200px; 94e41f4b71Sopenharmony_ci flex-direction: column; 95e41f4b71Sopenharmony_ci align-items: center; 96e41f4b71Sopenharmony_ci justify-content: center; 97e41f4b71Sopenharmony_ci} 98e41f4b71Sopenharmony_ci.btn { 99e41f4b71Sopenharmony_ci background-color: #F2F2F2; 100e41f4b71Sopenharmony_ci text-color: #0D81F2; 101e41f4b71Sopenharmony_ci} 102e41f4b71Sopenharmony_ci.txt { 103e41f4b71Sopenharmony_ci color: #000000; 104e41f4b71Sopenharmony_ci font-weight: bold; 105e41f4b71Sopenharmony_ci font-size: 39px; 106e41f4b71Sopenharmony_ci} 107e41f4b71Sopenharmony_ci.dialog-main { 108e41f4b71Sopenharmony_ci width: 500px; 109e41f4b71Sopenharmony_ci} 110e41f4b71Sopenharmony_ci.dialog-div { 111e41f4b71Sopenharmony_ci flex-direction: column; 112e41f4b71Sopenharmony_ci align-items: center; 113e41f4b71Sopenharmony_ci} 114e41f4b71Sopenharmony_ci.inner-txt { 115e41f4b71Sopenharmony_ci width: 400px; 116e41f4b71Sopenharmony_ci height: 160px; 117e41f4b71Sopenharmony_ci flex-direction: column; 118e41f4b71Sopenharmony_ci align-items: center; 119e41f4b71Sopenharmony_ci justify-content: space-around; 120e41f4b71Sopenharmony_ci} 121e41f4b71Sopenharmony_ci.inner-btn { 122e41f4b71Sopenharmony_ci width: 400px; 123e41f4b71Sopenharmony_ci height: 120px; 124e41f4b71Sopenharmony_ci justify-content: space-around; 125e41f4b71Sopenharmony_ci align-items: center; 126e41f4b71Sopenharmony_ci} 127e41f4b71Sopenharmony_ci.btn-txt { 128e41f4b71Sopenharmony_ci background-color: #F2F2F2; 129e41f4b71Sopenharmony_ci text-color: #0D81F2; 130e41f4b71Sopenharmony_ci} 131e41f4b71Sopenharmony_ci``` 132e41f4b71Sopenharmony_ci 133e41f4b71Sopenharmony_ci```js 134e41f4b71Sopenharmony_ci// xxx.js 135e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction'; 136e41f4b71Sopenharmony_ciexport default { 137e41f4b71Sopenharmony_ci showDialog() { 138e41f4b71Sopenharmony_ci this.$element('simpledialog').show() 139e41f4b71Sopenharmony_ci }, 140e41f4b71Sopenharmony_ci cancelDialog() { 141e41f4b71Sopenharmony_ci promptAction.showToast({ 142e41f4b71Sopenharmony_ci message: 'Dialog cancelled' 143e41f4b71Sopenharmony_ci }) 144e41f4b71Sopenharmony_ci }, 145e41f4b71Sopenharmony_ci cancelSchedule() { 146e41f4b71Sopenharmony_ci this.$element('simpledialog').close() 147e41f4b71Sopenharmony_ci promptAction.showToast({ 148e41f4b71Sopenharmony_ci message: 'Successfully cancelled' 149e41f4b71Sopenharmony_ci }) 150e41f4b71Sopenharmony_ci }, 151e41f4b71Sopenharmony_ci setSchedule() { 152e41f4b71Sopenharmony_ci this.$element('simpledialog').close() 153e41f4b71Sopenharmony_ci promptAction.showToast({ 154e41f4b71Sopenharmony_ci message: 'Successfully confirmed' 155e41f4b71Sopenharmony_ci }) 156e41f4b71Sopenharmony_ci }, 157e41f4b71Sopenharmony_ci doubleclick(){ 158e41f4b71Sopenharmony_ci promptAction.showToast({ 159e41f4b71Sopenharmony_ci message: 'doubleclick' 160e41f4b71Sopenharmony_ci }) 161e41f4b71Sopenharmony_ci } 162e41f4b71Sopenharmony_ci} 163e41f4b71Sopenharmony_ci``` 164e41f4b71Sopenharmony_ci 165e41f4b71Sopenharmony_ci 166