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![4](figures/4.gif)
166