Pārlūkot izejas kodu

feat: 批量选择记录重新生成pdf

zhangjie 10 mēneši atpakaļ
vecāks
revīzija
3ae7f7f8c7

+ 5 - 0
src/assets/styles/element-ui-costom.scss

@@ -385,6 +385,11 @@
     vertical-align: middle;
     line-height: 1.3;
   }
+
+  .el-table-column--selection .cell {
+    padding-left: 10px;
+    padding-right: 10px;
+  }
   // caret-wrapper
   .caret-wrapper {
     width: 20px;

+ 43 - 7
src/modules/exam/views/PdfBuildManage.vue

@@ -78,15 +78,24 @@
           >
         </el-form-item>
       </el-form>
+      <div class="part-box-action">
+        <el-button
+          v-if="checkPrivilege('link', 'createPdf')"
+          icon="el-icon-document"
+          type="primary"
+          @click="toBatchResetCreatePdf"
+        >
+          批量重新生成
+        </el-button>
+      </div>
     </div>
     <div class="part-box part-box-pad">
-      <el-table ref="TableList" :data="dataList">
-        <el-table-column
-          type="index"
-          label="序号"
-          width="50"
-          :index="indexMethod"
-        ></el-table-column>
+      <el-table
+        ref="TableList"
+        :data="dataList"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="50"></el-table-column>
         <el-table-column
           prop="paperNumber"
           label="试卷编号"
@@ -245,6 +254,7 @@ export default {
       loading: false,
       DATA_TASK_STATUS,
       DATA_TASK_RESULT,
+      multipleSelection: [],
       // date-picker
       createTime: [],
       pickerOptions,
@@ -277,10 +287,36 @@ export default {
       this.current = page;
       this.getList();
     },
+    handleSelectionChange(val) {
+      this.multipleSelection = val.map((item) => item.id);
+    },
     toViewLog(row) {
       this.logList = (row.summary || "").split("\n");
       this.modalIsShow = true;
     },
+    async toBatchResetCreatePdf() {
+      if (!this.multipleSelection.length) {
+        this.$message.error("请选择数据");
+        return;
+      }
+
+      const action = await this.$confirm(
+        `确定要重新生成所选数据的全部PDF吗?`,
+        "提示",
+        {
+          type: "warning",
+        }
+      ).catch(() => {});
+      if (action !== "confirm") return;
+
+      const res = await rebuildPrintTaskPdf(
+        this.multipleSelection.join(),
+        undefined
+      ).catch(() => {});
+      if (!res) return;
+      this.$message.success("操作成功!");
+      this.getList();
+    },
     async toResetCreatePdf(row) {
       this.curRow = row;
       this.pdfList = [];

+ 2 - 2
src/modules/print/api.js

@@ -129,8 +129,8 @@ export const getPrintTaskPdf = (examDetailId) => {
 export const downloadPrintTaskPdf = (ids) => {
   return $post("/api/admin/exam/print/task_download_pdf", { ids });
 };
-export const rebuildPrintTaskPdf = (id, type) => {
-  return $postParam("/api/admin/data/task/reset_create_pdf", { id, type });
+export const rebuildPrintTaskPdf = (idList, type) => {
+  return $postParam("/api/admin/data/task/reset_create_pdf", { idList, type });
 };
 export const printTaskTemplateView = (printPlanId) => {
   return $post("/api/admin/exam/print/template_view", { printPlanId });