lsc 2 år sedan
förälder
incheckning
fcf189618c

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.41081d41a9dc711c3349552b95f6919a.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.5296dcc88d905020636b.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.5645bae025f8633750415a2d46ab1c09.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.d2a60cf4f8d4649786e6.js></script><script type=text/javascript src=./static/js/app.f373fc183146f5b8c3fd.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.41081d41a9dc711c3349552b95f6919a.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.41081d41a9dc711c3349552b95f6919a.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.5645bae025f8633750415a2d46ab1c09.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.5645bae025f8633750415a2d46ab1c09.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.5296dcc88d905020636b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.f373fc183146f5b8c3fd.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.f373fc183146f5b8c3fd.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/manifest.3512a67a6213c2df4180.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/vendor.d2a60cf4f8d4649786e6.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/vendor.d2a60cf4f8d4649786e6.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 18122 - 1
package-lock.json


+ 1 - 1
package.json

@@ -14,7 +14,7 @@
     "cacache": "^16.1.1",
     "clipboard": "^2.0.10",
     "dayjs": "^1.11.7",
-    "echarts": "^5.0.2",
+    "echarts": "^5.4.2",
     "element-china-area-data": "^5.0.2",
     "element-ui": "^2.15.1",
     "file-saver": "^2.0.5",

+ 13 - 3
src/components/pages/addCourse.vue

@@ -1953,7 +1953,7 @@
               {{ item.name }}
             </el-checkbox>
             <div class="inviteCode" :class="{ noneInvite: !isInvite(item.id) }" v-if="isInvite(item.id)">
-              {{ getInviteCodeC(item.id) }}</div>
+              邀请码:{{ getInviteCodeC(item.id) }}</div>
             <!-- <div class="inviteCode" :class="{ noneInvite: !isInvite(item.id) }" v-if="checkboxList2.indexOf(item.id) != -1"
               @click="OpenInviteD(item.id)">随机码设置</div>
             <img src="../../assets/icon/rightInvite.png" class="inviteImg" v-if="isInvite(item.id)" /> -->
@@ -5881,7 +5881,7 @@ export default {
             for (var i = 0; i < res.data[2].length; i++) {
               this.inviteCode.push({cid:res.data[2][i].classid,ic:res.data[2][i].code});
             }
-            this.InviteChange(this.checkboxList2)
+    
             this.checkboxList3 = res.data[0][0].course_teacher
               ? res.data[0][0].course_teacher.split(",")
               : [];
@@ -5891,6 +5891,9 @@ export default {
             this.myWord = res.data[0][0].template;
             this.templateC.id = "123";
             this.courseUserid = res.data[0][0].userid;
+            if(this.courseUserid == this.userid){
+              this.InviteChange(this.checkboxList2)
+            }
             this.nbOrder = res.data[0][0].ordernumber;
             this.courseTypeId = [];
             for (var i = 0; i < res.data[1].length; i++) {
@@ -6835,7 +6838,12 @@ export default {
     },
     randomNumber() {
       // 随机生成两位数
-      let num = Math.floor(Math.random() * 900) + 100;
+      // let num = Math.floor(Math.random() * 900) + 100;
+      // 生成 0 到 99 之间的随机整数
+      const randomNumber = Math.floor(Math.random() * 100);
+
+      // 如果随机数小于 10,补上前导零
+      const num = randomNumber < 10 ? "0" + randomNumber : randomNumber.toString();
 
       // 随机生成两个大写字母
       let letters = '';
@@ -6854,6 +6862,8 @@ export default {
 
       // 随机选择一种类型
       let type = Math.floor(Math.random() * 3);
+      
+      return num;
 
       // 根据类型输出结果
       switch (type) {

+ 18 - 3
src/components/pages/course.vue

@@ -104,12 +104,19 @@
       <div class="student_table">
         <div class="course_box">
           <div class="out_box" v-for="(item, index) in course" :key="index">
-            <div class="myCourse" v-if="item.isCourseType == 1 && groupA == 0">
+            <!-- <div class="myCourse" v-if="item.isCourseType == 1 && groupA == 0">
               我的课程
             </div>
             <div class="myCourse" v-else-if="groupA == 1">
               他人课程
             </div>
+            <div class="xtCourse" v-else>协同课程</div> -->
+            <div class="myCourse" v-if="item.userid == userid">
+              我的课程
+            </div>
+            <div class="myCourse" style="background:#4187f0" v-else-if="item.course_teacher.indexOf(userid) == -1">
+              他人课程
+            </div>
             <div class="xtCourse" v-else>协同课程</div>
             <div class="tup">
               <img
@@ -165,7 +172,7 @@
                 报告
               </div>
               <div
-                v-if="item.isCourseType == 1"
+                v-if="item.isCourseType == 1 || role == '1'"
                 @click="deleteCourse(item.courseId)"
               >
                 删除
@@ -300,6 +307,7 @@ export default {
       userid: this.$route.query.userid,
       oid: this.$route.query.oid,
       org: this.$route.query.org,
+      role: this.$route.query.role,
       Juri: "",
       groupList: [],
       JuriList: [],
@@ -885,7 +893,11 @@ export default {
         .post(this.$store.state.api + "copyCourse", params)
         .then(res => {
           this.page = 1;
-          this.groupA = "0";
+          if(this.role == '1'){
+            this.groupA = '4'
+          }else{
+            this.groupA = "0";
+          }
           this.clear();
         })
         .catch(err => {
@@ -894,6 +906,9 @@ export default {
     }
   },
   created() {
+    if(this.role == '1'){
+      this.groupA = '4'
+    }
     this.page = 1;
     // this.selectType();
     this.selectAllType();

+ 54 - 19
src/components/pages/inviteLogin/inviteLogin.vue

@@ -17,15 +17,16 @@
                 <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">
+            <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>
+                <!-- <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 @click="login" class="button">登 录</div> -->
             </div>
         </div>
     </div>
@@ -42,20 +43,21 @@ export default {
             loading: false,
             res: {},
             classJuri: [],
-            code:this.$route.query.code
+            code: this.$route.query.code
         }
     },
     methods: {
         //       selectSnameByCid
         nextSteps() {
-            let reg = /^[A-Za-z0-9]{3,}$/
+            // let reg = /^[A-Za-z0-9]{2,}$/
+            let reg = /^[0-9]{2,}$/
             if (!reg.test(this.icode)) {
                 this.$message.error("请正确填写随机码")
                 return;
             }
             let params = {
                 code: this.icode,
-                oid:this.code,
+                oid: this.code,
             };
             this.loading = true
             this.ajax
@@ -87,18 +89,23 @@ export default {
                     console.error(err);
                 });
         },
-        login() {
-            if(!this.userid){
-                this.$message.error("请选择姓名")
-                return;
-            }
-            window.parent.postMessage(
-                {
-                    tools: "inviteLogin",
-                    userid: this.userid,
-                },
-                "*"
-            );
+        login(userid,username) {
+            this.$confirm(`确定登录${username}的账号吗?`, "提示", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning",
+            })
+                .then(() => {
+                    window.parent.postMessage(
+                        {
+                            tools: "inviteLogin",
+                            userid: userid,
+                        },
+                        "*"
+                    );
+                })
+                .catch(() => { });
+
         }
     },
 }
@@ -152,6 +159,34 @@ export default {
     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;
+}
+
+.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 {}

+ 12 - 5
src/components/pages/scourse.vue

@@ -17,14 +17,17 @@
         <div class="choose">
           <div class="student_search">
             <span>项目筛选</span>
-            <el-select v-model="groupA" @change="search">
+            <el-select v-model="groupA" @change="search" v-if="role != '1'">
               <el-option value="3" label="全部项目"></el-option>
               <el-option value="0" label="我的项目"></el-option>
               <el-option value="1" label="协同项目"></el-option>
               <el-option value="2" label="他人项目"></el-option>
             </el-select>
+            <el-select v-model="groupA" @change="search" v-else>
+              <el-option value="4" label="全部项目"></el-option>
+            </el-select>
           </div>
-          <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
+          <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index"  v-if="CourseTypeJson[item.id].length">
             <span v-if="CourseTypeJson[item.id].length">{{ item.name }}</span>
             <el-select v-if="CourseTypeJson[item.id].length" v-model="courseTypeId[item.id]" placeholder="请选择" @change="getTypeName">
               <el-option label="全部" value="1">全部</el-option>
@@ -74,12 +77,12 @@
               </div>
             </div>
             <div class="three_bottom">
-              <div @click="goToCourse2(item.courseId)" v-if="org != '150e3120-9195-11ed-b13d-005056b86db5' && groupA != '2'">编辑</div>
+              <div @click="goToCourse2(item.courseId)" v-if="groupA != '2'">编辑</div>
               <div @click="get(item.courseId)">预览</div>
               <!-- 项目进展 -->
               <div @click="getA(item.courseId)">进展</div>
               <div @click="jump(item.courseId)">评论</div>
-              <div v-if="(item.userid == userid)" @click="deleteCourse(item.courseId)">
+              <div v-if="(item.userid == userid || role == '1')" @click="deleteCourse(item.courseId)">
                 删除
               </div>
             </div>
@@ -126,7 +129,7 @@
           </div>
           <div class="three_bottom">
             <!-- <div @click="jump(item.courseId)">查看内容</div> -->
-            <div v-if="org != '150e3120-9195-11ed-b13d-005056b86db5'" @click="
+            <div @click="
               goTo(
                 '/studentAddCourse?cid=' +
                 item.courseId +
@@ -665,6 +668,9 @@ export default {
     }
   },
   created() {
+    if(this.role == '1'){
+      this.groupA = '4'
+    }
     this.page = 1;
     this.selectAllType();
     this.getCourse();
@@ -1049,6 +1055,7 @@ export default {
 
 .clear {
   width: 70px;
+  max-width: 70px;
   height: 35px;
   background: #2268bc;
   color: #fff;

+ 2 - 2
src/components/pages/student/course.vue

@@ -79,7 +79,7 @@
               </div>
             </div>
             <div class="three_bottom">
-              <div @click="goToCourse2(item.courseId)" v-if="org != '150e3120-9195-11ed-b13d-005056b86db5'">编辑</div>
+              <div @click="goToCourse2(item.courseId)">编辑</div>
               <div @click="get(item.courseId)">预览</div>
               <!-- 项目进展 -->
               <div @click="getA(item.courseId)">进展</div>
@@ -154,7 +154,7 @@
           <div class="three_bottom">
             <div @click="get(item.courseId)">查看内容</div>
             <div @click="getA(item.courseId)">项目进展</div>
-            <div  v-if="org != '150e3120-9195-11ed-b13d-005056b86db5'" @click="
+            <div @click="
               goTo(
                 '/studentAddCourse?cid=' +
                 item.courseId +

Vissa filer visades inte eftersom för många filer har ändrats