浏览代码

Merge branch 'master' of https://git.cocorobo.cn/CocoRoboLabs/pbl-teacher-table

zengyicheng 2 年之前
父节点
当前提交
1a4fa46cb4

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.65c940682782395bfcb5acfa5fd7e5f1.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.748f10c1abb0af104b93.js></script><script type=text/javascript src=./static/js/app.c7197d3352af089b5030.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.fab9242307bcccced47b9b2d84e11972.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.748f10c1abb0af104b93.js></script><script type=text/javascript src=./static/js/app.d83bd0119da7cdbde557.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.65c940682782395bfcb5acfa5fd7e5f1.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.65c940682782395bfcb5acfa5fd7e5f1.css.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.fab9242307bcccced47b9b2d84e11972.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.fab9242307bcccced47b9b2d84e11972.css.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.c7197d3352af089b5030.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.d83bd0119da7cdbde557.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.d83bd0119da7cdbde557.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/manifest.3512a67a6213c2df4180.js.map


二进制
src/assets/icon/inviteLogin/password.png


二进制
src/assets/icon/inviteLogin/school.png


文件差异内容过多而无法显示
+ 330 - 653
src/components/pages/addCourse.vue


+ 176 - 0
src/components/pages/inviteLogin/inviteLogin.vue

@@ -0,0 +1,176 @@
+<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_login">
+
+                <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
+        }
+    },
+    methods: {
+        //       selectSnameByCid
+        nextSteps() {
+            let reg = /^[A-Za-z0-9]{4,}$/
+            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 + "selectCourseByIc", params)
+                .then(res => {
+                    this.loading = false;
+                    if (res.data.length && res.data[0].length) {
+                        this.res = res.data[0][0]
+                        let _inviteCode = JSON.parse(res.data[0][0].inviteCode)
+                        for(var i = 0;i<_inviteCode.length;i++){
+                            if(_inviteCode[i].ic == this.icode){
+                                this.getClass(_inviteCode[i].cid)
+                            }
+                        }
+                    } 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() {
+            if(!this.userid){
+                this.$message.error("请选择姓名")
+                return;
+            }
+            window.parent.postMessage(
+                {
+                    tools: "inviteLogin",
+                    userid: this.userid,
+                },
+                "*"
+            );
+        }
+    },
+}
+</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;
+}
+
+.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;
+}
+</style>

+ 9 - 0
src/router/index.js

@@ -80,6 +80,7 @@ import mrLearnStatus from '@/components/pages/myReport/components/mrLearnStatus'
 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'
 
 Vue.use(Router).use(ElementUI)
 
@@ -688,5 +689,13 @@ export default new Router({
                 requireAuth: '' // 不需要鉴权
             }
         },
+        {
+            path: '/inviteLogin',
+            name: 'inviteLogin',
+            component: inviteLogin,
+            meta: {
+                requireAuth: '' // 不需要鉴权
+            }
+        }
     ]
 })

部分文件因为文件数量过多而无法显示