lsc 1 year ago
parent
commit
c639888b71
26 changed files with 244 additions and 117 deletions
  1. 1 1
      dist/index.html
  2. 0 0
      dist/static/css/app.1ea0745f8759c3ccb5b47f66c4bd31d9.css
  3. 0 0
      dist/static/css/app.1ea0745f8759c3ccb5b47f66c4bd31d9.css.map
  4. 0 0
      dist/static/js/app.64f9c3f2d941ed21657e.js
  5. 0 0
      dist/static/js/app.64f9c3f2d941ed21657e.js.map
  6. 0 0
      dist/static/js/manifest.3512a67a6213c2df4180.js.map
  7. 4 4
      src/assets/css/button.css
  8. BIN
      src/assets/icon/test/check_test_icon.png
  9. BIN
      src/assets/icon/test/delete_test_icon2.png
  10. 11 1
      src/components/pages/test/add/components/GapFilling/gap.vue
  11. 6 6
      src/components/pages/test/add/components/GapFilling/index.vue
  12. 46 6
      src/components/pages/test/add/components/checkOrder.vue
  13. 14 1
      src/components/pages/test/add/components/choice/choice.vue
  14. 7 6
      src/components/pages/test/add/components/choice/index.vue
  15. 23 13
      src/components/pages/test/add/components/file/file.vue
  16. 5 5
      src/components/pages/test/add/components/file/index.vue
  17. 15 3
      src/components/pages/test/add/edit/check/choice.vue
  18. 38 27
      src/components/pages/test/add/edit/check/file.vue
  19. 11 1
      src/components/pages/test/add/edit/check/gap.vue
  20. 1 1
      src/components/pages/test/add/edit/check/index.vue
  21. 15 9
      src/components/pages/test/index.vue
  22. 13 8
      src/components/pages/testStudent/index.vue
  23. 4 1
      src/components/pages/testStudent/view/component/choice.vue
  24. 10 7
      src/components/pages/testStudent/view/component/file.vue
  25. 4 1
      src/components/pages/testStudent/view/component/gap.vue
  26. 16 16
      src/components/pages/testStudent/view/component/topic.vue

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.58a6b41197bea4871a9880be0e71c882.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.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.fe4284aa32465342a4e0.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.1ea0745f8759c3ccb5b47f66c4bd31d9.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.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.64f9c3f2d941ed21657e.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.1ea0745f8759c3ccb5b47f66c4bd31d9.css


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


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


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


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


+ 4 - 4
src/assets/css/button.css

@@ -249,8 +249,8 @@
   color: #101010;
   background-color: rgb(240, 242, 245);
   padding: 8px 10px;
-  font-size: 14px;
-  min-width: 90px;
+  font-size: 16px;
+  min-width: 100px;
   font-weight: 500;
   border-radius: 4px;
   box-sizing: border-box;
@@ -273,8 +273,8 @@
 .pub_test_btn_group::before,
 .pub_test_btn_file::before {
   content: "";
-  width: 14px;
-  height: 14px;
+  width: 18px;
+  height: 18px;
   min-width: 14px;
   min-height: 14px;
   background-size: 100% 100%;

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


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


+ 11 - 1
src/components/pages/test/add/components/GapFilling/gap.vue

@@ -1,7 +1,8 @@
 <template>
     <div class="c_box">
         <div class="mask"></div>
-        <div v-if="!cJson">暂未设置题目</div>
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <div class="set_box" v-if="!cJson">填写者回答区</div>
         <div v-else class="choice_box">
             <!-- <div class="title"><div>{{ `(${option[cJson.type].name})` }}</div><div v-html="cJson.title"></div></div> -->
             <div class="title">
@@ -89,4 +90,13 @@ export default {
 .binfo_input:focus-visible {
     border: 1.5px solid #3681FC !important;
 }
+
+.set_box{
+    border: 1px solid #CAD1DC;
+    padding: 8px;
+    border-radius: 5px;
+    box-sizing: border-box;
+    width: 100%;
+    color: #828282;
+}
 </style>

+ 6 - 6
src/components/pages/test/add/components/GapFilling/index.vue

@@ -1,26 +1,26 @@
 <template>
     <div class="choice_box jiao" @click.stop="">
-        <div class="title">设置问答题</div>
+        <!-- <div class="title">设置问答题</div> -->
         <div class="box">
-            <div class="set_type">
-                <span>问答题类型:</span>
+            <div class="set_type" style="margin-top: 0;">
+                <span>题类型:</span>
                 <el-select v-model="checkJson.type" @change="changeAnswer">
                     <el-option v-for="item in options" :key="item.type" :label="item.name" :value="item.type">
                     </el-option>
                 </el-select>
             </div>
             <div class="set_type">
-                <span>设置分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px"  @change="numberPan"></el-input>
+                <span>题目分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px"  @change="numberPan"></el-input>
             </div>
             <div class="set_title">
-                <span>问题目:</span>
+                <span>表单问题:</span>
                 <!-- <el-input v-model="checkJson.title" class="input" placeholder="请输入标题"></el-input> -->
                 <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="checkJson.title"
                     placeholder=""></textarea>
                 <!-- <editor-bar v-model="checkJson.title" @change="change"></editor-bar> -->
             </div>
             <div class="set_title">
-                <span>问答题答案:</span>
+                <span>设置答案:</span>
                 <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="checkJson.answer"
                     placeholder="请输入答案"></textarea>
             </div>

+ 46 - 6
src/components/pages/test/add/components/checkOrder.vue

@@ -4,11 +4,15 @@
             :class="{ active: checkC === `x${index1}` }" @click.stop="checkTitle(`${index1}`, 1, item1)">
             <div class="title" :style="{ fontSize: etype == 'order' && '16px' }">
                 <div class="drag" @mousedown="setDrag(`${index1}`)" @mouseup="isdrag = ''"></div>
-                <span class="content" v-html="selectType(item1, index1)"></span>
+                <span class="content" v-html="selectType(item1, index1)" v-if="etype == 'edit' || item1.ttype != 1"></span>
+                <el-tooltip :content="selectType2(item1, index1)" placement="top" effect="dark" v-else>
+                    <span class="content" v-html="selectType(item1, index1)" ></span>
+                </el-tooltip>
+                
                 <!-- {{ selectType(item1, index1) }} -->
                 <div class="btnBox">
                     <!-- <div class="edit" @click.stop="editCheck(`${index1}`,item1)" v-if="item1.ttype == 1 && canEdit.indexOf(item1.type) !== -1 && etype == 'edit'"></div> -->
-                    <div class="delete" @click.stop="deleteCheck(`${index1}`)"></div>
+                    <div :class="{deleteX:etype != 'edit',delete: etype == 'edit'}" @click.stop="deleteCheck(`${index1}`)"></div>
                     <div class="open" v-if="item1.array && item1.array.length" :class="{ isopen: item1.isopen }"
                         @click.stop="openPan(index1)"></div>
                 </div>
@@ -19,10 +23,13 @@
                     @click.stop="checkTitle(`${index1}-${index2}`, 2, item2)">
                     <div class="title" :style="{ fontSize: etype == 'order' && '16px' }">
                         <div class="drag" @mousedown="setDrag(`${index1}-${index2}`)" @mouseup="isdrag = ''"></div>
-                        <span class="content" v-html="selectType(item2, index2)"></span>
+                        <span class="content" v-html="selectType(item2, index2)" v-if="etype == 'edit' || item2.ttype != 1"></span>
+                        <el-tooltip :content="selectType2(item2, index2)" placement="top" effect="dark" v-else>
+                            <span class="content" v-html="selectType(item2, index2)" ></span>
+                        </el-tooltip>
                         <div class="btnBox">
                             <!-- <div class="edit" @click.stop="editCheck(`${index1}-${index2}`,item2)" v-if="item2.ttype == 1 && canEdit.indexOf(item2.type) !== -1 && etype == 'edit'"></div> -->
-                            <div class="delete" @click.stop="deleteCheck(`${index1}-${index2}`)"></div>
+                            <div :class="{deleteX:etype != 'edit',delete: etype == 'edit'}" @click.stop="deleteCheck(`${index1}-${index2}`)"></div>
                             <div class="open" v-if="item2.array && item2.array.length" :class="{ isopen: item2.isopen }"
                                 @click.stop="openPan(index1, index2)"></div>
                         </div>
@@ -35,10 +42,13 @@
                             <div class="title" :style="{ fontSize: etype == 'order' && '16px' }">
                                 <div class="drag" @mousedown="setDrag(`${index1}-${index2}-${index3}`)"
                                     @mouseup="isdrag = ''"></div>
-                                <span class="content" v-html="selectType(item3, index3)"></span>
+                                    <span class="content" v-html="selectType(item3, index3)" v-if="etype == 'edit' || item3.ttype != 1"></span>
+                                    <el-tooltip :content="selectType2(item3, index3)" placement="top" effect="dark" v-else>
+                                        <span class="content" v-html="selectType(item3, index3)" ></span>
+                                    </el-tooltip>
                                 <div class="btnBox">
                                     <!-- <div class="edit" @click.stop="editCheck(`${index1}-${index2}-${index3}`,item3)" v-if="item3.ttype == 1 && canEdit.indexOf(item3.type) !== -1 && etype == 'edit'"></div> -->
-                                    <div class="delete" @click.stop="deleteCheck(`${index1}-${index2}-${index3}`)"></div>
+                                    <div :class="{deleteX:etype != 'edit',delete: etype == 'edit'}" @click.stop="deleteCheck(`${index1}-${index2}-${index3}`)"></div>
                                 </div>
                             </div>
                             <div v-if="item3.ttype == 1 && canEdit.indexOf(item3.type) !== -1 && etype == 'edit'"
@@ -167,6 +177,17 @@ export default {
                     return `分页${index + 1}`;
                 }
             };
+        },
+        selectType2() {
+            return function (item, index) {
+                if (item.ttype == 1) {
+                    return  (item.json && this.etype != 'edit' ? '' : this.options2[item.type]) + (item.json && this.etype != 'edit' ? `${item.json.title}` : "");
+                } else if (item.ttype == 2) {
+                    return `第${index + 1}组 (共${item.array.length}题)`;
+                } else if (item.ttype == 3) {
+                    return `分页${index + 1}`;
+                }
+            };
         }
     },
     watch: {
@@ -374,6 +395,7 @@ export default {
 .mc_ti_3>.title>.btnBox {
     margin-left: auto;
     display: flex;
+    align-items: center;
 }
 
 .mc_ti_1>.title>.btnBox .open,
@@ -393,6 +415,7 @@ export default {
 .mc_ti_3>.title>.btnBox .delete {
     display: block;
     background-image: url('../../../../../assets/icon/new/delete_u.png');
+    /* background-image: url('../../../../../assets/icon/test/delete_test_icon2.png'); */
     background-size: 100% 100%;
     width: 18px;
     height: 18px;
@@ -400,6 +423,20 @@ export default {
     margin-right: 10px;
 }
 
+.mc_ti_1>.title>.btnBox .deleteX,
+.mc_ti_2>.title>.btnBox .deleteX,
+.mc_ti_3>.title>.btnBox .deleteX {
+    display: block;
+    /* background-image: url('../../../../../assets/icon/new/delete_u.png'); */
+    background-image: url('../../../../../assets/icon/test/delete_test_icon2.png');
+    background-size: 100% 100%;
+    width: 18px;
+    height: 18px;
+    cursor: pointer;
+    margin-right: 10px;
+}
+
+
 .mc_ti_1>.title>.btnBox .edit,
 .mc_ti_2>.title>.btnBox .edit,
 .mc_ti_3>.title>.btnBox .edit {
@@ -434,6 +471,9 @@ export default {
 .mc_ti_2>.title>.content,
 .mc_ti_3>.title>.content {
     word-break: break-all;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
 }
 
 .edit_box {

+ 14 - 1
src/components/pages/test/add/components/choice/choice.vue

@@ -1,7 +1,8 @@
 <template>
     <div class="c_box">
         <div class="mask"></div>
-        <div v-if="!cJson">暂未设置题目</div>
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <div class="set_box" v-if="!cJson">请设置题目</div>
         <div v-else class="choice_box">
             <div class="title">{{ `(${option[cJson.type].name})` + cJson.title }} <span style="color: #efa030;" v-if="cJson.score">({{ '分值:'+cJson.score+'分' }})</span></div>
             <div class="choices">
@@ -90,4 +91,16 @@ export default {
 .choice_c .right::after{
     content: '(正确答案)';
 }
+.c_box{
+
+}
+
+.set_box{
+    border: 1px solid #CAD1DC;
+    padding: 8px;
+    border-radius: 5px;
+    box-sizing: border-box;
+    width: 100%;
+    color: #828282;
+}
 </style>

+ 7 - 6
src/components/pages/test/add/components/choice/index.vue

@@ -1,22 +1,23 @@
 <template>
     <div class="choice_box jiao" @click.stop="">
-        <div class="title">设置选择题</div>
+        <!-- <div class="title">设置选择题</div> -->
         <div class="box">
-            <div class="set_type">
-                <span>选择题类型:</span>
+            <div class="set_type" style="margin-top: 0;">
+                <!-- <span>选择题类型:</span> -->
+                <span>题目类型:</span>
                 <el-select v-model="checkJson.type" @change="changeAnswer">
                     <el-option v-for="item in options" :key="item.type" :label="item.name" :value="item.type">
                     </el-option>
                 </el-select>
             </div>
             <div class="set_title">
-                <span>选择题标题:</span><el-input v-model="checkJson.title" class="input" placeholder="请输入标题"></el-input>
+                <span>表单问题:</span><el-input v-model="checkJson.title" class="input" placeholder="请输入标题"></el-input>
             </div>
             <div class="set_title">
-                <span>设置分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px" @change="numberPan"></el-input>
+                <span>题目分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px" @change="numberPan"></el-input>
             </div>
             <div class="set_options">
-                <div class="title">选择题选项:</div>
+                <div class="title">选项内容:</div>
                 <div class="xuan_body">
                     <div class="xuan_title">
                         <span class="xuan_1">选项文字</span>

+ 23 - 13
src/components/pages/test/add/components/file/file.vue

@@ -1,11 +1,17 @@
 <template>
     <div class="c_box">
         <div class="mask"></div>
-        <div v-if="!cJson">暂未设置题目</div>
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <div class="choices" v-if="!cJson">
+            <div class="binfo_input">
+                <div><span>填写者上传区</span></div>
+            </div>
+        </div>
         <div v-else class="choice_box">
             <!-- <div class="title"><div>{{ `(${option[cJson.type].name})` }}</div><div v-html="cJson.title"></div></div> -->
             <div class="title">
-                {{ `(${option[cJson.type].name})` + cJson.title }} <span style="color: #efa030;" v-if="cJson.score">({{ cJson.score ? '分值:'+cJson.score+'分' : '' }})</span>
+                {{ `(${option[cJson.type].name})` + cJson.title }} <span style="color: #efa030;" v-if="cJson.score">({{
+                    cJson.score ? '分值:' + cJson.score + '分' : '' }})</span>
                 <!-- </div><div v-html="cJson.title"></div> -->
             </div>
             <div class="detail" v-if="cJson.detail">
@@ -48,12 +54,14 @@ export default {
     padding-left: 26px;
     box-sizing: border-box;
 }
-.mask{
+
+.mask {
     position: absolute;
     height: 100%;
     width: 100%;
     z-index: 2;
 }
+
 .choice_box {}
 
 .choice_box>.title {
@@ -61,44 +69,46 @@ export default {
     width: 100%;
     word-break: break-all;
 }
+
 .choice_box>.detail {
     width: 100%;
     word-break: break-all;
     color: rgb(136, 139, 146);
     margin: 10px 0 0;
 }
+
 .choice_box>.choices {
-   margin-top:10px;
+    margin-top: 10px;
 }
+
 .binfo_input {
     width: 100%;
     margin: 0;
-    padding: 12px 14px;
+    padding: 10px;
     display: block;
     min-width: 0;
     outline: none;
     box-sizing: border-box;
     background: none;
     border: none;
-    border-radius: 4px;
+    border-radius: 5px;
     background: #fff;
     font-size: 16px;
     resize: none;
     font-family: 'Microsoft YaHei';
     min-height: 120px;
     /* border: 1px solid #3682fc00; */
-    border: 1.5px solid #CAD1DC;
+    border: 1.5px solid #e0e0e0;
 }
 
-.binfo_input > div{
-    border: 1px dashed #CAD1DC;
+.binfo_input>div {
+    border: 1.5px dashed #dfdfdf;
     height: 120px;
     width: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
-    background: rgb(243, 244, 246);
-    color:rgb(124, 124, 124);
+    background: rgb(249, 250, 251);
+    color: rgb(124, 124, 124);
     border-radius: 5px;
-}
-</style>
+}</style>

+ 5 - 5
src/components/pages/test/add/components/file/index.vue

@@ -1,8 +1,8 @@
 <template>
     <div class="choice_box jiao" @click.stop="">
-        <div class="title">设置附件</div>
+        <!-- <div class="title">设置附件</div> -->
         <div class="box">
-            <div class="set_type">
+            <div class="set_type" style="margin-top: 0;">
                 <span>附件类型:</span>
                 <el-select v-model="checkJson.type" @change="changeAnswer">
                     <el-option v-for="item in options" :key="item.type" :label="item.name" :value="item.type">
@@ -10,17 +10,17 @@
                 </el-select>
             </div>
             <div class="set_type">
-                <span>设置分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px"  @change="numberPan"></el-input>
+                <span>题目分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px"  @change="numberPan"></el-input>
             </div>
             <div class="set_title">
-                <span>附件题目:</span>
+                <span>表单问题:</span>
                 <!-- <el-input v-model="checkJson.title" class="input" placeholder="请输入标题"></el-input> -->
                 <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="checkJson.title"
                     placeholder=""></textarea>
                 <!-- <editor-bar v-model="checkJson.title" @change="change"></editor-bar> -->
             </div>
             <div class="set_title">
-                <span>附件描述:</span>
+                <span>问题描述:</span>
                 <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="checkJson.detail"
                     placeholder="请输入答案"></textarea>
             </div>

+ 15 - 3
src/components/pages/test/add/edit/check/choice.vue

@@ -1,9 +1,12 @@
 <template>
     <div class="c_box">
         <!-- <div class="mask"></div> -->
-        <div v-if="!checkJson">暂未设置题目</div>
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <div class="set_box" v-if="!cJson">请设置题目</div>
         <div v-else class="choice_box">
-            <div class="title">{{ `(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;" v-if="checkJson.score">({{ '分值:'+checkJson.score+'分' }})</span></div>
+            <div class="title">{{ `(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;"
+                    v-if="checkJson.score">({{ '分值:' + checkJson.score + '分' }})</span></div>
             <div class="choices">
                 <div class="choice" v-for="(item, index) in checkJson.array" :key="index">
                     <div class="choice_c" v-if="checkJson.type == 2"><el-checkbox v-model="checkJson.answer2" :label="index"
@@ -163,4 +166,13 @@ export default {
 
 .choice_box>.choices>.choice>>>.el-radio__input.is-disabled.is-checked .el-radio__inner::after {
     background-color: #fff !important;
-}</style>
+}
+.set_box{
+    border: 1px solid #CAD1DC;
+    padding: 8px;
+    border-radius: 5px;
+    box-sizing: border-box;
+    width: 100%;
+    color: #828282;
+}
+</style>

+ 38 - 27
src/components/pages/test/add/edit/check/file.vue

@@ -1,7 +1,13 @@
 <template>
     <div class="c_box">
         <!-- <div class="mask"></div> -->
-        <div v-if="!checkJson">暂未设置题目</div>
+        <!-- <div v-if="!checkJson">暂未设置题目</div> -->
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <div class="choices" v-if="!cJson">
+            <div class="binfo_input">
+                <div><span>填写者上传区</span></div>
+            </div>
+        </div>
         <div v-else class="choice_box">
             <!-- <div class="title"><div>{{ `(${option[checkJson.type].name})` }}</div><div v-html="checkJson.title"></div></div> -->
             <div class="title">
@@ -13,9 +19,12 @@
                 <div class="binfo_input">
                     <div class="fileBox" v-if="checkJson.file && checkJson.file.length">
                         <div class="fileC">
-                            <div class="file" v-for="(item, index) in checkJson.file" :key="index" @click.stop="checkFile(item)">
-                                <img class="del" src="../../../../../../assets/icon/fileIcon/deleteworks.png" @click.stop="delFile(index)" />
-                                <img class="download" src="../../../../../../assets/icon/fileIcon/download.png" @click.stop="downloadFile(item)"  :style="{right: checktype != 1 ? '10px' : '45px'}" />
+                            <div class="file" v-for="(item, index) in checkJson.file" :key="index"
+                                @click.stop="checkFile(item)">
+                                <img class="del" src="../../../../../../assets/icon/fileIcon/deleteworks.png"
+                                    @click.stop="delFile(index)" />
+                                <img class="download" src="../../../../../../assets/icon/fileIcon/download.png"
+                                    @click.stop="downloadFile(item)" :style="{ right: checktype != 1 ? '10px' : '45px' }" />
                                 <img class="img" :src="wordIcon" alt="" v-if="item.type == 1" />
                                 <img class="img" :src="videoIcon" alt="" v-if="item.type == 2" />
                                 <img class="img" :src="item.url" alt="" v-if="item.type == 3" />
@@ -23,7 +32,7 @@
                                 <img class="img" :src="fileIcon" alt="" v-if="item.type == 5" />
                                 <div class="name">
                                     <el-tooltip :content="item.name" placement="top" effect="dark">
-                                       <span>{{ item.name }}</span>
+                                        <span>{{ item.name }}</span>
                                     </el-tooltip>
                                 </div>
                             </div>
@@ -110,9 +119,9 @@ export default {
             videoIcon: videoIcon,
             wordIcon: wordIcon,
             fileIcon: fileIcon,
-            dialogVisiblePdf:false,
-            dialogVisibleVideo:false,
-            dialogVisibleOffice:false,
+            dialogVisiblePdf: false,
+            dialogVisibleVideo: false,
+            dialogVisibleOffice: false,
             wurl: "",
         }
     },
@@ -308,24 +317,24 @@ export default {
                     });
             }
         },
-        checkFile(item){
-            if(item.type == 3){
+        checkFile(item) {
+            if (item.type == 3) {
                 this.$hevueImgPreview(item.url);
-            }else if(item.type == 5){
+            } else if (item.type == 5) {
                 this.downloadFile(item);
-            }else if(item.type == 1){
+            } else if (item.type == 1) {
                 this.dialogVisibleOffice = true
                 this.wurl = item.url
-            }else if(item.type == 2){
+            } else if (item.type == 2) {
                 this.dialogVisibleVideo = true
                 this.wurl = item.url
-            }else if(item.type == 4){
+            } else if (item.type == 4) {
                 this.dialogVisiblePdf = true
                 this.wurl = item.url
             }
         },
-        delFile(index){
-            this.checkJson.file.splice(index,1)
+        delFile(index) {
+            this.checkJson.file.splice(index, 1)
         }
     },
     mounted() {
@@ -363,32 +372,32 @@ export default {
 .binfo_input {
     width: 100%;
     margin: 0;
-    padding: 12px 14px;
+    padding: 10px;
     display: block;
     min-width: 0;
     outline: none;
     box-sizing: border-box;
     background: none;
     border: none;
-    border-radius: 4px;
+    border-radius: 5px;
     background: #fff;
     font-size: 16px;
     resize: none;
     font-family: 'Microsoft YaHei';
     min-height: 120px;
     /* border: 1px solid #3682fc00; */
-    border: 1.5px solid #CAD1DC;
+    border: 1.5px solid #e0e0e0;
     position: relative;
 }
 
 .binfo_input>.uploadQ {
-    border: 1px dashed #CAD1DC;
+    border: 1.5px dashed #dfdfdf;
     height: 120px;
     width: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
-    background: rgb(243, 244, 246);
+    background: rgb(249, 250, 251);
     color: rgb(124, 124, 124);
     border-radius: 5px;
     cursor: pointer;
@@ -474,12 +483,14 @@ export default {
     display: flex;
     flex-direction: column;
 }
-.binfo_input>.fileBox .fileC>.file > .img{
+
+.binfo_input>.fileBox .fileC>.file>.img {
     width: 100%;
     height: calc(100% - 35px);
     object-fit: cover;
 }
-.binfo_input>.fileBox .fileC>.file > .del{
+
+.binfo_input>.fileBox .fileC>.file>.del {
     position: absolute;
     width: 25px;
     top: 10px;
@@ -497,7 +508,7 @@ export default {
 }
 
 
-.binfo_input>.fileBox .fileC>.file > .name{
+.binfo_input>.fileBox .fileC>.file>.name {
     height: 35px;
     width: 100%;
     background: #f9f9f9;
@@ -506,7 +517,8 @@ export default {
     padding: 0 10px;
     box-sizing: border-box;
 }
-.binfo_input>.fileBox .fileC>.file > .name > span{
+
+.binfo_input>.fileBox .fileC>.file>.name>span {
     display: block;
     text-overflow: ellipsis;
     max-width: 100%;
@@ -525,5 +537,4 @@ export default {
     align-items: center;
     justify-content: center;
     cursor: pointer;
-}
-</style>
+}</style>

+ 11 - 1
src/components/pages/test/add/edit/check/gap.vue

@@ -1,7 +1,8 @@
 <template>
     <div class="c_box">
         <!-- <div class="mask"></div> -->
-        <div v-if="!checkJson">暂未设置题目</div>
+        <!-- <div v-if="!cJson">暂未设置题目</div> -->
+        <div class="set_box" v-if="!cJson">填写者回答区</div>
         <div v-else class="choice_box">
             <!-- <div class="title"><div>{{ `(${option[checkJson.type].name})` }}</div><div v-html="checkJson.title"></div></div> -->
             <div class="title">
@@ -137,4 +138,13 @@ export default {
 .binfo_input:focus-visible {
     border: 1.5px solid #3681FC !important;
 }
+
+.set_box{
+    border: 1px solid #CAD1DC;
+    padding: 8px;
+    border-radius: 5px;
+    box-sizing: border-box;
+    width: 100%;
+    color: #828282;
+}
 </style>

+ 1 - 1
src/components/pages/test/add/edit/check/index.vue

@@ -177,7 +177,7 @@ export default {
 
 <style scoped>
 .c_box {
-  padding: 10px 0 0;
+  padding: 10px 0;
   box-sizing: border-box;
   width: 95%;
   margin: 10px auto 0;

+ 15 - 9
src/components/pages/test/index.vue

@@ -91,12 +91,13 @@
                             <div class="test_top_img" v-if="!item.typeN"></div>
                             <el-tooltip :content="item.typeN" placement="top" effect="dark" v-else>
                                 <div class="test_top_img"
-                                    :class="{ gr: item.typeid == 'afc3f97f-2429-408d-8dcd-5e63a44d355a', md: item.typeid == '478bcccd-e3a1-472b-aa29-3ed7bc479469', jy: item.typeid == '178a377a-b4f1-4a75-b3c3-2787a7c98784', yy: item.typeid == 'dda9728e-5f11-469e-89ee-aca518daf223' }">
+                                    :class="{ gr: item.typeid == 'afc3f97f-2429-408d-8dcd-5e63a44d355a', md: item.typeid == '478bcccd-e3a1-472b-aa29-3ed7bc479469', js: item.typeid == '178a377a-b4f1-4a75-b3c3-2787a7c98784', yy: item.typeid == 'dda9728e-5f11-469e-89ee-aca518daf223' }">
                                 </div>
                             </el-tooltip>
                             <div class="test_top_title">
                                 <span>{{ item.title }}</span>
-                                <span>创建人:{{ item.uname }}</span>
+                                <!-- <span>创建人:{{ item.uname }}</span> -->
+                                <span>提交数量:{{ item.worksCount }}</span>
                             </div>
                         </div>
                         <div class="test_time">
@@ -105,6 +106,11 @@
                         <div class="test_time">
                             <span><span>修改日期</span></span><span>{{ item.utime }}</span>
                         </div>
+                        <div class="test_time tset_type">
+                        <span><span>类型</span></span>
+                        <span v-if="!item.typeN">未设置类型</span>
+                        <span v-else>{{ item.typeN }}</span>
+                        </div>
                         <div class="test_time">
                             <span><span>分类</span></span>
                             <span v-if="!item.typename">未设置分类</span>
@@ -826,7 +832,7 @@ export default {
 }
 
 .student_head>>>.el-button--primary {
-    background-color: #2268bc;
+    background-color: #3681fc;
 }
 
 .xls_button {
@@ -856,7 +862,7 @@ export default {
 }
 
 .bgColor {
-    background: #466b99;
+    background: #3681fc;
 }
 
 .student_search {
@@ -1143,7 +1149,7 @@ export default {
 
 .course_button {
     color: #fff;
-    background: #2268bc;
+    background: #3681fc;
     width: 75px;
     height: 40px;
     padding: 0 !important;
@@ -1194,7 +1200,7 @@ export default {
     width: 70px;
     max-width: 70px;
     height: 35px;
-    background: #2268bc;
+    background: #3681fc;
     color: #fff;
     text-align: center;
     border-radius: 5px;
@@ -1225,7 +1231,7 @@ export default {
 
 .xtCourse {
     position: absolute;
-    background: #466b99;
+    background: #3681fc;
     width: 70px;
     height: 30px;
     border-radius: 30px;
@@ -1424,8 +1430,8 @@ export default {
 
 .test_box>.test_btn>.test_o_btn>span {
     display: block;
-    width: 14px;
-    height: 14px;
+    width: 18px;
+    height: 18px;
     background-size: 100% 100%;
     cursor: pointer;
 }

+ 13 - 8
src/components/pages/testStudent/index.vue

@@ -82,7 +82,7 @@
               <div class="test_top_img" v-if="!item.typeN"></div>
               <el-tooltip :content="item.typeN" placement="top" effect="dark" v-else>
                 <div class="test_top_img"
-                  :class="{ gr: item.typeid == 'afc3f97f-2429-408d-8dcd-5e63a44d355a', md: item.typeid == '478bcccd-e3a1-472b-aa29-3ed7bc479469', jy: item.typeid == '178a377a-b4f1-4a75-b3c3-2787a7c98784', yy: item.typeid == 'dda9728e-5f11-469e-89ee-aca518daf223' }">
+                  :class="{ gr: item.typeid == 'afc3f97f-2429-408d-8dcd-5e63a44d355a', md: item.typeid == '478bcccd-e3a1-472b-aa29-3ed7bc479469', js: item.typeid == '178a377a-b4f1-4a75-b3c3-2787a7c98784', yy: item.typeid == 'dda9728e-5f11-469e-89ee-aca518daf223' }">
                 </div>
               </el-tooltip>
               <div class="test_top_title">
@@ -97,13 +97,18 @@
               <span><span>修改日期</span></span><span>{{ item.utime }}</span>
             </div>
             <div class="test_time tset_type">
-              <span><span>类</span></span>
+              <span><span>类</span></span>
               <span v-if="!item.typename">未设置分类</span>
               <el-tooltip :content="item.typename" placement="top" effect="dark" v-else>
                 <!-- content to trigger tooltip here -->
                 <span>{{ item.typename }}</span>
               </el-tooltip>
             </div>
+            <div class="test_time tset_type">
+              <span><span>类型</span></span>
+              <span v-if="!item.typeN">未设置类型</span>
+              <span v-else>{{ item.typeN }}</span>
+            </div>
             <div class="test_btn">
               <div class="test_o_btn">
               </div>
@@ -829,7 +834,7 @@ export default {
 }
 
 .student_head>>>.el-button--primary {
-  background-color: #2268bc;
+  background-color: #3681fc;
 }
 
 .xls_button {
@@ -859,7 +864,7 @@ export default {
 }
 
 .bgColor {
-  background: #466b99;
+  background: #3681fc;
 }
 
 .student_search {
@@ -1096,7 +1101,7 @@ export default {
 }
 
 .bottom_box>.title>.isR {
-  color: #0061FF;
+  color: #3681fc;
 }
 
 .bottom_box>.title>.isS {
@@ -1164,7 +1169,7 @@ export default {
 
 .course_button {
   color: #fff;
-  background: #2268bc;
+  background: #3681fc;
   width: 75px;
   height: 40px;
   padding: 0 !important;
@@ -1235,7 +1240,7 @@ export default {
   width: 70px;
   max-width: 70px;
   height: 35px;
-  background: #2268bc;
+  background: #3681fc;
   color: #fff;
   text-align: center;
   border-radius: 5px;
@@ -1266,7 +1271,7 @@ export default {
 
 .xtCourse {
   position: absolute;
-  background: #466b99;
+  background: #3681fc;
   width: 70px;
   height: 30px;
   border-radius: 30px;

+ 4 - 1
src/components/pages/testStudent/view/component/choice.vue

@@ -4,7 +4,7 @@
         <div v-if="!checkJson">暂未设置题目</div>
         <div v-else class="choice_box">
             <div class="c_title">
-                <div class="title">{{ `(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;" v-if="checkJson.score">({{ '分值:'+checkJson.score+'分' }})</span></div>
+                <div class="title">{{ tindex + 1 + "、" +`(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;" v-if="checkJson.score">({{ '分值:'+checkJson.score+'分' }})</span></div>
                 <div class="p_box" v-if="isTeacher == 1 && checkJson.score">
                     <el-input v-model="score2" class="c_input" disabled></el-input><span style="margin: 0 10px;">/</span><span>{{ checkJson.score }}分</span>
                 </div>
@@ -31,6 +31,9 @@
 <script>
 export default {
     props: {
+        tindex:{
+            type: Number
+        },
         cJson: {
             type: Object,
         },

+ 10 - 7
src/components/pages/testStudent/view/component/file.vue

@@ -6,7 +6,7 @@
             <!-- <div class="title"><div>{{ `(${option[checkJson.type].name})` }}</div><div v-html="checkJson.title"></div></div> -->
             <div class="c_title">
                 <div class="title">
-                    {{ `(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;"
+                    {{ tindex + 1 + "、" +`(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;"
                         v-if="checkJson.score">({{ '分值:' + checkJson.score + '分' }})</span>
                 </div>
 
@@ -100,6 +100,9 @@ export default {
         wOffice,
     },
     props: {
+        tindex:{
+            type: Number
+        },
         cJson: {
             type: Object,
         },
@@ -435,33 +438,33 @@ export default {
 .binfo_input {
     width: 100%;
     margin: 0;
-    padding: 12px 14px;
+    padding: 10px;
     display: block;
     min-width: 0;
     outline: none;
     box-sizing: border-box;
     background: none;
     border: none;
-    border-radius: 4px;
+    border-radius: 5px;
     background: #fff;
     font-size: 16px;
     resize: none;
     font-family: 'Microsoft YaHei';
     min-height: 120px;
     /* border: 1px solid #3682fc00; */
-    border: 1.5px solid #CAD1DC;
+    border: 1.5px solid #e0e0e0;
     position: relative;
 }
 
 .binfo_input>.uploadQ {
-    border: 1px dashed #CAD1DC;
+    border: 1.5px dashed #dfdfdf;
     height: 120px;
     width: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
-    background: rgb(243, 244, 246);
-    color: rgb(124, 124, 124);
+    background: rgb(249, 250, 251);
+    color:rgb(124, 124, 124);
     border-radius: 5px;
     cursor: pointer;
 }

+ 4 - 1
src/components/pages/testStudent/view/component/gap.vue

@@ -6,7 +6,7 @@
             <!-- <div class="title"><div>{{ `(${option[checkJson.type].name})` }}</div><div v-html="checkJson.title"></div></div> -->
             <div class="c_title">
                 <div class="title">
-                    {{ `(${option[checkJson.type].name})` + checkJson.title }}<span v-if="see" style="color: #efa030;">({{ checkJson.answer ? '参考答案:'+checkJson.answer : '暂无参考答案' }} {{ cJson.score ? '分值:'+cJson.score+'分' : '' }})</span>
+                    {{ tindex + 1 + "、" + `(${option[checkJson.type].name})` + checkJson.title }}<span v-if="see" style="color: #efa030;">({{ checkJson.answer ? '参考答案:'+checkJson.answer : '暂无参考答案' }} {{ cJson.score ? '分值:'+cJson.score+'分' : '' }})</span>
                     <span style="color: #efa030;" v-if="checkJson.score && !see">({{ '分值:'+checkJson.score+'分' }})</span>
                     <!-- </div><div v-html="checkJson.title"></div> -->
                 </div>
@@ -28,6 +28,9 @@
 <script>
 export default {
     props: {
+        tindex:{
+            type: Number
+        },
         cJson: {
             type: Object,
         },

+ 16 - 16
src/components/pages/testStudent/view/component/topic.vue

@@ -10,19 +10,19 @@
     <div class="c_body">
       <div v-if="type == 3">
         <div v-for="(item, index) in checkArray[page].array" :key="index" class="check_box">
-          <div class="title">{{ selectType(item, index) }}</div>
+          <div class="title" v-if="item.ttype != 1 || (!item.json && item.ttype == 1)" :style="{fontSize:item.ttype == 1 && '16px'}">{{ selectType(item, index) }}</div>
           <div v-if="item.ttype == 1" class="answerBox">
-            <choiceV :cJson.sync="item.json" :checktype="checktype" v-if="item.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
-            <gapV :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
-            <fileV :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 5" :see="see" :isTeacher="isTeacher"></fileV>
+            <choiceV :tindex="index" :cJson.sync="item.json" :checktype="checktype" v-if="item.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
+            <gapV :tindex="index" :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
+            <fileV :tindex="index" :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 5" :see="see" :isTeacher="isTeacher"></fileV>
             <!-- <span v-else>暂未设置题目</span> -->
           </div>
           <div v-for="(item2, index2) in item.array" :key="`${index}-${index2}`" class="check_box_xia">
-            <div class="title">{{ selectType(item2, index2) }}</div>
+            <div class="title" v-if="item2.ttype != 1 || (!item2.json && item2.ttype == 1)" :style="{fontSize:item2.ttype == 1 && '16px'}">{{ selectType(item2, index2) }}</div>
             <div v-if="item2.ttype == 1" class="answerBox">
-              <choiceV :cJson.sync="item2.json" :checktype="checktype" v-if="item2.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
-              <gapV :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
-              <gapV :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 5" :see="see" :isTeacher="isTeacher"></gapV>
+              <choiceV :tindex="index2" :cJson.sync="item2.json" :checktype="checktype" v-if="item2.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
+              <gapV :tindex="index2" :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
+              <gapV :tindex="index2" :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 5" :see="see" :isTeacher="isTeacher"></gapV>
               <!-- <span v-else>暂未设置题目</span> -->
             </div>
           </div>
@@ -30,19 +30,19 @@
       </div>
       <div v-else>
         <div v-for="(item, index) in checkArray" :key="index" class="check_box">
-          <div class="title">{{ selectType(item, index) }}</div>
+          <div class="title" v-if="item.ttype != 1 || (!item.json && item.ttype == 1)" :style="{fontSize:item.ttype == 1 && '16px'}">{{ selectType(item, index) }}</div>
           <div v-if="item.ttype == 1" class="answerBox">
-            <choiceV :cJson.sync="item.json" :checktype="checktype" v-if="item.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
-            <gapV :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
-            <fileV :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 5" :see="see" :isTeacher="isTeacher"></fileV>
+            <choiceV :tindex="index" :cJson.sync="item.json" :checktype="checktype" v-if="item.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
+            <gapV :tindex="index" :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
+            <fileV :tindex="index" :cJson.sync="item.json" :checktype="checktype" v-else-if="item.type == 5" :see="see" :isTeacher="isTeacher"></fileV>
             <!-- <span v-else>暂未设置题目</span> -->
           </div>
           <div v-for="(item2, index2) in item.array" :key="`${index}-${index2}`" class="check_box_xia">
-            <div class="title">{{ selectType(item2, index2) }}</div>
+            <div class="title" v-if="item2.ttype != 1 || (!item2.json && item2.ttype == 1)" :style="{fontSize:item2.ttype == 1 && '16px'}">{{ selectType(item2, index2) }}</div>
             <div v-if="item2.ttype == 1" class="answerBox">
-              <choiceV :cJson.sync="item2.json" :checktype="checktype" v-if="item2.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
-              <gapV :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
-              <fileV :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 5" :see="see" :isTeacher="isTeacher"></fileV>
+              <choiceV :tindex="index2" :cJson.sync="item2.json" :checktype="checktype" v-if="item2.type == 1" :see="see" :isTeacher="isTeacher"></choiceV>
+              <gapV :tindex="index2" :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 3" :see="see" :isTeacher="isTeacher"></gapV>
+              <fileV :tindex="index2" :cJson.sync="item2.json" :checktype="checktype" v-else-if="item2.type == 5" :see="see" :isTeacher="isTeacher"></fileV>
               <!-- <span v-else>暂未设置题目</span> -->
             </div>
           </div>

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