zhangjie 2 年之前
父节点
当前提交
f8ff9db72d

文件差异内容过多而无法显示
+ 586 - 43
pnpm-lock.yaml


+ 15 - 46
src/modules/base/api.js

@@ -57,7 +57,7 @@ export const ableUser = ({ id, enable }) => {
   return $post("/api/admin/sys/user/enable", { id, enable });
 };
 export const deleteUser = ids => {
-  return $post("/api/admin/sys/user/remove", { ids });
+  return $postParam("/api/admin/sys/user/remove", { ids: ids.join() });
 };
 export const resetPwd = id => {
   return $post("/api/admin/sys/user/reset_password", { id });
@@ -88,8 +88,8 @@ export const ableRole = ({ id, enable }) => {
 export const updateRole = datas => {
   return $post("/api/admin/sys/role/save", datas);
 };
-export const deleteRole = id => {
-  return $postParam("/api/admin/sys/role/remove", { id });
+export const deleteRole = ids => {
+  return $postParam("/api/admin/sys/role/remove", { ids: ids.join() });
 };
 export const userBoundRoles = userId => {
   return $postParam("/api/admin/sys/role/get_user_roles", { userId });
@@ -130,8 +130,8 @@ export const updateOrganization = datas => {
 export const ableOrganization = ({ id, enable }) => {
   return $post("/api/admin/sys/org/enable", { id, enable });
 };
-export const deleteOrganization = id => {
-  return $post("/api/admin/sys/org/remove", { id });
+export const deleteOrganization = ids => {
+  return $postParam("/api/admin/sys/org/remove", { ids: ids.join() });
 };
 export const teachCollegeList = examId => {
   return $postParam("/api/admin/grade/batch/paper/find_teach_college", {
@@ -139,36 +139,15 @@ export const teachCollegeList = examId => {
   });
 };
 
-// course-manage
-export const courseListPage = datas => {
-  return $postParam("/api/admin/basic/course/list", datas);
-};
-export const courseQuery = datas => {
-  return $postParam("/api/admin/basic/course/query", datas);
-};
-export const deleteCourse = idList => {
-  return $postParam("/api/admin/basic/course/delete_batch", { idList });
-};
-export const batchDeleteCourse = datas => {
-  return $postParam("/api/admin/basic/course/delete_by_query", datas);
-};
-export const updateCourse = datas => {
-  return $post("/api/admin/basic/course/save", datas);
-};
-export const ableCourse = ({ idList, enable }) => {
-  return $postParam("/api/admin/basic/course/enable", { idList, enable });
-};
-export const batchEnableCourse = datas => {
-  return $postParam("/api/admin/basic/course/enable_by_query", datas);
-};
-
 // dict --------------------------------->
 // student-manage
 export const studentListQuery = datas => {
   return $postParam("/api/admin/basic/student/query", datas);
 };
-export const deleteStudent = idList => {
-  return $postParam("/api/admin/basic/student/delete_batch", { idList });
+export const deleteStudent = ids => {
+  return $postParam("/api/admin/basic/student/delete_batch", {
+    ids: ids.join()
+  });
 };
 export const deleteFilterStudent = datas => {
   return $postParam("/api/admin/basic/student/delete_by_condition", datas);
@@ -176,18 +155,6 @@ export const deleteFilterStudent = datas => {
 export const updateStudent = datas => {
   return $post("/api/admin/basic/student/save", datas);
 };
-export const studentSimpleListQuery = datas => {
-  return $postParam("/api/admin/teach/student/page", datas);
-};
-export const deleteStudentSimple = idList => {
-  return $postParam("/api/admin/teach/student/delete", { idList });
-};
-export const updateStudentSimple = datas => {
-  return $post("/api/admin/teach/student/create", datas);
-};
-export const batchAddStudentSimple = datas => {
-  return $post("/api/admin/teach/student/create_batch", datas);
-};
 export const studentCascadeQuery = datas => {
   return $postParam("/api/admin/common/basic_student/condition", datas);
 };
@@ -196,8 +163,8 @@ export const studentCascadeQuery = datas => {
 export const semesterListQuery = datas => {
   return $postParam("/api/admin/basic/semester/page", datas);
 };
-export const deleteSemester = id => {
-  return $postParam("/api/admin/basic/semester/delete", { id });
+export const deleteSemester = ids => {
+  return $postParam("/api/admin/basic/semester/delete", { ids: ids.join() });
 };
 export const updateSemester = datas => {
   return $post("/api/admin/basic/semester/save", datas);
@@ -206,8 +173,10 @@ export const updateSemester = datas => {
 export const ArchivesTypeListQuery = datas => {
   return $postParam("/api/admin/paper/archives_type/page", datas);
 };
-export const deleteArchivesType = id => {
-  return $postParam("/api/admin/paper/archives_type/delete", { id });
+export const deleteArchivesType = ids => {
+  return $postParam("/api/admin/paper/archives_type/delete", {
+    ids: ids.join()
+  });
 };
 export const updateArchivesType = datas => {
   return $post("/api/admin/paper/archives_type/save", datas);

+ 1 - 1
src/modules/base/views/ArchivesTypeManage.vue

@@ -123,7 +123,7 @@ export default {
       ).catch(() => {});
       if (result !== "confirm") return;
 
-      await deleteArchivesType(row.id);
+      await deleteArchivesType([row.id]);
       this.$message.success("删除成功!");
       this.deletePageLastItem();
     }

+ 1 - 1
src/modules/base/views/RoleManage.vue

@@ -167,7 +167,7 @@ export default {
         type: "warning"
       })
         .then(async () => {
-          await deleteRole(row.id);
+          await deleteRole([row.id]);
           this.$message.success("删除成功!");
           this.deletePageLastItem();
         })

+ 1 - 1
src/modules/base/views/SemesterManage.vue

@@ -123,7 +123,7 @@ export default {
       ).catch(() => {});
       if (result !== "confirm") return;
 
-      await deleteSemester(row.id);
+      await deleteSemester([row.id]);
       this.$message.success("删除成功!");
       this.deletePageLastItem();
     }

+ 5 - 0
src/modules/login/api.js

@@ -39,3 +39,8 @@ export const getSysConfig = key => {
 export const getSysTime = () => {
   return $postParam("/api/admin/common/get_system_time", {});
 };
+
+// open-login
+export const openLogin = datas => {
+  return $post("/api/open/common/login", datas);
+};

+ 10 - 0
src/modules/login/router.js

@@ -1,6 +1,7 @@
 import LoginHome from "./views/LoginHome";
 import Login from "./views/Login";
 import SelectSchool from "./views/SelectSchool";
+import LoginOpen from "./views/LoginOpen";
 
 export default {
   path: "/login-home",
@@ -15,6 +16,15 @@ export default {
         noRequire: true
       }
     },
+    {
+      path: "/login-open",
+      name: "LoginOpen",
+      component: LoginOpen,
+      meta: {
+        title: "第三方登录",
+        noRequire: true
+      }
+    },
     {
       path: "/select-school",
       name: "SelectSchool",

+ 55 - 0
src/modules/login/views/LoginOpen.vue

@@ -0,0 +1,55 @@
+<template>
+  <div class="login-open">
+    正在登录……
+  </div>
+</template>
+
+<script>
+/**
+ * returnUrl
+ * 所有需要重新登录的地方都要使用returnUrl。包括:
+ * axios
+ * router
+ * home:logout
+ */
+
+import { openLogin } from "../api";
+
+export default {
+  name: "login-open",
+  data() {
+    return {};
+  },
+  methods: {
+    async autoLogin() {
+      this.$ls.clear();
+      const params = this.$route.params;
+      const data = await openLogin(params).catch(() => {});
+
+      if (!data) {
+        window.history.go(-1);
+        return;
+      }
+      // 不同系统登录成功之后的处理逻辑可能会有差异
+      if (data.orgInfo)
+        this.$ls.set("orgId", data.orgInfo.id, this.GLOBAL.authTimeout);
+      if (data.schoolInfo)
+        this.$ls.set("schoolId", data.schoolInfo.id, this.GLOBAL.authTimeout);
+      this.$ls.set("user", data, this.GLOBAL.authTimeout);
+
+      this.$ls.set("token", data.accessToken, this.GLOBAL.authTimeout);
+      this.$ls.set("returnUrl", params["returnUrl"]);
+
+      if (data.roleList && data.roleList.includes("ADMIN")) {
+        this.$router.push({
+          name: "SelectSchool"
+        });
+      } else {
+        this.$router.push({
+          name: "Home"
+        });
+      }
+    }
+  }
+};
+</script>

+ 6 - 4
src/modules/record/api.js

@@ -10,8 +10,10 @@ export const scanTaskDetailPage = datas => {
 export const updateScanTask = datas => {
   return $post("/api/admin/", datas);
 };
-export const deleteScanTask = idList => {
-  return $postParam("/api/admin/paper/scan_task/delete_batch", { idList });
+export const deleteScanTask = ids => {
+  return $postParam("/api/admin/paper/scan_task/delete_batch", {
+    ids: ids.join()
+  });
 };
 export const clearScanTaskData = paperScanTaskId => {
   return $postParam("/api/admin/paper/scan_task/clear_scan_data", {
@@ -45,8 +47,8 @@ export const archivesDetailListPage = datas => {
 export const updateArchives = datas => {
   return $post("/api/admin/paper/archives/save", datas);
 };
-export const deleteArchives = id => {
-  return $postParam("/api/admin/paper/archives/delete", { id });
+export const deleteArchives = ids => {
+  return $postParam("/api/admin/paper/archives/delete", { ids: ids.join() });
 };
 // library-manage
 export const dataCheckUndoListPage = datas => {

+ 4 - 1
src/modules/record/components/LibraryDialog.vue

@@ -48,7 +48,10 @@
                 label="姓名"
                 width="80"
               ></el-table-column>
-              <el-table-column prop="studentNo" label="学号"></el-table-column>
+              <el-table-column
+                prop="studentCode"
+                label="学号"
+              ></el-table-column>
               <el-table-column label="操作" width="55">
                 <template slot-scope="scope">
                   <el-button

+ 2 - 1
src/modules/record/components/LibraryStateDialog.vue

@@ -30,8 +30,9 @@
               class="btn-primary"
               type="text"
               @click="toRelease(scope.row)"
-              >释放任务</el-button
             >
+              <span class="cont-link">释放任务</span>
+            </el-button>
           </template>
         </el-table-column>
       </el-table>

+ 2 - 1
src/modules/record/components/RelateStudentDialog.vue

@@ -61,8 +61,9 @@
               class="btn-primary"
               type="text"
               @click="toBind(scope.row)"
-              >绑定</el-button
             >
+              <span class="cont-link">绑定</span>
+            </el-button>
           </template>
         </el-table-column>
       </el-table>

+ 1 - 1
src/modules/record/views/ArchivesManage.vue

@@ -218,7 +218,7 @@ export default {
       ).catch(() => {});
       if (res !== "confirm") return;
 
-      await deleteArchives(row.id);
+      await deleteArchives([row.id]);
       this.$message.success("操作成功!");
       this.deletePageLastItem();
     }

+ 11 - 0
src/modules/record/views/ScanTaskManage.vue

@@ -274,6 +274,16 @@ export default {
   methods: {
     async getList() {
       if (!this.checkPrivilege("list", "list")) return;
+
+      if (
+        this.filter.smallerProgress &&
+        this.filter.largerProgress &&
+        this.filter.smallerProgress > this.filter.largerProgress
+      ) {
+        this.$message.error("最小进度不能大于最大进度");
+        return;
+      }
+
       const datas = {
         ...this.filter,
         pageNumber: this.current,
@@ -356,6 +366,7 @@ export default {
       return this.$refs.modalFormComp.validate();
     },
     uploadSuccess() {
+      this.$message.error("导入操作提交成功!");
       this.getList();
     }
   }

+ 7 - 0
src/plugins/axios.js

@@ -168,6 +168,13 @@ const errorDataCallback = response => {
       callback: action => {
         unauthMsgBoxIsShow = false;
         if (action !== "confirm") return;
+
+        const returnUrl = Vue.ls.get("returnUrl");
+        if (returnUrl) {
+          window.location.href = returnUrl;
+          return;
+        }
+
         Vue.ls.clear();
         router.push({ name: "Login" });
       }

+ 6 - 0
src/router.js

@@ -68,6 +68,12 @@ router.beforeEach((to, from, next) => {
 
   if (!token) {
     // 登录失效的处理
+    const returnUrl = Vue.ls.get("returnUrl");
+    if (returnUrl) {
+      window.location.href = returnUrl;
+      return;
+    }
+
     Vue.ls.clear();
     next({ name: "Login" });
     return;

+ 7 - 0
src/views/Home.vue

@@ -343,6 +343,13 @@ export default {
     },
     async logoutAction() {
       await logout();
+
+      const returnUrl = this.$ls.get("returnUrl");
+      if (returnUrl) {
+        window.location.href = returnUrl;
+        return;
+      }
+
       this.$ls.clear();
       this.$router.push({ name: "Login" });
     },

部分文件因为文件数量过多而无法显示