Commit 2b8ad65bdf78b819785132ea9f89a6e24a570a78

Authored by 刘有才luck
1 parent c412d95d

feat: 代码提交

src/assets/images/aside/wrong-question-default.png 0 → 100644

6.1 KB

src/assets/images/aside/wrong-question.png 0 → 100644

5.88 KB

src/router/index.js
@@ -346,8 +346,8 @@ let addrouters = [ @@ -346,8 +346,8 @@ let addrouters = [
346 }, 346 },
347 { 347 {
348 path: "/wrongQuestion", 348 path: "/wrongQuestion",
349 - iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),  
350 - selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"), 349 + iconImage: require("@/assets/images/aside/wrong-question-default.png"),
  350 + selectedIconImage: require("@/assets/images/aside/wrong-question.png"),
351 name: "错题组卷", 351 name: "错题组卷",
352 demoRoles: ["ROLE_JIAOSHI"], 352 demoRoles: ["ROLE_JIAOSHI"],
353 component: wrongQuestion, 353 component: wrongQuestion,
src/views/basic/askTestQuestion/components/wrongQuestionDialog.vue
@@ -59,7 +59,7 @@ @@ -59,7 +59,7 @@
59 <div 59 <div
60 class="test-group-title" 60 class="test-group-title"
61 :class="{ 61 :class="{
62 - border: selectedIndex == group.questionType, 62 + borderTitle: selectedIndex == group.questionType,
63 }" 63 }"
64 @mouseenter="handleGroupMouseEnter(group.questionType, 'all')" 64 @mouseenter="handleGroupMouseEnter(group.questionType, 'all')"
65 > 65 >
@@ -95,7 +95,7 @@ @@ -95,7 +95,7 @@
95 left: tooltipPosition.x + 'px', 95 left: tooltipPosition.x + 'px',
96 }" 96 }"
97 > 97 >
98 - 单击设置试卷标题 98 + 单击修改大题名称
99 </div> 99 </div>
100 100
101 <span 101 <span
@@ -177,10 +177,10 @@ @@ -177,10 +177,10 @@
177 </div> 177 </div>
178 </div> 178 </div>
179 <div class="edit-info"> 179 <div class="edit-info">
180 - <div class="title size color" style="padding: 15px 0 0 10px"> 180 + <div class="title size color" style="padding: 10px 0 5px 10px">
181 题目排序 181 题目排序
182 - <span class="title size" style="color: #999999"  
183 - >(拖拽题号可拖拽排序)</span 182 + <span class="title size font-weight" style="color: #999999"
  183 + >(拖拽题号可排序)</span
184 > 184 >
185 </div> 185 </div>
186 <!-- 外层容器,允许拖拽整个组 --> 186 <!-- 外层容器,允许拖拽整个组 -->
@@ -806,7 +806,7 @@ export default { @@ -806,7 +806,7 @@ export default {
806 height: fit-content; 806 height: fit-content;
807 max-height: 742px; 807 max-height: 742px;
808 overflow-y: auto; 808 overflow-y: auto;
809 - box-shadow: 0 0 10px 0 #999999; 809 + box-shadow: 0 0 10px 0 #cfcfcf;
810 margin-right: 20px; 810 margin-right: 20px;
811 box-sizing: border-box; 811 box-sizing: border-box;
812 padding: 0 20px; 812 padding: 0 20px;
@@ -833,8 +833,8 @@ export default { @@ -833,8 +833,8 @@ export default {
833 .test-group-title { 833 .test-group-title {
834 position: relative; 834 position: relative;
835 height: 40px; 835 height: 40px;
836 - line-height: 30px;  
837 - padding: 10px 0 0 0; 836 + line-height: 40px;
  837 + padding: 0;
838 } 838 }
839 } 839 }
840 } 840 }
@@ -847,7 +847,8 @@ export default { @@ -847,7 +847,8 @@ export default {
847 .edit-title { 847 .edit-title {
848 width: 100%; 848 width: 100%;
849 height: 200px; 849 height: 200px;
850 - border: 1px solid #999999; 850 + border: 1px solid #cfcfcf;
  851 + border-radius: 5px;
851 852
852 .edit-title-info { 853 .edit-title-info {
853 height: 60px; 854 height: 60px;
@@ -879,11 +880,12 @@ export default { @@ -879,11 +880,12 @@ export default {
879 880
880 .edit-info { 881 .edit-info {
881 flex: 1; 882 flex: 1;
882 - border: 1px solid #999999; 883 + border: 1px solid #cfcfcf;
883 margin-top: 20px; 884 margin-top: 20px;
884 max-height: 500px; 885 max-height: 500px;
885 padding: 10px; 886 padding: 10px;
886 overflow: auto; 887 overflow: auto;
  888 + border-radius: 5px;
887 889
888 .group-item { 890 .group-item {
889 margin: 10px; 891 margin: 10px;
@@ -903,14 +905,14 @@ export default { @@ -903,14 +905,14 @@ export default {
903 .questions { 905 .questions {
904 display: flex; 906 display: flex;
905 flex-wrap: wrap; 907 flex-wrap: wrap;
906 - 908 + padding: 10px 0;
907 .question-item { 909 .question-item {
908 width: 35px; 910 width: 35px;
909 height: 35px; 911 height: 35px;
910 border: 1px solid rgb(172, 188, 249); 912 border: 1px solid rgb(172, 188, 249);
911 border-radius: 4px; 913 border-radius: 4px;
912 cursor: grab; 914 cursor: grab;
913 - margin: 5px 8px; 915 + margin: 0 10px 10px 10px;
914 line-height: 35px; 916 line-height: 35px;
915 text-align: center; 917 text-align: center;
916 font-size: 16px !important; 918 font-size: 16px !important;
@@ -947,6 +949,7 @@ export default { @@ -947,6 +949,7 @@ export default {
947 .border { 949 .border {
948 border: 1px solid rgb(173, 190, 250); 950 border: 1px solid rgb(173, 190, 250);
949 position: relative; 951 position: relative;
  952 + border-radius: 3px;
950 953
951 .border-del { 954 .border-del {
952 position: absolute; 955 position: absolute;
@@ -959,7 +962,7 @@ export default { @@ -959,7 +962,7 @@ export default {
959 color: rgb(67, 141, 255); 962 color: rgb(67, 141, 255);
960 font-size: 14px !important; 963 font-size: 14px !important;
961 line-height: 28px; 964 line-height: 28px;
962 - font-weight: 600; 965 +
963 cursor: pointer; 966 cursor: pointer;
964 } 967 }
965 } 968 }
@@ -984,9 +987,16 @@ export default { @@ -984,9 +987,16 @@ export default {
984 background: rgb(233, 237, 253); 987 background: rgb(233, 237, 253);
985 width: fit-content; 988 width: fit-content;
986 } 989 }
  990 +.borderTitle {
  991 + background: rgba(102, 127, 253, 0.1);
  992 + padding: 0;
  993 +}
987 994
988 .title-bg { 995 .title-bg {
989 background: rgb(115, 142, 246); 996 background: rgb(115, 142, 246);
990 border-bottom: 1px solid rgb(115, 142, 246); 997 border-bottom: 1px solid rgb(115, 142, 246);
991 } 998 }
  999 +.font-weight {
  1000 + font-weight: 400;
  1001 +}
992 </style> 1002 </style>
src/views/basic/askTestQuestion/wrongQuestion.vue
@@ -71,7 +71,7 @@ @@ -71,7 +71,7 @@
71 </el-col> 71 </el-col>
72 <el-col class="col-margin" :span="8"> 72 <el-col class="col-margin" :span="8">
73 <span style="font-weight: 600">得分率:</span> 73 <span style="font-weight: 600">得分率:</span>
74 - <div> 74 + <div style="font-size: 16px !important">
75 <el-input 75 <el-input
76 v-model="formData.startScoreRate" 76 v-model="formData.startScoreRate"
77 type="number" 77 type="number"
@@ -94,7 +94,7 @@ @@ -94,7 +94,7 @@
94 % 94 %
95 </div> 95 </div>
96 </el-col> 96 </el-col>
97 - <el-col class="col-margin" :span="7" 97 + <el-col class="col-margin" :span="6"
98 ><span 98 ><span
99 style="font-weight: 600; width: fit-content; white-space: nowrap" 99 style="font-weight: 600; width: fit-content; white-space: nowrap"
100 >题型:</span 100 >题型:</span
@@ -109,7 +109,7 @@ @@ -109,7 +109,7 @@
109 {{ item.label }} 109 {{ item.label }}
110 </div></el-col 110 </div></el-col
111 > 111 >
112 - <el-col class="col-margin" :span="2" 112 + <el-col class="col-margin" style="margin-left: 10px" :span="2"
113 ><el-button 113 ><el-button
114 @click="handleSearch" 114 @click="handleSearch"
115 style="background: #6b73f5" 115 style="background: #6b73f5"
@@ -130,13 +130,21 @@ @@ -130,13 +130,21 @@
130 >道题)</span 130 >道题)</span
131 > 131 >
132 </div> 132 </div>
  133 + <div
  134 + style="text-align: center; line-height: 400px"
  135 + v-if="topicList.length < 1"
  136 + >
  137 + 筛选条件下,暂无题目
  138 + </div>
133 <div class="topic" v-for="(item, index) in topicList" :key="index"> 139 <div class="topic" v-for="(item, index) in topicList" :key="index">
134 <div class="topic-title"> 140 <div class="topic-title">
135 <div style="display: flex"> 141 <div style="display: flex">
136 <div style="display: flex; align-items: center"> 142 <div style="display: flex; align-items: center">
137 - <span class="size"> 第 {{ item.questionIndex }} 题 </span> 143 + <span class="size font-weight">
  144 + 第 {{ item.questionIndex }} 题
  145 + </span>
138 <div 146 <div
139 - class="select-box Selected size" 147 + class="select-box Selected size font-weight"
140 style="padding: 3px 5px; margin-right: 20px" 148 style="padding: 3px 5px; margin-right: 20px"
141 > 149 >
142 {{ 150 {{
@@ -149,15 +157,17 @@ @@ -149,15 +157,17 @@
149 <div> 157 <div>
150 <span class="color size"> 得分率: </span> 158 <span class="color size"> 得分率: </span>
151 <span class="score-color size">{{ item.scoreRate }}%</span> 159 <span class="score-color size">{{ item.scoreRate }}%</span>
152 - <span class="size">({{ item.joinClassNames }})</span> 160 + <span class="size font-weight"
  161 + >({{ item.joinClassNames }})</span
  162 + >
153 </div> 163 </div>
154 </div> 164 </div>
155 <div> 165 <div>
156 - <span class="color size">来自试卷:</span  
157 - ><span class="size">{{ item.paperName }}</span>  
158 - <span class="color size" style="margin-left: 20px" 166 + <span class="color size font-weight">来自试卷:</span
  167 + ><span class="size font-weight">{{ item.paperName }}</span>
  168 + <span class="color size font-weight" style="margin-left: 20px"
159 >测试时间:</span 169 >测试时间:</span
160 - ><span class="size">{{ item.testTime }}</span> 170 + ><span class="size font-weight">{{ item.testTime }}</span>
161 </div> 171 </div>
162 </div> 172 </div>
163 173
@@ -165,22 +175,26 @@ @@ -165,22 +175,26 @@
165 class="topic-info" 175 class="topic-info"
166 :src="item.screenshot" 176 :src="item.screenshot"
167 :ref="'iframe' + index" 177 :ref="'iframe' + index"
168 - style="width: 100%" 178 + style="width: 100%; border: none"
169 @load="onIFrameLoad(index)" 179 @load="onIFrameLoad(index)"
170 /> 180 />
171 <!-- <div class="topic-info" v-html="item.modifiedHtml"></div> --> 181 <!-- <div class="topic-info" v-html="item.modifiedHtml"></div> -->
172 <div class="topic-bottom"> 182 <div class="topic-bottom">
173 - <div> 183 + <div style="padding-left: 20px">
174 <span 184 <span
175 v-if="item.answerScreenshot" 185 v-if="item.answerScreenshot"
176 - class="knowledge size" 186 + class="knowledge size font-weight"
177 @click="handleAnalysis(item.answerScreenshot)" 187 @click="handleAnalysis(item.answerScreenshot)"
178 ><i class="el-icon-key"></i>查看解析</span 188 ><i class="el-icon-key"></i>查看解析</span
179 > 189 >
180 - <span class="color size">知识点:</span>  
181 - <span class="size">{{ item.knowledge }}</span> 190 + <span class="color size font-weight">知识点:</span>
  191 + <span v-if="item.knowledge" class="size">{{
  192 + item.knowledge
  193 + }}</span>
  194 + <span v-else class="size color font-weight">未标注</span>
182 </div> 195 </div>
183 <el-button 196 <el-button
  197 + style="margin-right: 20px"
184 v-if="!questions.some((obj) => item.id === obj.id)" 198 v-if="!questions.some((obj) => item.id === obj.id)"
185 class="button" 199 class="button"
186 type="primary" 200 type="primary"
@@ -190,7 +204,7 @@ @@ -190,7 +204,7 @@
190 <el-button 204 <el-button
191 v-else 205 v-else
192 plain 206 plain
193 - style="padding: 5px 10px" 207 + style="padding: 5px 10px; margin-right: 20px"
194 @click="handleDel(item)" 208 @click="handleDel(item)"
195 >移除试卷</el-button 209 >移除试卷</el-button
196 > 210 >
@@ -219,6 +233,7 @@ @@ -219,6 +233,7 @@
219 questions.map((item) => item.id) 233 questions.map((item) => item.id)
220 ) 234 )
221 " 235 "
  236 + style="margin-right: 20px"
222 @click="handleAllTest()" 237 @click="handleAllTest()"
223 >全选本页</el-button 238 >全选本页</el-button
224 > 239 >
@@ -227,7 +242,7 @@ @@ -227,7 +242,7 @@
227 class="button-size" 242 class="button-size"
228 v-else 243 v-else
229 plain 244 plain
230 - style="padding: 5px 10px" 245 + style="padding: 5px 10px; margin-right: 20px"
231 >移除本页</el-button 246 >移除本页</el-button
232 > 247 >
233 </div> 248 </div>
@@ -290,8 +305,8 @@ export default { @@ -290,8 +305,8 @@ export default {
290 classList: [], 305 classList: [],
291 // 时间选择 306 // 时间选择
292 dateList: [ 307 dateList: [
293 - { type: "onDay", name: "今天" },  
294 { type: "onWeek", name: "本周" }, 308 { type: "onWeek", name: "本周" },
  309 + { type: "onMonth", name: "本月" },
295 { type: "term", name: "本学期" }, 310 { type: "term", name: "本学期" },
296 ], 311 ],
297 // 题型选择 312 // 题型选择
@@ -308,7 +323,7 @@ export default { @@ -308,7 +323,7 @@ export default {
308 formData: { 323 formData: {
309 classId: 1, // 班级选中 324 classId: 1, // 班级选中
310 // type: "onDay", // 时间类型 325 // type: "onDay", // 时间类型
311 - type: "onDay", // 时间类型 326 + type: "onWeek", // 时间类型
312 dateRange: ["2022-03-01", "2023-05-01"], // 开始结束时间 327 dateRange: ["2022-03-01", "2023-05-01"], // 开始结束时间
313 startScoreRate: 0, // 开始区间 328 startScoreRate: 0, // 开始区间
314 endScoreRate: 60, // 结束区间 329 endScoreRate: 60, // 结束区间
@@ -625,11 +640,23 @@ export default { @@ -625,11 +640,23 @@ export default {
625 // 获取ref 640 // 获取ref
626 onIFrameLoad(index) { 641 onIFrameLoad(index) {
627 const iframeRef = this.$refs["iframe" + index][0]; // 获取对应的 iframe 642 const iframeRef = this.$refs["iframe" + index][0]; // 获取对应的 iframe
  643 + // const doc = iframeRef.contentDocument || iframeRef.contentWindow.document;
  644 + // const body = iframeRef.contentWindow.document.body;
  645 + // body.style.overflowX = "hidden"; // 不允许出现横向滚动条
  646 + // const height = body.scrollHeight; // 获取内容的高度
  647 + // iframeRef.style.height = `${height}px`; // 设置 iframe 的高度
  648 + // // 获取第一个P标签
  649 + // const firstP = doc.getElementsByTagName("p")[0];
  650 + // // 或者修改第一个 < p > 标签的内容;
  651 + // if (firstP) {
  652 + // let a = this.processString(firstP.innerHTML);
  653 + // firstP.innerHTML = a;
  654 + // }
628 const doc = iframeRef.contentDocument || iframeRef.contentWindow.document; 655 const doc = iframeRef.contentDocument || iframeRef.contentWindow.document;
629 const body = iframeRef.contentWindow.document.body; 656 const body = iframeRef.contentWindow.document.body;
630 body.style.overflowX = "hidden"; // 不允许出现横向滚动条 657 body.style.overflowX = "hidden"; // 不允许出现横向滚动条
631 const height = body.scrollHeight; // 获取内容的高度 658 const height = body.scrollHeight; // 获取内容的高度
632 - iframeRef.style.height = `${height}px`; // 设置 iframe 的高度 659 + iframeRef.style.height = `${height + 20}px`; // 设置 iframe 的高度
633 // 获取第一个P标签 660 // 获取第一个P标签
634 const firstP = doc.getElementsByTagName("p")[0]; 661 const firstP = doc.getElementsByTagName("p")[0];
635 // 或者修改第一个 < p > 标签的内容; 662 // 或者修改第一个 < p > 标签的内容;
@@ -699,7 +726,7 @@ export default { @@ -699,7 +726,7 @@ export default {
699 margin-top: 15px; 726 margin-top: 15px;
700 display: flex; 727 display: flex;
701 flex-direction: column; 728 flex-direction: column;
702 - box-shadow: 0px 0px 9px 0px #999999; 729 + box-shadow: 0px 0px 9px 0px #cfcfcf;
703 border-radius: 5px; 730 border-radius: 5px;
704 .topic-title { 731 .topic-title {
705 height: 45px; 732 height: 45px;
@@ -720,10 +747,9 @@ export default { @@ -720,10 +747,9 @@ export default {
720 display: flex; 747 display: flex;
721 align-items: center; 748 align-items: center;
722 justify-content: space-between; 749 justify-content: space-between;
723 - margin: 0 20px;  
724 font-weight: 600; 750 font-weight: 600;
725 box-sizing: border-box; 751 box-sizing: border-box;
726 - border-top: 1px solid #d2cdcd; 752 + border-top: 1px solid #e0dbdb;
727 .knowledge { 753 .knowledge {
728 color: rgb(105, 134, 205); 754 color: rgb(105, 134, 205);
729 margin-right: 30px; 755 margin-right: 30px;
@@ -737,15 +763,14 @@ export default { @@ -737,15 +763,14 @@ export default {
737 display: flex; 763 display: flex;
738 justify-content: space-between; 764 justify-content: space-between;
739 align-items: center; 765 align-items: center;
740 - border-top: 1px solid #666666; 766 + border-top: 1px solid #cfcfcf;
741 background: #ffffff; 767 background: #ffffff;
742 - box-shadow: 0 0 3px 0 #666666;  
743 padding: 5px 20px 0 20px; 768 padding: 5px 20px 0 20px;
744 } 769 }
745 770
746 .shopping { 771 .shopping {
747 - width: 40px;  
748 - height: 120px; 772 + width: 50px;
  773 + height: 135px;
749 position: fixed; 774 position: fixed;
750 top: 30%; 775 top: 30%;
751 right: 0; 776 right: 0;
@@ -763,13 +788,13 @@ export default { @@ -763,13 +788,13 @@ export default {
763 text-align: center; 788 text-align: center;
764 cursor: pointer; 789 cursor: pointer;
765 .shopping-select { 790 .shopping-select {
766 - width: 20px;  
767 - height: 20px; 791 + width: 25px;
  792 + height: 25px;
768 border-radius: 50%; 793 border-radius: 50%;
769 - background: yellow;  
770 - color: red;  
771 - line-height: 20px; 794 + background: #eb5151;
  795 + color: #ffffff;
772 font-size: 12px !important; 796 font-size: 12px !important;
  797 + line-height: 25px;
773 } 798 }
774 .size { 799 .size {
775 font-size: 14px !important; 800 font-size: 14px !important;
@@ -785,6 +810,7 @@ export default { @@ -785,6 +810,7 @@ export default {
785 margin: 10px 0; 810 margin: 10px 0;
786 display: flex; 811 display: flex;
787 align-items: center; 812 align-items: center;
  813 + font-size: 16px !important;
788 } 814 }
789 .button { 815 .button {
790 background: #6b73f5; 816 background: #6b73f5;
@@ -794,6 +820,7 @@ export default { @@ -794,6 +820,7 @@ export default {
794 padding: 5px 10px; 820 padding: 5px 10px;
795 border-radius: 5px; 821 border-radius: 5px;
796 margin: 0 8px; 822 margin: 0 8px;
  823 + font-size: 16px !important;
797 cursor: pointer; 824 cursor: pointer;
798 white-space: nowrap; 825 white-space: nowrap;
799 width: fit-content; 826 width: fit-content;
@@ -814,4 +841,15 @@ export default { @@ -814,4 +841,15 @@ export default {
814 .size { 841 .size {
815 font-size: 14px !important; 842 font-size: 14px !important;
816 } 843 }
  844 +.font-weight {
  845 + font-weight: 400;
  846 +}
  847 +.filter-datePicker {
  848 + font-size: 16px !important;
  849 +}
  850 +::v-deep .el-button {
  851 + span {
  852 + font-size: 16px !important;
  853 + }
  854 +}
817 </style> 855 </style>