Commit f4273043c248a64a75846d0f34d4f5e24ab21060
1 parent
9edded49
update $Modal style
Showing
3 changed files
with
70 additions
and
73 deletions
Show diff stats
examples/routers/modal.vue
1 | 1 | <template> |
2 | 2 | <div> |
3 | - <Button type="primary" @click="modal1 = true">Display dialog box</Button> | |
4 | - <Button type="primary" @click="modal2 = true">Display dialog box</Button> | |
5 | - <Button @click="hc">Click Me</Button> | |
6 | - <Modal | |
7 | - v-model="modal1" | |
8 | - title="Common Modal dialog box title" | |
9 | - dragable | |
10 | - @on-ok="ok" | |
11 | - @on-cancel="cancel"> | |
12 | - <p>Content of dialog</p> | |
13 | - <p>Content of dialog</p> | |
14 | - <p>Content of dialog</p> | |
15 | - </Modal> | |
16 | - <Modal | |
17 | - v-model="modal2" | |
18 | - title="Common Modal dialog box title2" | |
19 | - dragable | |
20 | - @on-ok="ok" | |
21 | - @on-cancel="cancel"> | |
22 | - <p>Content of dialog</p> | |
23 | - <p>Content of dialog</p> | |
24 | - <p>Content of dialog</p> | |
25 | - </Modal> | |
3 | + <Button @click="instance('info')">Info</Button> | |
4 | + <Button @click="instance('success')">Success</Button> | |
5 | + <Button @click="instance('warning')">Warning</Button> | |
6 | + <Button @click="instance('error')">Error</Button> | |
26 | 7 | </div> |
27 | 8 | </template> |
28 | 9 | <script> |
29 | 10 | export default { |
30 | - data () { | |
31 | - return { | |
32 | - modal1: false, | |
33 | - modal2: false | |
34 | - } | |
35 | - }, | |
36 | 11 | methods: { |
37 | - ok () { | |
38 | - this.$Message.info('Clicked ok'); | |
39 | - }, | |
40 | - cancel () { | |
41 | - this.$Message.info('Clicked cancel'); | |
42 | - }, | |
43 | - hc () { | |
44 | - this.$Message.info('Hello'); | |
12 | + instance (type) { | |
13 | + const title = '对话框的标题'; | |
14 | + const content = '<p>一些对话框内容</p><p>一些对话框内容</p>'; | |
15 | + switch (type) { | |
16 | + case 'info': | |
17 | + this.$Modal.info({ | |
18 | + title: title, | |
19 | + content: content | |
20 | + }); | |
21 | + break; | |
22 | + case 'success': | |
23 | + this.$Modal.success({ | |
24 | + title: title, | |
25 | + content: content | |
26 | + }); | |
27 | + break; | |
28 | + case 'warning': | |
29 | + this.$Modal.warning({ | |
30 | + title: title, | |
31 | + content: content | |
32 | + }); | |
33 | + break; | |
34 | + case 'error': | |
35 | + this.$Modal.error({ | |
36 | + title: title, | |
37 | + content: content | |
38 | + }); | |
39 | + break; | |
40 | + } | |
45 | 41 | } |
46 | 42 | } |
47 | 43 | } | ... | ... |
src/components/modal/confirm.js
... | ... | @@ -64,13 +64,6 @@ Modal.newInstance = properties => { |
64 | 64 | } |
65 | 65 | }, [ |
66 | 66 | h('div', { |
67 | - class: this.iconTypeCls | |
68 | - }, [ | |
69 | - h('i', { | |
70 | - class: this.iconNameCls | |
71 | - }) | |
72 | - ]), | |
73 | - h('div', { | |
74 | 67 | domProps: { |
75 | 68 | innerHTML: this.body |
76 | 69 | } |
... | ... | @@ -104,6 +97,13 @@ Modal.newInstance = properties => { |
104 | 97 | } |
105 | 98 | }, [ |
106 | 99 | h('div', { |
100 | + class: this.iconTypeCls | |
101 | + }, [ | |
102 | + h('i', { | |
103 | + class: this.iconNameCls | |
104 | + }) | |
105 | + ]), | |
106 | + h('div', { | |
107 | 107 | attrs: { |
108 | 108 | class: `${prefixCls}-head-title` |
109 | 109 | }, |
... | ... | @@ -124,8 +124,8 @@ Modal.newInstance = properties => { |
124 | 124 | computed: { |
125 | 125 | iconTypeCls () { |
126 | 126 | return [ |
127 | - `${prefixCls}-body-icon`, | |
128 | - `${prefixCls}-body-icon-${this.iconType}` | |
127 | + `${prefixCls}-head-icon`, | |
128 | + `${prefixCls}-head-icon-${this.iconType}` | |
129 | 129 | ]; |
130 | 130 | }, |
131 | 131 | iconNameCls () { | ... | ... |
src/styles/components/modal.less
... | ... | @@ -138,33 +138,13 @@ |
138 | 138 | .@{confirm-prefix-cls} { |
139 | 139 | padding: 0 4px; |
140 | 140 | &-head { |
141 | - | |
142 | - &-title { | |
143 | - display: inline-block; | |
144 | - font-size: @font-size-base; | |
145 | - color: @title-color; | |
146 | - font-weight: 700; | |
147 | - } | |
148 | - } | |
149 | - | |
150 | - &-body{ | |
151 | - margin-top: 6px; | |
152 | - padding-left: 48px; | |
153 | - padding-top: 18px; | |
154 | - font-size: @font-size-small; | |
155 | - color: @text-color; | |
156 | - position: relative; | |
157 | - | |
158 | - &-render{ | |
159 | - margin: 0; | |
160 | - padding: 0; | |
161 | - } | |
162 | - | |
141 | + padding: 0 12px 0 0; | |
163 | 142 | &-icon { |
164 | - font-size: 36px; | |
165 | - position: absolute; | |
166 | - top: 0; | |
167 | - left: 0; | |
143 | + display: inline-block; | |
144 | + font-size: 28px; | |
145 | + vertical-align: middle; | |
146 | + position: relative; | |
147 | + top: 3px; | |
168 | 148 | |
169 | 149 | &-info { |
170 | 150 | color: @primary-color; |
... | ... | @@ -182,10 +162,31 @@ |
182 | 162 | color: @warning-color; |
183 | 163 | } |
184 | 164 | } |
165 | + | |
166 | + &-title { | |
167 | + display: inline-block; | |
168 | + vertical-align: middle; | |
169 | + margin-left: 12px; | |
170 | + font-size: @font-size-large; | |
171 | + color: @title-color; | |
172 | + font-weight: 700; | |
173 | + } | |
174 | + } | |
175 | + | |
176 | + &-body{ | |
177 | + padding-left: 42px; | |
178 | + font-size: @font-size-base; | |
179 | + color: @text-color; | |
180 | + position: relative; | |
181 | + | |
182 | + &-render{ | |
183 | + margin: 0; | |
184 | + padding: 0; | |
185 | + } | |
185 | 186 | } |
186 | 187 | |
187 | 188 | &-footer{ |
188 | - margin-top: 40px; | |
189 | + margin-top: 20px; | |
189 | 190 | text-align: right; |
190 | 191 | |
191 | 192 | button + button { | ... | ... |