主要实现为:自定义弹窗容器。
属性:除了支持通用属性外,还支持如下属性。
名称
| 类型
| 默认值
| 必填
| 描述
|
dragable7+
| boolean
| false
| 否
| 设置对话框是否支持拖拽。
|
说明:弹窗类组件不支持focusable、click-effect属性。
样式:仅支持通用样式中的width、height、margin、margin-[left|top|right|bottom]、margin-[start|end]样式。
事件:不支持通用事件,仅支持如下事件:
名称
| 参数
| 描述
|
cancel
| -
| 用户点击非dialog区域触发取消弹窗时触发的事件。
|
show7+
| -
| 对话框弹出时触发该事件。
|
close7+
| -
| 对话框关闭时触发该事件。
|
方法:不支持通用方法,仅支持如下方法。
名称
| 参数
| 描述
|
show
| -
| 弹出对话框。
|
close
| -
| 关闭对话框。
|
示例 效果展示:
示例代码:
index.hml
- <div class="doc-page">
- <div class="btn-div">
- <button type="capsule" value="请点击" class="btn" onclick="showDialog"></button>
- </div>
- <dialog id="simpledialog" dragable="true" class="dialog-main" oncancel="cancelDialog">
- <div class="dialog-div">
- <div class="inner-txt">
- <text class="txt">Simple dialog</text>
- </div>
- <div class="inner-btn">
- <button type="capsule" value="取消" onclick="cancelSchedule" class="btn-txt"></button>
- <button type="capsule" value="确定" onclick="setSchedule" class="btn-txt"></button>
- </div>
- </div>
- </dialog>
- </div>
复制代码
index.css
- .doc-page {
- flex-direction: column;
- justify-content: center;
- align-items: center;
- }
- .btn-div {
- width: 100%;
- height: 200px;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- }
- .btn {
- width: 200px;
- height: 60px;
- font-size: 24px;
- background-color: #F2F2F2;
- text-color: #0D81F2;
- }
- .txt {
- color: #0D81F2;
- font-weight: bold;
- font-size: 39px;
- }
- .dialog-main {
- width: 500px;
- }
- .dialog-div {
- flex-direction: column;
- align-items: center;
- }
- .inner-txt {
- width: 400px;
- height: 160px;
- flex-direction: column;
- align-items: center;
- justify-content: space-around;
- }
- .inner-btn {
- width: 400px;
- height: 120px;
- justify-content: space-around;
- align-items: center;
- }
- .btn-txt {
- background-color: #F2F2F2;
- text-color: #0D81F2;
- }
复制代码
index.js
- import prompt from '@system.prompt';
- export default {
- showDialog(e) {
- this.$element('simpledialog').show()
- },
- cancelDialog(e) {
- prompt.showToast({
- message: 'Dialog cancelled'
- })
- },
- cancelSchedule(e) {
- this.$element('simpledialog').close()
- prompt.showToast({
- message: 'Successfully cancelled'
- })
- },
- setSchedule(e) {
- this.$element('simpledialog').close()
- prompt.showToast({
- message: 'Successfully confirmed'
- })
- },
- doubleclick(e){
- prompt.showToast({
- message: 'doubleclick'
- })
- }
- }
复制代码