Blame view

src/mixins/link.js 1.32 KB
9932b935   梁灏   update
1
2
  import { oneOf } from '../utils/assist';
  
e77474de   梁灏   update
3
  export default {
9932b935   梁灏   update
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
      props: {
          to: {
              type: [Object, String]
          },
          replace: {
              type: Boolean,
              default: false
          },
          target: {
              type: String,
              validator (value) {
                  return oneOf(value, ['_blank', '_self', '_parent', '_top']);
              },
              default: '_self'
          }
      },
e77474de   梁灏   update
20
21
      computed: {
          linkUrl () {
32a17436   梁灏   Breadcrumb update...
22
23
              const type = typeof this.to;
              return type === 'string' ? this.to : null;
e77474de   梁灏   update
24
25
26
          }
      },
      methods: {
f9a6a467   梁灏   update Button
27
28
29
          handleClick (new_window = false) {
              if (new_window){
                  window.open(this.to);
e77474de   梁灏   update
30
              } else {
f9a6a467   梁灏   update Button
31
32
33
34
35
36
                  const isRoute = this.$router;
                  if (isRoute) {
                      this.replace ? this.$router.replace(this.to) : this.$router.push(this.to);
                  } else {
                      window.location.href = this.to;
                  }
e77474de   梁灏   update
37
              }
7d0b7384   梁灏   fixed #3484
38
          },
f9a6a467   梁灏   update Button
39
          handleCheckClick (event, new_window = false) {
7ff2f71a   zhigang.li   fix
40
              if (this.to) {
7d0b7384   梁灏   fixed #3484
41
42
43
44
                  if (this.target === '_blank') {
                      return false;
                  } else {
                      event.preventDefault();
f9a6a467   梁灏   update Button
45
                      this.handleClick(new_window);
7d0b7384   梁灏   fixed #3484
46
47
                  }
              }
e77474de   梁灏   update
48
49
          }
      }
576329cc   zhigang.li   use link.js for a...
50
  };