zhangjie vor 8 Monaten
Ursprung
Commit
0e465e2294

+ 3 - 3
src/render/router/routes.ts

@@ -133,16 +133,16 @@ const routes: RouteRecordRaw[] = [
         name: "ReviewAudit",
         component: () => import("@/views/Audit/Review/index.vue"),
         meta: {
-          title: "审核员复核校验",
+          title: "复核校验",
         },
       },
-      // 审核员图片
+      // 审核员图片
       {
         path: "image-check-audit",
         name: "ImageCheckAudit",
         component: () => import("@/views/Audit/ImageCheck/index.vue"),
         meta: {
-          title: "图片查",
+          title: "图片查",
         },
       },
     ],

+ 7 - 3
src/render/utils/recog/recog.ts

@@ -99,7 +99,7 @@ export function parseDetailSize(
   data: RecogDataFillResult,
   type: RecogAreaType,
   index: number,
-  fillResult: number[]
+  fillResult?: number[]
 ): RecognizeArea {
   const result: RecognizeArea = {
     index,
@@ -115,6 +115,10 @@ export function parseDetailSize(
   };
 
   if (!data) return result;
+
+  const fillResultList =
+    fillResult && fillResult.length ? fillResult : data.fill_option;
+
   result.fillSize = {
     w: data.fill_size[0],
     h: data.fill_size[1],
@@ -145,7 +149,7 @@ export function parseDetailSize(
   result.optionSizes = result.fillPosition.map((item, index) => {
     let filled = false;
     if (type !== "paperType") {
-      filled = fillResult[index] === 1;
+      filled = fillResultList[index] === 1;
     }
     return {
       x: item.x - result.fillArea.x,
@@ -159,7 +163,7 @@ export function parseDetailSize(
     const options = abc.substring(0, data.fill_position.length).split("");
     // 空用“#”表示
     result.options = ["#", ...options];
-    result.result = options.filter((r, ind) => fillResult[ind] === 1);
+    result.result = options.filter((r, ind) => fillResultList[ind] === 1);
     result.multiple = true;
   }
 

+ 1 - 1
src/render/views/Audit/ImageCheck/index.vue

@@ -66,7 +66,7 @@
   <div v-else class="audit is-wait">
     <div>
       <img src="@/assets/imgs/bg-wait.png" alt="等待" />
-      <p>等待审核结果…</p>
+      <p>等待审核任务…</p>
     </div>
   </div>
 </template>

+ 1 - 1
src/render/views/Audit/Intime/index.vue

@@ -102,7 +102,7 @@
   <div v-else class="audit is-wait">
     <div>
       <img src="@/assets/imgs/bg-wait.png" alt="等待" />
-      <p>等待审核结果…</p>
+      <p>等待审核任务…</p>
     </div>
   </div>
 </template>

+ 2 - 2
src/render/views/Audit/Main/index.vue

@@ -38,7 +38,7 @@
 
         <div class="audit-box">
           <div class="audit-box-head">
-            <h4>人工绑定审核</h4>
+            <h4>复核校验</h4>
           </div>
           <div class="audit-box-body">
             <div class="audit-card">
@@ -56,7 +56,7 @@
 
         <div class="audit-box img-check">
           <div class="audit-box-head">
-            <h4>图片查</h4>
+            <h4>图片查</h4>
           </div>
           <div class="audit-box-body">
             <div class="audit-card">

+ 12 - 2
src/render/views/BaseDataConfig/CardImport.vue

@@ -10,7 +10,10 @@
       :loading="loading"
       :pagination="pagination"
     >
-      <template #bodyCell="{ column, record }">
+      <template #bodyCell="{ column, record, text }">
+        <template v-if="column.dataIndex === 'updateTime'">
+          {{ dateFormat(text) }}
+        </template>
         <template v-if="column.key === 'operation'">
           <qm-button type="link" @click="deleteRow(record)">删除</qm-button>
         </template>
@@ -32,6 +35,7 @@ import useTable from "@/hooks/useTable";
 import { getCardList, deleteCard } from "@/ap/baseDataConfig";
 import { useUserStore } from "@/store";
 import ImportCardDialog from "./ImportCardDialog.vue";
+import { dateFormat } from "@/utils/tool";
 
 const userStore = useUserStore();
 
@@ -84,11 +88,17 @@ const columns: TableColumnsType = [
   {
     title: "更新时间",
     dataIndex: "updateTime",
+    width: 180,
   },
   {
     title: "操作",
     key: "operation",
-    width: 300,
+    width: 100,
+    customCell: () => {
+      return {
+        class: "operation-cell",
+      };
+    },
   },
 ];
 const deleteRow = (row: any) => {

+ 17 - 4
src/render/views/BaseDataConfig/SetImportParamsDialog.vue

@@ -16,16 +16,24 @@
   </my-modal>
 </template>
 <script name="SetImportParamsDialog" lang="ts" setup>
-import { ref } from "vue";
+import { onMounted, ref } from "vue";
 import { useUserStore } from "@/store";
 import { saveStuImportSet } from "@/ap/baseDataConfig";
 const visible = defineModel();
 const userStore = useUserStore();
 const form = ref();
 const emit = defineEmits(["success"]);
+
+const props = defineProps<{
+  data: {
+    year: string;
+    yearHalf: number;
+  };
+}>();
+
 const params = ref({
   year: "",
-  yearHalf: "",
+  yearHalf: 0,
 });
 const fields = ref([
   {
@@ -68,14 +76,19 @@ const rules = {
 const submit = () => {
   form.value.formRef.validate().then(() => {
     saveStuImportSet({
-      ...params.value,
+      year: params.value.year.substring(2),
+      yearHalf: params.value.yearHalf,
       examId: userStore.curExam?.id as number,
     }).then((res: any) => {
       window.$message.success("操作成功");
       visible.value = false;
-      emit("success");
+      emit("success", params.value);
     });
   });
 };
+
+onMounted(() => {
+  params.value = { ...props.data };
+});
 </script>
 <style lang="less" scoped></style>

+ 22 - 2
src/render/views/BaseDataConfig/StuImport.vue

@@ -20,6 +20,8 @@
     <SetImportParamsDialog
       v-model="showSetParamsDialog"
       v-if="showSetParamsDialog"
+      :data="curParams"
+      @success="setParamSuccess"
     ></SetImportParamsDialog>
     <StuImportFileDialog
       v-model="showStuImportFileDialog"
@@ -29,7 +31,7 @@
   </div>
 </template>
 <script name="StuImport" lang="ts" setup>
-import { ref } from "vue";
+import { computed, ref } from "vue";
 import SetImportParamsDialog from "./SetImportParamsDialog.vue";
 import { getStuList } from "@/ap/baseDataConfig";
 import { useUserStore } from "@/store";
@@ -43,6 +45,14 @@ const showStuImportFileDialog = ref(false);
 const year = ref();
 const yearHalf = ref();
 const loading = ref(false);
+
+const curParams = computed(() => {
+  return {
+    year: `${year.value}`,
+    yearHalf: yearHalf.value,
+  };
+});
+
 const fullYear = (num: number) => {
   return String(num).length == 4 ? num : "20" + num;
 };
@@ -92,7 +102,12 @@ const columns: TableColumnsType = [
   {
     title: "操作",
     key: "operation",
-    width: 300,
+    width: 140,
+    customCell: () => {
+      return {
+        class: "operation-cell",
+      };
+    },
   },
 ];
 const dataList = ref([]);
@@ -127,6 +142,11 @@ const openImportDialog = (row: any) => {
   curRow.value = row;
   showStuImportFileDialog.value = true;
 };
+
+function setParamSuccess(data: any) {
+  year.value = data.year;
+  yearHalf.value = data.yearHalf;
+}
 </script>
 <style lang="less" scoped>
 .stu-import {

+ 6 - 1
src/render/views/BaseDataConfig/UserManage.vue

@@ -122,7 +122,12 @@ const columns: TableColumnsType = [
   {
     title: "操作",
     key: "operation",
-    width: 300,
+    width: 200,
+    customCell: () => {
+      return {
+        class: "operation-cell",
+      };
+    },
   },
 ];
 

+ 7 - 10
src/render/views/DataCheck/QuestionPanel.vue

@@ -14,21 +14,17 @@
         {{ info.examSite }}
       </a-descriptions-item>
       <a-descriptions-item label="卷型号" :span="6">
-        <template v-if="simple || hideMissExamRadio">
+        <template v-if="simple">
           {{ info.paperType }}
         </template>
         <template v-else>
           <a-button class="ant-gray m-r-4px">{{ info.paperType }}</a-button>
-          <a-button v-if="paperTypeArea" @click="onEditPaperType">
+          <a-button v-if="paperTypeArea && editable" @click="onEditPaperType">
             <template #icon><SwapOutlined /></template>
           </a-button>
         </template>
       </a-descriptions-item>
-      <a-descriptions-item
-        v-if="!simple && !hideMissExamRadio"
-        label="缺考"
-        :span="4"
-      >
+      <a-descriptions-item v-if="!simple && editable" label="缺考" :span="4">
         <a-radio-group
           v-model:value="examStatus"
           name="examStatus"
@@ -56,13 +52,14 @@
         <span>{{ getQuestionNo(index) }}:</span>
         <a-button
           :class="['ant-gray', { 'is-active': curQuestionIndex === index }]"
+          :disabled="!editable"
           @click="onEditQuestion(index)"
           >{{ getQuesionCont(item) }}</a-button
         >
       </div>
 
       <div
-        v-if="quesionEditShow"
+        v-if="quesionEditShow && editable"
         class="queston-edit"
         :style="quesionEditStyle"
         v-ele-click-outside-directive="hideEditQuestion"
@@ -107,12 +104,12 @@ const props = withDefaults(
     questions: string[];
     info: QuestionInfo;
     simple: boolean;
-    hideMissExamRadio?: boolean;
+    editable?: boolean;
   }>(),
   {
     questions: () => [],
     simple: false,
-    hideMissExamRadio: false,
+    editable: true,
   }
 );
 const emit = defineEmits(["update:questions", "change", "examStatusChange"]);

+ 2 - 2
src/render/views/DataCheck/ScanImage/index.vue

@@ -179,7 +179,7 @@ const recogList = ref<RecognizeArea[]>([]);
 function updateRecogList() {
   recogList.value = [] as RecognizeArea[];
 
-  if (!dataCheckStore.curPage || !dataCheckStore.curPage.question) return;
+  if (!dataCheckStore.curPage) return;
   const regdata = parseRecogData(dataCheckStore.curPage.recogData);
   if (!regdata) return;
 
@@ -187,7 +187,7 @@ function updateRecogList() {
   const ABC = abc.split("");
   regdata.question.forEach((gGroup) => {
     gGroup.fill_result.forEach((qRecog) => {
-      const result = dataCheckStore.curPage?.question.result[index] || "";
+      const result = dataCheckStore.curPage?.question?.result[index] || "";
       qRecog.index = ++index;
 
       const questionResult = result ? result.split("") : [];

+ 1 - 1
src/render/views/RecognizeCheck/index.vue

@@ -13,7 +13,7 @@
       <a-divider type="vertical" style="margin: 0" />
       <a-button type="primary" @click="onAdd">
         <template #icon> <PlusCircleOutlined /> </template>
-        新增评卷点信息</a-button
+        新增任务</a-button
       >
     </a-space>
 

+ 1 - 1
src/render/views/ScanManage/ImageView.vue

@@ -72,8 +72,8 @@
               v-model:questions="questions"
               :info="questionInfo"
               :simple="isSliceImage"
+              :editable="false"
               @change="onQuestionsChange"
-              :hideMissExamRadio="true"
             />
           </div>
         </template>

+ 1 - 1
src/render/views/ScanManage/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="scan-manage h-full">
     <a-tabs v-model:activeKey="activeKey" destroyInactiveTabPane>
-      <a-tab-pane key="1" tab="图片查">
+      <a-tab-pane key="1" tab="图片查">
         <ImageView></ImageView>
       </a-tab-pane>
       <a-tab-pane key="2" tab="扫描进度"