zhangjie 2 rokov pred
rodič
commit
bf7ad6faa4

+ 6 - 0
src/modules/base/api.js

@@ -141,6 +141,7 @@ export const downloadDataReturn = (datas) => {
     responseType: "blob",
   });
 };
+
 // course-link-manage
 export const courseLinkList = (datas) => {
   return $postParam("/api/exam_course_mapping/page", datas);
@@ -167,6 +168,11 @@ export const flushCache = () => {
 export const assignmentDataList = (datas) => {
   return $postParam("/api/assign/page", datas);
 };
+export const downloadAssignmentData = (datas) => {
+  return $postParam("/api/assign/download", datas, {
+    responseType: "blob",
+  });
+};
 export const assignmentDetailInfo = (datas, silence = false) => {
   return $postParam("/api/assign/to_calc", datas, {
     silence,

+ 34 - 5
src/modules/base/components/assignment/AssignResult.vue

@@ -23,6 +23,25 @@
           }"
         ></teacher-select>
       </el-form-item>
+      <el-form-item label="赋分分数段:">
+        <el-input-number
+          style="width: 65px"
+          v-model.trim="filter.minAssignScore"
+          placeholder="下限"
+          :controls="false"
+          :min="0"
+          :max="filter.maxAssignScore || 9999"
+        ></el-input-number>
+        <span class="mlr-1">-</span>
+        <el-input-number
+          style="width: 65px"
+          v-model.trim="filter.maxAssignScore"
+          placeholder="上限"
+          :controls="false"
+          :min="filter.minAssignScore || 0"
+          :max="9999"
+        ></el-input-number>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="toPage(1)">查询</el-button>
       </el-form-item>
@@ -64,6 +83,11 @@
         label="总分"
         width="80"
       ></el-table-column>
+      <el-table-column
+        prop="assignScore"
+        label="赋分后总分"
+        width="100"
+      ></el-table-column>
       <el-table-column class-name="action-column" label="评分明细" width="100">
         <template slot-scope="scope">
           <el-button
@@ -89,11 +113,6 @@
         label="任课老师"
         width="120"
       ></el-table-column>
-      <el-table-column
-        prop="assignScore"
-        label="赋分后总分"
-        width="100"
-      ></el-table-column>
     </el-table>
     <div class="part-page">
       <el-pagination
@@ -137,6 +156,8 @@ export default {
         kcCollege: "",
         clazzId: "",
         teacherCode: "",
+        minAssignScore: undefined,
+        maxAssignScore: undefined,
       },
       current: 1,
       size: this.GLOBAL.pageSize,
@@ -154,6 +175,14 @@ export default {
         pageNumber: this.current,
         pageSize: this.size,
       };
+      if (
+        datas.minAssignScore &&
+        datas.maxAssignScore &&
+        datas.minAssignScore > datas.maxAssignScore
+      ) {
+        this.$message.error("赋分分数段下限不能高于上限");
+        return;
+      }
 
       const data = await assignmentCalcResult(datas);
       this.dataList = data.records;

+ 49 - 2
src/modules/base/views/AssignmentCalculate.vue

@@ -35,6 +35,14 @@
             @click="toPage(1)"
             >查询</el-button
           >
+          <el-button
+            type="primary"
+            :disabled="
+              !filter.semesterId || !filter.examTypeId || !filter.collegeId
+            "
+            @click="toExport()"
+            >导出</el-button
+          >
         </el-form-item>
       </el-form>
     </div>
@@ -55,7 +63,7 @@
             {{ scope.row.publish ? "已发布" : "未发布" }}
           </span>
         </el-table-column>
-        <el-table-column class-name="action-column" label="操作" width="120">
+        <el-table-column class-name="action-column" label="操作" width="140">
           <template slot-scope="scope">
             <el-button
               class="btn-primary"
@@ -72,6 +80,14 @@
             >
               发布</el-button
             >
+            <el-button
+              v-if="isNotAssignUser"
+              class="btn-primary"
+              type="text"
+              @click="toExport(scope.row)"
+            >
+              导出</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -92,7 +108,12 @@
 </template>
 
 <script>
-import { assignmentDataList, assignmentPublish } from "../api";
+import {
+  assignmentDataList,
+  assignmentPublish,
+  downloadAssignmentData,
+} from "../api";
+import { downloadByApi } from "@/plugins/download";
 
 export default {
   name: "assignment-calculate",
@@ -111,6 +132,7 @@ export default {
       dataList: [],
       publishing: false,
       isAssignUser: [],
+      downloading: false,
     };
   },
   async mounted() {
@@ -189,6 +211,31 @@ export default {
       if (!res) return;
       this.$message.success("发布成功!");
     },
+    async toExport(row) {
+      if (this.downloading) return;
+      this.downloading = true;
+
+      let curAssignInfo = this.$objAssign(
+        {
+          semesterId: "",
+          examTypeId: "",
+          courseCode: "",
+          collegeId: "",
+          openCollege: "",
+        },
+        row ? { ...row, collegeId: this.filter.collegeId } : this.filter
+      );
+
+      const res = await downloadByApi(() => {
+        return downloadAssignmentData(curAssignInfo);
+      }).catch((e) => {
+        this.$message.error(e || "下载失败,请重新尝试!");
+      });
+      this.downloading = false;
+
+      if (!res) return;
+      this.$message.success("下载成功!");
+    },
   },
 };
 </script>

+ 7 - 1
src/modules/base/views/EcsDataManage.vue

@@ -44,7 +44,11 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
-        <el-table-column prop="examId" label="云阅卷id"></el-table-column>
+        <el-table-column
+          prop="examId"
+          label="云阅卷id"
+          width="100"
+        ></el-table-column>
         <el-table-column prop="className" label="班级"></el-table-column>
         <el-table-column prop="college" label="学院"></el-table-column>
         <el-table-column prop="name" label="学生"> </el-table-column>
@@ -53,6 +57,8 @@
         <el-table-column prop="subjectCode" label="科目代码"> </el-table-column>
         <el-table-column prop="totalScore" label="总分" width="80">
         </el-table-column>
+        <el-table-column prop="assignScore" label="赋分" width="80">
+        </el-table-column>
         <el-table-column prop="status" label="状态" width="80">
         </el-table-column>
       </el-table>