123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- <template>
- <div id="app">
- <div class="head">
- <div class="logo">
- <img
- style="height: 40px; margin-top: 10px"
- class="left nav-icon"
- src="https://x.cocorobo.cn/icons/logo.png"
- @click="goto()"
- />
- <!-- <span
- style="
- font-size: 28px;
- font-family: 'GT Walsheim Pro Trial Bold';
- font-weight: bold;
- color: #fff;
- "
- >CocoBlockly</span
- > -->
- </div>
- <div class="user_head" v-if="this.$store.state.userId">
- <span class="user_name">{{ this.$store.state.userName }}</span>
- <div>
- <i></i>
- <el-button type="text" style="color: white" @click="logout"
- >退出</el-button
- >
- </div>
- </div>
- </div>
- <div style="background: #e5e5e5; height: calc(100% - 88.5px); width: 100%">
- <!-- main 内容 -->
- <keep-alive v-if="$route.meta.keepAlive">
- <!-- 这里是会被缓存的视图组件 -->
- <router-view v-if="$route.meta.keepAlive" />
- </keep-alive>
- <!-- 这里是不被缓存的视图组件 -->
- <router-view v-if="!$route.meta.keepAlive" />
- </div>
- </div>
- </template>
- <script>
- export default {
- name: "App",
- created() {
- //在页面加载时读取sessionStorage里的状态信息
- if (sessionStorage.getItem("store")) {
- this.$store.replaceState(
- Object.assign(
- {},
- this.$store.state,
- JSON.parse(sessionStorage.getItem("store"))
- )
- );
- }
- //在页面刷新时将vuex里的信息保存到sessionStorage里
- window.addEventListener("beforeunload", () => {
- sessionStorage.setItem("store", JSON.stringify(this.$store.state));
- });
- this.login();
- },
- methods: {
- goto() {
- this.$router.push("/");
- },
- login() {
- //debugger;
- // console.log("1");
- var _this = this;
- _this.ajax
- .get(`${_this.$store.state.server}getcookieuserid`)
- .then((res) => {
- var userid = res.data[0][0].userid;
- // var userid = "4be5e344-ce1a-11e9-a839-028edca3b798";
- _this.$store.commit("update", ["userId", userid]);
- _this.ajax
- .get(
- `${_this.$store.state.edu}admin/userinfo/userinfoById/${userid}/`
- )
- .then((r) => {
- let data = r.data[0][0];
- console.log(data);
- _this.$store.commit("update", [
- "userName",
- data.alias || data.username,
- ]);
- });
- })
- .catch((err) => {
- // _this.props.history.push("/login");
- // window.alert(err.response.data)
- // window.location.href = "https://edu.cocorobo.cn/course/login?type=1";
- });
- },
- logout() {
- this.ajax
- .post(`${this.$store.state.server}logout`)
- .then((res) => {
- if (res.data) {
- window.location.href =
- "https://edu.cocorobo.cn/course/login?type=1";
- }
- })
- .catch((err) => {});
- },
- },
- };
- </script>
- <style>
- * {
- margin: 0;
- padding: 0;
- }
- body {
- font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
- "Microsoft YaHei", "微软雅黑", Arial, sans-serif;
- }
- #app {
- height: 100%;
- width: 100%;
- /* background: #e6eaf0; */
- /* min-width: 1380px; */
- /* background: #fff; */
- background: #e5e5e5;
- min-width: 1000px;
- }
- .head {
- height: 67.5px;
- width: 100%;
- background-color: #2c4fcd;
- display: flex;
- align-items: center;
- min-width: 1000px;
- }
- .logo {
- margin-left: 20px;
- cursor: pointer;
- }
- .user_head {
- display: flex;
- align-items: center;
- margin-left: auto;
- margin-right: 20px;
- font-size: 18px;
- font-weight: 600;
- }
- .user_head .user_name {
- color: #fff;
- margin-right: 10px;
- }
- .user_head div {
- display: flex;
- align-items: center;
- cursor: pointer;
- }
- .user_head i {
- background-image: url("./assets/exit.png");
- width: 25px;
- height: 25px;
- background-size: 100% 100%;
- margin-top: 1px;
- line-height: 25px;
- vertical-align: text-top;
- background-repeat: no-repeat;
- }
- </style>
|