lideyin 5 ani în urmă
părinte
comite
62e1764989
1 a modificat fișierele cu 74 adăugiri și 21 ștergeri
  1. 74 21
      src/modules/examwork/view/notice.vue

+ 74 - 21
src/modules/examwork/view/notice.vue

@@ -268,7 +268,18 @@
               </el-col>
             </el-row>
             <el-form-item label="公告内容" prop="content">
-              <ckeditor width="650px" v-model="noticeForm.content"></ckeditor>
+              <div
+                v-if="this.operateType == 'view'"
+                v-html="noticeForm.content"
+                class="ckeditor-readOnly"
+              ></div>
+              <div v-else>
+                <ckeditor
+                  :readOnly="this.operateType == 'view'"
+                  width="650px"
+                  v-model="noticeForm.content"
+                ></ckeditor>
+              </div>
             </el-form-item>
           </el-form>
           <div style="text-align: center;">
@@ -341,6 +352,7 @@
                 v-loading="loading"
                 element-loading-text="拼命加载中"
                 :data="examTableData"
+                ref="examTable"
                 border
                 @selection-change="examSelectChange"
               >
@@ -390,7 +402,7 @@
               :inline="true"
               :model="markFormSearch"
               label-position="right"
-              label-width="70px"
+              label-width="110px"
             >
               <el-row :gutter="10" v-if="selectedMark.length != 0">
                 <el-col :xs="30" :sm="30" :md="30" :lg="30">
@@ -430,6 +442,7 @@
                 v-loading="loading"
                 element-loading-text="拼命加载中"
                 :data="markTableData"
+                ref="markTable"
                 border
                 @selection-change="markSelectChange"
               >
@@ -501,7 +514,9 @@ export default {
         workName: ""
       },
       selectedExam: [],
+      tempSelectedExam: [],
       selectedMark: [],
+      tempSelectedMark: [],
       examTableData: [],
       markTableData: [],
       operateType: "add",
@@ -595,6 +610,7 @@ export default {
     closeEditNoticeDialog() {
       this.editNoticeDialogVisible = false;
     },
+
     selectChange(row) {
       this.selectedNoticeIds = [];
       row.forEach((element, index) => {
@@ -616,30 +632,38 @@ export default {
       this.searchForm();
     },
     examSelectChange(row) {
-      var selectedExam = this.selectedExam;
-      if (selectedExam.length >= 10) {
+      this.tempSelectedExam = row;
+      var selectedExams = this.selectedExam;
+      if (selectedExams.length >= 10) {
         this.warn("一次最多只能选择10个考试批次!");
         return;
       }
       row.forEach(element => {
-        if (selectedExam.indexOf(element) == -1 && selectedExam.length < 10) {
-          selectedExam.push(element);
+        if (
+          !selectedExams.some(se => se.id == element.id) &&
+          selectedExams.length < 10
+        ) {
+          selectedExams.push(element);
         }
       });
-      this.selectedExam = selectedExam;
+      this.selectedExam = selectedExams;
     },
     markSelectChange(row) {
-      var selectedMark = this.selectedMark;
-      if (selectedMark.length >= 10) {
+      this.tempSelectedMark = row;
+      var selectedMarks = this.selectedMark;
+      if (selectedMarks.length >= 10) {
         this.warn("一次最多只能选择10个阅卷工作!");
         return;
       }
       row.forEach(element => {
-        if (selectedMark.indexOf(element) == -1 && selectedMark.length < 10) {
-          selectedMark.push(element);
+        if (
+          !selectedMarks.some(sm => sm.id == element.id) &&
+          selectedMarks.length < 10
+        ) {
+          selectedMarks.push(element);
         }
       });
-      this.selectedMark = selectedMark;
+      this.selectedMark = selectedMarks;
     },
     handleExamCurrentChange(val) {
       this.examCurrentPage = val;
@@ -741,12 +765,12 @@ export default {
       this.noticeForm.noticeStatus = "";
 
       this.editNoticeDialogVisible = true;
+
       this.selectedExam = [];
       this.selectedMark = [];
       this.noticeForm = {};
     },
     editNoticeDialog(row) {
-      debugger;
       this.operateType = "edit";
       this.noticeForm = Object.assign({}, row);
       this.selectedExam = [];
@@ -911,9 +935,13 @@ export default {
     showSelectReceiver() {
       if (this.noticeForm.ruleType == "STUDENTS_OF_EXAM") {
         this.selectedMark = [];
+        this.examFormSearch.name = "";
+        this.resetExamPageAndSearchForm();
         this.examReceiverVisible = true;
       } else if (this.noticeForm.ruleType == "TEACHER_OF_MARK_WORK") {
         this.selectedExam = [];
+        this.markFormSearch.workName = "";
+        this.resetMarkPageAndSearchForm();
         this.markReceiverVisible = true;
       } else {
         this.examReceiverVisible = false;
@@ -921,26 +949,42 @@ export default {
       }
     },
     examTagClose(tag) {
-      let selectedId = "";
       for (let [index, exam] of this.selectedExam.entries()) {
         if (tag.id == exam.id) {
+          this.toggleExamSelection(
+            this.examTableData.find(p => p.id == exam.id)
+          );
           this.selectedExam.splice(index, 1);
-        } else {
-          selectedId = selectedId + exam.id;
         }
       }
-      this.receiverForm.publishObjectId = selectedId;
     },
     markTagClose(tag) {
-      let selectedId = "";
       for (let [index, mark] of this.selectedMark.entries()) {
         if (tag.id == mark.id) {
+          this.toggleMarkSelection(
+            this.markTableData.find(p => p.id == mark.id)
+          );
           this.selectedMark.splice(index, 1);
-        } else {
-          selectedId = selectedId + mark.id;
         }
       }
-      this.receiverForm.publishObjectId = selectedId;
+    },
+    toggleExamSelection(row) {
+      if (
+        this.tempSelectedExam &&
+        this.tempSelectedExam.length > 0 &&
+        this.tempSelectedExam.some(p => p.id == row.id)
+      ) {
+        this.$refs.examTable.toggleRowSelection(row);
+      }
+    },
+    toggleMarkSelection(row) {
+      if (
+        this.tempSelectedMark &&
+        this.tempSelectedMark.length > 0 &&
+        this.tempSelectedMark.some(p => p.id == row.id)
+      ) {
+        this.$refs.markTable.toggleRowSelection(row);
+      }
     },
     examConfirm() {
       this.examReceiverVisible = false;
@@ -995,4 +1039,13 @@ export default {
 .input {
   width: 400px;
 }
+.ckeditor-readOnly {
+  width: 650px;
+  height: 270px;
+  border-width: 1px;
+  border-style: solid;
+  border-color: rgb(211, 213, 218);
+  padding: 5px;
+  margin-bottom: 10px;
+}
 </style>