main.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import Vue from "vue";
  2. import App from "./App.vue";
  3. import router from "./router";
  4. import store from "./store";
  5. import "./registerServiceWorker";
  6. import "./plugins/iview.js";
  7. import "./styles/global.css";
  8. import axiosPlugin from "./utils/axios";
  9. import MainLayout from "@/components/MainLayout/MainLayout.vue";
  10. Vue.use(axiosPlugin);
  11. Vue.config.productionTip = process.env.NODE_ENV !== "production";
  12. Vue.component("main-layout", MainLayout);
  13. if (process.env.NODE_ENV !== "production") {
  14. // 测试vue cli打包的环境变量
  15. console.log("环境检查: process.env.NODE_ENV === " + process.env.NODE_ENV);
  16. console.log(
  17. "env.VUE_APP_TK_SERVER_URL === " + process.env.VUE_APP_TK_SERVER_URL
  18. );
  19. }
  20. if (process.env.NODE_ENV === "development") {
  21. console.log("非生产环境:准备自动登录");
  22. (async () => {
  23. if (window.localStorage.getItem("token")) {
  24. console.log("非生产环境: 已有token,自动登录");
  25. return;
  26. }
  27. console.log("非生产环境: 没有token,自动登录");
  28. const response = await fetch("/api/ecs_core/auth/login", {
  29. method: "POST",
  30. headers: {
  31. "Content-Type": "application/json;charset=UTF-8"
  32. },
  33. body: JSON.stringify({
  34. domain: process.env.VUE_APP_LOGIN_DOMAIN,
  35. accountValue: process.env.VUE_APP_LOGIN_ACCOUNT_VALUE,
  36. password: process.env.VUE_APP_LOGIN_PASSWORD,
  37. accountType: process.env.VUE_APP_LOGIN_ACCOUNTTYPE
  38. })
  39. });
  40. let data = await response.json();
  41. if (data.token) {
  42. window.localStorage.setItem("token", data.token);
  43. window.localStorage.setItem("key", data.key);
  44. window.localStorage.setItem("domain", process.env.VUE_APP_LOGIN_DOMAIN);
  45. const student = await (await fetch(
  46. "/api/ecs_core/student/getStudentInfoBySession",
  47. {
  48. method: "GET",
  49. headers: {
  50. "Content-Type": "application/json;charset=UTF-8",
  51. key: data.key,
  52. token: data.token
  53. }
  54. }
  55. )).json();
  56. const user = { ...data, ...student };
  57. window.localStorage.setItem("user-for-dev", JSON.stringify(user));
  58. } else {
  59. console.log(data.desc);
  60. }
  61. })();
  62. }
  63. new Vue({
  64. router,
  65. store,
  66. render: h => h(App)
  67. }).$mount("#app");