Browse Source

api page md

zhangjie 3 years ago
parent
commit
aa83687a76

+ 1 - 1
src/constants/enumerate.js

@@ -98,7 +98,7 @@ export const EXAM_TYPE = {
   ONLINE: "线上考试"
 };
 
-export const EXAM_TYPE_MODE = {
+export const EXAM_MODE_TYPE = {
   ONE: "模式1:电子交卷环节需要提交考务数据",
   TWO: "模式2:电子交卷环节不需要提交考务数据,只输入印刷份数即可",
   THREE: "模式3:电子交卷环节不需要提交考务数据"

+ 14 - 14
src/modules/base/api.js

@@ -146,8 +146,8 @@ export const updateCourse = datas => {
 export const ableCourse = ({ idList, enable }) => {
   return $postParam("/api/admin/basic/course/enable", { idList, enable });
 };
-export const batchDeableCourse = datas => {
-  return $postParam("/api/admin/basic/course/enable", datas);
+export const batchEnableCourse = datas => {
+  return $postParam("/api/admin/basic/course/enable_by_query", datas);
 };
 // course-simple-manage
 export const courseSimpleListPage = datas => {
@@ -386,33 +386,33 @@ export const resendSms = id => {
 
 // exam-manage
 export const examQuery = datas => {
-  return $postParam("/api/admin/basic/exam/list", datas);
+  return $postParam("/api/admin/basic/exam/query", datas);
 };
 export const examListQuery = datas => {
-  return $postParam("/api/admin/basic/exam/list", datas);
+  return $postParam("/api/admin/basic/exam/page", datas);
 };
-export const deleteExam = idList => {
-  return $postParam("/api/admin/basic/exam/delete", { idList });
+export const deleteExam = id => {
+  return $postParam("/api/admin/basic/exam/delete", { id });
 };
 export const updateExam = datas => {
   return $post("/api/admin/basic/exam/save", datas);
 };
-export const ableExam = ({ idList, enable }) => {
-  return $postParam("/api/admin/basic/exam/enable", { idList, enable });
+export const ableExam = ({ id, enable }) => {
+  return $postParam("/api/admin/basic/exam/enable", { id, enable });
 };
 
 // exam-config
 export const examConfigQuery = datas => {
-  return $postParam("/api/admin/basic/exam-config/list", datas);
+  return $postParam("/api/admin/basic/print-config/list", datas);
 };
-export const deleteExamConfig = idList => {
-  return $postParam("/api/admin/basic/exam-config/delete", { idList });
+export const deleteExamConfig = id => {
+  return $postParam("/api/admin/basic/print-config/delete", { id });
 };
 export const updateExamConfig = datas => {
-  return $post("/api/admin/basic/exam-config/save", datas);
+  return $post("/api/admin/basic/print-config/save", datas);
 };
-export const ableExamConfig = ({ idList, enable }) => {
-  return $postParam("/api/admin/basic/exam-config/enable", { idList, enable });
+export const ableExamConfig = ({ id, enable }) => {
+  return $postParam("/api/admin/basic/print-config/enable", { id, enable });
 };
 
 // common

+ 12 - 12
src/modules/base/components/ModifyExam.vue

@@ -33,8 +33,8 @@
           style="width:100%"
         ></semester-select>
       </el-form-item>
-      <el-form-item prop="examType" label="考试类型:">
-        <el-radio-group v-model="modalForm.examType">
+      <el-form-item prop="category" label="考试类型:">
+        <el-radio-group v-model="modalForm.category">
           <el-radio v-for="(val, key) in EXAM_TYPE" :key="key" :label="key">{{
             val
           }}</el-radio>
@@ -46,14 +46,14 @@
         </div>
       </el-form-item>
       <el-form-item
-        v-if="modalForm.examType === 'OFFLINE'"
-        prop="examTypeMode"
+        v-if="modalForm.category === 'OFFLINE'"
+        prop="examModel"
         label=""
       >
         <p class="tips-info mb-2">请选择符合此考试的业务模式</p>
-        <el-radio-group v-model="modalForm.examTypeMode">
+        <el-radio-group v-model="modalForm.examModel">
           <el-radio
-            v-for="(val, key) in EXAM_TYPE_MODE"
+            v-for="(val, key) in EXAM_MODE_TYPE"
             :key="key"
             :label="key"
             class="el-radio-v"
@@ -73,14 +73,14 @@
 
 <script>
 import { updateExam } from "../api";
-import { EXAM_TYPE, EXAM_TYPE_MODE } from "@/constants/enumerate";
+import { EXAM_TYPE, EXAM_MODE_TYPE } from "@/constants/enumerate";
 
 const initModalForm = {
   id: null,
   name: "",
   semesterId: "",
-  examType: "OFFLINE",
-  examTypeMode: "ONE"
+  category: "OFFLINE",
+  examModel: "ONE"
 };
 
 export default {
@@ -107,7 +107,7 @@ export default {
       isSubmit: false,
       modalForm: { ...initModalForm },
       EXAM_TYPE,
-      EXAM_TYPE_MODE,
+      EXAM_MODE_TYPE,
       rules: {
         name: [
           {
@@ -128,14 +128,14 @@ export default {
             trigger: "change"
           }
         ],
-        examType: [
+        category: [
           {
             required: true,
             message: "请选择考试类型",
             trigger: "change"
           }
         ],
-        examTypeMode: [
+        examModel: [
           {
             required: true,
             message: "请选择考试模式",

+ 16 - 9
src/modules/base/components/ModifyExamConfig.vue

@@ -3,7 +3,7 @@
     <el-dialog
       class="modify-exam-config page-dialog"
       :visible.sync="modalIsShow"
-      title="配置管理"
+      :title="title"
       :close-on-click-modal="false"
       :close-on-press-escape="false"
       append-to-body
@@ -79,7 +79,7 @@
           ></el-table-column>
           <el-table-column prop="orgs" label="适用学院">
             <template slot-scope="scope">
-              <more-text :data="scope.row.orgNames"></more-text>
+              <more-text :data="scope.row.orgNames" :show-count="3"></more-text>
             </template>
           </el-table-column>
           <el-table-column prop="createTime" label="创建时间">
@@ -162,8 +162,8 @@ export default {
       modalIsShow: false,
       filter: {
         examId: "",
-        startCreateTime: "",
-        endCreateTime: "",
+        createStartTime: "",
+        createEndTime: "",
         enable: ""
       },
       ABLE_TYPE,
@@ -177,6 +177,11 @@ export default {
       pickerOptions
     };
   },
+  computed: {
+    title() {
+      return "配置管理-" + this.exam.name;
+    }
+  },
   methods: {
     visibleChange() {
       this.filter.examId = this.exam.id;
@@ -197,8 +202,8 @@ export default {
         pageSize: this.size
       };
       if (this.createTime) {
-        datas.startCreateTime = this.createTime[0];
-        datas.endCreateTime = this.createTime[1];
+        datas.createStartTime = this.createTime[0];
+        datas.createEndTime = this.createTime[1];
       }
       if (datas.enable !== null && datas.enable !== "")
         datas.enable = !!datas.enable;
@@ -212,7 +217,9 @@ export default {
       this.getList();
     },
     toAdd() {
-      this.curExamConfig = {};
+      this.curExamConfig = {
+        examId: this.filter.examId
+      };
       this.$refs.ModifyExamConfigDetail.open();
     },
     toEdit(row) {
@@ -224,7 +231,7 @@ export default {
         type: "warning"
       })
         .then(async () => {
-          await deleteExamConfig([row.id]);
+          await deleteExamConfig(row.id);
           this.$message.success("删除成功!");
           this.deletePageLastItem();
         })
@@ -238,7 +245,7 @@ export default {
         .then(async () => {
           const enable = !row.enable;
           await ableExamConfig({
-            idList: [row.id],
+            id: row.id,
             enable
           });
           row.enable = enable;

+ 8 - 19
src/modules/base/components/ModifyExamConfigDetail.vue

@@ -255,6 +255,7 @@ import SelectOrgs from "./SelectOrgs";
 
 const initModalForm = {
   id: null,
+  examId: null,
   cardRuleId: "",
   orgIds: [],
   printContent: [],
@@ -403,7 +404,7 @@ export default {
               if (value.length) {
                 callback();
               } else {
-                callback(new Error("请选择适用学院"));
+                callback(new Error("请选择适用范围"));
               }
             },
             trigger: "change"
@@ -436,10 +437,7 @@ export default {
     },
     async initData(val) {
       if (val.id) {
-        this.modalForm = this.$objAssign(
-          deepCopy(initModalForm),
-          val.printPlan
-        );
+        this.modalForm = this.$objAssign(deepCopy(initModalForm), val);
         const transformInfo = item => {
           const templateIds = item.templateId ? [item.templateId] : [];
           return {
@@ -453,7 +451,7 @@ export default {
         this.modalForm.variableContent = val.variableContent.map(transformInfo);
         this.modalForm.ordinaryContent = val.ordinaryContent.map(transformInfo);
       } else {
-        let modalForm = deepCopy(initModalForm);
+        let modalForm = this.$objAssign(deepCopy(initModalForm), val);
         modalForm.variableContent = modalForm.variableContent.filter(
           item => this.templateSources[item.type]
         );
@@ -471,7 +469,7 @@ export default {
       }
     },
     getData() {
-      const printPlan = { ...this.modalForm };
+      let data = deepCopy(this.modalForm);
       const transformInfo = item => {
         const templateId = item.templateId.join();
         const template = this.templateSources[item.type].find(
@@ -485,19 +483,10 @@ export default {
           backupCount: item.backupCount
         };
       };
-      printPlan.variableContent = this.modalForm.variableContent.map(
-        transformInfo
-      );
-      printPlan.ordinaryContent = this.modalForm.ordinaryContent.map(
-        transformInfo
-      );
+      data.variableContent = this.modalForm.variableContent.map(transformInfo);
+      data.ordinaryContent = this.modalForm.ordinaryContent.map(transformInfo);
 
-      return {
-        id: this.modalForm.id,
-        cardRuleId: this.modalForm.cardRuleId,
-        orgIds: this.modalForm.orgIds,
-        printPlan
-      };
+      return data;
     },
     selectAll(selected) {
       if (selected) {

+ 18 - 4
src/modules/base/views/CourseManage.vue

@@ -58,7 +58,12 @@
         </el-form-item>
       </el-form>
       <div class="part-box-action">
-        <el-button type="danger" @click="toBatchDeable">批量禁用</el-button>
+        <el-button
+          type="danger"
+          :disabled="!filterHasQuery"
+          @click="toBatchDeable"
+          >批量禁用</el-button
+        >
         <el-button
           type="success"
           icon="el-icon-download"
@@ -165,7 +170,7 @@ import {
   courseListPage,
   deleteCourse,
   ableCourse,
-  batchDeableCourse
+  batchEnableCourse
 } from "../api";
 import pickerOptions from "@/constants/datePickerOptions";
 import ModifyCourse from "../components/ModifyCourse";
@@ -184,6 +189,7 @@ export default {
         endCreateTime: "",
         enable: ""
       },
+      queriedFilter: {},
       ABLE_TYPE,
       current: 1,
       size: this.GLOBAL.pageSize,
@@ -199,6 +205,13 @@ export default {
       pickerOptions
     };
   },
+  computed: {
+    filterHasQuery() {
+      return !Object.keys(this.filter).some(
+        k => this.filter[k] !== this.queriedFilter[k]
+      );
+    }
+  },
   mounted() {
     this.getList();
   },
@@ -224,6 +237,7 @@ export default {
         return item;
       });
       this.total = data.total;
+      this.queriedFilter = { ...this.filter };
     },
     toPage(page) {
       this.current = page;
@@ -269,9 +283,9 @@ export default {
         type: "warning"
       })
         .then(async () => {
-          // TODO:
-          await batchDeableCourse({ ...this.filter });
+          await batchEnableCourse({ ...this.filter, enableOperate: false });
           this.$message.success("操作成功!");
+          this.toPage(1);
         })
         .catch(() => {});
     },

+ 8 - 8
src/modules/base/views/ExamManage.vue

@@ -55,9 +55,9 @@
         ></el-table-column>
         <el-table-column prop="name" label="考试名称"></el-table-column>
         <el-table-column prop="semesterName" label="学年学期"></el-table-column>
-        <el-table-column prop="examType" label="考试类型">
+        <el-table-column prop="category" label="考试类型">
           <span slot-scope="scope">
-            {{ scope.row.examType | examTypeFilter }}
+            {{ scope.row.category | examTypeFilter }}
           </span>
         </el-table-column>
         <el-table-column prop="createTime" label="创建时间">
@@ -177,7 +177,7 @@ export default {
     };
   },
   mounted() {
-    // this.getList();
+    this.getList();
   },
   methods: {
     async getList() {
@@ -208,7 +208,7 @@ export default {
       this.$refs.ModifyExam.open();
     },
     examModified({ isEdit, exam }) {
-      if (!isEdit && exam.examType === "OFFLINE") {
+      if (!isEdit && exam.category === "OFFLINE") {
         this.toEditConfig(exam);
       }
       this.getList();
@@ -218,11 +218,11 @@ export default {
       this.$refs.ModifyExamConfig.open();
     },
     toDelete(row) {
-      this.$confirm(`确定要删除学期【${row.semesterName}】吗?`, "提示", {
+      this.$confirm(`确定要删除考试【${row.name}】吗?`, "提示", {
         type: "warning"
       })
         .then(async () => {
-          await deleteExam([row.id]);
+          await deleteExam(row.id);
           this.$message.success("删除成功!");
           this.deletePageLastItem();
         })
@@ -230,13 +230,13 @@ export default {
     },
     toEnable(row) {
       const action = row.enable ? "禁用" : "启用";
-      this.$confirm(`确定要${action}学期【${row.semesterName}】吗?`, "提示", {
+      this.$confirm(`确定要${action}考试【${row.name}】吗?`, "提示", {
         type: "warning"
       })
         .then(async () => {
           const enable = !row.enable;
           await ableExam({
-            idList: [row.id],
+            id: row.id,
             enable
           });
           row.enable = enable;

+ 10 - 13
src/modules/base/views/StudentManage.vue

@@ -54,6 +54,7 @@
           v-if="checkPrivilege('button', 'delete')"
           type="danger"
           icon="el-icon-delete"
+          :disabled="!filterHasQuery"
           @click="toBatchDelete"
           >批量删除</el-button
         >
@@ -164,6 +165,7 @@ export default {
         majorId: "",
         clazzId: ""
       },
+      queriedFilter: {},
       current: 1,
       size: this.GLOBAL.pageSize,
       total: 0,
@@ -175,6 +177,13 @@ export default {
       dfilename: "学生导入模板.xlsx"
     };
   },
+  computed: {
+    filterHasQuery() {
+      return !Object.keys(this.filter).some(
+        k => this.filter[k] !== this.queriedFilter[k]
+      );
+    }
+  },
   mounted() {
     this.getList();
   },
@@ -190,6 +199,7 @@ export default {
       const data = await studentListQuery(datas);
       this.dataList = data.records;
       this.total = data.total;
+      this.queriedFilter = { ...this.filter };
     },
     toPage(page) {
       this.current = page;
@@ -207,25 +217,12 @@ export default {
       this.$refs.ModifyStudent.open();
     },
     toBatchDelete() {
-      const valid = Object.values(this.filter).some(val => val);
-      if (!valid) {
-        this.$message.error("请设置筛选条件!");
-        return;
-      }
-
       this.$confirm(`确定要根据设置的筛选条件删除所有数据吗?`, "提示", {
         type: "warning"
       })
         .then(async () => {
           await deleteFilterStudent(this.filter);
           this.$message.success("删除成功!");
-          this.filter = {
-            queryParams: "",
-            campusId: "",
-            collegeId: "",
-            majorId: "",
-            clazzId: ""
-          };
           this.toPage(1);
         })
         .catch(() => {});

+ 1 - 1
src/modules/login/router.js

@@ -1,5 +1,5 @@
 import LoginHome from "./views/LoginHome";
-import Login from "./views/Login";
+import Login from "./views/Login2";
 import SelectSchool from "./views/SelectSchool";
 
 export default {

+ 75 - 18
src/modules/login/views/Login.vue

@@ -7,7 +7,12 @@
         <h1 v-else>教务处平台</h1>
       </div>
       <div class="login-form">
-        <el-form ref="loginForm" :model="loginModel" :rules="loginRules">
+        <el-form
+          v-if="IS_USERNAME_TYPE"
+          ref="loginForm"
+          :model="loginModel"
+          :rules="loginRules"
+        >
           <el-form-item prop="loginName">
             <el-input
               v-model.trim="loginModel.loginName"
@@ -28,7 +33,31 @@
               <i class="icon icon-password" slot="prefix"></i>
             </el-input>
           </el-form-item>
-          <el-form-item prop="code" v-if="smsCodeRequired">
+          <el-form-item prop="schoolCode"></el-form-item>
+          <el-form-item>
+            <el-button
+              class="login-submit-btn"
+              size="large"
+              type="info"
+              :disabled="isSubmit"
+              round
+              @click="submit('loginForm')"
+              >登录</el-button
+            >
+          </el-form-item>
+        </el-form>
+        <el-form v-else ref="loginForm" :model="loginModel" :rules="loginRules">
+          <el-form-item prop="mobileNumber">
+            <el-input
+              v-model.trim="loginModel.mobileNumber"
+              placeholder="请输入手机号"
+              name="mobileNumber"
+              clearable
+            >
+              <i class="icon icon-phone" slot="prefix"></i>
+            </el-input>
+          </el-form-item>
+          <el-form-item prop="code">
             <div class="vlcode">
               <div class="vlcode-right">
                 <el-button
@@ -65,6 +94,13 @@
           </el-form-item>
         </el-form>
       </div>
+      <div class="login-footer box-justify">
+        <div></div>
+        <el-button type="text" @click="switchLoginType">
+          <i>{{ switchBtnName }}</i>
+          <i class="el-icon-arrow-right"></i>
+        </el-button>
+      </div>
     </div>
 
     <!-- 修改密码 -->
@@ -77,8 +113,8 @@
 </template>
 
 <script>
-import { password, smscode } from "@/plugins/formRules";
-import { login, getSmsCode, getSchoolInfo, getSysConfig } from "../api";
+import { password, phone, smscode } from "@/plugins/formRules";
+import { login, getSmsCode, getSchoolInfo } from "../api";
 import { Base64 } from "@/plugins/crypto";
 import ResetPwd from "@/modules/base/components/ResetPwd";
 import { ORG_CODE } from "@/constants/app";
@@ -95,8 +131,9 @@ export default {
       loginModel: {
         schoolCode: ORG_CODE,
         loginName: "",
+        password: "",
         code: "",
-        password: ""
+        mobileNumber: ""
       },
       loginRules: {
         code: smscode,
@@ -114,43 +151,63 @@ export default {
             message: "学校编码缺失",
             trigger: "change"
           }
-        ]
+        ],
+        mobileNumber: phone
       },
       userInfo: {},
       roles: [],
       isSubmit: false,
-      schoolLogo: ""
+      schoolLogo: "",
+      loginType: "ACCOUNT"
     };
   },
   mounted() {
     this.$ls.clear();
     this.setWaitingTime();
     this.getSchool();
-    this.getSmsCodeRequired();
   },
-  methods: {
-    async getSmsCodeRequired() {
-      const data = await getSysConfig("sys.code.enable");
-      this.smsCodeRequired = data && data.configValue === "true";
+  computed: {
+    IS_USERNAME_TYPE() {
+      return this.loginType === "ACCOUNT";
     },
+    switchBtnName() {
+      return this.loginType === "ACCOUNT" ? "短信登录" : "账号登录";
+    }
+  },
+  methods: {
     async getSchool() {
       const data = await getSchoolInfo(ORG_CODE);
       this.$ls.set("schoolLogo", data.logo);
       this.$ls.set("schoolName", data.name);
       this.schoolLogo = data.logo;
     },
+    switchLoginType() {
+      this.loginType = this.loginType === "ACCOUNT" ? "PHONE" : "ACCOUNT";
+    },
     async submit(name) {
       const valid = await this.$refs[name].validate().catch(() => {});
       if (!valid) return;
 
       if (this.isSubmit) return;
       this.isSubmit = true;
-      const data = await login({
-        loginName: this.loginModel.loginName,
-        password: Base64(this.loginModel.password),
-        code: this.smsCodeRequired ? this.loginModel.code : null,
-        schoolCode: this.loginModel.schoolCode
-      }).catch(() => {});
+      let datas = {
+        schoolCode: this.loginModel.schoolCode,
+        type: this.loginType
+      };
+      if (this.IS_USERNAME_TYPE) {
+        datas = {
+          ...datas,
+          loginName: this.loginModel.loginName,
+          password: Base64(this.loginModel.password)
+        };
+      } else {
+        datas = {
+          ...datas,
+          code: this.loginModel.code,
+          mobileNumber: this.loginModel.mobileNumber
+        };
+      }
+      const data = await login(datas).catch(() => {});
       this.isSubmit = false;
       if (!data) return;
 

+ 12 - 74
src/modules/login/views/Login1.vue → src/modules/login/views/Login2.vue

@@ -7,12 +7,7 @@
         <h1 v-else>教务处平台</h1>
       </div>
       <div class="login-form">
-        <el-form
-          v-if="IS_USERNAME_TYPE"
-          ref="loginForm"
-          :model="loginModel"
-          :rules="loginRules"
-        >
+        <el-form ref="loginForm" :model="loginModel" :rules="loginRules">
           <el-form-item prop="loginName">
             <el-input
               v-model.trim="loginModel.loginName"
@@ -33,31 +28,7 @@
               <i class="icon icon-password" slot="prefix"></i>
             </el-input>
           </el-form-item>
-          <el-form-item prop="schoolCode"></el-form-item>
-          <el-form-item>
-            <el-button
-              class="login-submit-btn"
-              size="large"
-              type="info"
-              :disabled="isSubmit"
-              round
-              @click="submit('loginForm')"
-              >登录</el-button
-            >
-          </el-form-item>
-        </el-form>
-        <el-form v-else ref="loginForm" :model="loginModel" :rules="loginRules">
-          <el-form-item prop="mobileNumber">
-            <el-input
-              v-model.trim="loginModel.mobileNumber"
-              placeholder="请输入手机号"
-              name="mobileNumber"
-              clearable
-            >
-              <i class="icon icon-phone" slot="prefix"></i>
-            </el-input>
-          </el-form-item>
-          <el-form-item prop="code">
+          <el-form-item prop="code" v-if="smsCodeRequired">
             <div class="vlcode">
               <div class="vlcode-right">
                 <el-button
@@ -94,13 +65,6 @@
           </el-form-item>
         </el-form>
       </div>
-      <div class="login-footer box-justify">
-        <div></div>
-        <el-button type="text" @click="switchLoginType">
-          <i>{{ switchBtnName }}</i>
-          <i class="el-icon-arrow-right"></i>
-        </el-button>
-      </div>
     </div>
 
     <!-- 修改密码 -->
@@ -113,7 +77,7 @@
 </template>
 
 <script>
-import { password, phone, smscode } from "@/plugins/formRules";
+import { password, smscode } from "@/plugins/formRules";
 import { login, getSmsCode, getSchoolInfo, getSysConfig } from "../api";
 import { Base64 } from "@/plugins/crypto";
 import ResetPwd from "@/modules/base/components/ResetPwd";
@@ -131,9 +95,8 @@ export default {
       loginModel: {
         schoolCode: ORG_CODE,
         loginName: "",
-        password: "",
         code: "",
-        mobileNumber: ""
+        password: ""
       },
       loginRules: {
         code: smscode,
@@ -151,14 +114,12 @@ export default {
             message: "学校编码缺失",
             trigger: "change"
           }
-        ],
-        mobileNumber: phone
+        ]
       },
       userInfo: {},
       roles: [],
       isSubmit: false,
-      schoolLogo: "",
-      loginType: "username"
+      schoolLogo: ""
     };
   },
   mounted() {
@@ -167,14 +128,6 @@ export default {
     this.getSchool();
     this.getSmsCodeRequired();
   },
-  computed: {
-    IS_USERNAME_TYPE() {
-      return this.loginType === "username";
-    },
-    switchBtnName() {
-      return this.loginType === "username" ? "短信登录" : "账号登录";
-    }
-  },
   methods: {
     async getSmsCodeRequired() {
       const data = await getSysConfig("sys.code.enable");
@@ -186,33 +139,18 @@ export default {
       this.$ls.set("schoolName", data.name);
       this.schoolLogo = data.logo;
     },
-    switchLoginType() {
-      this.loginType = this.loginType === "username" ? "sms" : "username";
-    },
     async submit(name) {
       const valid = await this.$refs[name].validate().catch(() => {});
       if (!valid) return;
 
       if (this.isSubmit) return;
       this.isSubmit = true;
-      let datas = {
-        schoolCode: this.loginModel.schoolCode,
-        loginType: this.loginType
-      };
-      if (this.IS_USERNAME_TYPE) {
-        datas = {
-          ...datas,
-          loginName: this.loginModel.loginName,
-          password: Base64(this.loginModel.password)
-        };
-      } else {
-        datas = {
-          ...datas,
-          code: this.loginModel.code,
-          mobileNumber: this.loginModel.mobileNumber
-        };
-      }
-      const data = await login(datas).catch(() => {});
+      const data = await login({
+        loginName: this.loginModel.loginName,
+        password: Base64(this.loginModel.password),
+        code: this.smsCodeRequired ? this.loginModel.code : null,
+        schoolCode: this.loginModel.schoolCode
+      }).catch(() => {});
       this.isSubmit = false;
       if (!data) return;