lsc 11 months ago
parent
commit
3f93f0328b

+ 1 - 1
dist/index.html

@@ -32,7 +32,7 @@
       width: 100%;
       background: #e6eaf0;
       font-family: 'Source Han Sans SC', sans-serif;
-    }</style><link href=./static/css/app.0df9ce20c4da03dc92a8b24821ddeee4.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.571c38d63f24b1ae9e16.js></script><script type=text/javascript src=./static/js/vendor.11d8a4dfbebdec332b5f.js></script><script type=text/javascript src=./static/js/app.d02d76b13d3f97f4180a.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.ed96e1164e486cf72b50291824413aec.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.571c38d63f24b1ae9e16.js></script><script type=text/javascript src=./static/js/vendor.11d8a4dfbebdec332b5f.js></script><script type=text/javascript src=./static/js/app.06519beac23ae8d5a33e.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.0df9ce20c4da03dc92a8b24821ddeee4.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.ed96e1164e486cf72b50291824413aec.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/app.ed96e1164e486cf72b50291824413aec.css.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.06519beac23ae8d5a33e.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.06519beac23ae8d5a33e.js.map


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/manifest.571c38d63f24b1ae9e16.js.map


BIN
src/assets/icon/test/chevron-right.png


BIN
src/assets/icon/test/icon_course.png


BIN
src/assets/icon/test/icon_course_check.png


+ 1 - 1
src/components/pages/testPerson/test/index.vue

@@ -8,7 +8,7 @@
         <span @click="checkType(4)" :class="{active:type == 4}">教研活动</span>
       </div>
       <div>
-        <el-button type="primary" class="bgColor" @click="returnA()">表单中心</el-button>
+        <!-- <el-button type="primary" class="bgColor" @click="returnA()">表单中心</el-button> -->
       </div>
     </div>
     <Test :oid="oid" :userid="userid" v-if="type == 1"></Test>

+ 190 - 157
src/components/pages/testPerson/test/test.vue

@@ -1,9 +1,9 @@
 <template>
     <div class="i_body_box">
         <div class="check_nav">
-            <!-- <div class="nav all" :class="{ active: type == '' }" @click="checkType('')">
-                所有表单
-            </div> -->
+            <div class="nav all" :class="{ active: type == '' }" @click="checkType('')">
+                全部
+            </div>
             <div class="nav" :class="{
                 active: type == item.id,
                 gr: item.id == 'afc3f97f-2429-408d-8dcd-5e63a44d355a',
@@ -25,117 +25,87 @@
             <div class="test_panel" v-for="(item, index) in worksArray" :key="index">
                 <div class="test_panel_title">
                     <div class="title">
-                        <span :class="{ is: item.array.length > 0, no: !item.array.length }">{{ item.array.length > 0 ?
-                "已完成" : "未完成" }}</span>
-                        <span>{{ item.title }}</span>
+                        <span class="open" :class="{active: item.open}" @click="openWork(index)" v-if="item.array.length > 0 || item.carray.length > 0"></span>
+                        <el-tooltip :content="item.username" placement="top" effect="dark">
+                            <span class="titleN">{{ item.title }}</span>
+                        </el-tooltip>
+                    </div>
+                    <div class="state">
+                        <span :class="{ is: item.array.length > 0, no: !item.array.length }">{{ item.array.length > 0 ? "已完成" : "未完成" }}</span>
                     </div>
                     <div class="time">
-                        <span>创建时间: {{ item.time }}</span>
-                        <span>修改时间: {{ item.utime }}</span>
-                        <span v-if="item.overtime">截止时间: {{ item.overtime }}</span>
+                        <span v-if="item.overtime" :class="{isDead: isDeadlinePassed(item.overtime)}">截止时间:{{ item.overtime }}</span>
+                        <span v-else>-</span>
                     </div>
-                </div>
-                <div class="test_panel_box">
-                    <div class="detail" v-if="item.array.length === 0 || item.brief">
-                        <span>{{ item.brief ? item.brief : "暂无描述" }}</span>
+                    <div class="creator" :style="{paddingRight:(!item.carray.length > 0) ? '0' : '81px'}">
+                        <el-tooltip :content="item.username" placement="top" effect="dark">
+                            <span>创建者:{{ item.username }}</span>
+                        </el-tooltip>
+                    </div>
+                    <div @click="doTest2(item.courseid)" class="editBtn" v-if="!item.carray.length > 0">
+                        <span v-if="item.array.length === 0">去填写</span>
+                        <span v-else>再填写</span>
                     </div>
+                </div>
+                <div class="test_panel_box" v-if="item.open">
                     <div class="test_add_box"
-                        style="width: calc(100% - 350px - 20px);border: none;margin-right: 20px;padding: 0;"
-                        v-else-if="item.array">
-                        <div class="test" v-for="test in item.array" :key="test.id">
-                            <img :src="getImg(test.courseJson)
-                ? getImg(test.courseJson)
-                : require('../../../../assets/icon/test/teacher.jpg')
-                " />
+                        v-if="item.array">
+                        <div class="test" v-for="(test, index) in item.array" :key="test.id">
                             <div class="time">
-                                <span>填写时间</span>
-                                <span>{{ test.time }}</span>
-                                <span>修改时间</span>
+                                <span>提交记录{{item.array.length - index}}</span>
+                            </div> 
+                            <!-- <img @click="deleteTest(test.id)" class="delete"
+                                src="../../../../assets/icon/test/delete.png" alt="" /> -->
+                            <div class="utime">
                                 <span>{{ test.utime }}</span>
                             </div>
-                            <img @click="deleteTest(test.id)" class="delete"
-                                src="../../../../assets/icon/test/delete.png" alt="" />
                             <div class="mask">
                                 <div @click="doTest(test.courseid, test.id)">
-                                    <span></span><span>编辑</span>
+                                    <span>编辑</span>
+                                </div>
+                                <div @click="deleteTest(test.id)" class="delete">
+                                    <span>删除</span>
                                 </div>
-                                <div @click="checkTest(test.courseid, test.id)">
+                                <!-- <div @click="checkTest(test.courseid, test.id)">
                                     <span></span><span>查看</span>
                                 </div>
                                 <div @click="copyTest(test.id)">
                                     <span></span><span>复制</span>
-                                </div>
+                                </div> -->
                             </div>
                         </div>
                     </div>
                     <div class="test_add_box"
-                        style="width: calc(100% - 50px);border: none;margin-right: 20px;padding: 0;flex-direction: column;"
                         v-else-if="item.carray" v-loading="!item.carray.length">
-                        <div class="courseLength" v-for="(course, index) in item.carray" :key="index" @click="doTest3(item, course)">
+                        <!-- <div class="courseLength" v-for="(course, index) in item.carray" :key="index" @click="doTest3(item, course)">
                             <span class="finish" :class="{is: course.array.length}"></span>
                             <span>{{ index+1 }}、</span>
                             <span>{{ course.title }}</span>
                             <span>{{ course.username }}</span>
-                        </div>
-                    </div>
-                    <div class="panel" :style="{width:type == 'dda9728e-5f11-469e-89ee-aca518daf123' ? '50px' : '',minWidth:type == 'dda9728e-5f11-469e-89ee-aca518daf123'?'50px':''}">
-                        <div class="score" v-if="type != 'dda9728e-5f11-469e-89ee-aca518daf123'">
-                            <div>
-                                <span>{{ getNum(item.chapters) }}</span><span>题</span>
-                            </div>
-                            <div>题目总数</div>
-                        </div>
-                        <div class="score" v-if="type != 'dda9728e-5f11-469e-89ee-aca518daf123'">
-                            <div>
-                                <span>{{ getScore(item.array) }}</span><span>分</span>
-                            </div>
-                            <div>综合得分</div>
-                        </div>
-                        <div class="btn">
-                            <!-- <div @click="doTest(item.courseid,item.id)"><span></span><span>编辑</span></div> -->
-                            <div @click="doTest2(item.courseid)">
-                                <span></span><span>填写</span>
-                            </div>
-                            <!-- <div @click="checkTest(item.courseid,item.id)"><span></span><span>查看</span></div> -->
-                            <!-- <div @click="copyTest(item.id)"><span></span><span>复制</span></div> -->
-                        </div>
-                    </div>
-                </div>
-                <div class="test_add_box" v-if="item.array.length > 0 && item.brief">
-                    <div class="test" v-for="test in item.array" :key="test.id">
-                        <img :src="getImg(test.courseJson)
-                ? getImg(test.courseJson)
-                : require('../../../../assets/icon/test/teacher.jpg')
-                " />
-                        <div class="time">
-                            <span>填写时间</span>
-                            <span>{{ test.time }}</span>
-                            <span>修改时间</span>
-                            <span>{{ test.utime }}</span>
-                        </div>
-                        <img @click="deleteTest(test.id)" class="delete" src="../../../../assets/icon/test/delete.png"
-                            alt="" />
-                        <div class="mask">
-                            <div @click="doTest(test.courseid, test.id)">
-                                <span></span><span>编辑</span>
+                        </div> -->
+                        <div class="test courseLength" v-for="(course, index) in item.carray" :key="index">
+                            <div class="time">
+                                <el-tooltip :content="course.title+'-'+course.username" placement="top" effect="dark">
+                                    <span>{{ course.title }}-{{ course.username }}</span>
+                                </el-tooltip>
+                            </div> 
+                            <div class="finishBox" :class="{is: course.array.length}">
+                                <span class="finish"></span>
+                                <span v-if="course.array.length">已评分</span>
+                                <span v-else>未评分</span>
                             </div>
-                            <div @click="checkTest(test.courseid, test.id)">
-                                <span></span><span>查看</span>
+                            <div class="utime" style="margin-left: 30px;">
+                                <span v-if="course.array.length">{{ course.array[0].utime }}</span>
+                                <span v-else>-</span>
                             </div>
-                            <div @click="copyTest(test.id)">
-                                <span></span><span>复制</span>
+                            <div class="mask">
+                                <div @click="doTest3(item, course)">
+                                    <span>评分</span>
+                                </div>
                             </div>
                         </div>
                     </div>
                 </div>
-                <div class="test_add_box" v-if="item.carray.length > 0 && item.brief" style="flex-direction: column;">
-                    <div class="courseLength" v-for="(course, index) in item.carray" :key="index" @click="doTest3(item, course)">
-                            <span class="finish" :class="{is: course.array.length}"></span>
-                            <span>{{ index+1 }}、</span>
-                            <span>{{ course.title }}</span>
-                            <span>{{ course.username }}</span>
-                        </div>
-                </div>
             </div>
         </div>
     </div>
@@ -290,6 +260,11 @@ export default {
         }
     },
     methods: {
+        isDeadlinePassed(deadline) {
+            let _line = new Date(deadline)
+            const currentDate = new Date();
+            return currentDate > _line;
+        },
         checkType(type) {
             this.type = type;
             this.getWorks();
@@ -303,11 +278,12 @@ export default {
                 .then(res => {
                     this.typeArray = res.data[0];
                     if(type == 1){
-                        if (this.typeArray.length) {
-                            this.type = this.typeArray[0].id;
-                        } else {
-                            this.type = '0';
-                        }
+                        this.type = ''
+                        // if (this.typeArray.length) {
+                        //     this.type = this.typeArray[0].id;
+                        // } else {
+                        //     this.type = '0';
+                        // }
                     }
                     this.getWorks()
                 })
@@ -339,11 +315,13 @@ export default {
                             time: item.time,
                             utime: item.utime,
                             overtime: item.overtime,
+                            username: item.username,
                             chapters: item.chapters,
                             brief: item.brief,
                             typeid: item.typeid,
                             array: item.typeid == 'dda9728e-5f11-469e-89ee-aca518daf123' ? 0 : [],
                             carray: [],
+                            open: false
                         };
                     });
                     worksArray = Object.values(worksArray);
@@ -395,6 +373,10 @@ export default {
                     console.error(err);
                 });
         },
+        openWork(index){
+            this.worksArray[index].open = !this.worksArray[index].open
+            this.$forceUpdate()
+        },
         returnA() {
             this.$router.push(
                 "/testStudent?userid=" +
@@ -748,55 +730,106 @@ export default {
     border-radius: 10px;
     /* height: 300px; */
     overflow: hidden;
+    box-shadow: 0 2px 5px 1px #0001;
 }
 
 .test_panel+.test_panel {
-    margin-top: 20px;
+    margin-top: 15px;
 }
 
 .test_panel_title {
-    height: 60px;
+    height: 50px;
     display: flex;
     align-items: center;
     width: 100%;
-    justify-content: space-between;
-    padding: 0 20px;
+    /* justify-content: space-between; */
+    /* padding: 0 20px; */
     box-sizing: border-box;
-    border-bottom: 2px solid #f0f0f0;
+    /* border-bottom: 2px solid #f0f0f0; */
 }
 
 .test_panel_title>.title {
     display: flex;
     align-items: center;
+    width: 300px;
+    margin-left: 20px;
 }
 
-.test_panel_title>.title>span:nth-child(1) {
-    font-size: 12px;
-    padding: 3px 5px;
-    border-radius: 5px;
+.test_panel_title>.title>.open{
+    width: 20px;
+    height:20px;
     margin-right: 10px;
+    background-image: url('../../../../assets/icon/test/chevron-right.png');
+    background-size: 100% 100%;
+    cursor:pointer;
+    transition:all .3s;
+    opacity: .5;
+}
+
+.test_panel_title>.title>.open.active{
+    transform: rotate(90deg);
+    opacity: 1;
 }
 
-.test_panel_title>.title>.is:nth-child(1) {
-    color: rgb(100, 215, 155);
-    background: rgb(241, 255, 248);
-    border: 1px solid rgb(100, 215, 155);
+.test_panel_title>.state{
+    margin-left: auto;
+    min-width: fit-content;
 }
 
-.test_panel_title>.title>.no:nth-child(1) {
-    color: rgb(240, 66, 66);
-    background: rgb(255, 241, 241);
-    border: 1px solid rgb(240, 66, 66);
+.test_panel_title>.state > span {
+    font-size: 14px;
+    padding: 5px 8px;
+    border-radius: 5px;
+    margin-right: 0;
 }
 
-.test_panel_title>.title>span:nth-child(2) {
+.test_panel_title>.state>.is:nth-child(1) {
+    color: #17C469;
+    background: #EFFCF5;
+    border: 1px solid #EFFCF5;
+}
+
+.test_panel_title>.state>.no:nth-child(1) {
+    color: #3681FC;
+    background: #E0EAFB;
+    border: 1px solid #E0EAFB;
+}
+
+.test_panel_title>.title>.titleN {
     font-size: 18px;
     font-weight: 600;
+    max-width: calc(100% - 20px - 10px);
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
 }
 
 .test_panel_title>.time {
-    font-size: 14px;
+    font-size: 16px;
     color: #a1a1a1;
+    min-width: 160px;
+    margin: 0 30px;
+}
+
+.test_panel_title>.creator {
+    font-size: 16px;
+    color: #a1a1a1;
+    max-width: 160px;
+    min-width: 160px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+
+.test_panel_title>.editBtn {
+    font-size: 16px;
+    color: #fff;
+    background: #3681fc;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    padding: 0 15px;
+    cursor: pointer;
 }
 
 .test_panel_title>.time>span+span {
@@ -804,10 +837,11 @@ export default {
 }
 
 .test_panel_box {
+    border-top: 2px solid #f0f0f0;
     width: 100%;
     display: flex;
     align-items: center;
-    padding: 20px 20px;
+    padding: 5px 20px;
     box-sizing: border-box;
 }
 
@@ -902,33 +936,19 @@ export default {
 }
 
 .test_add_box {
-    height: 160px;
     width: 100%;
-    padding: 0 20px;
-    border-top: 2px solid #f0f0f0;
     box-sizing: border-box;
-    display: flex;
-    align-items: center;
-    overflow: auto;
 }
 
 
 .test_add_box>.test {
-    width: 120px;
-    min-width: 120px;
-    height: 120px;
+    width: 100%;
+    height: 40px;
     border-radius: 5px;
-    /* overflow: hidden; */
-    position: relative;
-}
-
-.test_add_box>.test:hover .mask {
     display: flex;
+    align-items: center;
 }
 
-.test_add_box>.test:hover .delete {
-    display: block;
-}
 
 .test_add_box>.test>img {
     width: 100%;
@@ -938,44 +958,37 @@ export default {
 }
 
 .test_add_box>.test+.test {
-    margin-left: 10px;
+    /* margin-left: 10px; */
 }
 
 .test_add_box>.test>.time {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    flex-direction: column;
     display: flex;
-    justify-content: center;
+    /* justify-content: center; */
     align-items: center;
-    top: 0;
-    left: 0;
-    color: #fff;
-    background: rgba(0, 0, 0, 0.5);
     font-size: 14px;
-    text-align: center;
-    border-radius: 5px;
+    width: 300px;
+    padding-left: 30px;
+    box-sizing: border-box;
 }
 
 .test_add_box>.test>.time>span {
-    margin-top: 5px;
+    /* margin-top: 5px; */
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+.test_add_box>.test>.utime {
+    font-size: 14px;
+    width: 160px;
+    min-width: 160px;
+    margin: 0 30px 0 auto;
 }
-
 .test_add_box>.test>.mask {
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    background: rgba(0, 0, 0, 0.5);
-    /* display: flex; */
-    flex-direction: column;
-    justify-content: center;
+    display: flex;
     align-items: center;
-    top: 0;
-    left: 0;
-    color: rgb(69, 141, 255);
-    display: none;
-    border-radius: 5px;
+    padding-right: 58px;
+    max-width: 160px;
+    min-width: 160px;
 }
 
 .test_add_box>.test>.delete {
@@ -991,14 +1004,19 @@ export default {
 
 .test_add_box>.test>.mask>div {
     display: flex;
-    color: #fff;
     align-items: center;
     cursor: pointer;
     font-size: 14px;
+    color: #3681FC;
+}
+
+.test_add_box>.test>.mask>.delete {
+    color: #EE3E3E;
 }
 
 .test_add_box>.test>.mask>div+div {
-    margin: 10px 0 0 0;
+    /* margin: 10px 0 0 0; */
+    margin-left: 15px;
 }
 
 /* 
@@ -1026,7 +1044,7 @@ export default {
     background: #466b99;
 }
 
-.courseLength{
+/* .courseLength{
     width: 100%;
     cursor: pointer;
     margin-bottom: 10px;
@@ -1035,14 +1053,29 @@ export default {
 }
 .courseLength > span + span{
     margin-left: 10px;
+} */
+.courseLength > .finishBox {
+    display: flex;
+    color: #a1a1a1;
+    font-size: 14px;
+    margin-left: auto;
+    align-items: center;
 }
-.courseLength > .finish{
+.courseLength > .finishBox > .finish{
     width: 15px;
     height: 15px;
     background-image: url('../../../../assets/icon/test/icon_course.png');
     background-size: 100% 100%;
+    margin-right: 5px;
 }
-.courseLength > .finish.is{
+.courseLength > .finishBox.is > .finish{
     background-image: url('../../../../assets/icon/test/icon_course_check.png');
 }
+.courseLength > .finishBox.is{
+    color: #000
+}
+
+.isDead{
+    color:#EE3E3E;
+}
 </style>

+ 1048 - 0
src/components/pages/testPerson/test/testJiu.vue

@@ -0,0 +1,1048 @@
+<template>
+    <div class="i_body_box">
+        <div class="check_nav">
+            <!-- <div class="nav all" :class="{ active: type == '' }" @click="checkType('')">
+                所有表单
+            </div> -->
+            <div class="nav" :class="{
+                active: type == item.id,
+                gr: item.id == 'afc3f97f-2429-408d-8dcd-5e63a44d355a',
+                md: item.id == '478bcccd-e3a1-472b-aa29-3ed7bc479469',
+                jy: item.id == '178a377a-b4f1-4a75-b3c3-2787a7c98784',
+                yy: item.id == 'dda9728e-5f11-469e-89ee-aca518daf223',
+                bj: item.id == 'afc3f97f-2429-408d-8dcd-5e63a44d355c'
+            }" @click="checkType(item.id)" v-for="(item, index) in typeArray" :key="index">
+                {{ item.name }}
+            </div>
+            <div class="nav all" :class="{ active: type == '0' }" @click="checkType('0')">
+                其他
+            </div>
+        </div>
+        <div class="check_box" v-loading="loading">
+            <div class="noneData" v-if="!worksArray.length" style="text-align: center; margin-top: 20px;">
+                暂无数据
+            </div>
+            <div class="test_panel" v-for="(item, index) in worksArray" :key="index">
+                <div class="test_panel_title">
+                    <div class="title">
+                        <span :class="{ is: item.array.length > 0, no: !item.array.length }">{{ item.array.length > 0 ?
+                "已完成" : "未完成" }}</span>
+                        <span>{{ item.title }}</span>
+                    </div>
+                    <div class="time">
+                        <span>创建时间: {{ item.time }}</span>
+                        <span>修改时间: {{ item.utime }}</span>
+                        <span v-if="item.overtime">截止时间: {{ item.overtime }}</span>
+                    </div>
+                </div>
+                <div class="test_panel_box">
+                    <div class="detail" v-if="item.array.length === 0 || item.brief">
+                        <span>{{ item.brief ? item.brief : "暂无描述" }}</span>
+                    </div>
+                    <div class="test_add_box"
+                        style="width: calc(100% - 350px - 20px);border: none;margin-right: 20px;padding: 0;"
+                        v-else-if="item.array">
+                        <div class="test" v-for="test in item.array" :key="test.id">
+                            <img :src="getImg(test.courseJson)
+                ? getImg(test.courseJson)
+                : require('../../../../assets/icon/test/teacher.jpg')
+                " />
+                            <div class="time">
+                                <span>填写时间</span>
+                                <span>{{ test.time }}</span>
+                                <span>修改时间</span>
+                                <span>{{ test.utime }}</span>
+                            </div>
+                            <img @click="deleteTest(test.id)" class="delete"
+                                src="../../../../assets/icon/test/delete.png" alt="" />
+                            <div class="mask">
+                                <div @click="doTest(test.courseid, test.id)">
+                                    <span></span><span>编辑</span>
+                                </div>
+                                <div @click="checkTest(test.courseid, test.id)">
+                                    <span></span><span>查看</span>
+                                </div>
+                                <div @click="copyTest(test.id)">
+                                    <span></span><span>复制</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="test_add_box"
+                        style="width: calc(100% - 50px);border: none;margin-right: 20px;padding: 0;flex-direction: column;"
+                        v-else-if="item.carray" v-loading="!item.carray.length">
+                        <div class="courseLength" v-for="(course, index) in item.carray" :key="index" @click="doTest3(item, course)">
+                            <span class="finish" :class="{is: course.array.length}"></span>
+                            <span>{{ index+1 }}、</span>
+                            <span>{{ course.title }}</span>
+                            <span>{{ course.username }}</span>
+                        </div>
+                    </div>
+                    <div class="panel" :style="{width:type == 'dda9728e-5f11-469e-89ee-aca518daf123' ? '50px' : '',minWidth:type == 'dda9728e-5f11-469e-89ee-aca518daf123'?'50px':''}">
+                        <div class="score" v-if="type != 'dda9728e-5f11-469e-89ee-aca518daf123'">
+                            <div>
+                                <span>{{ getNum(item.chapters) }}</span><span>题</span>
+                            </div>
+                            <div>题目总数</div>
+                        </div>
+                        <div class="score" v-if="type != 'dda9728e-5f11-469e-89ee-aca518daf123'">
+                            <div>
+                                <span>{{ getScore(item.array) }}</span><span>分</span>
+                            </div>
+                            <div>综合得分</div>
+                        </div>
+                        <div class="btn">
+                            <!-- <div @click="doTest(item.courseid,item.id)"><span></span><span>编辑</span></div> -->
+                            <div @click="doTest2(item.courseid)">
+                                <span></span><span>填写</span>
+                            </div>
+                            <!-- <div @click="checkTest(item.courseid,item.id)"><span></span><span>查看</span></div> -->
+                            <!-- <div @click="copyTest(item.id)"><span></span><span>复制</span></div> -->
+                        </div>
+                    </div>
+                </div>
+                <div class="test_add_box" v-if="item.array.length > 0 && item.brief">
+                    <div class="test" v-for="test in item.array" :key="test.id">
+                        <img :src="getImg(test.courseJson)
+                ? getImg(test.courseJson)
+                : require('../../../../assets/icon/test/teacher.jpg')
+                " />
+                        <div class="time">
+                            <span>填写时间</span>
+                            <span>{{ test.time }}</span>
+                            <span>修改时间</span>
+                            <span>{{ test.utime }}</span>
+                        </div>
+                        <img @click="deleteTest(test.id)" class="delete" src="../../../../assets/icon/test/delete.png"
+                            alt="" />
+                        <div class="mask">
+                            <div @click="doTest(test.courseid, test.id)">
+                                <span></span><span>编辑</span>
+                            </div>
+                            <div @click="checkTest(test.courseid, test.id)">
+                                <span></span><span>查看</span>
+                            </div>
+                            <div @click="copyTest(test.id)">
+                                <span></span><span>复制</span>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="test_add_box" v-if="item.carray.length > 0 && item.brief" style="flex-direction: column;">
+                    <div class="courseLength" v-for="(course, index) in item.carray" :key="index" @click="doTest3(item, course)">
+                            <span class="finish" :class="{is: course.array.length}"></span>
+                            <span>{{ index+1 }}、</span>
+                            <span>{{ course.title }}</span>
+                            <span>{{ course.username }}</span>
+                        </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    props: {
+        userid: {
+            type: String,
+        },
+        oid: {
+            type: String,
+        },
+    },
+    data() {
+        return {
+            type: "",
+            typeArray: [],
+            typeArrayCheck: [],
+            worksArray: [],
+            org: this.$route.query.org,
+            role: this.$route.query.role,
+            loading: false
+        };
+    },
+    computed: {
+        getNum() {
+            return function (array) {
+                let _array = JSON.parse(array);
+                let num = 0;
+                _array.forEach(el => {
+                    if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+                        el.array.forEach(item => {
+                            if (item.ttype == 2 && item.array.length > 0) {
+                                item.array.forEach(item2 => {
+                                    if (item2.ttype == 1 && item2.json) {
+                                        num++;
+                                    }
+                                });
+                            } else if (item.ttype == 1 && item.json) {
+                                num++;
+                            }
+                        });
+                    } else if (el.ttype == 1 && el.json) {
+                        num++;
+                    }
+                });
+                return num;
+            };
+        },
+        getScore() {
+            return function (array) {
+                // let _array = JSON.parse(array)
+                let _score = 0;
+                let scoreArray = [];
+                for (var i = 0; i < array.length; i++) {
+                    let _array = JSON.parse(array[i].courseJson);
+                    let score = 0;
+                    for (var j = 0; j < _array.length; j++) {
+                        let el = _array[j];
+                        if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+                            for (var k = 0; k < el.array.length; k++) {
+                                let item = el.array[k];
+                                if (item.ttype == 2 && item.array.length > 0) {
+                                    for (var z = 0; z < item.array.length; z++) {
+                                        let item2 = item.array[z];
+                                        if (item2.ttype == 1 && item2.json && item2.json.score2) {
+                                            score += parseInt(item2.json.score2);
+                                        }
+                                    }
+                                } else if (item.ttype == 1 && item.json && item.json.score2) {
+                                    score += parseInt(item.json.score2);
+                                }
+                            }
+                        } else if (el.ttype == 1 && el.json && el.json.score2) {
+                            score += parseInt(el.json.score2);
+                        }
+                    }
+                    scoreArray.push(score);
+                }
+                scoreArray.forEach(el => {
+                    _score += el;
+                });
+                console.log(scoreArray);
+                return _score ? _score / scoreArray.length : 0;
+            };
+        },
+        getImg() {
+            return function (array) {
+                let _array = JSON.parse(array);
+                let _img = "";
+                s: for (var j = 0; j < _array.length; j++) {
+                    let el = _array[j];
+                    if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+                        for (var k2 = 0; k2 < el.array.length; k2++) {
+                            let item = el.array[k2];
+                            console.log(k2);
+                            if (item.ttype == 2 && item.array.length > 0) {
+                                for (var z = 0; z < item.array.length; z++) {
+                                    let item2 = item.array[z];
+                                    if (
+                                        item2.ttype == 1 &&
+                                        item2.type == 5 &&
+                                        item2.json &&
+                                        item2.json.file &&
+                                        item2.json.file.length > 0
+                                    ) {
+                                        for (var k4 = 0; k4 < item2.json.file.length; k4++) {
+                                            let ik = item2.json.file[k4];
+                                            if (ik.type == 3) {
+                                                _img = ik.url;
+                                                break s;
+                                            }
+                                        }
+                                    }
+                                }
+                            } else if (
+                                item.ttype == 1 &&
+                                item.type == 5 &&
+                                item.json &&
+                                item.json.file &&
+                                item.json.file.length > 0
+                            ) {
+                                for (var k3 = 0; k3 < item.json.file.length; k3++) {
+                                    let ik = item.json.file[k3];
+                                    if (ik.type == 3) {
+                                        _img = ik.url;
+                                        break s;
+                                    }
+                                }
+                            }
+                        }
+                    } else if (
+                        el.ttype == 1 &&
+                        el.type == 5 &&
+                        el.json &&
+                        el.json.file &&
+                        el.json.file.length > 0
+                    ) {
+                        for (var k = 0; k < el.json.file.length; k++) {
+                            let ik = el.json.file[k];
+                            if (ik.type == 3) {
+                                _img = ik.url;
+                                break s;
+                            }
+                        }
+                    }
+                }
+                return _img;
+            };
+        }
+    },
+    methods: {
+        checkType(type) {
+            this.type = type;
+            this.getWorks();
+        },
+        selectTestType(type) {
+            let params = {
+                oid: this.oid
+            };
+            this.ajax
+                .get(this.$store.state.api + "selectTestType", params)
+                .then(res => {
+                    this.typeArray = res.data[0];
+                    if(type == 1){
+                        if (this.typeArray.length) {
+                            this.type = this.typeArray[0].id;
+                        } else {
+                            this.type = '0';
+                        }
+                    }
+                    this.getWorks()
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
+        getWorks() {
+            this.loading = true;
+            let params = {
+                uid: this.userid,
+                typeid: this.type
+            };
+            this.ajax
+                .get(this.$store.state.api + "getTestWorksPerson", params)
+                .then(res => {
+                    let array = res.data[0];
+                    let array2 = res.data[1];
+                    // 用于存储归类后的数据的对象
+                    let worksArray = {};
+
+                    // 遍历原始数据,根据 parentId 进行分组
+                    array2.forEach(item => {
+                        // console.log(item.chapters);
+                        worksArray[item.courseId] = {
+                            id: item.id,
+                            courseid: item.courseId,
+                            title: item.title,
+                            time: item.time,
+                            utime: item.utime,
+                            overtime: item.overtime,
+                            chapters: item.chapters,
+                            brief: item.brief,
+                            typeid: item.typeid,
+                            array: item.typeid == 'dda9728e-5f11-469e-89ee-aca518daf123' ? 0 : [],
+                            carray: [],
+                        };
+                    });
+                    worksArray = Object.values(worksArray);
+                    worksArray.forEach(async el => {
+                        if (el.typeid == 'dda9728e-5f11-469e-89ee-aca518daf123') {
+                            let courseJson = this.returnCourseJSON(el.chapters)
+                            if(courseJson && courseJson.courses.length){
+                                let courses = courseJson.courses.join(',')
+                                let _res = await this.getAllCourse(courses)
+                                console.log(_res);
+                                let _carray = []
+                                for(var i=0;i<_res.length;i++){
+                                    _carray.push({
+                                        courseid: _res[i].courseId,
+                                        title: _res[i].title,
+                                        username: _res[i].username,
+                                        array: []
+                                    })
+                                }
+                                el.carray = _carray
+                            }
+                        }
+
+                        array.forEach(el2 => {
+                            if (el.courseid == el2.courseid && el.typeid != 'dda9728e-5f11-469e-89ee-aca518daf123') {
+                                el.array.push(el2);
+                            }
+
+                            if(el.courseid == el2.courseid && el.typeid == 'dda9728e-5f11-469e-89ee-aca518daf123'){
+                                let courseid = this.returnCourseId(el2.courseJson)
+                                for(var c = 0; c<el.carray.length;c++){
+                                    if(el.carray[c].courseid == courseid){
+                                        el.carray[c].array.push(el2);
+                                        break
+                                    }
+                                }
+                            }
+                        });
+                    });
+                    // worksArray[item.courseid].array.push(item);
+
+                    this.worksArray = worksArray;
+                    this.loading = false;
+
+                    this.$forceUpdate();
+                })
+                .catch(err => {
+                    this.loading = false;
+                    console.error(err);
+                });
+        },
+        returnA() {
+            this.$router.push(
+                "/testStudent?userid=" +
+                this.userid +
+                "&oid=" +
+                this.oid +
+                "&org=" +
+                this.org +
+                "&role=" +
+                this.role
+            );
+        },
+        checkTest(cid, tid) {
+            this.$router.push(
+                "/checkTest?cid=" +
+                cid +
+                "&tid=" +
+                tid +
+                "&userid=" +
+                this.userid +
+                "&oid=" +
+                this.oid +
+                "&org=" +
+                this.org +
+                "&type=3" +
+                "&role=" +
+                this.role
+            );
+        },
+        doTest(cid, tid) {
+            this.$router.push(
+                "/doTest?cid=" +
+                cid +
+                "&tid=" +
+                tid +
+                "&userid=" +
+                this.userid +
+                "&oid=" +
+                this.oid +
+                "&org=" +
+                this.org +
+                "&type=3" +
+                "&role=" +
+                this.role
+            );
+        },
+        doTest2(cid) {
+            this.$router.push(
+                "/doTest?cid=" +
+                cid +
+                "&userid=" +
+                this.userid +
+                "&oid=" +
+                this.oid +
+                "&org=" +
+                this.org +
+                "&type=3" +
+                "&role=" +
+                this.role
+            );
+        },
+        doTest3(item, course){
+            if(course.array.length){
+                this.$router.push(
+                    "/doTest?cid=" +
+                    item.courseid +
+                    "&tid=" +
+                    course.array[0].id +
+                    "&userid=" +
+                    this.userid +
+                    "&oid=" +
+                    this.oid +
+                    "&org=" +
+                    this.org +
+                    "&type=3" +
+                    "&role=" +
+                    this.role
+                );
+            }else{
+                this.$router.push(
+                    "/doTest?cid=" +
+                    item.courseid +
+                    "&userid=" +
+                    this.userid +
+                    "&oid=" +
+                    this.oid +
+                    "&org=" +
+                    this.org +
+                    "&type=3" +
+                    "&courseid=" +
+                    course.courseid +
+                    "&role=" +
+                    this.role
+                ); 
+            }
+        },
+        copyTest(tid) {
+            let params = [
+                {
+                    tid: tid,
+                    uid: this.userid
+                }
+            ];
+            this.ajax
+                .post(this.$store.state.api + "copyTestWorks", params)
+                .then(res => {
+                    this.$message.success("复制成功");
+                    this.getWorks();
+                })
+                .catch(err => {
+                    console.error(err);
+                });
+        },
+        deleteTest(tid) {
+            let _this = this;
+            _this
+                .$confirm("确定删除此填写的表单么?", "提示", {
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                })
+                .then(() => {
+                    let params = [
+                        {
+                            tid: tid
+                        }
+                    ];
+                    _this.ajax
+                        .post(_this.$store.state.api + "deleteTestCourseWorks", params)
+                        .then(res => {
+                            _this.$message.success("删除成功");
+                            _this.getWorks();
+                        })
+                        .catch(err => {
+                            console.error(err);
+                        });
+                })
+                .catch(() => {
+                    return;
+                });
+        },
+        returnCourseJSON(array) {
+            let _array = JSON.parse(array);
+            let courseJson = '';
+            s: for (var j = 0; j < _array.length; j++) {
+                let el = _array[j];
+                if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+                    for (var k2 = 0; k2 < el.array.length; k2++) {
+                        let item = el.array[k2];
+                        console.log(k2);
+                        if (item.ttype == 2 && item.array.length > 0) {
+                            for (var z = 0; z < item.array.length; z++) {
+                                let item2 = item.array[z];
+                                if (
+                                    item2.ttype == 1 &&
+                                    item2.type == 6 &&
+                                    item2.json 
+                                ) {
+                                    courseJson = item2.json
+                                    break s;
+                                }
+                            }
+                        } else if (
+                            item.ttype == 1 &&
+                            item.type == 6 &&
+                            item.json
+                        ) {
+                            courseJson = item.json
+                                    break s;
+                        }
+                    }
+                } else if (
+                    el.ttype == 1 &&
+                    el.type == 6 &&
+                    el.json 
+                ) {
+                    courseJson = el.json
+                                    break s;
+                }
+            }
+            return courseJson;
+        },
+        returnCourseId(array) {
+            let _array = JSON.parse(array);
+            let courseJson = '';
+            s: for (var j = 0; j < _array.length; j++) {
+                let el = _array[j];
+                if ((el.ttype == 3 || el.ttype == 2) && el.array.length > 0) {
+                    for (var k2 = 0; k2 < el.array.length; k2++) {
+                        let item = el.array[k2];
+                        console.log(k2);
+                        if (item.ttype == 2 && item.array.length > 0) {
+                            for (var z = 0; z < item.array.length; z++) {
+                                let item2 = item.array[z];
+                                if (
+                                    item2.ttype == 1 &&
+                                    item2.type == 6 &&
+                                    item2.json && item2.json.answer2
+                                ) {
+                                    courseJson = item2.json.answer2
+                                    break s;
+                                }
+                            }
+                        } else if (
+                            item.ttype == 1 &&
+                            item.type == 6 &&
+                            item.json && item.json.answer2
+                        ) {
+                            courseJson = item.json.answer2
+                                    break s;
+                        }
+                    }
+                } else if (
+                    el.ttype == 1 &&
+                    el.type == 6 &&
+                    el.json  && el.json.answer2
+                ) {
+                    courseJson = el.json.answer2
+                                    break s;
+                }
+            }
+            return courseJson;
+        },
+        async getAllCourse(id) {
+            let params = {
+                cid: id,
+            };
+            let res = await this.ajax.get(this.$store.state.api + "getCourseInfoTestAll", params)
+            return res.data[0]
+        },
+    },
+    mounted() {
+        this.selectTestType(1);
+    },
+    activated(){
+        console.log('testperson',1111111111111111111111);
+        this.selectTestType(2);
+    },
+};
+</script>
+
+<style scoped>
+.i_body_box {
+    height: calc(100% - 30px);
+    padding: 30px 0 0;
+    box-sizing: border-box;
+}
+
+.check_nav {
+    display: flex;
+    height: 50px;
+    align-items: center;
+    padding: 0;
+    box-sizing: border-box;
+    width: 100%;
+}
+
+.check_nav>.nav {
+    width: 120px;
+    height: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: rgb(167, 167, 167);
+    /* background: #000000; */
+    cursor: pointer;
+}
+
+.check_nav>.active {
+    color: #3681fc;
+    background: rgb(248, 250, 254);
+    border-radius: 10px 10px 0 0;
+}
+
+.check_nav>.all::before,
+.check_nav>.gr::before,
+.check_nav>.md::before,
+.check_nav>.jy::before,
+.check_nav>.bj::before,
+.check_nav>.yy::before {
+    content: "";
+    display: block;
+    width: 18px;
+    height: 18px;
+    background-size: 100% 100%;
+    margin-right: 5px;
+}
+
+.check_nav>.all::before {
+
+    background-image: url('../../../../assets/icon/test/all_icon.png');
+}
+
+.check_nav>.active.all::before {
+    background-image: url('../../../../assets/icon/test/all_icon_active.png');
+}
+
+.check_nav>.gr::before {
+    background-image: url('../../../../assets/icon/test/gr_icon.png');
+}
+
+.check_nav>.active.gr::before {
+    background-image: url('../../../../assets/icon/test/gr_icon_active.png');
+}
+
+.check_nav>.md::before {
+    background-image: url('../../../../assets/icon/test/md_icon.png');
+}
+
+.check_nav>.active.md::before {
+    background-image: url('../../../../assets/icon/test/md_icon_active.png');
+}
+
+.check_nav>.jy::before {
+    background-image: url('../../../../assets/icon/test/jy_icon.png');
+}
+
+.check_nav>.active.jy::before {
+    background-image: url('../../../../assets/icon/test/jy_icon_active.png');
+}
+
+.check_nav>.yy::before {
+    background-image: url('../../../../assets/icon/test/yy_icon.png');
+}
+
+.check_nav>.active.yy::before {
+    background-image: url('../../../../assets/icon/test/yy_icon_active.png');
+}
+
+.check_nav>.bj::before {
+    background-image: url('../../../../assets/icon/test/bj_icon.png');
+}
+
+.check_nav>.active.bj::before {
+    background-image: url('../../../../assets/icon/test/bj_icon_active.png');
+}
+
+
+.check_box {
+    height: calc(100% - 50px);
+    overflow: auto;
+    padding: 0 0 20px;
+    box-sizing: border-box;
+    background: rgb(248, 250, 254);
+}
+
+.test_panel {
+    width: calc(100% - 40px);
+    margin: 20px auto 0;
+    background: #fff;
+    border-radius: 10px;
+    /* height: 300px; */
+    overflow: hidden;
+}
+
+.test_panel+.test_panel {
+    margin-top: 20px;
+}
+
+.test_panel_title {
+    height: 60px;
+    display: flex;
+    align-items: center;
+    width: 100%;
+    justify-content: space-between;
+    padding: 0 20px;
+    box-sizing: border-box;
+    border-bottom: 2px solid #f0f0f0;
+}
+
+.test_panel_title>.title {
+    display: flex;
+    align-items: center;
+}
+
+.test_panel_title>.title>span:nth-child(1) {
+    font-size: 12px;
+    padding: 3px 5px;
+    border-radius: 5px;
+    margin-right: 10px;
+}
+
+.test_panel_title>.title>.is:nth-child(1) {
+    color: rgb(100, 215, 155);
+    background: rgb(241, 255, 248);
+    border: 1px solid rgb(100, 215, 155);
+}
+
+.test_panel_title>.title>.no:nth-child(1) {
+    color: rgb(240, 66, 66);
+    background: rgb(255, 241, 241);
+    border: 1px solid rgb(240, 66, 66);
+}
+
+.test_panel_title>.title>span:nth-child(2) {
+    font-size: 18px;
+    font-weight: 600;
+}
+
+.test_panel_title>.time {
+    font-size: 14px;
+    color: #a1a1a1;
+}
+
+.test_panel_title>.time>span+span {
+    margin-left: 10px;
+}
+
+.test_panel_box {
+    width: 100%;
+    display: flex;
+    align-items: center;
+    padding: 20px 20px;
+    box-sizing: border-box;
+}
+
+.test_panel_box>.detail {
+    width: calc(100% - 350px - 20px);
+    margin-right: 20px;
+    color: #a1a1a1;
+    font-size: 14px;
+    line-height: 24px;
+    word-break: break-all;
+    display: -webkit-box;
+    -webkit-line-clamp: 4;
+    -webkit-box-orient: vertical;
+    overflow: hidden;
+}
+
+.test_panel_box>.panel {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    width: 350px;
+    min-width: 350px;
+}
+
+.test_panel_box>.panel>.score {
+    height: 110px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    flex-direction: column;
+    border: 1px solid #dbdbdb;
+    background: rgb(252, 252, 252);
+    width: 120px;
+    border-radius: 5px;
+}
+
+.test_panel_box>.panel>.score:nth-child(1) {
+    display: flex;
+}
+
+.test_panel_box>.panel>.score>div:nth-child(1)>span:nth-child(1) {
+    font-size: 30px;
+    font-weight: 700;
+}
+
+.test_panel_box>.panel>.score>div:nth-child(1)>span:nth-child(2) {
+    margin-left: 5px;
+}
+
+.test_panel_box>.panel>.score>div:nth-child(2) {
+    font-size: 14px;
+    margin-top: 10px;
+    color: #a1a1a1;
+}
+
+.test_panel_box>.panel>.btn {
+    height: 100px;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+}
+
+.test_panel_box>.panel>.btn>div {
+    display: flex;
+    color: rgb(69, 141, 255);
+    align-items: center;
+    cursor: pointer;
+    font-size: 14px;
+}
+
+/* .test_panel_box > .panel >.btn > div + div{
+      margin: 15px 0 0 0;
+    } */
+.test_panel_box>.panel>.btn>div>span:nth-child(1) {
+    display: block;
+    width: 13px;
+    height: 13px;
+    background-size: 100% 100%;
+    margin-right: 7px;
+}
+
+.test_panel_box>.panel>.btn>div:nth-child(1)>span:nth-child(1) {
+    background-image: url('../../../../assets/icon/test/edit_icon.png');
+}
+
+.test_panel_box>.panel>.btn>div:nth-child(2)>span:nth-child(1) {
+    background-image: url('../../../../assets/icon/test/check_icon.png');
+}
+
+.test_panel_box>.panel>.btn>div:nth-child(3)>span:nth-child(1) {
+    background-image: url('../../../../assets/icon/test/paste_icon.png');
+}
+
+.test_add_box {
+    height: 160px;
+    width: 100%;
+    padding: 0 20px;
+    border-top: 2px solid #f0f0f0;
+    box-sizing: border-box;
+    display: flex;
+    align-items: center;
+    overflow: auto;
+}
+
+
+.test_add_box>.test {
+    width: 120px;
+    min-width: 120px;
+    height: 120px;
+    border-radius: 5px;
+    /* overflow: hidden; */
+    position: relative;
+}
+
+.test_add_box>.test:hover .mask {
+    display: flex;
+}
+
+.test_add_box>.test:hover .delete {
+    display: block;
+}
+
+.test_add_box>.test>img {
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    border-radius: 5px;
+}
+
+.test_add_box>.test+.test {
+    margin-left: 10px;
+}
+
+.test_add_box>.test>.time {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    flex-direction: column;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    top: 0;
+    left: 0;
+    color: #fff;
+    background: rgba(0, 0, 0, 0.5);
+    font-size: 14px;
+    text-align: center;
+    border-radius: 5px;
+}
+
+.test_add_box>.test>.time>span {
+    margin-top: 5px;
+}
+
+.test_add_box>.test>.mask {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    background: rgba(0, 0, 0, 0.5);
+    /* display: flex; */
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    top: 0;
+    left: 0;
+    color: rgb(69, 141, 255);
+    display: none;
+    border-radius: 5px;
+}
+
+.test_add_box>.test>.delete {
+    position: absolute;
+    width: 20px;
+    height: 20px;
+    right: -5px;
+    top: -5px;
+    cursor: pointer;
+    z-index: 2;
+    display: none;
+}
+
+.test_add_box>.test>.mask>div {
+    display: flex;
+    color: #fff;
+    align-items: center;
+    cursor: pointer;
+    font-size: 14px;
+}
+
+.test_add_box>.test>.mask>div+div {
+    margin: 10px 0 0 0;
+}
+
+/* 
+.test_add_box>.test>.mask>div>span:nth-child(1) {
+  display: block;
+  width: 13px;
+  height: 13px;
+  background-size: 100% 100%;
+  margin-right: 7px;
+}
+
+.test_add_box>.test>.mask>div:nth-child(1)>span:nth-child(1) {
+  background-image: url('../../../../assets/icon/test/edit_icon.png');
+}
+
+.test_add_box>.test>.mask>div:nth-child(2)>span:nth-child(1) {
+  background-image: url('../../../../assets/icon/test/check_icon.png');
+}
+
+.test_add_box>.test>.mask>div:nth-child(3)>span:nth-child(1) {
+  background-image: url('../../../../assets/icon/test/paste_icon.png');
+} */
+
+.bgColor {
+    background: #466b99;
+}
+
+.courseLength{
+    width: 100%;
+    cursor: pointer;
+    margin-bottom: 10px;
+    display: flex;
+    align-items: center;
+}
+.courseLength > span + span{
+    margin-left: 10px;
+}
+.courseLength > .finish{
+    width: 15px;
+    height: 15px;
+    background-image: url('../../../../assets/icon/test/icon_course.png');
+    background-size: 100% 100%;
+}
+.courseLength > .finish.is{
+    background-image: url('../../../../assets/icon/test/icon_course_check.png');
+}
+</style>

Some files were not shown because too many files changed in this diff