index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import user from '../../user/index';
  2. import router from './router';
  3. import targetFunction from './function';
  4. export default {
  5. methods:{
  6. trigger: function (item,login=false) {
  7. if (item && item.trigger) {
  8. let resultData;
  9. if (typeof item.trigger === 'string' || (item.trigger.name || item.trigger.path || item.trigger.params)) {
  10. resultData = {
  11. target: item.trigger.target || item.trigger,
  12. mode: 'router'
  13. };
  14. }
  15. else {
  16. resultData = item.trigger;
  17. }
  18. let resultLogin = resultData.login !== undefined ? resultData.login : login;
  19. if (resultLogin && !user.isLogin()) {
  20. return this.$router.navigateTo('login');
  21. }
  22. if (this.triggers[resultData.mode]) {
  23. return this.triggers[resultData.mode].trigger(resultData.target, this, item);
  24. }
  25. }
  26. }
  27. },
  28. created(){
  29. this.triggers = {
  30. router,
  31. function:targetFunction
  32. }
  33. }
  34. }