zhangjie преди 10 месеца
родител
ревизия
07907a7bc3

BIN
extra/database/org.rdb


+ 4 - 4
src/components/base/FileTypeSelect.vue

@@ -9,9 +9,9 @@
     @change="select"
     @change="select"
   >
   >
     <el-option
     <el-option
-      v-for="(item, index) in optionList"
-      :key="index"
-      :value="item.name"
+      v-for="item in optionList"
+      :key="item.id"
+      :value="item.id"
       :label="item.name"
       :label="item.name"
     >
     >
     </el-option>
     </el-option>
@@ -56,7 +56,7 @@ export default {
       this.$emit("input", this.selected);
       this.$emit("input", this.selected);
       this.$emit(
       this.$emit(
         "change",
         "change",
-        this.optionList.find((item) => item.name === this.selected)
+        this.optionList.find((item) => item.id === this.selected)
       );
       );
     },
     },
   },
   },

+ 3 - 0
src/constants/enumerate.js

@@ -13,3 +13,6 @@ export const BOOLEAN_TYPE = {
   0: "否",
   0: "否",
   1: "是",
   1: "是",
 };
 };
+
+// export const defaultOcrArea =
+//   '{"x":114,"y":15,"width":428,"height":585,"rotate":90,"scaleX":1,"scaleY":1}';

+ 1 - 1
src/modules/client/api.js

@@ -53,5 +53,5 @@ export const getStudentInfo = (datas) => {
   return $postParam(`/api/admin/client/student/get`, datas);
   return $postParam(`/api/admin/client/student/get`, datas);
 };
 };
 export const updateStudent = (datas) => {
 export const updateStudent = (datas) => {
-  return $post("/api/admin/exam/student/save", datas);
+  return $post("/api/admin/client/student/save", datas);
 };
 };

+ 24 - 4
src/modules/client/components/ManualBindDialog.vue

@@ -39,7 +39,7 @@
           v-model.trim="modalForm.courseName"
           v-model.trim="modalForm.courseName"
           placeholder="请输入课程名称"
           placeholder="请输入课程名称"
           clearable
           clearable
-          :disabled="editDisabled"
+          :disabled="!!task.courseName"
         ></el-input>
         ></el-input>
       </el-form-item>
       </el-form-item>
       <el-form-item prop="courseCode" label="课程代码:">
       <el-form-item prop="courseCode" label="课程代码:">
@@ -47,7 +47,7 @@
           v-model.trim="modalForm.courseCode"
           v-model.trim="modalForm.courseCode"
           placeholder="请输入课程代码"
           placeholder="请输入课程代码"
           clearable
           clearable
-          :disabled="editDisabled"
+          :disabled="!!task.courseCode"
         ></el-input>
         ></el-input>
       </el-form-item>
       </el-form-item>
       <el-form-item prop="teacher" label="任课老师:">
       <el-form-item prop="teacher" label="任课老师:">
@@ -90,6 +90,14 @@
           :disabled="editDisabled"
           :disabled="editDisabled"
         ></el-input>
         ></el-input>
       </el-form-item>
       </el-form-item>
+      <el-form-item prop="examRoom" label="考场:">
+        <el-input
+          v-model.trim="modalForm.examRoom"
+          placeholder="请输入考场"
+          clearable
+          :disabled="editDisabled"
+        ></el-input>
+      </el-form-item>
       <el-form-item prop="score" label="成绩:">
       <el-form-item prop="score" label="成绩:">
         <el-input-number
         <el-input-number
           v-model="modalForm.score"
           v-model="modalForm.score"
@@ -124,15 +132,18 @@ import { getStudentInfo, updateStudent } from "../api";
 
 
 const initModalForm = {
 const initModalForm = {
   id: null,
   id: null,
-  studentCode: "",
-  studentName: "",
+  semesterId: "",
+  examId: "",
   courseCode: "",
   courseCode: "",
   courseName: "",
   courseName: "",
+  studentCode: "",
+  studentName: "",
   teacher: "",
   teacher: "",
   teachClass: "",
   teachClass: "",
   collegeName: "",
   collegeName: "",
   majorName: "",
   majorName: "",
   className: "",
   className: "",
+  examRoom: "",
   score: undefined,
   score: undefined,
   remark: "",
   remark: "",
 };
 };
@@ -284,6 +295,11 @@ export default {
         this.releaseStudent = null;
         this.releaseStudent = null;
       }
       }
 
 
+      this.modalForm.semesterId = this.task.semesterId;
+      this.modalForm.examId = this.task.examId;
+      this.modalForm.courseCode = this.task.courseCode;
+      this.modalForm.courseName = this.task.courseName;
+
       this.$nextTick(() => {
       this.$nextTick(() => {
         this.$refs.modalFormComp.clearValidate();
         this.$refs.modalFormComp.clearValidate();
       });
       });
@@ -323,6 +339,10 @@ export default {
           ...initModalForm,
           ...initModalForm,
           studentCode: this.modalForm.studentCode,
           studentCode: this.modalForm.studentCode,
         };
         };
+        this.modalForm.semesterId = this.task.semesterId;
+        this.modalForm.examId = this.task.examId;
+        this.modalForm.courseCode = this.task.courseCode;
+        this.modalForm.courseName = this.task.courseName;
       }
       }
 
 
       this.$nextTick(() => {
       this.$nextTick(() => {

+ 13 - 6
src/modules/client/views/ScanOther.vue

@@ -21,11 +21,13 @@
           >
           >
           </room-class-select>
           </room-class-select>
         </el-form-item>
         </el-form-item>
-        <el-form-item prop="fileType" label="文件类型:">
+        <el-form-item prop="fileTypeId" label="文件类型:">
           <file-type-select
           <file-type-select
-            v-model="modalForm.fileType"
+            v-model="modalForm.fileTypeId"
             placeholder="请选择文件类型"
             placeholder="请选择文件类型"
+            :clearable="false"
             :disabled="isScaning"
             :disabled="isScaning"
+            @change="fileTypeChange"
           >
           >
           </file-type-select>
           </file-type-select>
         </el-form-item>
         </el-form-item>
@@ -65,7 +67,7 @@
           min-width="160"
           min-width="160"
         ></el-table-column>
         ></el-table-column>
         <el-table-column
         <el-table-column
-          prop="fileType"
+          prop="fileTypeName"
           label="文件类型"
           label="文件类型"
           width="160"
           width="160"
         ></el-table-column>
         ></el-table-column>
@@ -114,7 +116,8 @@ export default {
       scanCount: 0,
       scanCount: 0,
       modalForm: {
       modalForm: {
         roomOrClass: "",
         roomOrClass: "",
-        fileType: "",
+        fileTypeId: "",
+        fileTypeName: "",
       },
       },
       rules: {
       rules: {
         roomOrClass: [
         roomOrClass: [
@@ -124,7 +127,7 @@ export default {
             trigger: "change",
             trigger: "change",
           },
           },
         ],
         ],
-        fileType: [
+        fileTypeId: [
           {
           {
             required: true,
             required: true,
             message: "请选择文件类型",
             message: "请选择文件类型",
@@ -189,6 +192,9 @@ export default {
       this.$router.go(-1);
       this.$router.go(-1);
       logger.info(`99退出扫描`);
       logger.info(`99退出扫描`);
     },
     },
+    fileTypeChange(val) {
+      this.modalForm.fileTypeName = val.name;
+    },
     // scan
     // scan
     async toScan() {
     async toScan() {
       if (!this.canScan) {
       if (!this.canScan) {
@@ -279,7 +285,8 @@ export default {
           studentName: "",
           studentName: "",
           studentCode: "",
           studentCode: "",
           ocrArea: "",
           ocrArea: "",
-          fileType: this.modalForm.fileType,
+          fileTypeId: this.modalForm.fileTypeId,
+          fileTypeName: this.modalForm.fileTypeName,
           roomOrClass: this.modalForm.roomOrClass,
           roomOrClass: this.modalForm.roomOrClass,
           batchNo: "",
           batchNo: "",
           clientUserId: this.user.id,
           clientUserId: this.user.id,

+ 2 - 1
src/modules/client/views/ScanPaper.vue

@@ -324,7 +324,8 @@ export default {
           studentName: "",
           studentName: "",
           studentCode: "",
           studentCode: "",
           ocrArea: ocrAreaContent,
           ocrArea: ocrAreaContent,
-          fileType: "答题卡",
+          fileTypeId: "0",
+          fileTypeName: "答题卡",
           roomOrClass: "",
           roomOrClass: "",
           batchNo: "",
           batchNo: "",
           clientUserId: this.user.id,
           clientUserId: this.user.id,

+ 4 - 3
src/plugins/db.js

@@ -60,7 +60,7 @@ function serializeWhere(params) {
 
 
 // scan
 // scan
 function saveUploadInfo(params) {
 function saveUploadInfo(params) {
-  const sql = `INSERT INTO scan (taskId, schoolId, semesterId, examId, courseCode, courseName, frontOriginImgPath, versoOriginImgPath, studentCode, ocrArea,fileType,roomOrClass,batchNo, isFormal, clientUserId, clientUsername, clientUserLoginTime, isUpload,createdTime, finishTime) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`;
+  const sql = `INSERT INTO scan (taskId, schoolId, semesterId, examId, courseCode, courseName, frontOriginImgPath, versoOriginImgPath, studentCode, ocrArea,fileTypeId,fileTypeName,roomOrClass,batchNo, isFormal, clientUserId, clientUsername, clientUserLoginTime, isUpload,createdTime, finishTime) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`;
   const datas = [
   const datas = [
     params.taskId,
     params.taskId,
     params.schoolId,
     params.schoolId,
@@ -72,7 +72,8 @@ function saveUploadInfo(params) {
     params.versoOriginImgPath,
     params.versoOriginImgPath,
     params.studentCode,
     params.studentCode,
     params.ocrArea,
     params.ocrArea,
-    params.fileType,
+    params.fileTypeId,
+    params.fileTypeName,
     params.roomOrClass,
     params.roomOrClass,
     params.batchNo,
     params.batchNo,
     params.isFormal,
     params.isFormal,
@@ -95,7 +96,7 @@ function saveUploadInfo(params) {
 
 
 function batchSaveUploadInfo(datas) {
 function batchSaveUploadInfo(datas) {
   return new Promise((resolve, reject) => {
   return new Promise((resolve, reject) => {
-    const sql = `INSERT INTO scan (taskId, schoolId, semesterId, examId, courseCode, courseName, frontOriginImgPath, versoOriginImgPath, studentCode, ocrArea,fileType,roomOrClass,batchNo, isFormal, clientUserId, clientUsername, clientUserLoginTime, isUpload,createdTime, finishTime) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`;
+    const sql = `INSERT INTO scan (taskId, schoolId, semesterId, examId, courseCode, courseName, frontOriginImgPath, versoOriginImgPath, studentCode, ocrArea,fileTypeId,fileTypeName,roomOrClass,batchNo, isFormal, clientUserId, clientUsername, clientUserLoginTime, isUpload,createdTime, finishTime) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`;
     db.serialize(() => {
     db.serialize(() => {
       const stmt = db.prepare(sql);
       const stmt = db.prepare(sql);
 
 

+ 2 - 1
src/plugins/db.sql

@@ -27,7 +27,8 @@ CREATE TABLE "scan" (
   "versoOriginImgPath" TEXT,
   "versoOriginImgPath" TEXT,
   "studentCode" TEXT,
   "studentCode" TEXT,
   "ocrArea" TEXT,
   "ocrArea" TEXT,
-  "fileType" TEXT NOT NULL DEFAULT '0',
+  "fileTypeId" TEXT NOT NULL DEFAULT '',
+  "fileTypeName" TEXT NOT NULL DEFAULT '',
   "roomOrClass" TEXT,
   "roomOrClass" TEXT,
   "batchNo" TEXT NOT NULL,
   "batchNo" TEXT NOT NULL,
   "isFormal" integer NOT NULL DEFAULT 0,
   "isFormal" integer NOT NULL DEFAULT 0,

+ 2 - 2
src/plugins/imageUpload.js

@@ -23,10 +23,10 @@ export async function toUploadImg(options) {
   formData.append("versoFile", versoFile);
   formData.append("versoFile", versoFile);
 
 
   formData.append("paperScanTaskId", options.taskId);
   formData.append("paperScanTaskId", options.taskId);
-  formData.append("batchNo", options.batchNo);
   formData.append("scanUserId", options.clientUserId);
   formData.append("scanUserId", options.clientUserId);
 
 
   if (options.isFormal) {
   if (options.isFormal) {
+    formData.append("batchNo", options.batchNo);
     formData.append("studentCode", options.studentCode);
     formData.append("studentCode", options.studentCode);
     if (options.ocrArea) {
     if (options.ocrArea) {
       const ocrArea = JSON.parse(options.ocrArea);
       const ocrArea = JSON.parse(options.ocrArea);
@@ -35,7 +35,7 @@ export async function toUploadImg(options) {
       });
       });
     }
     }
   } else {
   } else {
-    formData.append("fileType", options.fileType);
+    formData.append("fileType", options.fileTypeId);
     formData.append("classRoomName", options.roomOrClass);
     formData.append("classRoomName", options.roomOrClass);
   }
   }