zhangjie 10 months ago
parent
commit
a311a09d35

+ 1 - 1
src/assets/styles/common-comp.scss

@@ -63,7 +63,7 @@
     height: 80px;
     height: 80px;
     line-height: 80px;
     line-height: 80px;
     top: 50%;
     top: 50%;
-    margin-top: -80px;
+    margin-top: -40px;
     text-align: center;
     text-align: center;
     color: #d0d0d0;
     color: #d0d0d0;
     z-index: 9;
     z-index: 9;

+ 1 - 1
src/components/ImageContain.vue

@@ -40,7 +40,7 @@
       <i class="el-icon-loading"></i>
       <i class="el-icon-loading"></i>
     </div>
     </div>
     <!-- action -->
     <!-- action -->
-    <div v-if="showAction" :class="[`${prefixCls}-action`]">
+    <div v-if="showAction && image.url" :class="[`${prefixCls}-action`]">
       <ul>
       <ul>
         <li title="合适大小" @click.stop="toOrigin">
         <li title="合适大小" @click.stop="toOrigin">
           <i class="el-icon-rank" />
           <i class="el-icon-rank" />

+ 1 - 1
src/components/base/CourseSelect.vue

@@ -12,7 +12,7 @@
       v-for="item in optionList"
       v-for="item in optionList"
       :key="item.code"
       :key="item.code"
       :value="item.code"
       :value="item.code"
-      :label="item.name"
+      :label="`${item.name}(${item.code})`"
     >
     >
     </el-option>
     </el-option>
   </el-select>
   </el-select>

+ 2 - 0
src/constants/enumerate.js

@@ -39,7 +39,9 @@ export const DATA_TASK_TYPE = {
   STUDENT_IMPORT: "导入学生",
   STUDENT_IMPORT: "导入学生",
   EXAM_STUDENT_IMPORT: "导入考生",
   EXAM_STUDENT_IMPORT: "导入考生",
   PAPER_SCAN_TASK_IMPORT: "导入任务",
   PAPER_SCAN_TASK_IMPORT: "导入任务",
+  STUDENT_PDF_GENERATE: "PDF生成",
   PAPER_DOWNLOAD: "批量下载",
   PAPER_DOWNLOAD: "批量下载",
+  PICTURE_DOWNLOAD: "图片下载",
 };
 };
 export const DATA_TASK_STATUS = {
 export const DATA_TASK_STATUS = {
   INIT: "未开始",
   INIT: "未开始",

+ 3 - 0
src/modules/record/api.js

@@ -124,3 +124,6 @@ export const buildStudentPdf = (datas) => {
 export const pictureListPage = (datas) => {
 export const pictureListPage = (datas) => {
   return $postParam("/api/admin/paper/picture/page", datas);
   return $postParam("/api/admin/paper/picture/page", datas);
 };
 };
+export const pictureDownload = (datas) => {
+  return $postParam("/api/admin/paper/picture/download", datas);
+};

+ 20 - 9
src/modules/record/components/ArchivesDetailStudentDialog.vue

@@ -61,19 +61,23 @@
               v-if="showFix"
               v-if="showFix"
               type="primary"
               type="primary"
               size="small"
               size="small"
-              :disabled="!canFix"
+              :disabled="!canFixOrDelete"
               @click="toFix"
               @click="toFix"
               >纠错</el-button
               >纠错</el-button
             >
             >
             <el-button
             <el-button
               type="primary"
               type="primary"
               size="small"
               size="small"
-              :disabled="!curImageRotate"
+              :disabled="!canSaveRotate"
               :loading="loading"
               :loading="loading"
               @click="toSaveRotate"
               @click="toSaveRotate"
               >保存旋转</el-button
               >保存旋转</el-button
             >
             >
-            <el-button type="danger" size="small" @click="toDelete"
+            <el-button
+              type="danger"
+              size="small"
+              :disabled="!canFixOrDelete"
+              @click="toDelete"
               >删除</el-button
               >删除</el-button
             >
             >
             <p v-if="showFix" class="tips-info tips-error">
             <p v-if="showFix" class="tips-info tips-error">
@@ -155,9 +159,12 @@ export default {
     };
     };
   },
   },
   computed: {
   computed: {
-    canFix() {
+    canFixOrDelete() {
       return Boolean(this.multipleSelection.length || this.curImage.url);
       return Boolean(this.multipleSelection.length || this.curImage.url);
     },
     },
+    canSaveRotate() {
+      return Boolean(this.curImageRotate && this.curImage.url);
+    },
   },
   },
   methods: {
   methods: {
     async reloadData() {
     async reloadData() {
@@ -270,21 +277,25 @@ export default {
       this.curImage.url = newUrl;
       this.curImage.url = newUrl;
     },
     },
     async toDelete() {
     async toDelete() {
-      const res = await this.$confirm(`确认要删除当前页已扫描数据?`, "提示", {
+      const tips = this.multipleSelection.length
+        ? `确认要删除当前已选择的扫描数据?`
+        : `确认要删除当前页的扫描数据?`;
+      const res = await this.$confirm(tips, "提示", {
         type: "warning",
         type: "warning",
       }).catch(() => {});
       }).catch(() => {});
       if (res !== "confirm") return;
       if (res !== "confirm") return;
 
 
-      const { paperLibraryId } = this.getImageInfo(this.curImage.url);
-
+      const paperLibraryIds = this.multipleSelection.length
+        ? this.multipleSelection
+        : [this.curPage.paperLibraryId];
       await deleteDocumentImage({
       await deleteDocumentImage({
-        studentId: this.student.studentId,
-        paperLibraryId,
+        paperLibraryIds: paperLibraryIds.join(),
       });
       });
       this.$message.success("操作成功!");
       this.$message.success("操作成功!");
       this.reloadData();
       this.reloadData();
     },
     },
     selectImage(index) {
     selectImage(index) {
+      if (!this.imageList[index]) return;
       this.curImage = { url: this.imageList[index] };
       this.curImage = { url: this.imageList[index] };
       this.curImageRotate = 0;
       this.curImageRotate = 0;
       this.curPage = this.getImageInfo(this.curImage.url);
       this.curPage = this.getImageInfo(this.curImage.url);

+ 1 - 0
src/modules/record/components/DocumentDetailDialog.vue

@@ -234,6 +234,7 @@
     <archives-detail-student-dialog
     <archives-detail-student-dialog
       ref="ArchivesDetailStudentDialog"
       ref="ArchivesDetailStudentDialog"
       :student="curRow"
       :student="curRow"
+      @close="getList"
     ></archives-detail-student-dialog>
     ></archives-detail-student-dialog>
     <!-- DataTaskDialog -->
     <!-- DataTaskDialog -->
     <data-task-dialog
     <data-task-dialog

+ 4 - 0
src/modules/record/components/ScanTaskDetailDialog.vue

@@ -7,6 +7,7 @@
     append-to-body
     append-to-body
     fullscreen
     fullscreen
     @open="visibleChange"
     @open="visibleChange"
+    @close="closeHandle"
   >
   >
     <template slot="title">
     <template slot="title">
       <h3>
       <h3>
@@ -103,6 +104,9 @@ export default {
       this.dataList = [];
       this.dataList = [];
       this.toPage(1);
       this.toPage(1);
     },
     },
+    closeHandle() {
+      this.$emit("close");
+    },
     cancel() {
     cancel() {
       this.modalIsShow = false;
       this.modalIsShow = false;
     },
     },

+ 22 - 3
src/modules/record/views/PictureManage.vue

@@ -129,6 +129,9 @@
             @click="toDownload"
             @click="toDownload"
             >下载图片</el-button
             >下载图片</el-button
           >
           >
+          <el-button type="primary" icon="el-icon-s-order" @click="toDataTask"
+            >图片下载结果</el-button
+          >
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
     </div>
     </div>
@@ -241,17 +244,23 @@
       :show-fix="false"
       :show-fix="false"
       @close="getList"
       @close="getList"
     ></archives-detail-student-dialog>
     ></archives-detail-student-dialog>
+    <!-- DataTaskDialog -->
+    <data-task-dialog
+      ref="DataTaskDialog"
+      task-type="PICTURE_DOWNLOAD"
+    ></data-task-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-import { pictureListPage } from "../api";
+import { pictureListPage, pictureDownload } from "../api";
 import { EQUAL_TYPE } from "@/constants/enumerate";
 import { EQUAL_TYPE } from "@/constants/enumerate";
 import ArchivesDetailStudentDialog from "../components/ArchivesDetailStudentDialog.vue";
 import ArchivesDetailStudentDialog from "../components/ArchivesDetailStudentDialog.vue";
+import DataTaskDialog from "../../base/components/DataTaskDialog.vue";
 
 
 export default {
 export default {
   name: "picture-manage",
   name: "picture-manage",
-  components: { ArchivesDetailStudentDialog },
+  components: { ArchivesDetailStudentDialog, DataTaskDialog },
   data() {
   data() {
     return {
     return {
       filter: {
       filter: {
@@ -300,7 +309,17 @@ export default {
     handleSelectionChange(val) {
     handleSelectionChange(val) {
       this.multipleSelection = val.map((item) => item.studentId);
       this.multipleSelection = val.map((item) => item.studentId);
     },
     },
-    toDownload() {},
+    async toDownload() {
+      if (!this.multipleSelection.length) {
+        this.$message.error("请选择要下的数据");
+        return;
+      }
+      await pictureDownload({ studentIds: this.multipleSelection.join() });
+      this.$message.success("任务提交成功,结果请在图片下载结果中查看!");
+    },
+    toDataTask() {
+      this.$refs.DataTaskDialog.open();
+    },
     toDetail(row) {
     toDetail(row) {
       if (!row.bindCount) return;
       if (!row.bindCount) return;
 
 

+ 1 - 0
src/modules/record/views/ScanTaskManage.vue

@@ -122,6 +122,7 @@
     <scan-task-detail-dialog
     <scan-task-detail-dialog
       ref="ScanTaskDetailDialog"
       ref="ScanTaskDetailDialog"
       :task="curRow"
       :task="curRow"
+      @close="getList"
     ></scan-task-detail-dialog>
     ></scan-task-detail-dialog>
   </div>
   </div>
 </template>
 </template>