update Button

This commit is contained in:
梁灏 2018-07-01 11:33:33 +08:00
parent e7fc76d850
commit f9a6a467a6
2 changed files with 17 additions and 10 deletions

View file

@ -5,7 +5,9 @@
:disabled="disabled"
:href="linkUrl"
:target="target"
@click="handleClickLink">
@click.exact="handleClickLink($event, false)"
@click.ctrl="handleClickLink($event, true)"
@click.meta="handleClickLink($event, true)">
<Icon class="ivu-load-loop" type="ios-loading" v-if="loading"></Icon>
<Icon :type="icon" :custom="customIcon" v-if="(icon || customIcon) && !loading"></Icon>
<span v-if="showSlot" ref="slot"><slot></slot></span>
@ -99,10 +101,11 @@
}
},
methods: {
handleClickLink (event) {
// Ctrl or CMD and click, open in new window when use `to`
handleClickLink (event, new_window) {
this.$emit('click', event);
this.handleCheckClick(event);
this.handleCheckClick(event, new_window);
}
},
mounted () {

View file

@ -24,21 +24,25 @@ export default {
}
},
methods: {
handleClick () {
handleClick (new_window = false) {
if (new_window){
window.open(this.to);
} else {
const isRoute = this.$router;
if (isRoute) {
this.replace ? this.$router.replace(this.to) : this.$router.push(this.to);
} else {
window.location.href = this.to;
}
}
},
handleCheckClick (event) {
handleCheckClick (event, new_window = false) {
if (this.to) {
if (this.target === '_blank') {
return false;
} else {
event.preventDefault();
this.handleClick();
this.handleClick(new_window);
}
}
}