zhangjie 2 yıl önce
ebeveyn
işleme
f5d6397ee0

+ 7 - 0
src/modules/stmms/api.js

@@ -1,5 +1,6 @@
 import { $postParam, $post } from "@/plugins/axios";
 
+// upload structure
 export const examStructureListPage = datas => {
   return $postParam("/api/admin/exam/structure/list", datas);
 };
@@ -27,6 +28,12 @@ export const examBindMarkLeader = datas => {
 export const examBindMarker = datas => {
   return $post("/api/admin/exam/structure/bind_marker", datas);
 };
+export const examTransferUser = datas => {
+  return $postParam("/api/admin/exam/structure/transfer", datas);
+};
+export const examSecretaryList = (datas = {}) => {
+  return $postParam("/api/admin/exam/structure/list_secretary", datas);
+};
 
 // score-archive
 export const scoreListPage = datas => {

+ 111 - 0
src/modules/stmms/components/SelectTransferUser.vue

@@ -0,0 +1,111 @@
+<template>
+  <el-dialog
+    class="transfer-user-dialog"
+    :visible.sync="modalIsShow"
+    title="请选择转办人"
+    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">
+      <el-form-item prop="transferId">
+        <el-select
+          v-model="modalForm.transferId"
+          class="width-full"
+          filterable
+          clearable
+        >
+          <el-option
+            v-for="item in optionList"
+            :key="item.id"
+            :value="item.id"
+            :label="item.realName"
+          >
+          </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 { examTransferUser, examSecretaryList } from "../api";
+
+export default {
+  name: "third-auth-dialog",
+  props: {
+    task: {
+      type: Object,
+      default() {
+        return {};
+      }
+    }
+  },
+  data() {
+    return {
+      modalIsShow: false,
+      isSubmit: false,
+      optionList: [],
+      modalForm: {
+        transferId: ""
+      },
+      rules: {
+        transferId: [
+          {
+            required: true,
+            message: "请选择转办人",
+            trigger: "change"
+          }
+        ]
+      }
+    };
+  },
+  mounted() {
+    this.getUsers();
+  },
+  methods: {
+    visibleChange() {
+      this.modalForm.transferId = null;
+    },
+    async getUsers() {
+      this.optionList = [];
+      const data = await examSecretaryList();
+      this.optionList = data || [];
+    },
+    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 res = await examTransferUser({
+        transferId: this.modalForm.transferId,
+        courseCode: this.task.courseCode,
+        paperNumber: this.task.paperNumber
+      }).catch(() => {});
+      this.isSubmit = false;
+
+      if (!res) return;
+      this.$message.success("操作成功");
+      this.cancel();
+      this.$emit("modified");
+    }
+  }
+};
+</script>

+ 20 - 1
src/modules/stmms/views/UploadStructure.vue

@@ -98,6 +98,13 @@
               @click="toBindMarker(scope.row)"
               >绑定评卷员</el-button
             >
+            <el-button
+              v-if="checkPrivilege('link', 'transfer')"
+              class="btn-primary"
+              type="text"
+              @click="toTransfer(scope.row)"
+              >{{ scope.row.transferId ? "打回" : "转办" }}</el-button
+            >
             <el-button
               v-if="checkPrivilege('link', 'Upload')"
               class="btn-primary"
@@ -160,6 +167,12 @@
       :user-limit-count="0"
       @confirm="headerBind"
     />
+    <SelectTransferUser
+      v-if="checkPrivilege('link', 'transfer')"
+      ref="SelectTransferUser"
+      :task="curTask"
+      @modified="getList"
+    />
   </div>
 </template>
 
@@ -170,6 +183,7 @@ import ModifyMarkParams from "../components/markParam/ModifyMarkParams";
 import ModifyObjectiveAnswer from "../components/markParam/ModifyObjectiveAnswer.vue";
 import ModifyPaperMarker from "../components/markParam/ModifyPaperMarker.vue";
 import SelectTypeUser from "../components/SelectTypeUser.vue";
+import SelectTransferUser from "../components/SelectTransferUser.vue";
 
 export default {
   name: "upload-structure",
@@ -178,7 +192,8 @@ export default {
     ModifyMarkParams,
     ModifyObjectiveAnswer,
     SelectTypeUser,
-    ModifyPaperMarker
+    ModifyPaperMarker,
+    SelectTransferUser
   },
   data() {
     return {
@@ -267,6 +282,10 @@ export default {
       });
       this.$message.success("绑定成功!");
       this.getList();
+    },
+    toTransfer(row) {
+      this.curTask = row;
+      this.$refs.SelectTransferUser.open();
     }
   }
 };