Kaynağa Gözat

提交记录与流程审核

zhangjie 3 yıl önce
ebeveyn
işleme
63c11d68de

+ 8 - 0
src/constants/enumerate.js

@@ -192,6 +192,14 @@ export const PRINT_PDF_TYPE = {
   ALL_A3: "试卷题卡合并文件",
   CARD_A3: "题卡合并文件"
 };
+// 流程状态
+export const FLOW_STATUS = {
+  START: "已开始",
+  AUDITING: "审核中",
+  REJECT: "已驳回",
+  END: "已终止",
+  FINISH: "已结束"
+};
 
 // stmms
 export const MARK_TASK_SYNC_STATUS = {

+ 59 - 27
src/modules/base/views/ApproveRecordManage.vue

@@ -3,14 +3,50 @@
     <div class="part-box part-box-filter part-box-border">
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
         <template v-if="checkPrivilege('condition', 'condition')">
-          <el-form-item label="发起人:" label-width="75px">
+          <el-form-item label="状态:">
+            <el-select
+              v-model="filter.status"
+              style="width: 120px;"
+              placeholder="请选择状态"
+              clearable
+            >
+              <el-option
+                v-for="(val, key) in FLOW_STATUS"
+                :key="key"
+                :value="key"
+                :label="val"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="教研室:">
+            <teaching-room-select
+              v-model="filter.teachingRoomId"
+              placeholder="所属教研室"
+              clearable
+            ></teaching-room-select>
+          </el-form-item>
+          <el-form-item label="提交人:">
             <el-input
               style="width: 142px;"
               v-model.trim="filter.startName"
-              placeholder="请输入发起人"
+              placeholder="请输入提交人"
               clearable
             ></el-input>
           </el-form-item>
+          <el-form-item label="提交时间:">
+            <el-date-picker
+              v-model="createTime"
+              type="datetimerange"
+              :picker-options="pickerOptions"
+              range-separator="至"
+              start-placeholder="提交开始时间"
+              end-placeholder="提交结束时间"
+              value-format="timestamp"
+              align="right"
+              unlink-panels
+            >
+            </el-date-picker>
+          </el-form-item>
         </template>
         <el-form-item label-width="0px">
           <el-button
@@ -31,34 +67,16 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
-        <el-table-column prop="flowId" label="流程ID"></el-table-column>
-        <el-table-column prop="startName" label="发起人"></el-table-column>
-        <el-table-column prop="createTime" label="创建时间">
+        <el-table-column prop="startName" label="提交人"></el-table-column>
+        <el-table-column prop="createTime" label="提交时间">
           <span slot-scope="scope">{{
             scope.row.createTime | timestampFilter
           }}</span>
         </el-table-column>
-        <el-table-column
-          prop="primaryApproveName"
-          label="第一级审核人"
-        ></el-table-column>
-        <el-table-column prop="primaryApproveRemark" label="审核意见">
-          <span slot-scope="scope">{{
-            scope.row.primaryApproveRemark | defaultFieldFilter
-          }}</span>
-        </el-table-column>
-        <el-table-column prop="secondApproveName" label="第二级审核人">
-        </el-table-column>
-        <el-table-column prop="secondApproveRemark" label="审核意见">
-          <span slot-scope="scope">{{
-            scope.row.secondApproveRemark | defaultFieldFilter
-          }}</span>
+        <el-table-column prop="statusStr" label="流程状态"></el-table-column>
+        <el-table-column prop="setupStr" label="当前节点"></el-table-column>
+        <el-table-column prop="currentApproveUserName" label="当前处理人">
         </el-table-column>
-        <el-table-column
-          prop="statusStr"
-          label="状态"
-          width="80"
-        ></el-table-column>
         <el-table-column class-name="action-column" label="操作" width="80px">
           <template slot-scope="scope">
             <el-button
@@ -88,18 +106,28 @@
 
 <script>
 import { approveRecordListPage, deleteApproveRecord } from "../api";
+import { FLOW_STATUS } from "@/constants/enumerate";
+import pickerOptions from "@/constants/datePickerOptions";
 
 export default {
   name: "approve-record-manage",
   data() {
     return {
       filter: {
-        startName: ""
+        status: "",
+        teachingRoomId: "",
+        startName: "",
+        createStartTime: null,
+        createEndTime: null
       },
       current: 1,
       size: this.GLOBAL.pageSize,
       total: 0,
-      dataList: []
+      dataList: [],
+      FLOW_STATUS,
+      // date-picker
+      createTime: [],
+      pickerOptions
     };
   },
   mounted() {
@@ -114,6 +142,10 @@ export default {
         pageNumber: this.current,
         pageSize: this.size
       };
+      if (this.createTime) {
+        datas.createStartTime = this.createTime[0];
+        datas.createEndTime = this.createTime[1];
+      }
       const data = await approveRecordListPage(datas);
       this.dataList = data.records;
       this.total = data.total;

+ 30 - 8
src/modules/exam/components/ApplySubmitHistory.vue

@@ -9,6 +9,19 @@
         </el-table-column>
         <el-table-column prop="submitUserName" label="提交人"></el-table-column>
         <el-table-column prop="approveUsers" label="下级审核人">
+          <div slot-scope="scope">
+            <span
+              v-if="!scope.row.approveUsers && FLOW_IS_END"
+              class="color-primary"
+              >流程结束</span
+            >
+            <span
+              v-if="!scope.row.approveUsers && !FLOW_IS_END"
+              class="color-danger"
+              >流程终止</span
+            >
+            <span v-else>{{ scope.row.approveUsers }}</span>
+          </div>
         </el-table-column>
         <el-table-column
           prop="paperUrls"
@@ -42,9 +55,11 @@ import { attachmentPreview } from "../../login/api";
 export default {
   name: "apply-submit-history",
   props: {
-    examTaskId: {
-      type: String,
-      default: ""
+    examTask: {
+      type: Object,
+      default() {
+        return {};
+      }
     }
   },
   data() {
@@ -52,21 +67,28 @@ export default {
       submitHistory: []
     };
   },
+  computed: {
+    FLOW_IS_END() {
+      return this.examTask.setup === 0;
+    }
+  },
   mounted() {
     this.getData();
   },
   methods: {
     async getData() {
-      if (!this.examTaskId) return;
-      const data = await taskApplySubmitHistory(this.examTaskId);
+      if (!this.examTask.id) return;
+      const data = await taskApplySubmitHistory(this.examTask.id);
       const result = data || [];
       this.submitHistory = result.map(item => {
         return {
           operateTime: item.submitUser.createTime,
           submitUserName: `${item.submitUser.realName}(${item.submitUser.orgName})`,
-          approveUsers: item.approveUserList
-            .map(user => `${user.realName}(${user.orgName})`)
-            .join(","),
+          approveUsers: !item.approveUserList
+            ? ""
+            : item.approveUserList
+                .map(user => `${user.realName}(${user.orgName})`)
+                .join(","),
           paperUrls: item.submitUser.paperUrls
             ? JSON.parse(item.submitUser.paperUrls)
             : []

+ 1 - 1
src/modules/exam/components/ModifyTaskApply.vue

@@ -137,7 +137,7 @@
         v-if="needReview"
         v-show="curMenu.id === '3'"
         ref="ApplySubmitHistory"
-        :exam-task-id="modalForm.id"
+        :exam-task="modalForm"
       ></apply-submit-history>
     </div>