first
This commit is contained in:
68
node_modules/vant/es/badge/index.js
generated
vendored
Normal file
68
node_modules/vant/es/badge/index.js
generated
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
import { isDef, createNamespace } from '../utils';
|
||||
import { isNumeric } from '../utils/validate/number';
|
||||
|
||||
var _createNamespace = createNamespace('badge'),
|
||||
createComponent = _createNamespace[0],
|
||||
bem = _createNamespace[1];
|
||||
|
||||
export default createComponent({
|
||||
props: {
|
||||
dot: Boolean,
|
||||
max: [Number, String],
|
||||
color: String,
|
||||
content: [Number, String],
|
||||
tag: {
|
||||
type: String,
|
||||
default: 'div'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
hasContent: function hasContent() {
|
||||
return !!(this.$scopedSlots.content || isDef(this.content) && this.content !== '');
|
||||
},
|
||||
renderContent: function renderContent() {
|
||||
var dot = this.dot,
|
||||
max = this.max,
|
||||
content = this.content;
|
||||
|
||||
if (!dot && this.hasContent()) {
|
||||
if (this.$scopedSlots.content) {
|
||||
return this.$scopedSlots.content();
|
||||
}
|
||||
|
||||
if (isDef(max) && isNumeric(content) && +content > max) {
|
||||
return max + "+";
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
},
|
||||
renderBadge: function renderBadge() {
|
||||
var h = this.$createElement;
|
||||
|
||||
if (this.hasContent() || this.dot) {
|
||||
return h("div", {
|
||||
"class": bem({
|
||||
dot: this.dot,
|
||||
fixed: !!this.$scopedSlots.default
|
||||
}),
|
||||
"style": {
|
||||
background: this.color
|
||||
}
|
||||
}, [this.renderContent()]);
|
||||
}
|
||||
}
|
||||
},
|
||||
render: function render() {
|
||||
var h = arguments[0];
|
||||
|
||||
if (this.$scopedSlots.default) {
|
||||
var tag = this.tag;
|
||||
return h(tag, {
|
||||
"class": bem('wrapper')
|
||||
}, [this.$scopedSlots.default(), this.renderBadge()]);
|
||||
}
|
||||
|
||||
return this.renderBadge();
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user