lsc 1 anno fa
parent
commit
b228321888
2 ha cambiato i file con 233 aggiunte e 0 eliminazioni
  1. 224 0
      src/components/pages/inviteLoginSZ/inviteLogin.vue
  2. 9 0
      src/router/index.js

+ 224 - 0
src/components/pages/inviteLoginSZ/inviteLogin.vue

@@ -0,0 +1,224 @@
+<template>
+    <div class="container" v-loading="loading">
+        <div class="i_box" v-if="steps == 1">
+            <div class="i_box_top">
+                <div><span>请输入随机码进入项目课程</span></div>
+                <div><span>账号登陆</span></div>
+                <img src="../../../assets/icon/inviteLogin/password.png" alt="">
+            </div>
+            <div class="i_box_login">
+                <el-input v-model="icode" placeholder="请输入随机码" class="input"></el-input>
+                <div @click="nextSteps" class="button">确 定</div>
+            </div>
+        </div>
+        <div class="i_box" v-if="steps == 2">
+            <div class="i_box_top">
+                <div><span>{{ res.school }}</span></div>
+                <div><span>欢迎回来!</span></div>
+                <img src="../../../assets/icon/inviteLogin/school.png" style="bottom: -40px;" alt="">
+            </div>
+            <div class="i_box_login2">
+                <div v-for="item in classJuri" @click="login(item.userid,(item.name ? item.name : item.username))" :key="item.userid">{{ item.name ? item.name :
+                    item.username }}</div>
+                <div v-if="!classJuri.length" class="none">此班级暂无学生</div>
+                <!-- <el-select v-model="userid" placeholder="选择姓名" filterable class="select">
+                    <el-option v-for="item in classJuri" :key="item.userid" :label="item.name ? item.name : item.username"
+                        :value="item.userid">
+                    </el-option>
+                </el-select>
+
+                <div @click="login" class="button">登 录</div> -->
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            steps: 1,
+            icode: "",
+            userid: "",
+            options: [],
+            loading: false,
+            res: {},
+            classJuri: [],
+            code: this.$route.query.code,
+            courseId:""
+        }
+    },
+    methods: {
+        //       selectSnameByCid
+        nextSteps() {
+            // let reg = /^[A-Za-z0-9]{2,}$/
+            // let reg = /^[0-9]{2,}$/
+            let reg = /^\d+$/
+            if (!reg.test(this.icode)) {
+                this.$message.error("请正确填写随机码")
+                return;
+            }
+            let params = {
+                code: this.icode,
+                oid: this.code,
+            };
+            this.loading = true
+            this.ajax
+                .get(this.$store.state.api + "selectCourseByIc2", params)
+                .then(res => {
+                    this.loading = false;
+                    if (res.data.length && res.data[0].length) {
+                        this.res = res.data[0][0]
+                        this.courseId = res.data[0][0].courseId
+                        this.getClass(res.data[0][0].classid)
+                    } else {
+                        this.$message.error("不存在此随机码")
+                    }
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
+        getClass(classId) {
+            let params = {
+                cid: classId,
+            };
+            this.ajax
+                .get(this.$store.state.api + "selectSnameByCid", params)
+                .then((res) => {
+                    this.classJuri = res.data[0];
+                    this.steps = 2
+                })
+                .catch((err) => {
+                    console.error(err);
+                });
+        },
+        login(userid,username) {
+            let courseid = this.courseId
+            this.$confirm(`确定登录${username}的账号吗?`, "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    window.parent.postMessage(
+                        {
+                            tools: "inviteLogin",
+                            userid: userid,
+                            courseId: courseid
+                        },
+                        "*"
+                    );
+                })
+                .catch(() => { });
+
+        }
+    },
+}
+</script>
+
+<style scoped>
+.container {
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+}
+
+.i_box {
+    height: 100%;
+    width: 100%;
+}
+
+.i_box_top {
+    height: 145px;
+    width: 100%;
+    overflow: hidden;
+    position: relative;
+    background: #fff;
+    box-sizing: border-box;
+    padding: 20px;
+}
+
+.i_box_top>div:nth-child(1) {
+    color: rgb(147, 147, 147);
+}
+
+.i_box_top>div:nth-child(2) {
+    font-size: 28px;
+    color: rgb(78, 138, 218);
+    margin-top: 5px;
+}
+
+.i_box_top>img {
+    position: absolute;
+    right: 30px;
+    bottom: -60px;
+    width: 150px;
+}
+
+.i_box_login {
+    height: calc(100% - 145px);
+    width: 100%;
+    background: linear-gradient(90deg, #477cd7, #65b9fc);
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    padding: 50px 20px;
+    box-sizing: border-box;
+    align-content: flex-start;
+}
+
+.i_box_login2 {
+    height: calc(100% - 145px);
+    background: linear-gradient(90deg, #477cd7, #65b9fc);
+    width: 100%;
+    display: flex;
+    flex-wrap: wrap;
+    overflow: auto;
+    padding-bottom: 10px;
+    box-sizing: border-box;
+    align-content: flex-start;
+}
+
+.i_box_login2 div{
+    cursor: pointer;
+    width: 80px;
+    text-align: center;
+    height: 30px;
+    line-height: 30px;
+    padding: 0 5px;
+    overflow: hidden;
+    background: rgb(225, 237, 255);
+    margin: 10px 9px 0;
+    color: rgb(37 124 255);
+    border-radius: 5px;
+    box-sizing: border-box;
+    text-overflow: ellipsis;
+}
+
+.i_box_login .input {}
+
+.i_box_login .select {
+    width: 100%;
+}
+
+.i_box_login .button {
+    margin-top: 30px;
+    background: rgb(100, 100, 100);
+    cursor: pointer;
+    color: #fff;
+    padding: 10px 50px;
+    border-radius: 5px;
+}
+
+.none{
+    width: 100% !important;
+    height: 100% !important;
+    background: unset !important;
+    color: #fff !important;
+    display: flex !important;
+    align-items: center !important;
+    justify-content: center !important;
+    margin: 0 !important;
+}
+</style>

+ 9 - 0
src/router/index.js

@@ -87,6 +87,7 @@ import courseTypeAna from '@/components/pages/myReport/components/courseTypeAna'
 import toolTypeAna from '@/components/pages/myReport/components/toolTypeAna'
 import mrEva from '@/components/pages/myReport/components/mrEva'
 import inviteLogin from '@/components/pages/inviteLogin/inviteLogin'
+import inviteLoginSZ from '@/components/pages/inviteLoginSZ/inviteLogin'
 import stReport from '@/components/pages/components/stReport'
 import classReport from '@/components/pages/components/classReport'
 import courseReport from '@/components/pages/components/courseReport'
@@ -772,6 +773,14 @@ export default new Router({
                 requireAuth: '' // 不需要鉴权
             }
         },
+        {
+            path: '/inviteLoginSZ',
+            name: 'inviteLoginSZ',
+            component: inviteLoginSZ,
+            meta: {
+                requireAuth: '' // 不需要鉴权
+            }
+        },
         {
             path: '/stReport',
             name: 'stReport',