Commit 383e96a86aee71ffd11da67328583ba258a14e93
1 parent
154bb822
Tabs add global setting, #5592
Showing
3 changed files
with
44 additions
and
4 deletions
Show diff stats
src/components/tabs/tabs.vue
... | ... | @@ -19,7 +19,7 @@ |
19 | 19 | <Icon v-if="item.icon !== ''" :type="item.icon"></Icon> |
20 | 20 | <Render v-if="item.labelType === 'function'" :render="item.label"></Render> |
21 | 21 | <template v-else>{{ item.label }}</template> |
22 | - <Icon v-if="showClose(item)" type="ios-close" @click.native.stop="handleRemove(index)"></Icon> | |
22 | + <Icon :class="[prefixCls + '-close']" v-if="showClose(item)" :type="arrowType" :custom="customArrowType" :size="arrowSize" @click.native.stop="handleRemove(index)"></Icon> | |
23 | 23 | </div> |
24 | 24 | </div> |
25 | 25 | </div> |
... | ... | @@ -169,6 +169,41 @@ |
169 | 169 | } |
170 | 170 | |
171 | 171 | return style; |
172 | + }, | |
173 | + // 3.4.0, global setting customArrow 有值时,arrow 赋值空 | |
174 | + arrowType () { | |
175 | + let type = 'ios-close'; | |
176 | + | |
177 | + if (this.$IVIEW) { | |
178 | + if (this.$IVIEW.tabs.customCloseIcon) { | |
179 | + type = ''; | |
180 | + } else if (this.$IVIEW.tabs.closeIcon) { | |
181 | + type = this.$IVIEW.tabs.closeIcon; | |
182 | + } | |
183 | + } | |
184 | + return type; | |
185 | + }, | |
186 | + // 3.4.0, global setting | |
187 | + customArrowType () { | |
188 | + let type = ''; | |
189 | + | |
190 | + if (this.$IVIEW) { | |
191 | + if (this.$IVIEW.tabs.customCloseIcon) { | |
192 | + type = this.$IVIEW.tabs.customCloseIcon; | |
193 | + } | |
194 | + } | |
195 | + return type; | |
196 | + }, | |
197 | + // 3.4.0, global setting | |
198 | + arrowSize () { | |
199 | + let size = ''; | |
200 | + | |
201 | + if (this.$IVIEW) { | |
202 | + if (this.$IVIEW.tabs.closeIconSize) { | |
203 | + size = this.$IVIEW.tabs.closeIconSize; | |
204 | + } | |
205 | + } | |
206 | + return size; | |
172 | 207 | } |
173 | 208 | }, |
174 | 209 | methods: { | ... | ... |
src/index.js
... | ... | @@ -211,6 +211,11 @@ const install = function(Vue, opts = {}) { |
211 | 211 | icon: opts.timePicker ? opts.timePicker.icon ? opts.timePicker.icon : '' : '', |
212 | 212 | customIcon: opts.timePicker ? opts.timePicker.customIcon ? opts.timePicker.customIcon : '' : '', |
213 | 213 | iconSize: opts.timePicker ? opts.timePicker.iconSize ? opts.timePicker.iconSize : '' : '' |
214 | + }, | |
215 | + tabs: { | |
216 | + closeIcon: opts.tabs ? opts.tabs.closeIcon ? opts.tabs.closeIcon : '' : '', | |
217 | + customCloseIcon: opts.tabs ? opts.tabs.customCloseIcon ? opts.tabs.customCloseIcon : '' : '', | |
218 | + closeIconSize: opts.tabs ? opts.tabs.closeIconSize ? opts.tabs.closeIconSize : '' : '' | |
214 | 219 | } |
215 | 220 | }; |
216 | 221 | ... | ... |
src/styles/components/tabs.less
... | ... | @@ -203,7 +203,7 @@ |
203 | 203 | &&-card > &-bar &-nav-wrap { |
204 | 204 | margin-bottom: 0; |
205 | 205 | } |
206 | - &&-card > &-bar &-tab .@{css-prefix-iconfont}-ios-close { | |
206 | + &&-card > &-bar &-tab &-close { | |
207 | 207 | width: 0; |
208 | 208 | height: 22px; |
209 | 209 | font-size: 22px; |
... | ... | @@ -221,8 +221,8 @@ |
221 | 221 | } |
222 | 222 | } |
223 | 223 | |
224 | - &&-card > &-bar &-tab-active .@{css-prefix-iconfont}-ios-close, | |
225 | - &&-card > &-bar &-tab:hover .@{css-prefix-iconfont}-ios-close { | |
224 | + &&-card > &-bar &-tab-active &-close, | |
225 | + &&-card > &-bar &-tab:hover &-close { | |
226 | 226 | width: 22px; |
227 | 227 | transform: translateZ(0); |
228 | 228 | margin-right: -6px; | ... | ... |