zhangjie 1 rok pred
rodič
commit
d08e22b248

+ 3 - 0
src/modules/mark/api.js

@@ -99,6 +99,9 @@ export const markMarkerListPage = (datas) => {
 export const markMarkerBind = (datas) => {
   return $postParam("/api/admin/mark/marker/add", datas);
 };
+export const markMarkerBindList = (datas) => {
+  return $postParam("/api/admin/mark/marker/list_bind_marker", datas);
+};
 export const markMarkerReset = (datas) => {
   return $postParam("/api/admin/mark/marker/reset", datas);
 };

+ 13 - 16
src/modules/mark/components/markDetail/MarkDetailMarker.vue

@@ -78,21 +78,16 @@
           label="评阅题目"
           min-width="200"
         ></el-table-column>
-        <el-table-column
-          prop="markedCount"
-          label="已评数量"
-          width="100"
-        ></el-table-column>
-        <el-table-column
-          prop="currentCount"
-          label="正在评卷"
-          width="100"
-        ></el-table-column>
-        <el-table-column
-          prop="taskCount"
-          label="任务数"
-          width="100"
-        ></el-table-column>
+        <el-table-column prop="markedCount" label="已评数量" width="100">
+          <span slot-scope="scope">
+            {{ scope.row.resetting ? "--" : scope.row.markedCount }}
+          </span>
+        </el-table-column>
+        <el-table-column prop="currentCount" label="正在评卷" width="100">
+          <span slot-scope="scope">
+            {{ scope.row.resetting ? "--" : scope.row.currentCount }}
+          </span>
+        </el-table-column>
         <el-table-column
           prop="topCount"
           label="设置评卷数"
@@ -108,8 +103,9 @@
             <el-button
               class="btn-primary"
               type="text"
+              :disabled="scope.row.resetting"
               @click="toReset(scope.row)"
-              >重置</el-button
+              >{{ scope.row.resetting ? "重置中" : "重置" }}</el-button
             >
             <el-button
               class="btn-primary"
@@ -161,6 +157,7 @@
     <modify-marker-bind
       ref="ModifyMarkerBind"
       :courseCode="baseInfo.courseCode"
+      :data="curData"
       @modified="markerSelected"
     ></modify-marker-bind>
   </div>

+ 17 - 5
src/modules/mark/components/markDetail/ModifyMarkerBind.vue

@@ -52,6 +52,7 @@
                 <el-checkbox
                   v-if="data.isUser"
                   v-model="node.checked"
+                  :disabled="checkNodeDisabled(data)"
                   @change="(val) => userChange(val, data)"
                 >
                   {{ node.label }}
@@ -82,7 +83,7 @@
               <el-tag
                 v-for="user in selectedUsers"
                 :key="user.id"
-                closable
+                :closable="!checkNodeDisabled(user)"
                 :disable-transitions="false"
                 @close="toDeleteUser(user)"
               >
@@ -106,11 +107,12 @@
 <script>
 import { deepCopy } from "@/plugins/utils";
 import { organizationList } from "../../../base/api";
+import { markMarkerBindList } from "../../api";
 
 export default {
   name: "modify-mark-group",
   props: {
-    instance: {
+    data: {
       type: Object,
       default() {
         return {};
@@ -139,6 +141,7 @@ export default {
       userTree: [],
       userList: [],
       selectedUsers: [],
+      disabledUserIds: [],
       selectedUserIds: [],
       defaultProps: {
         children: "children",
@@ -159,12 +162,21 @@ export default {
     this.getOrgData();
   },
   methods: {
-    visibleChange() {
+    async visibleChange() {
       this.filterLabel = "";
       this.userType = "course";
-      this.selectedUsers = [];
-      this.selectedUserIds = [];
+      const res = await markMarkerBindList(this.data);
+      this.selectedUserIds = res || [];
+      this.disabledUserIds = [...this.selectedUserIds];
       this.labelChange();
+
+      this.$nextTick(() => {
+        const users = this.$refs.UserTree.getCheckedNodes(true);
+        this.selectedUsers = users;
+      });
+    },
+    checkNodeDisabled(data) {
+      return this.disabledUserIds.includes(data.id);
     },
     cancel() {
       this.modalIsShow = false;