You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.6 KiB
57 lines
1.6 KiB
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import { createNamespace } from '../utils';
|
|
import { route, routeProps } from '../utils/router';
|
|
import { ChildrenMixin } from '../mixins/relation';
|
|
import Button from '../button';
|
|
|
|
var _createNamespace = createNamespace('goods-action-button'),
|
|
createComponent = _createNamespace[0],
|
|
bem = _createNamespace[1];
|
|
|
|
export default createComponent({
|
|
mixins: [ChildrenMixin('vanGoodsAction')],
|
|
props: _extends({}, routeProps, {
|
|
type: String,
|
|
text: String,
|
|
icon: String,
|
|
color: String,
|
|
loading: Boolean,
|
|
disabled: Boolean
|
|
}),
|
|
computed: {
|
|
isFirst: function isFirst() {
|
|
var prev = this.parent && this.parent.children[this.index - 1];
|
|
return !prev || prev.$options.name !== this.$options.name;
|
|
},
|
|
isLast: function isLast() {
|
|
var next = this.parent && this.parent.children[this.index + 1];
|
|
return !next || next.$options.name !== this.$options.name;
|
|
}
|
|
},
|
|
methods: {
|
|
onClick: function onClick(event) {
|
|
this.$emit('click', event);
|
|
route(this.$router, this);
|
|
}
|
|
},
|
|
render: function render() {
|
|
var h = arguments[0];
|
|
return h(Button, {
|
|
"class": bem([{
|
|
first: this.isFirst,
|
|
last: this.isLast
|
|
}, this.type]),
|
|
"attrs": {
|
|
"size": "large",
|
|
"type": this.type,
|
|
"icon": this.icon,
|
|
"color": this.color,
|
|
"loading": this.loading,
|
|
"disabled": this.disabled
|
|
},
|
|
"on": {
|
|
"click": this.onClick
|
|
}
|
|
}, [this.slots() || this.text]);
|
|
}
|
|
}); |