Commit f9a6a467a60a4f28b0ba34a778c687b605d3b8eb

Authored by 梁灏
1 parent e7fc76d8

update Button

Showing 2 changed files with 17 additions and 10 deletions   Show diff stats
src/components/button/button.vue
... ... @@ -5,7 +5,9 @@
5 5 :disabled="disabled"
6 6 :href="linkUrl"
7 7 :target="target"
8   - @click="handleClickLink">
  8 + @click.exact="handleClickLink($event, false)"
  9 + @click.ctrl="handleClickLink($event, true)"
  10 + @click.meta="handleClickLink($event, true)">
9 11 <Icon class="ivu-load-loop" type="ios-loading" v-if="loading"></Icon>
10 12 <Icon :type="icon" :custom="customIcon" v-if="(icon || customIcon) && !loading"></Icon>
11 13 <span v-if="showSlot" ref="slot"><slot></slot></span>
... ... @@ -99,10 +101,11 @@
99 101 }
100 102 },
101 103 methods: {
102   - handleClickLink (event) {
  104 + // Ctrl or CMD and click, open in new window when use `to`
  105 + handleClickLink (event, new_window) {
103 106 this.$emit('click', event);
104 107  
105   - this.handleCheckClick(event);
  108 + this.handleCheckClick(event, new_window);
106 109 }
107 110 },
108 111 mounted () {
... ...
src/mixins/link.js
... ... @@ -24,21 +24,25 @@ export default {
24 24 }
25 25 },
26 26 methods: {
27   - handleClick () {
28   - const isRoute = this.$router;
29   - if (isRoute) {
30   - this.replace ? this.$router.replace(this.to) : this.$router.push(this.to);
  27 + handleClick (new_window = false) {
  28 + if (new_window){
  29 + window.open(this.to);
31 30 } else {
32   - window.location.href = this.to;
  31 + const isRoute = this.$router;
  32 + if (isRoute) {
  33 + this.replace ? this.$router.replace(this.to) : this.$router.push(this.to);
  34 + } else {
  35 + window.location.href = this.to;
  36 + }
33 37 }
34 38 },
35   - handleCheckClick (event) {
  39 + handleCheckClick (event, new_window = false) {
36 40 if (this.to) {
37 41 if (this.target === '_blank') {
38 42 return false;
39 43 } else {
40 44 event.preventDefault();
41   - this.handleClick();
  45 + this.handleClick(new_window);
42 46 }
43 47 }
44 48 }
... ...