zhangjie 1 an în urmă
părinte
comite
0db7c04b56

BIN
extra/database/org.rdb


+ 3 - 2
src/assets/styles/pages.scss

@@ -3,7 +3,8 @@
   .task-parts {
     .part-box {
       border-radius: 8px;
-      height: 308px;
+      min-height: 308px;
+      height: 100%;
       display: flex;
       flex-direction: column;
       justify-content: space-between;
@@ -59,7 +60,7 @@
     &-item {
       display: inline-block;
       vertical-align: top;
-      padding: 16px;
+      padding: 16px 16px 0;
       font-size: 14px;
       &:not(:last-child) {
         margin-right: 16px;

+ 11 - 0
src/components/base/CourseSelect.vue

@@ -47,6 +47,17 @@ export default {
       },
     },
     filterData(val, oldval) {
+      if (val && oldval) {
+        const vse = `${val.semesterId}-${val.examId}`;
+        const oldvse = `${oldval.semesterId}-${oldval.examId}`;
+        if (vse !== oldvse) {
+          this.search();
+          this.$emit("input", "");
+          this.$emit("change", {});
+        }
+        return;
+      }
+
       if (val !== oldval) {
         this.search();
         this.$emit("input", "");

+ 9 - 5
src/components/base/SemesterSelect.vue

@@ -28,7 +28,8 @@ export default {
     placeholder: { type: String, default: "请选择学期" },
     value: { type: [Number, String], default: "" },
     clearable: { type: Boolean, default: true },
-    defaultSelectInUsed: { type: Boolean, default: false },
+    defaultSelect: { type: Boolean, default: false },
+    enable: { type: Boolean, default: null },
   },
   data() {
     return {
@@ -51,10 +52,12 @@ export default {
     async search() {
       this.optionList = [];
 
-      const res = await commonSemesterQuery({}, "SEMESTER");
+      let data = {};
+      if (this.enable !== null) data.enable = this.enable;
+      const res = await commonSemesterQuery(data);
       this.optionList = res;
 
-      if (this.defaultSelectInUsed) this.selectDefault();
+      if (this.defaultSelect && !this.value) this.selectDefault();
     },
     select() {
       this.$emit("input", this.selected);
@@ -64,10 +67,11 @@ export default {
       );
     },
     selectDefault() {
-      const defaultCollege = this.optionList.find((item) => item.inUsed);
+      const defaultCollege = this.optionList[0];
       if (defaultCollege) {
         this.selected = defaultCollege.id;
-        this.select();
+        this.$emit("input", this.selected);
+        this.$emit("default-selected", defaultCollege);
       }
     },
   },

+ 0 - 5
src/mixins/initStoreMixin.js

@@ -17,7 +17,6 @@ export default {
         "startCountTime",
         "lastLoginUser",
         "domain",
-        "schoolCode",
         "ocrArea",
       ];
       for (let i = 0; i < needInitDict.length; i++) {
@@ -29,10 +28,6 @@ export default {
       const domain = storeDict["domain"] || "";
       this.$store.commit("setDomain", domain);
       this.$ls.set("domain", domain);
-
-      const schoolCode = storeDict["schoolCode"] || "";
-      this.$store.commit("setSchoolCode", schoolCode);
-      this.$ls.set("schoolCode", schoolCode);
     },
   },
 };

+ 2 - 8
src/modules/client/api.js

@@ -9,14 +9,8 @@ export const commonExamQuery = (data) => {
   return $postParam("/api/admin/common/exam/query", data);
 };
 // 课程
-export const commonCourseQuery = ({
-  paperArchivesId = "",
-  semesterId = "",
-}) => {
-  return $postParam("/api/admin/common/course/query", {
-    paperArchivesId,
-    semesterId,
-  });
+export const commonCourseQuery = (datas) => {
+  return $postParam("/api/admin/common/course/query", datas);
 };
 
 // scan

+ 1 - 1
src/modules/client/components/ScanTaskProcessDialog.vue

@@ -87,7 +87,7 @@ export default {
   },
   data() {
     return {
-      modalIsShow: true,
+      modalIsShow: false,
       scanStatus: "INIT",
       realScanCount: 0,
       scanHistoryList: [],

+ 8 - 4
src/modules/client/views/Scan.vue

@@ -6,7 +6,7 @@
           <h3 class="filter-title">选择考试</h3>
         </el-form-item>
         <el-form-item>
-          <sec-select v-model="filter" defaultSelectExam></sec-select>
+          <sec-select v-model="filter" default-select-exam></sec-select>
         </el-form-item>
         <el-form-item label-width="0px">
           <el-button type="primary" :disabled="!searchEnable" @click="search"
@@ -18,7 +18,7 @@
         </el-form-item>
       </el-form>
     </div>
-    <el-row class="task-parts" :gutter="16">
+    <el-row class="task-parts" :gutter="16" type="flex">
       <el-col :span="16">
         <div class="part-box part-box-pad">
           <div class="task-part-head">
@@ -37,11 +37,11 @@
               <div class="task-info-item">
                 <div class="task-info-title">
                   <i class="icon icon-right-grid"></i>
-                  <span>已扫人数/张数</span>
+                  <span>已扫人数<span class="mlr-1">/</span>张数</span>
                 </div>
                 <div class="task-info-cont">
                   <span>{{ task.scanStudentCount }}</span>
-                  <span>/</span>
+                  <span class="mlr-1">/</span>
                   <span>{{ task.scanCount }}</span>
                 </div>
               </div>
@@ -141,6 +141,10 @@ export default {
       );
     },
     toScan(isFormal) {
+      if (!this.searchEnable) {
+        this.$message.error("请选择课程!");
+        return;
+      }
       if (isFormal && !this.ocrArea) {
         this.$message.error("请先设置条形码识别区!");
         return;

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

@@ -77,13 +77,13 @@ export default {
   data() {
     return {
       schools: [
-        { code: "test-school-1", name: "学校1" },
-        { code: "test-school-2", name: "学校2" },
+        // { code: "test-school-1", name: "学校1" },
+        // { code: "test-school-2", name: "学校2" },
       ],
       loginModel: {
-        schoolCode: "test-school-1",
+        schoolCode: "",
         type: "ACCOUNT",
-        loginName: "sm01",
+        loginName: "sm",
         password: "123456",
       },
       loginRules: {
@@ -108,18 +108,31 @@ export default {
       curSchool: {},
     };
   },
+  computed: {
+    domain() {
+      return this.$store.state.domain;
+    },
+  },
+  watch: {
+    domain: {
+      immediate: true,
+      handler(val, oldval) {
+        if (val !== oldval) this.getSchools();
+      },
+    },
+  },
   mounted() {
     this.$ls.remove("token");
     this.$ls.remove("user");
     this.$ls.remove("orgId");
     this.$ls.remove("curSchool");
-    // this.getSchools();
   },
   methods: {
     toSet() {
       this.$router.push({ name: "Setting" });
     },
     async getSchools() {
+      if (!this.domain) return;
       const res = await schoolListQuery();
       this.schools = res || [];
     },

+ 0 - 10
src/views/Layout.vue

@@ -7,13 +7,6 @@
         </span>
         <span class="action-icon action-close" title="关闭" @click="close">
         </span>
-        <span
-          v-if="isDev"
-          class="action-icon action-logout"
-          @click="logout"
-          title="退出"
-        >
-        </span>
       </div>
     </div>
     <div class="home-body">
@@ -59,9 +52,6 @@ export default {
     },
   },
   methods: {
-    logout() {
-      this.$router.push({ name: "Login" });
-    },
     toBack() {
       if (this.backHandle && typeof this.backHandle === "function") {
         this.backHandle();