Browse Source

阅卷界面样式

nikang 6 years ago
parent
commit
ffd4708249

+ 27 - 25
src/modules/marking/views/Marking.vue

@@ -3,9 +3,6 @@
     <section class="content-header">
       <span>
         <span class="pull-left">
-          <small class="marktitle">
-            <span class="label-danger">{{ mark_type }}</span>
-          </small>
           <small class="marktitle titlefont">
             <span>课程:{{ task.courseName }}</span>
           </small>
@@ -36,7 +33,12 @@
             </el-button-group>
           </small>
           <small class="marktitle">
-            <el-button type="primary" @click="taskChange" size="small">
+            <el-button
+              class="course-tags"
+              type="primary"
+              @click="taskChange"
+              size="small"
+            >
               <span class="titlefont">
                 切换任务 <i class="el-icon-caret-bottom el-icon--right"></i>
               </span>
@@ -184,7 +186,7 @@
             </div>
           </el-dialog>
         </span>
-        <span class="pull-right">
+        <span class="pull-right icon-right">
           <small class="marktitle titlefont">
             <span class="titlefont">
               <v-icon name="user" style="height:12" />
@@ -193,7 +195,7 @@
           </small>
           <small class="marktitle titlefont marksign">
             <el-button type="success" @click="backIndex" size="small">
-              <v-icon name="sign-out-alt" scale="0.5" />
+              <!-- <v-icon name="sign-out-alt" scale="0.5"/> -->
               <span class="titlefont">退回</span>
             </el-button>
           </small>
@@ -662,9 +664,7 @@ export default {
   min-height: 600px;
   margin-right: auto;
   margin-left: auto;
-  margin-top: 5px;
   padding-left: 15px;
-  padding-right: 15px;
 }
 small {
   font-size: 18px;
@@ -676,6 +676,8 @@ small {
   margin-top: 10px;
   margin-left: 15px;
   overflow: hidden;
+  background-color: rgb(77, 124, 196);
+  height: 55px;
 }
 .box-body {
   height: 100%;
@@ -683,13 +685,10 @@ small {
   border-top-right-radius: 0;
   border-bottom-right-radius: 3px;
   border-bottom-left-radius: 3px;
-  padding-left: 10px;
-  padding-right: 10px;
+  padding-left: 40px;
+  padding-right: 15px;
   overflow: hidden;
 }
-.backcolor {
-  background-color: #ecf0f5;
-}
 li {
   list-style-type: none;
 }
@@ -698,9 +697,11 @@ li {
   margin-bottom: 10px;
   font-size: 18px;
   font-weight: 700;
+  color: white;
 }
 .titlefont {
-  font-size: 15px;
+  font-size: 12px;
+  display: inline-block;
 }
 .box-card {
   width: 200px;
@@ -726,22 +727,11 @@ li {
   color: #fff;
   padding: 2px;
 }
-.box.box-info {
-  border-top-color: #20a0ff;
-}
 .box {
   position: relative;
   border-radius: 3px;
-  border-top: 3px solid #d2d6de;
   margin-bottom: 20px;
   width: 100%;
-  height: auto;
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-.scoreboard {
-  width: 25%;
-  border-left: 3px solid #20a0ff;
-  min-height: 600px;
 }
 .pull-right {
   float: right !important;
@@ -753,4 +743,16 @@ li {
   overflow: auto;
   height: 450px;
 }
+.el-button {
+  background: rgb(77, 124, 196);
+  color: white;
+  border-radius: 8px;
+  border-color: white;
+}
+.course-tags {
+  background: rgb(84, 191, 255);
+}
+.icon-right {
+  margin-top: -6px;
+}
 </style>

+ 38 - 3
src/modules/marking/views/TpMain.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="markmain pull-left scroll" id="student_paper">
+  <div class="markmain pull-left" id="student_paper">
     <el-tabs :active-name="activeName">
       <el-tab-pane label="考生答卷" name="first">
         <div v-if="this.examType != 'OFFLINE'">
@@ -381,11 +381,25 @@ export default {
 <style scoped>
 .markmain {
   width: 74%;
-}
-.scroll {
   overflow: auto;
   height: 600px;
 }
+.markmain::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width: 8px; /*高宽分别对应横竖滚动条的尺寸*/
+}
+.markmain::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 5px;
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background: rgba(0, 0, 0, 0.2);
+}
+.markmain::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 0;
+  background: rgba(0, 0, 0, 0.1);
+}
 .marktitle {
   margin-right: 20px;
   margin-bottom: 20px;
@@ -417,4 +431,25 @@ img {
 .fixed {
   position: fixed;
 }
+.paper >>> .question-item {
+  border: 1px solid #ccc;
+  border-radius: 5px;
+  margin: 10px;
+  padding: 0 10px;
+}
+.paper >>> .answer {
+  border: 1px solid #ccc;
+  border-radius: 5px;
+  margin: 10px;
+  padding: 0 10px;
+  background: rgb(250, 250, 250);
+}
+.paper >>> .right-font {
+  font-weight: bold;
+  color: rgb(85, 191, 255);
+}
+.paper >>> .student-font {
+  font-weight: bold;
+  color: black;
+}
 </style>

+ 345 - 213
src/modules/marking/views/TpScoreBoard.vue

@@ -1,8 +1,10 @@
 <template>
   <div class="scoreboard pull-right">
     <div class="board-margin">
-      <div class="pull-right">
+      <div class="first-board">
+        <span class="title-font">操作方式切换:</span>
         <el-switch
+          class="pull-right"
           v-model="isMouseMode"
           active-text="鼠标"
           inactive-text="键盘"
@@ -10,191 +12,186 @@
           inactive-color="#13ce66"
         ></el-switch>
       </div>
-      <h4 class="totalScore">总分:{{ this.totalScore }}分</h4>
+      <div class="second-board">
+        <div class="board-title"><span>总分</span></div>
+        <div class="board-score">
+          <span>{{ this.totalScore }}分</span>
+        </div>
+      </div>
       <!-- 鼠标模式 -->
       <div v-if="isMouseMode">
-        <el-tabs :active-name="activeName">
-          <el-tab-pane label="评分" name="first">
-            <ul class="itemScroll">
-              <li
-                :key="resultItem.markItem.id"
-                v-for="(resultItem, index) in resultItems"
-                class="pull-left scoretitle"
-              >
-                <a
-                  v-bind:class="{ 'active-btn': itemClass[index] }"
-                  :id="resultItem.markItem.id"
-                  @click="
-                    itemClick(
-                      resultItem.markItem.id,
-                      $event,
-                      resultItem.markItem.orders
-                    )
-                  "
-                  class="button button-border button-box button-primary button-small titlebutton"
-                >
-                  <span class>
-                    {{ resultItem.markItem.mainNumber }}({{
-                      resultItem.markItem.orders
-                    }})
-                  </span>
-                  <span class="score">{{ resultItem.score }}分</span>
-                </a>
-              </li>
-              <li class="clear"></li>
-            </ul>
-          </el-tab-pane>
-        </el-tabs>
-
-        <el-tabs :active-name="markType" v-if="markTypeView">
-          <el-tab-pane label="打分" name="mouse">
-            <ul class="scoreScroll">
-              <li
-                :key="score"
-                v-for="score in itemScores"
-                class="pull-left scoretitle"
-              >
-                <button
-                  @click="scoreClick(score)"
-                  class="button button-primary button-box scorebutton"
-                >
-                  <span>{{ score }}</span>
-                </button>
-              </li>
-            </ul>
-          </el-tab-pane>
-        </el-tabs>
+        <div class="title-board"><span class="title-font">评分</span></div>
+        <div class="itemScroll">
+          <div
+            :key="resultItem.markItem.id"
+            v-for="(resultItem, index) in resultItems"
+            class="pull-left scoretitle titlebutton"
+            size="small"
+            :id="resultItem.markItem.id"
+            @click="
+              itemClick(
+                resultItem.markItem.id,
+                $event,
+                resultItem.markItem.orders
+              )
+            "
+          >
+            <div
+              v-bind:class="{ 'active-btn': itemClass[index] }"
+              class="title-item-top"
+            >
+              <span>
+                {{ resultItem.markItem.mainNumber }}({{
+                  resultItem.markItem.orders
+                }})
+              </span>
+            </div>
+            <div
+              class="title-item-bottom"
+              v-bind:class="{ 'active-text': itemClass[index] }"
+            >
+              <span>{{ resultItem.score }}分</span>
+            </div>
+          </div>
+        </div>
+        <div v-if="markTypeView">
+          <div class="step-board"></div>
+          <div class="title-board"><span class="title-font">打分</span></div>
+          <div class="itemScroll">
+            <div
+              :key="score"
+              v-for="score in itemScores"
+              class="pull-left scoretitle"
+            >
+              <div @click="scoreClick(score)" class="scorebutton">
+                <span class="score-item">{{ score }}</span>
+              </div>
+            </div>
+          </div>
+        </div>
       </div>
       <!-- 键盘模式 -->
       <div v-if="!isMouseMode">
-        <el-tabs :active-name="activeName">
-          <el-tab-pane label="评分" name="first">
-            <ul class="scroll">
-              <li
-                :key="resultItem.markItem.id"
-                v-for="(resultItem, index) in resultItems"
-                class="pull-left scoretitle"
-              >
-                <div class="box-card">
-                  <div>
-                    <span>
-                      <small>
-                        <span>
-                          {{ resultItem.markItem.mainNumber }}({{
-                            resultItem.markItem.orders
-                          }})
-                        </span>
-                      </small>
-                      <small>
-                        <span style="font-size:15px;font-weight:bold">
-                          <span>{{ resultItem.markItem.maxScore }}分</span>
-                        </span>
-                      </small>
-                      <small>
-                        <span style="font-size:15px;font-weight:bold;"
-                          >间隔:{{ resultItem.markItem.scoreInterval }}</span
-                        >
-                      </small>
-                    </span>
+        <div class="title-board"><span class="title-font">评分</span></div>
+        <div>
+          <div class="itemScroll">
+            <div
+              :key="resultItem.markItem.id"
+              v-for="(resultItem, index) in resultItems"
+              class="scoretitle"
+            >
+              <div class="box-card">
+                <div class="item-title">
+                  <div class="pull-left item-number">
+                    {{ resultItem.markItem.mainNumber }}({{
+                      resultItem.markItem.orders
+                    }})
                   </div>
-                  <div
-                    style="text-align:center;font-size:15px;font-weight:bold"
-                  >
-                    <input
-                      :id="getItemId(resultItem.markItem.id)"
-                      @focus="scoreFocus(resultItem)"
-                      @keydown.enter="scoreEnter(index, resultItem)"
-                      @keydown.up="scoreUp(index, resultItem)"
-                      @keydown.down="scoreDown(index, resultItem)"
-                      @change="scoreChange(index, resultItem.score)"
-                      v-model="resultItem.score"
-                      class="score-input"
-                    />
-                    分
+                  <div class="pull-left item-number2">
+                    <span>{{ resultItem.markItem.maxScore }}分</span>
                   </div>
+                  <div class="pull-left item-number3">
+                    间隔:{{ resultItem.markItem.scoreInterval }}
+                  </div>
+                </div>
+                <div class="item-score">
+                  <input
+                    :id="getItemId(resultItem.markItem.id)"
+                    @focus="scoreFocus(resultItem)"
+                    @keydown.enter="scoreEnter(index, resultItem)"
+                    @keydown.up="scoreUp(index, resultItem)"
+                    @keydown.down="scoreDown(index, resultItem)"
+                    @change="scoreChange(index, resultItem.score)"
+                    v-model="resultItem.score"
+                    class="score-input"
+                  />
+                  分
                 </div>
-              </li>
-              <li class="clear"></li>
-            </ul>
-          </el-tab-pane>
-        </el-tabs>
+              </div>
+            </div>
+          </div>
+        </div>
       </div>
 
-      <el-tabs :active-name="activeName">
-        <el-tab-pane label="备注" name="first">
-          <ul class="scoreScroll">
-            <li>
-              <textarea
-                id="remark"
-                type="text"
-                rows="5"
-                cols="30"
-                placeholder="请输入内容"
-                v-model="markedResult.markRemark"
-              />
-            </li>
-          </ul>
-        </el-tab-pane>
-      </el-tabs>
+      <div>
+        <div class="step-board"></div>
+        <div class="title-board"><span class="title-font">备注</span></div>
+        <div class="remark-step">
+          <textarea
+            id="remark"
+            type="text"
+            rows="5"
+            cols="45"
+            placeholder="请输入内容"
+            v-model="markedResult.markRemark"
+          />
+        </div>
+      </div>
 
-      <el-tabs :active-name="op">
-        <el-tab-pane label="操作" name="first">
-          <ul v-if="problemView">
-            <span v-if="tagFlag">
-              <el-radio-group
-                v-model="markedResult.tag"
-                @change="processTagPaper"
-              >
-                <li
-                  class="pull-left scoretitle"
-                  v-for="tag in tags"
-                  :key="tag.code"
-                >
-                  <el-radio :label="tag.code">{{ tag.name }}</el-radio>
-                </li>
-              </el-radio-group>
-            </span>
-            <span v-if="!tagFlag">
-              <el-radio-group v-model="unusualType" @change="processTagPaper">
-                <li
-                  class="pull-left scoretitle"
-                  v-for="tag in tags"
-                  :key="tag.code"
-                >
-                  <el-radio :label="tag.code" :key="tag.code">
-                    {{ tag.name }}
-                  </el-radio>
-                </li>
-              </el-radio-group>
-            </span>
-            <li class="clear"></li>
-          </ul>
-          <ul>
-            <li class="pull-left scoretitle" v-if="paperMark">
-              <el-button
-                id="subMarkBtn"
-                :loading="loading"
-                type="primary"
-                size="large"
-                @keydown.enter="submitMark"
-                @click="submitMark"
-              >
-                <span class="sub-btn">提</span> <span>交</span>
-              </el-button>
-            </li>
-            <li class="pull-left scoretitle" v-if="paperMark">
-              <el-button type="danger" size="large" @click="problemClick"
-                >问题卷</el-button
+      <div>
+        <div v-if="problemView">
+          <div class="problem-button"></div>
+          <span v-if="tagFlag">
+            <el-radio-group
+              v-model="markedResult.tag"
+              @change="processTagPaper"
+            >
+              <div
+                class="pull-left scoretitle"
+                v-for="tag in tags"
+                :key="tag.code"
               >
-            </li>
-            <li class="pull-left scoretitle" v-if="paperMark && problemView">
-              <el-button type="danger" size="large" @click="resetProblem"
-                >清除问题卷</el-button
+                <el-radio :label="tag.code">{{ tag.name }}</el-radio>
+              </div>
+            </el-radio-group>
+          </span>
+          <span v-if="!tagFlag">
+            <el-radio-group v-model="unusualType" @change="processTagPaper">
+              <div
+                class="pull-left scoretitle"
+                v-for="tag in tags"
+                :key="tag.code"
               >
-            </li>
-          </ul>
-        </el-tab-pane>
-      </el-tabs>
+                <el-radio :label="tag.code" :key="tag.code">{{
+                  tag.name
+                }}</el-radio>
+              </div>
+            </el-radio-group>
+          </span>
+        </div>
+        <div class="pull-left scoretitle" v-if="paperMark">
+          <el-button
+            id="subMarkBtn"
+            class="submit-button"
+            type="primary"
+            :loading="loading"
+            size="large"
+            @keydown.enter="submitMark"
+            @click="submitMark"
+            v-bind:round="true"
+          >
+            <span class="sub-btn">提</span> <span>交</span>
+          </el-button>
+        </div>
+        <div class="pull-left scoretitle" v-if="paperMark">
+          <el-button
+            type="danger"
+            v-bind:round="true"
+            size="large"
+            @click="problemClick"
+            >问题卷</el-button
+          >
+        </div>
+        <div class="pull-left scoretitle" v-if="paperMark && problemView">
+          <el-button
+            type="danger"
+            v-bind:round="true"
+            size="large"
+            @click="resetProblem"
+            >清除问题卷</el-button
+          >
+        </div>
+      </div>
     </div>
   </div>
 </template>
@@ -739,7 +736,6 @@ export default {
 <style scoped>
 .scoreboard {
   width: 25%;
-  border-left: 3px solid #20a0ff;
   min-height: 600px;
 }
 .scroll {
@@ -748,45 +744,49 @@ export default {
 }
 .itemScroll {
   overflow: auto;
-  height: 150px;
+  height: 140px;
+  margin-top: 15px;
+}
+.itemScroll::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width: 8px; /*高宽分别对应横竖滚动条的尺寸*/
+}
+.itemScroll::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 5px;
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background: rgba(0, 0, 0, 0.2);
+}
+.itemScroll::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 0;
+  background: rgba(0, 0, 0, 0.1);
 }
 .scoreScroll {
   overflow: auto;
   height: 100px;
 }
 .scoretitle {
-  margin-right: 20px;
-  margin-bottom: 20px;
+  margin-right: 15px;
+  margin-bottom: 15px;
 }
 li {
   list-style-type: none;
 }
-.scorebutton {
-  width: 40px;
-  height: 40px;
-}
-.titlebutton {
-  width: 50px;
-  height: 56px;
-}
 .actionbutton {
   width: 80px;
   height: 30px;
 }
-.score {
-  color: red;
-  display: block;
-}
-.totalScore {
-  color: red;
-  text-align: center;
+.second-board {
+  color: white;
+  margin-top: 20px;
+  padding-bottom: 20px;
+  border-bottom: 1px solid #ccc;
 }
 .clear {
   clear: both;
 }
-.backcolor {
-  background-color: #e4eaec;
-}
 .board-margin {
   margin-left: 20px;
 }
@@ -794,28 +794,23 @@ li {
   margin-right: 15px;
 }
 .active-btn {
-  background-color: #4cb0f9;
-  border-color: #4cb0f9;
-  color: #fff;
-}
-.box-card {
-  margin-bottom: 30px;
-  text-align: center;
+  background: rgb(85, 191, 255) !important;
+  border-color: rgb(85, 191, 255) !important;
 }
 .score-input {
-  background-color: #ecf0f5;
-  border: 1px solid #000;
+  border: 1px solid black;
   border-top: 0;
   border-left: 0;
   border-right: 0;
   box-sizing: border-box;
-  color: #1f2d3d;
-  font-size: 20px;
+  color: rgb(77, 124, 196);
+  font-size: 15px;
   height: 30px;
-  width: 60px;
+  width: 40px;
   padding: 2px 10px;
   transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
   outline: none;
+  text-align: center;
 }
 .el-switch__label {
   position: absolute;
@@ -855,17 +850,154 @@ li {
   float: right;
 }
 .scorebutton {
+  width: 40px;
+  height: 40px;
   cursor: pointer;
-  background-color: #1b9af7;
-  border-color: #1b9af7;
-  color: #fff;
+  color: rgb(77, 124, 196);
+  border-radius: 15px;
+  font-weight: 600;
+  border: 1px solid rgb(77, 124, 196);
+  text-align: center;
 }
 .titlebutton {
+  border-radius: 15px;
   cursor: pointer;
 }
 .titlebutton:hover {
-  background-color: #1b9af7;
-  border-color: #1b9af7;
-  color: #fff;
+  background: yellow;
+}
+.title-font {
+  font-size: 14px;
+  font-weight: 800;
+}
+.first-board {
+  margin-top: 20px;
+  height: 50px;
+  border-bottom: 1px solid #ccc;
+}
+.board-title {
+  height: 40px;
+  width: 80px;
+  background: red;
+  border: 2px solid red;
+  text-align: center;
+  padding-top: 20px;
+  font-weight: 600;
+  border-top-left-radius: 15px;
+  border-bottom-left-radius: 15px;
+  float: left;
+  font-size: 30px;
+  line-height: 1;
+}
+.board-score {
+  height: 40px;
+  width: 110px;
+  border: 2px solid red;
+  margin-left: 80px;
+  text-align: center;
+  padding-top: 20px;
+  font-weight: 600;
+  color: red;
+  border-top-right-radius: 15px;
+  border-bottom-right-radius: 15px;
+  font-size: 30px;
+  line-height: 1;
+}
+.title-board {
+  margin-top: 20px;
+}
+.title-item-top {
+  color: white;
+  width: 50px;
+  height: 25px;
+  border: 1px solid rgb(77, 124, 196);
+  text-align: center;
+  line-height: 2;
+  font-size: 12px;
+  border-top-left-radius: 15px;
+  border-top-right-radius: 15px;
+  background: rgb(77, 124, 196);
+  border-bottom: 0px;
+}
+.title-item-bottom {
+  width: 50px;
+  height: 30px;
+  border: 1px solid rgb(77, 124, 196);
+  text-align: center;
+  font-size: 12px;
+  line-height: 2.5;
+  border-bottom-left-radius: 15px;
+  border-bottom-right-radius: 15px;
+  border-top: 0px;
+  font-weight: 600;
+  color: rgb(77, 124, 196);
+  display: block;
+}
+.active-text {
+  color: rgb(85, 191, 255) !important;
+  border-color: rgb(85, 191, 255);
+}
+.score-item {
+  line-height: 2.5;
+}
+textarea {
+  background: #ccc;
+  border-radius: 10px;
+}
+.step-board {
+  margin-top: 20px;
+  border-bottom: 1px solid #ccc;
+}
+.problem-button {
+  border-bottom: 1px solid #ccc;
+  margin-bottom: 15px;
+}
+.remark-step {
+  overflow: auto;
+  height: 120px;
+  margin-top: 15px;
+}
+.box-card {
+  width: 160px;
+  height: 60px;
+  border: 1px solid rgb(77, 124, 196);
+  border-radius: 10px;
+}
+.item-title {
+  background: rgb(77, 124, 196);
+  color: white;
+  height: 25px;
+  border-top-left-radius: 10px;
+  border-top-right-radius: 10px;
+  font-size: 12px;
+  text-align: center;
+}
+.item-score {
+  height: 35px;
+  color: rgb(77, 124, 196);
+  font-weight: bold;
+  font-size: 15px;
+  text-align: center;
+}
+.item-number {
+  width: 52px;
+  height: 22px;
+  text-align: center;
+  line-height: 1.5;
+}
+.item-number2 {
+  width: 40px;
+  height: 22px;
+  border: 1px solid rgb(77, 124, 196);
+  border-right-color: white;
+  border-left-color: white;
+  text-align: center;
+  line-height: 1.5;
+}
+.item-number3 {
+  width: 62px;
+  height: 22px;
+  text-align: center;
+  line-height: 1.5;
 }
 </style>