Browse Source

接口调试

zhangjie 2 năm trước cách đây
mục cha
commit
b18f51b152

+ 77 - 0
src/components/base/ScanTaskSelect.vue

@@ -0,0 +1,77 @@
+<template>
+  <el-select
+    v-model="selected"
+    class="scan-task-select"
+    :placeholder="placeholder"
+    remote
+    :remote-method="search"
+    :clearable="clearable"
+    :disabled="disabled"
+    @change="select"
+  >
+    <el-option
+      v-for="item in optionList"
+      :key="item.id"
+      :value="item.id"
+      :label="item.name"
+    >
+    </el-option>
+  </el-select>
+</template>
+
+<script>
+import { commonScanTaskQuery } from "../../modules/base/api";
+
+export default {
+  name: "scan-task-select",
+  props: {
+    disabled: { type: Boolean, default: false },
+    placeholder: { type: String, default: "请选择学期" },
+    value: { type: [Number, String], default: "" },
+    clearable: { type: Boolean, default: true },
+    paperArchivesId: { type: String, default: "" }
+  },
+  data() {
+    return {
+      optionList: [],
+      selected: ""
+    };
+  },
+  watch: {
+    value: {
+      immediate: true,
+      handler(val) {
+        this.selected = val;
+      }
+    },
+    paperArchivesId(val, oldval) {
+      if (val !== oldval) {
+        this.search("");
+        this.$emit("input", "");
+        this.$emit("change", {});
+      }
+    }
+  },
+  created() {
+    this.search();
+  },
+  methods: {
+    async search() {
+      this.optionList = [];
+
+      let data = {};
+      if (this.paperArchivesId) data.paperArchivesId = this.paperArchivesId;
+
+      const res = await commonScanTaskQuery(data);
+      this.optionList = res;
+    },
+    select() {
+      this.$emit("input", this.selected);
+      this.$emit(
+        "change",
+        this.optionList.find(item => item.id === this.selected)
+      );
+    }
+  }
+};
+</script>

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

@@ -40,6 +40,10 @@ export const commonArchivesOrgQuery = data => {
 export const commonSemesterQuery = () => {
   return $postParam("/api/admin/common/semester/query", {});
 };
+// 学期
+export const commonScanTaskQuery = () => {
+  return $postParam("/api/admin/common/scan_task/query", {});
+};
 
 // user --------------------------------->
 // user-manage

+ 2 - 5
src/modules/record/components/ModifyArchives.vue

@@ -109,7 +109,7 @@ export default {
       isSubmit: false,
       modalForm: {},
       rules: {
-        name: [
+        archivesName: [
           {
             required: true,
             message: "请输入档案名称",
@@ -149,10 +149,7 @@ export default {
             trigger: "change"
           }
         ]
-      },
-      orgs: [],
-      archivesTypes: [],
-      adminUsers: []
+      }
     };
   },
   methods: {

+ 0 - 206
src/modules/record/components/ModifyScanTask.vue

@@ -1,206 +0,0 @@
-<template>
-  <el-dialog
-    class="modify-scan-task"
-    :visible.sync="modalIsShow"
-    :title="title"
-    top="10vh"
-    width="500px"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    append-to-body
-    @open="visibleChange"
-  >
-    <el-form
-      ref="modalFormComp"
-      :model="modalForm"
-      :rules="rules"
-      label-width="90px"
-    >
-      <el-form-item prop="name" label="任务名称:">
-        <el-input
-          v-model.trim="modalForm.name"
-          placeholder="请输入任务名称"
-          :disabled="isEdit"
-        ></el-input>
-      </el-form-item>
-      <el-form-item prop="archivesId" label="档案名称:">
-        <el-select
-          style="width:100%;"
-          v-model="modalForm.archivesId"
-          placeholder="请选择档案名称"
-          filterable
-        >
-          <el-option
-            v-for="item in archivess"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item prop="courseName" label="课程:">
-        <el-input
-          v-model.trim="modalForm.courseName"
-          placeholder="请输入课程"
-          clearable
-        ></el-input>
-      </el-form-item>
-      <el-form-item prop="teacherName" label="任课老师:">
-        <el-input
-          v-model.trim="modalForm.teacherName"
-          placeholder="请输入任课老师"
-          clearable
-        ></el-input>
-      </el-form-item>
-      <el-form-item prop="teachingClass" label="教学班:">
-        <el-input
-          v-model.trim="modalForm.teachingClass"
-          placeholder="请输入教学班"
-          clearable
-        ></el-input>
-      </el-form-item>
-    </el-form>
-    <div slot="footer">
-      <el-button type="primary" :disabled="isSubmit" @click="submit"
-        >确认</el-button
-      >
-      <el-button @click="cancel">取消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { updateScanTask } from "../api";
-
-const initModalForm = {
-  id: "",
-  name: "",
-  archivesId: "",
-  courseName: "",
-  teacherName: "",
-  teachingClass: ""
-};
-
-export default {
-  name: "modify-scan-task",
-  props: {
-    instance: {
-      type: Object,
-      default() {
-        return {};
-      }
-    }
-  },
-  computed: {
-    isEdit() {
-      return !!this.instance.id;
-    },
-    title() {
-      return (this.isEdit ? "编辑" : "新增") + "扫描任务";
-    }
-  },
-  data() {
-    return {
-      modalIsShow: false,
-      isSubmit: false,
-      modalForm: {},
-      rules: {
-        name: [
-          {
-            required: true,
-            message: "请输入任务名称",
-            trigger: "change"
-          },
-          {
-            max: 100,
-            message: "任务名称不能超过100字符",
-            trigger: "change"
-          }
-        ],
-        archivesId: [
-          {
-            required: true,
-            message: "请选择档案",
-            trigger: "change"
-          }
-        ],
-        courseName: [
-          {
-            required: true,
-            message: "请输入课程",
-            trigger: "change"
-          },
-          {
-            max: 50,
-            message: "课程不能超过50字符",
-            trigger: "change"
-          }
-        ],
-        teacherName: [
-          {
-            required: true,
-            message: "请输入任课老师",
-            trigger: "change"
-          },
-          {
-            max: 50,
-            message: "任课老师不能超过50字符",
-            trigger: "change"
-          }
-        ],
-        teachingClass: [
-          {
-            required: true,
-            message: "请输入教学班",
-            trigger: "change"
-          },
-          {
-            max: 100,
-            message: "教学班不能超过100字符",
-            trigger: "change"
-          }
-        ]
-      },
-      archivess: []
-    };
-  },
-  methods: {
-    initData(val) {
-      if (val.id) {
-        this.modalForm = this.$objAssign(initModalForm, val);
-      } else {
-        this.modalForm = { ...initModalForm };
-        this.$nextTick(() => {
-          this.$refs.modalFormComp.clearValidate();
-        });
-      }
-    },
-    visibleChange() {
-      this.initData(this.instance);
-    },
-    cancel() {
-      this.modalIsShow = false;
-    },
-    open() {
-      this.modalIsShow = true;
-    },
-    async submit() {
-      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
-      if (!valid) return;
-
-      if (this.isSubmit) return;
-      this.isSubmit = true;
-
-      const datas = { ...this.modalForm };
-      const data = await updateScanTask(datas).catch(() => {});
-      this.isSubmit = false;
-      if (!data) return;
-
-      this.$message.success("修改成功!");
-      this.cancel();
-      this.$emit("modified");
-    }
-  }
-};
-</script>

+ 0 - 111
src/modules/record/components/ScanTaskBindUserDialog.vue

@@ -1,111 +0,0 @@
-<template>
-  <el-dialog
-    class="scan-task-bind-user-dialog"
-    :visible.sync="modalIsShow"
-    title="绑定扫描员"
-    top="10vh"
-    width="460px"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    append-to-body
-    @open="visibleChange"
-  >
-    <el-form
-      ref="modalFormComp"
-      :model="modalForm"
-      :rules="rules"
-      label-width="100px"
-    >
-      <el-form-item prop="scanUserId" label="扫描员:">
-        <el-select v-model="modalForm.scanUserId" placeholder="请选择扫描员">
-          <el-option
-            v-for="item in scanUserList"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-    </el-form>
-    <div slot="footer">
-      <el-button type="primary" :disabled="isSubmit" @click="submit"
-        >确认</el-button
-      >
-      <el-button @click="cancel">取消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { scanTaskBindUser } from "../api";
-import { roleUserListQuery } from "../../base/api";
-
-const initModalForm = {
-  id: null,
-  scanUserId: ""
-};
-
-export default {
-  name: "scan-task-bind-user-dialog",
-  props: {
-    instance: {
-      type: Object,
-      default() {
-        return {};
-      }
-    }
-  },
-  data() {
-    return {
-      modalIsShow: false,
-      isSubmit: false,
-      modalForm: { ...initModalForm },
-      scanUserList: [],
-      rules: {
-        scanUserId: [
-          {
-            required: true,
-            message: "请选择扫描员",
-            trigger: "change"
-          }
-        ]
-      }
-    };
-  },
-  mounted() {
-    // this.getScanUsers();
-  },
-  methods: {
-    visibleChange() {
-      this.modalForm = this.$objAssign(initModalForm, this.instance);
-    },
-    cancel() {
-      this.modalIsShow = false;
-    },
-    open() {
-      this.modalIsShow = true;
-    },
-    async getScanUsers() {
-      const res = await roleUserListQuery({ roleType: "Scan" });
-      this.scanUserList = res || [];
-    },
-    async submit() {
-      const valid = await this.$refs.modalFormComp.validate().catch(() => {});
-      if (!valid) return;
-
-      if (this.isSubmit) return;
-      this.isSubmit = true;
-      let datas = { ...this.modalForm };
-      const data = await scanTaskBindUser(datas).catch(() => {});
-      this.isSubmit = false;
-
-      if (!data) return;
-
-      this.$message.success("绑定成功!");
-      this.$emit("modified");
-      this.cancel();
-    }
-  }
-};
-</script>

+ 2 - 4
src/modules/record/views/ArchivesManage.vue

@@ -169,9 +169,7 @@ export default {
       size: this.GLOBAL.pageSize,
       total: 0,
       dataList: [],
-      curRow: {},
-      orgs: [],
-      archivesTypes: []
+      curRow: {}
     };
   },
   mounted() {
@@ -187,7 +185,7 @@ export default {
         pageSize: this.size
       };
       const data = await archivesListPage(datas);
-      this.dataList = data.archivess;
+      this.dataList = data.records;
       this.total = data.total;
     },
     toPage(page) {

+ 21 - 14
src/modules/record/views/LibraryManage.vue

@@ -4,19 +4,11 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
           <el-form-item label="任务:">
-            <el-select
+            <scan-task-select
               v-model="filter.paperScanTaskId"
               placeholder="任务"
-              filterable
             >
-              <el-option
-                v-for="item in taskList"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              >
-              </el-option>
-            </el-select>
+            </scan-task-select>
           </el-form-item>
         </template>
 
@@ -31,7 +23,7 @@
       </el-form>
       <div class="part-box-action">
         <el-button
-          v-if="checkPrivilege('button', 'done')"
+          v-if="checkPrivilege('button', 'Deal')"
           type="primary"
           icon="el-icon-circle-plus-outline"
           @click="todoTask"
@@ -62,7 +54,9 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
-        <el-table-column prop="name" label="文件名称"></el-table-column>
+        <el-table-column prop="path" label="文件名称">
+          <span slot-scope="scope">{{ scope.row.path | fileNameFilter }}</span>
+        </el-table-column>
         <el-table-column prop="createTime" label="创建时间" width="170">
           <span slot-scope="scope">{{
             scope.row.createTime | timestampFilter
@@ -103,7 +97,7 @@
           width="120"
         ></el-table-column>
         <el-table-column
-          prop="studentNumber"
+          prop="studentCode"
           label="学号"
           width="140"
         ></el-table-column>
@@ -165,6 +159,17 @@ import LibraryDialog from "../components/LibraryDialog.vue";
 export default {
   name: "data-check-manage",
   components: { ImageListPreviewDialog, LibraryDialog },
+  filters: {
+    fileNameFilter(val) {
+      try {
+        const conts = JSON.parse(val);
+        return conts.map(item => item.path.split("/").slice(-1)[0]).join();
+      } catch (err) {
+        console.log(err);
+        return "";
+      }
+    }
+  },
   data() {
     return {
       filter: {
@@ -192,10 +197,12 @@ export default {
         current: 1,
         total: 0
       },
-      taskList: [],
       curImageList: []
     };
   },
+  mounted() {
+    this.search();
+  },
   methods: {
     selectMenu(type) {
       this.curDoneType = type;

+ 9 - 27
src/modules/record/views/ScanTaskManage.vue

@@ -4,7 +4,7 @@
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
           <el-form-item label="课程:">
-            <course-select v-model="filter.courseCode" placeholder="请选择课程">
+            <course-select v-model="filter.courseName" placeholder="请选择课程">
             </course-select>
           </el-form-item>
           <el-form-item label="任课老师:">
@@ -51,7 +51,7 @@
       </el-form>
       <div class="part-box-action">
         <el-button
-          v-if="checkPrivilege('button', 'batchDelete')"
+          v-if="checkPrivilege('button', 'DeleteBatch')"
           type="danger"
           icon="el-icon-delete"
           :loading="loading"
@@ -65,13 +65,6 @@
           @click="toImportTask"
           >导入任务</el-button
         >
-        <el-button
-          v-if="checkPrivilege('button', 'add')"
-          type="primary"
-          icon="el-icon-circle-plus-outline"
-          @click="toAdd"
-          >新增任务</el-button
-        >
       </div>
     </div>
 
@@ -119,6 +112,7 @@
         >
           <template slot-scope="scope">
             <el-button
+              v-if="checkPrivilege('link', 'ProgressDetail')"
               class="btn-primary"
               type="text"
               @click="toShowProgress(scope.row)"
@@ -129,12 +123,12 @@
         <el-table-column
           class-name="action-column"
           label="操作"
-          width="200"
+          width="170"
           fixed="right"
         >
           <template slot-scope="scope">
             <el-button
-              v-if="checkPrivilege('link', 'detail')"
+              v-if="checkPrivilege('link', 'ScanTaskDetail')"
               class="btn-primary"
               type="text"
               @click="toDetail(scope.row)"
@@ -148,18 +142,18 @@
               >删除</el-button
             >
             <el-button
-              v-if="checkPrivilege('link', 'delete')"
+              v-if="checkPrivilege('link', 'ClearScanData')"
               class="btn-danger"
               type="text"
               @click="toClear(scope.row)"
               >清除数据</el-button
             >
             <el-button
-              v-if="checkPrivilege('link', 'delete')"
+              v-if="checkPrivilege('link', 'UnbindScanner')"
               class="btn-danger"
               type="text"
               @click="toUnbind(scope.row)"
-              >解扫描员</el-button
+              >解扫描员</el-button
             >
           </template>
         </el-table-column>
@@ -211,12 +205,6 @@
         </el-form-item>
       </el-form>
     </import-file>
-    <!-- ModifyScanTask -->
-    <modify-scan-task
-      ref="ModifyScanTask"
-      :instance="curRow"
-      :modified="getList"
-    ></modify-scan-task>
     <!-- LibraryStateDialog -->
     <library-state-dialog ref="LibraryStateDialog" :task="curRow">
     </library-state-dialog>
@@ -236,7 +224,6 @@ import {
   unbindScanTaskUser
 } from "../api";
 import ImportFile from "../../../components/ImportFile.vue";
-import ModifyScanTask from "../components/ModifyScanTask.vue";
 import LibraryStateDialog from "../components/LibraryStateDialog.vue";
 import ScanTaskDetailDialog from "../components/ScanTaskDetailDialog.vue";
 
@@ -244,14 +231,13 @@ export default {
   name: "scan-task-manage",
   components: {
     ImportFile,
-    ModifyScanTask,
     LibraryStateDialog,
     ScanTaskDetailDialog
   },
   data() {
     return {
       filter: {
-        courseCode: "",
+        courseName: "",
         teacherName: "",
         smallerProgress: undefined,
         largerProgress: undefined
@@ -307,10 +293,6 @@ export default {
       this.curRow = row;
       this.$refs.ScanTaskDetailDialog.open();
     },
-    toAdd() {
-      this.curRow = {};
-      this.$refs.ModifyScanTask.open();
-    },
     toShowProgress(row) {
       this.curRow = row;
       this.$refs.LibraryStateDialog.open();

+ 2 - 0
src/plugins/globalVuePlugins.js

@@ -7,6 +7,7 @@ import ViewFooter from "@/components/ViewFooter.vue";
 import MoreText from "@/components/MoreText.vue";
 import CourseSelect from "../components/base/CourseSelect.vue";
 import SchoolSelect from "../components/base/SchoolSelect.vue";
+import ScanTaskSelect from "../components/base/ScanTaskSelect.vue";
 import SemesterSelect from "../components/base/SemesterSelect.vue";
 import CollegeSelect from "../components/base/CollegeSelect.vue";
 import MajorSelect from "../components/base/MajorSelect.vue";
@@ -22,6 +23,7 @@ const components = {
   ViewFooter,
   MoreText,
   CourseSelect,
+  ScanTaskSelect,
   SchoolSelect,
   SemesterSelect,
   CollegeSelect,