4
4
:class =" ObjClass"
5
5
tabindex =" -1"
6
6
role =" dialog"
7
- :aria-labelledby =" labelledby"
7
+ :data-bs-keyboard =" !backdrop && keyboard"
8
+ :data-bs-backdrop =" backdrop ? 'static' : true"
8
9
:aria-modal =" show"
9
- aria-hidden =" false "
10
+ : aria-hidden =" !show "
10
11
>
11
12
<div
12
13
class =" modal-dialog my-0"
13
14
:class =" documentClass"
14
- :style =" documentStyle"
15
15
role =" document"
16
16
>
17
17
<div class =" modal-content" >
18
18
<div class =" modal-header" >
19
19
<h5 class =" modal-title" >
20
- <slot
21
- v-if =" $slots.icon || showIcon"
22
- name =" icon"
23
- >
24
- <i
25
- class =" me-2"
26
- :class =" iconClass"
27
- />
28
- </slot >
29
- {{ dataTitle }}
20
+ <basic-label
21
+ :label =" dataTitle"
22
+ :icon =" dataIcon"
23
+ :info =" info"
24
+ :iconColor =" dataColor"
25
+ />
30
26
</h5 >
31
27
<button
32
28
type =" button"
33
- class =" close"
34
- data-dismiss =" modal"
29
+ class =" btn- close"
30
+ data-bs- dismiss =" modal"
35
31
aria-label =" Close"
36
- >
37
- <span aria-hidden =" true" >× ; </span >
38
- </button >
32
+ />
39
33
</div >
40
34
<div class =" modal-body" >
41
35
<slot >{{ content }}</slot >
45
39
class =" modal-footer"
46
40
>
47
41
<slot name =" footer" >
48
- <!-- TODO: 关闭方式存在问题 -->
49
42
<button
50
43
type =" button"
51
44
class =" btn btn-secondary"
52
- data-dismiss =" modal"
45
+ data-bs- dismiss =" modal"
53
46
>
54
47
Close
55
48
</button >
69
62
<script >
70
63
import util from " @/components/util/index.js" ;
71
64
65
+ import BasicLabel from ' @/components/basic/basic-label.vue'
66
+
72
67
export default {
73
68
name: " BModal" ,
69
+ components: { BasicLabel, },
74
70
mixins: [ util .mixins .status .message , ],
75
71
props: {
72
+ info: util .props .String ,
76
73
content: util .props .String ,
77
- scrol: util .props .Boolean , // modal-dialog-scrollable
74
+ backdrop: util .props .Boolean ,//
75
+ keyboard: util .props .Boolean ,
76
+ scrol: util .props .Boolean , // modal-dialog-scrollable
77
+ center: util .props .Boolean ,// modal-dialog-centered
78
78
hideFooter: util .props .Boolean ,
79
- drawer: util .props .Boolean ,
80
79
size: {
81
80
type: String ,
82
81
default: " " ,
83
82
validator : function (val ) {
84
83
return [" " , " xl" , " lg" , " sm" ].includes (val);
85
84
}
86
85
}, // modal-xl modal-lg modal-sm
87
- set: {
88
- ... util .props .set ,
89
- default: ' up' ,
90
- },
91
- labelledby: {
92
- ... util .props .String ,
93
- default: " Modal Dialog"
94
- },
95
86
},
96
87
data () {
97
88
return {
@@ -103,46 +94,11 @@ export default {
103
94
return this .show ? " show" : " " ;
104
95
},
105
96
documentClass : function () {
106
- let scrol = this .scrol ? " modal-dialog-scrollable" : " " ;
107
97
let size = this .size ? ` modal-${ this .size } ` : " " ;
108
- let set = ' '
109
- switch (this .set ) {
110
- case ' left' :
111
- set = ' w-25 ms-0 d-flex align-items-right'
112
- break ;
113
- case ' right' :
114
- set = ' w-25 me-0 d-flex align-items-right'
115
- break ;
116
- case ' center' :
117
- set = ' d-flex align-items-center'
118
- break ;
119
- case ' down' :
120
- set = ' d-flex align-items-end'
121
- break ;
122
- default :
123
- set = ' '
124
- }
125
- return ` ${ scrol} ${ set} ${ size} ` ;
126
- },
127
- documentStyle : function () {
128
- let set = ' '
129
- switch (this .set ) {
130
- case ' left' :
131
- set = this .drawer ? ' min-height: 100%' : ' '
132
- break ;
133
- case ' right' :
134
- set = this .drawer ? ' min-height: 100%' : ' '
135
- break ;
136
- case ' center' :
137
- set = this .drawer ? ' min-height: 100%; min-width: 100%' : ' min-height: 100%;'
138
- break ;
139
- case ' down' :
140
- set = this .drawer ? ' min-height: 100%; min-width: 100%' : ' min-height: 100%'
141
- break ;
142
- default :
143
- set = this .drawer ? ' min-width: 100%' : ' '
144
- }
145
- return set
98
+ let scrol = this .scrol ? " modal-dialog-scrollable" : " " ;
99
+ let center = this .center ? ' modal-dialog-centered' : ' '
100
+
101
+ return ` ${ scrol} ${ size} ${ center} ` ;
146
102
},
147
103
},
148
104
methods: {
0 commit comments