|
1 | 1 | <template>
|
2 |
| - <div class="msgbox" v-if="rendered" v-show="visible" transition="pop-bounce"> |
3 |
| - <div class="msgbox-header" v-if="title !== ''"> |
4 |
| - <div class="msgbox-title">{{ title }}</div> |
5 |
| - <!--<div class="msgbox-close d-icon icon-close" @click="handleAction('close')"></div>--> |
6 |
| - </div> |
7 |
| - <div class="msgbox-content" v-if="message !== ''"> |
8 |
| - <div class="msgbox-status d-icon {{ type ? 'icon-' + type : '' }}"></div> |
9 |
| - <div class="msgbox-message"><p>{{ message }}</p></div> |
10 |
| - <div class="msgbox-input" v-show="showInput"> |
11 |
| - <input type="text" v-model="inputValue" :placeholder="inputPlaceholder" /> |
12 |
| - <div class="msgbox-errormsg" :style="{ visibility: !!editorErrorMessage ? 'visible' : 'hidden' }">{{editorErrorMessage}}</div> |
| 2 | + <div class="msgbox-wrapper"> |
| 3 | + <div class="msgbox" v-if="rendered" v-show="visible" transition="pop-bounce" v-el:box>{{ boxHeight }} |
| 4 | + <div class="msgbox-header" v-if="title !== ''"> |
| 5 | + <div class="msgbox-title">{{ title }}</div> |
| 6 | + <!--<div class="msgbox-close d-icon icon-close" @click="handleAction('close')"></div>--> |
| 7 | + </div> |
| 8 | + <div class="msgbox-content" v-if="message !== ''"> |
| 9 | + <div class="msgbox-status d-icon {{ type ? 'icon-' + type : '' }}"></div> |
| 10 | + <div class="msgbox-message"><p>{{ message }}</p></div> |
| 11 | + <div class="msgbox-input" v-show="showInput"> |
| 12 | + <input type="text" v-model="inputValue" :placeholder="inputPlaceholder" /> |
| 13 | + <div class="msgbox-errormsg" :style="{ visibility: !!editorErrorMessage ? 'visible' : 'hidden' }">{{editorErrorMessage}}</div> |
| 14 | + </div> |
| 15 | + </div> |
| 16 | + <div class="msgbox-btns" :class="{ 'msgbox-btns-reverse': confirmButtonPosition === 'left' }"> |
| 17 | + <button class="{{ cancelButtonClasses }}" v-show="showCancelButton" @click="handleAction('cancel')">{{ cancelButtonText }}</button> |
| 18 | + <button class="{{ confirmButtonClasses }}" v-show="showConfirmButton" @click="handleAction('confirm')">{{ confirmButtonText }}</button> |
13 | 19 | </div>
|
14 |
| - </div> |
15 |
| - <div class="msgbox-btns" :class="{ 'msgbox-btns-reverse': confirmButtonPosition === 'left' }"> |
16 |
| - <button class="{{ cancelButtonClasses }}" v-show="showCancelButton" @click="handleAction('cancel')">{{ cancelButtonText }}</button> |
17 |
| - <button class="{{ confirmButtonClasses }}" v-show="showConfirmButton" @click="handleAction('confirm')">{{ confirmButtonText }}</button> |
18 | 20 | </div>
|
19 | 21 | </div>
|
20 | 22 | </template>
|
21 | 23 |
|
22 | 24 | <style>
|
| 25 | + .msgbox-wrapper { |
| 26 | + display: flex; |
| 27 | + justify-content: center; |
| 28 | + align-items: center; |
| 29 | + top: 0; |
| 30 | + right: 0; |
| 31 | + bottom: 0; |
| 32 | + left: 0; |
| 33 | + background-color: transparent; |
| 34 | + } |
| 35 | +
|
23 | 36 | .msgbox {
|
24 |
| - position: fixed; |
25 | 37 | background-color: #fff;
|
26 |
| - width: 90%; |
| 38 | + width: 85%; |
27 | 39 | border-radius: 3px;
|
28 | 40 | font-size: 16px;
|
29 | 41 | -webkit-user-select: none;
|
30 |
| - left: 50%; |
31 |
| - top: 50%; |
32 |
| - -webkit-transform: translate(-50%, -50%); |
33 |
| - transform: translate(-50%, -50%); |
| 42 | + overflow: hidden; |
34 | 43 | }
|
35 | 44 |
|
36 | 45 | .msgbox-header{
|
|
165 | 174 |
|
166 | 175 | @-webkit-keyframes pop-bounce-in {
|
167 | 176 | 0% {
|
168 |
| - -webkit-transform: translate(-50%, -50%) scale(0.8); |
169 |
| - transform: translate(-50%, -50%) scale(0.8); |
| 177 | + -webkit-transform: scale(0.8); |
| 178 | + transform: scale(0.8); |
170 | 179 | }
|
171 | 180 | 100% {
|
172 |
| - -webkit-transform: translate(-50%, -50%) scale(1); |
173 |
| - transform: translate(-50%, -50%) scale(1); |
| 181 | + -webkit-transform: scale(1); |
| 182 | + transform: scale(1); |
174 | 183 | }
|
175 | 184 | }
|
176 | 185 |
|
177 | 186 | @keyframes pop-bounce-in {
|
178 | 187 | 0% {
|
179 |
| - -webkit-transform: translate(-50%, -50%) scale(0.8); |
180 |
| - transform: translate(-50%, -50%) scale(0.8); |
| 188 | + -webkit-transform: scale(0.8); |
| 189 | + transform: scale(0.8); |
181 | 190 | }
|
182 | 191 | 100% {
|
183 |
| - -webkit-transform: translate(-50%, -50%) scale(1); |
184 |
| - transform: translate(-50%, -50%) scale(1); |
| 192 | + -webkit-transform: scale(1); |
| 193 | + transform: scale(1); |
185 | 194 | }
|
186 | 195 | }
|
187 | 196 |
|
188 | 197 | @-webkit-keyframes pop-bounce-out {
|
189 | 198 | 0% {
|
190 |
| - -webkit-transform: translate(-50%, -50%) scale(1); |
191 |
| - transform: translate(-50%, -50%) scale(1); |
| 199 | + -webkit-transform: scale(1); |
| 200 | + transform: scale(1); |
192 | 201 | }
|
193 | 202 | 100% {
|
194 |
| - -webkit-transform: translate(-50%, -50%) scale(0.7); |
195 |
| - transform: translate(-50%, -50%) scale(0.7); |
| 203 | + -webkit-transform: scale(0.7); |
| 204 | + transform: scale(0.7); |
196 | 205 | }
|
197 | 206 | }
|
198 | 207 |
|
199 | 208 | @keyframes pop-bounce-out {
|
200 | 209 | 0% {
|
201 |
| - -webkit-transform: translate(-50%, -50%) scale(1); |
202 |
| - transform: translate(-50%, -50%) scale(1); |
| 210 | + -webkit-transform: scale(1); |
| 211 | + transform: scale(1); |
203 | 212 | }
|
204 | 213 | 100% {
|
205 |
| - -webkit-transform: translate(-50%, -50%) scale(0.7); |
206 |
| - transform: translate(-50%, -50%) scale(0.7); |
| 214 | + -webkit-transform: scale(0.7); |
| 215 | + transform: scale(0.7); |
207 | 216 | }
|
208 | 217 | }
|
209 | 218 | </style>
|
|
236 | 245 | return classes;
|
237 | 246 | },
|
238 | 247 | cancelButtonClasses() {
|
239 |
| - var classes = 'msgbox-btn msgbox-cancel ' + this.confirmButtonClass; |
| 248 | + var classes = 'msgbox-btn msgbox-cancel ' + this.cancelButtonClass; |
240 | 249 | if (this.cancelButtonHighlight) {
|
241 | 250 | classes += ' msgbox-cancel-highlight';
|
242 | 251 | }
|
|
284 | 293 | if (this.$type === 'prompt') {
|
285 | 294 | this.validate();
|
286 | 295 | }
|
| 296 | + }, |
| 297 | +
|
| 298 | + visible(val) { |
| 299 | + setTimeout(() => { |
| 300 | + this.$el.style.position = val ? 'absolute' : 'static'; |
| 301 | + }, 220); |
287 | 302 | }
|
288 | 303 | },
|
289 | 304 |
|
|
0 commit comments