loginFilter.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <template>
  2. <!-- 授权页面 -->
  3. <view></view>
  4. </template>
  5. <script>
  6. import { mapState, mapMutations } from "vuex"; //引入vuex存储idnum与name
  7. export default {
  8. data() {
  9. return {
  10. homeUrl: "https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement",
  11. };
  12. },
  13. computed: mapState(["position", "userData"]),
  14. onLoad(options) {
  15. //拉取微校授权获取cardNumber
  16. this.loginFilter();
  17. },
  18. methods: {
  19. ...mapMutations(["getPosition", "getUserData"]),
  20. // 授权获取信息
  21. loginFilter() {
  22. let cardNumber = this.getQueryString("cardNumber");
  23. let name = this.getQueryString("name");
  24. let error = this.getQueryString("error");
  25. let errorMsg = this.getQueryString("errorMsg");
  26. let homeWeb = `https://open.wecard.qq.com/connect/oauth/authorize?app_key=8C41E2FECF2E9925&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=${this.homeUrl}/getUserInfo&state=1`;
  27. if (error) {
  28. uni.showToast({
  29. title: errorMsg,
  30. icon: "error",
  31. mask: true,
  32. duration: 1000,
  33. });
  34. setTimeout(() => {
  35. uni.navigateTo({
  36. url: "/pages/index/index",
  37. });
  38. }, 1000);
  39. } else if (!cardNumber) {
  40. window.location.href = homeWeb;
  41. } else {
  42. localStorage.setItem("cardNumber", cardNumber);
  43. this.$store.state.name = name;
  44. this.$store.state.idnum = cardNumber;
  45. this.judgeGrade();
  46. }
  47. },
  48. //判断老生无权限
  49. judgeGrade() {
  50. let cardNumber = localStorage.getItem("cardNumber");
  51. let date = new Date();
  52. let year = date.getFullYear().toString();
  53. let grade = this.getQueryString("grade");
  54. if (grade == year && cardNumber) {
  55. this.judgeWrite();
  56. } else {
  57. uni.showToast({
  58. title: "无权限,仅对新生请退出",
  59. icon: "error",
  60. mask: true,
  61. duration: 120000,
  62. });
  63. }
  64. },
  65. //判断是否填写问卷
  66. judgeWrite() {
  67. let cardNumber = localStorage.getItem("cardNumber");
  68. let url = this.homeUrl + "/freshmanSurveyDoneByIdnum";
  69. uni.request({
  70. url: url,
  71. data: {
  72. idnum: cardNumber,
  73. },
  74. header: {
  75. Accept: "application/json",
  76. "Content-Type": " application/x-www-form-urlencoded;charset=utf-8",
  77. "X-Requested-With": "XMLHttpRequest",
  78. },
  79. method: "GET",
  80. sslVerify: true,
  81. success: ({ data, statusCode, header }) => {
  82. // console.log(data);
  83. if (data.result === "success") {
  84. uni.navigateTo({
  85. url: "/pages/index/index",
  86. });
  87. } else {
  88. uni.navigateTo({ url: "/pages/faceSearch/faceSea" });
  89. }
  90. },
  91. fail: (error) => {},
  92. });
  93. },
  94. //获取当前URL指定参数
  95. getQueryString(name) {
  96. let url = window.location.href; // 获取URL
  97. let pattern = new RegExp("[\?\&]" + name + "=([^\&]+)", "i"); // 正则匹配URL
  98. let matcher = pattern.exec(url);
  99. if (matcher == null || matcher.length < 1) {
  100. return false;
  101. }
  102. return decodeURIComponent(matcher[1]); // 输出指定的参数值 中文也可以
  103. },
  104. },
  105. };
  106. </script>
  107. <style lang="less"></style>