zhangjie 3 éve
szülő
commit
8aaef9133c

+ 13 - 0
src/assets/styles/pages.scss

@@ -396,3 +396,16 @@
     }
   }
 }
+
+// marker-login
+.marker-login {
+  .part-box {
+    padding: 100px 50px;
+    text-align: center;
+  }
+  .auth-item {
+    padding: 80px;
+    margin: 0 20px;
+    font-size: 40px;
+  }
+}

+ 6 - 0
src/components/MoreText.vue

@@ -39,12 +39,18 @@ export default {
       moreContent: ""
     };
   },
+  watch: {
+    data(val) {
+      this.initData();
+    }
+  },
   created() {
     this.initData();
   },
   methods: {
     initData() {
       this.showContent = this.data.slice(0, this.showCount).join(",");
+      this.moreContent = "";
       if (this.data.length > this.showCount) {
         this.moreContent = this.data.join(",");
       }

+ 2 - 2
src/components/base/ClassSelect.vue

@@ -19,7 +19,7 @@
 </template>
 
 <script>
-import { clazzQuery } from "../../modules/base/api";
+import { classQuery } from "../../modules/base/api";
 
 export default {
   name: "class-select",
@@ -59,7 +59,7 @@ export default {
     async search() {
       this.optionList = [];
       if (this.cascader && !this.majorId) return;
-      const res = await clazzQuery({
+      const res = await classQuery({
         majorId: this.majorId
       });
       this.optionList = res;

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

@@ -188,6 +188,9 @@ export const updateClazz = datas => {
   return $post("/api/admin/basic/clazz/save", datas);
 };
 export const clazzQuery = datas => {
+  return $postParam("/api/admin/basic/clazz/datasource", datas);
+};
+export const classQuery = datas => {
   return $postParam("/api/admin/common/get_dictionary", {
     ...datas,
     dictionaryEnum: "CLAZZ"

+ 1 - 0
src/modules/base/components/ModifyStudent.vue

@@ -8,6 +8,7 @@
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
+    destroy-on-close
     @open="visibleChange"
   >
     <el-form

+ 1 - 4
src/modules/base/views/CardRuleManage.vue

@@ -71,10 +71,7 @@
         <el-table-column prop="name" label="题卡规则名称"></el-table-column>
         <el-table-column prop="orgs" label="适用学院">
           <template slot-scope="scope">
-            <more-text
-              :data="scope.row.orgNames"
-              :key="scope.row.id"
-            ></more-text>
+            <more-text :data="scope.row.orgNames"></more-text>
           </template>
         </el-table-column>
         <el-table-column prop="remark" label="备注">

+ 1 - 5
src/modules/base/views/CourseManage.vue

@@ -93,11 +93,7 @@
         ></el-table-column>
         <el-table-column prop="clazzList" label="授课班级">
           <span slot-scope="scope">
-            <more-text
-              :data="scope.row.clazzNames"
-              :show-count="3"
-              :key="scope.row.id"
-            ></more-text>
+            <more-text :data="scope.row.clazzNames" :show-count="3"></more-text>
           </span>
         </el-table-column>
         <el-table-column prop="createTime" label="创建时间">

+ 1 - 4
src/modules/base/views/TemplateManage.vue

@@ -79,10 +79,7 @@
         </el-table-column>
         <el-table-column prop="orgs" label="适用学院">
           <template slot-scope="scope">
-            <more-text
-              :data="scope.row.orgNames"
-              :key="scope.row.id"
-            ></more-text>
+            <more-text :data="scope.row.orgNames"></more-text>
           </template>
         </el-table-column>
         <el-table-column prop="remark" label="备注">

+ 6 - 3
src/modules/stmms/api.js

@@ -6,6 +6,9 @@ export const markTaskListPage = datas => {
 export const uploadPaperAndAnswer = datas => {
   return $post("/api/admin/exam/structure/upload", datas);
 };
+export const paperStructureDetail = datas => {
+  return $post("/api/admin/exam/structure/preview_structure", datas);
+};
 // score-archive
 export const scoreListPage = datas => {
   return $postParam("/api/admin/sys/user/user_list", datas);
@@ -15,13 +18,13 @@ export const scorePaperDetail = datas => {
 };
 // 第三方登录ypt
 export const userSysRoles = () => {
-  return $post("/api/admin/user/sso/marker_login", {});
+  return $post("/api/admin/common/get_open_role", {});
 };
 export const yptAuth = roleType => {
-  if (roleType === "marker") {
+  if (roleType === "MARKER") {
     return $post("/api/admin/exam/sso/marker_login", {});
   } else {
-    return $post("/api/admin/exam/sso/marker_login", {});
+    return $post("/api/admin/exam/sso/marker_leader_login", {});
   }
 };
 // sync-result-manage

+ 4 - 4
src/modules/stmms/router.js

@@ -1,13 +1,13 @@
-import MarkTaskManage from "./views/MarkTaskManage.vue";
+import MarkerLogin from "./views/MarkerLogin.vue";
 import ScoreArchive from "./views/ScoreArchive.vue";
 import UploadStructure from "./views/UploadStructure.vue";
 import SyncManage from "./views/SyncManage.vue";
 
 export default [
   {
-    path: "/stmms/mark-task-manage",
-    name: "MarkTaskManage",
-    component: MarkTaskManage
+    path: "/stmms/marker-login",
+    name: "MarkerLogin",
+    component: MarkerLogin
   },
   {
     path: "/stmms/score-archive",

+ 0 - 98
src/modules/stmms/views/MarkTaskManage.vue

@@ -1,98 +0,0 @@
-<template>
-  <div class="mark-task-manage">
-    <div class="part-box part-box-filter part-box-flex">
-      <div></div>
-      <div class="part-box-action">
-        <el-button
-          v-if="checkPrivilege('button', 'select')"
-          type="primary"
-          @click="toPage(1)"
-          >查询</el-button
-        >
-      </div>
-    </div>
-    <div class="part-box part-box-pad">
-      <el-table ref="TableList" :data="taskList">
-        <el-table-column prop="examId" label="考试ID"></el-table-column>
-        <el-table-column prop="courseName" label="课程名称"></el-table-column>
-        <el-table-column prop="status" label="状态" width="100">
-          <template slot-scope="scope">
-            {{ scope.row.status | markTaskSyncStatusFilter }}
-          </template>
-        </el-table-column>
-        <el-table-column class-name="action-column" label="操作" width="220px">
-          <template slot-scope="scope">
-            <el-button
-              v-if="checkPrivilege('link', 'markerLogin')"
-              class="btn-primary"
-              type="text"
-              @click="toMark(scope.row)"
-              >开始阅卷</el-button
-            >
-          </template>
-        </el-table-column>
-      </el-table>
-      <div class="part-page">
-        <el-pagination
-          background
-          layout="total,prev, pager, next"
-          :current-page="current"
-          :total="total"
-          :page-size="size"
-          @current-change="toPage"
-        >
-        </el-pagination>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import { markTaskListPage, yptAuth } from "../api";
-import { autoSubmitForm } from "@/plugins/utils";
-
-export default {
-  name: "mark-task-manage",
-  data() {
-    return {
-      filter: {},
-      current: 1,
-      size: this.GLOBAL.pageSize,
-      total: 0,
-      taskList: [],
-      curTask: {}
-    };
-  },
-  mounted() {
-    this.toPage(1);
-  },
-  methods: {
-    async getList() {
-      if (!this.checkPrivilege("list", "list")) return;
-      const datas = {
-        ...this.filter,
-        pageNumber: this.current,
-        pageSize: this.size
-      };
-      const data = await markTaskListPage(datas);
-      this.taskList = data.records;
-      this.total = data.total;
-    },
-    toPage(page) {
-      this.current = page;
-      this.getList();
-    },
-    toMark(row) {
-      console.log(row);
-      this.toAuth();
-    },
-    async toAuth() {
-      const data = await yptAuth({});
-      const url = data.redirectUrl;
-      const params = { ...data, returnUrl: window.location.href };
-      delete params.redirectUrl;
-      autoSubmitForm(url, params);
-    }
-  }
-};
-</script>

+ 60 - 0
src/modules/stmms/views/MarkerLogin.vue

@@ -0,0 +1,60 @@
+<template>
+  <div class="marker-login">
+    <div class="part-box part-box-pad">
+      <el-button
+        v-for="item in roles"
+        :key="item.type"
+        type="primary"
+        class="auth-item"
+        :disabled="loading"
+        @click="toAuth(item)"
+        >{{ item.name }}</el-button
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+import { userSysRoles, yptAuth } from "../api";
+import { autoSubmitForm } from "@/plugins/utils";
+
+export default {
+  name: "marker-login",
+  data() {
+    return {
+      roles: [],
+      loading: false,
+      roleNames: {
+        MARKER: "评卷员",
+        SUBJECT_HEADER: "科组长"
+      }
+    };
+  },
+  mounted() {
+    this.getRoles();
+  },
+  methods: {
+    async getRoles() {
+      this.roles = [];
+      const data = await userSysRoles();
+      this.roles = data.map(type => {
+        return {
+          type,
+          name: this.roleNames[type]
+        };
+      });
+    },
+    async toAuth(item) {
+      if (this.loading) return;
+      this.loading = true;
+      const data = await yptAuth(item.type).catch(() => {});
+      this.loading = false;
+      if (!data) return;
+      const url = data.redirectUrl;
+      const params = { ...data, returnUrl: window.location.href };
+      delete params.redirectUrl;
+      autoSubmitForm(url, params);
+    }
+  }
+};
+</script>

+ 1 - 13
src/router.js

@@ -2,7 +2,6 @@ import Vue from "vue";
 import Router from "vue-router";
 
 import Home from "./views/Home.vue";
-import Overview from "./views/Overview.vue";
 import NotFound from "./views/404.vue";
 
 import login from "./modules/login/router";
@@ -43,18 +42,7 @@ let router = new Router({
       path: "/home/:nextRouter?",
       name: "Home",
       component: Home,
-      children: [
-        {
-          path: "/overview",
-          name: "Overview",
-          component: Overview
-        },
-        ...base,
-        ...exam,
-        ...print,
-        ...customer,
-        ...stmms
-      ]
+      children: [...base, ...exam, ...print, ...customer, ...stmms]
     },
     { ...login },
     { ...admin },

+ 0 - 62
src/views/Overview.vue

@@ -1,62 +0,0 @@
-<template>
-  <div class="overview">
-    <el-row :gutter="20">
-      <el-col span="10">
-        <div class="part-box part-box-pad">
-          <div class="mb-4 tab-btns">
-            <el-button
-              v-for="tab in tabs"
-              :key="tab.val"
-              size="medium"
-              :type="curTab == tab.val ? 'primary' : 'default'"
-              @click="selectMenu(tab.val)"
-              >{{ tab.name }}</el-button
-            >
-          </div>
-        </div>
-        <div class="task-body">
-          <overview-flow v-show="curTab === 'flow'"></overview-flow>
-          <overview-stmms v-show="curTab === 'stmms'"></overview-stmms>
-        </div>
-      </el-col>
-      <el-col span="14">
-        <div class="part-box part-box-pad mb-4">
-          <h3>快捷入口</h3>
-        </div>
-        <div class="part-box part-box-pad">
-          <h3>任务统计</h3>
-        </div>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import OverviewFlow from "./comps/OverviewFlow";
-import OverviewStmms from "./comps/OverviewStmms";
-
-export default {
-  name: "overview",
-  components: { OverviewStmms, OverviewFlow },
-  data() {
-    return {
-      curTab: "flow",
-      tabs: [
-        {
-          name: "流程待办",
-          val: "flow"
-        },
-        {
-          name: "任务待办",
-          val: "stmms"
-        }
-      ]
-    };
-  },
-  methods: {
-    selectMenu(tab) {
-      this.curTab = tab;
-    }
-  }
-};
-</script>

+ 0 - 59
src/views/comps/OverviewFlow.vue

@@ -1,59 +0,0 @@
-<template>
-  <div class="overview-flow">
-    <el-table ref="TableList" :data="dataList" :show-header="false">
-      <el-table-column label="标题">
-        <div slot-scope="scope">
-          {{ scope.row.name }}
-        </div>
-      </el-table-column>
-      <el-table-column label="时间" width="100"></el-table-column>
-    </el-table>
-    <div v-if="hasMore" class="overview-more" @click="toMore">查看更多</div>
-  </div>
-</template>
-
-<script>
-import { waitExamTaskListPage } from "@/modules/exam/api";
-
-export default {
-  name: "overview-flow",
-  data() {
-    return {
-      current: 1,
-      size: this.GLOBAL.pageSize,
-      totalPage: 99,
-      dataList: []
-    };
-  },
-  computed: {
-    hasMore() {
-      return this.current < this.totalPage;
-    }
-  },
-  mounted() {
-    this.initData();
-  },
-  methods: {
-    async getList() {
-      const datas = {
-        pageNumber: this.current,
-        pageSize: this.size
-      };
-      const data = await waitExamTaskListPage(datas);
-      this.dataList = [...this.dataList, ...data.records];
-      this.totalPage = data.totalPage;
-    },
-    toMore() {
-      if (!this.hasMore) return;
-      this.current++;
-      this.getList();
-    },
-    initData() {
-      this.dataList = [];
-      this.totalPage = 99;
-      this.current = 1;
-      this.getList();
-    }
-  }
-};
-</script>

+ 0 - 59
src/views/comps/OverviewStmms.vue

@@ -1,59 +0,0 @@
-<template>
-  <div class="overview-stmms">
-    <el-table ref="TableList" :data="dataList" :show-header="false">
-      <el-table-column label="标题">
-        <div slot-scope="scope">
-          {{ scope.row.name }}
-        </div>
-      </el-table-column>
-      <el-table-column label="时间" width="100"></el-table-column>
-    </el-table>
-    <div v-if="hasMore" class="overview-more" @click="toMore">查看更多</div>
-  </div>
-</template>
-
-<script>
-import { markerTaskListPage } from "@/modules/exam/api";
-
-export default {
-  name: "overview-stmms",
-  data() {
-    return {
-      current: 1,
-      size: this.GLOBAL.pageSize,
-      totalPage: 99,
-      dataList: []
-    };
-  },
-  computed: {
-    hasMore() {
-      return this.current < this.totalPage;
-    }
-  },
-  mounted() {
-    this.initData();
-  },
-  methods: {
-    async getList() {
-      const datas = {
-        pageNumber: this.current,
-        pageSize: this.size
-      };
-      const data = await markerTaskListPage(datas);
-      this.dataList = [...this.dataList, ...data.records];
-      this.totalPage = data.totalPage;
-    },
-    toMore() {
-      if (!this.hasMore) return;
-      this.current++;
-      this.getList();
-    },
-    initData() {
-      this.dataList = [];
-      this.totalPage = 99;
-      this.current = 1;
-      this.getList();
-    }
-  }
-};
-</script>