zhangjie 5 anni fa
parent
commit
6e4a37cedd

+ 2 - 2
src/assets/styles/home.less

@@ -9,7 +9,7 @@
 .home-body {
   position: absolute;
   left: 0;
-  top: 51px;
+  top: 50px;
   right: 0;
   bottom: 0;
   overflow: auto;
@@ -68,7 +68,7 @@
 }
 
 .head-info {
-  margin: 0 240px 0 210px;
+  margin: 0 150px 0 210px;
 }
 .head-user {
   float: right;

+ 0 - 1
src/components/ViewHeader.vue

@@ -7,7 +7,6 @@
       </slot>
     </div>
     <div class="head-user">
-      <span class="user-paper">查看试题</span>
       <span class="user-name"
         ><Icon type="md-person" size="16" /> {{ username }}</span
       >

+ 18 - 0
src/components/homeMenuMixins.js

@@ -0,0 +1,18 @@
+export default {
+  methods: {
+    switchNav(item) {
+      if (item.name === this.curNav.name) return;
+
+      this.curNav = item;
+      this.$router.push({
+        name: item.name,
+        params: {
+          workId: this.$route.params.workId
+        }
+      });
+    },
+    actCurNav(router) {
+      this.curNav = this.navs.find(item => item.name === router.name);
+    }
+  }
+};

+ 1 - 1
src/constants/authority.js

@@ -1,3 +1,3 @@
 export default {
-  ADMIN: []
+  ADMIN: ["Main", "WorkManage", ""]
 };

+ 27 - 2
src/modules/client-set/ClientSet.vue

@@ -1,14 +1,39 @@
 <template>
   <div class="client-set">
-    client-set
+    <div class="home-navs" style="background: #fff;">
+      <ul>
+        <li
+          :class="{ act: curNav.name === nav.name }"
+          v-for="(nav, index) in navs"
+          :key="index"
+          @click="switchNav(nav)"
+        >
+          <span class="nav-item-cont">{{ nav.title }}</span>
+        </li>
+      </ul>
+    </div>
+
+    <div class="page-bdoy">
+      <router-view />
+    </div>
   </div>
 </template>
 
 <script>
+import { clientSetNavs } from "@/routers/main";
+import menuMixins from "@/components/homeMenuMixins";
+
 export default {
   name: "client-set",
+  mixins: [menuMixins],
   data() {
-    return {};
+    return {
+      navs: clientSetNavs,
+      curNav: {}
+    };
+  },
+  mounted() {
+    this.actCurNav(this.$route);
   },
   methods: {}
 };

+ 39 - 3
src/modules/grading/Grading.vue

@@ -1,14 +1,50 @@
 <template>
-  <div class="grading">
-    grading
+  <div class="grading home">
+    <div class="home-header">
+      <view-header>
+        <div class="home-navs" slot="info">
+          <ul>
+            <li
+              :class="{ act: curNav.name === nav.name }"
+              v-for="(nav, index) in navs"
+              :key="index"
+              @click="switchNav(nav)"
+            >
+              <span class="nav-item-cont">{{ nav.title }}</span>
+            </li>
+          </ul>
+        </div>
+      </view-header>
+    </div>
+
+    <div class="home-body">
+      <div class="home-main">
+        <router-view />
+
+        <view-footer></view-footer>
+      </div>
+    </div>
   </div>
 </template>
 
 <script>
+import { navs } from "@/routers/grading";
+import menuMixins from "@/components/homeMenuMixins";
+
 export default {
   name: "grading",
+  mixins: [menuMixins],
   data() {
-    return {};
+    return {
+      navs,
+      curNav: {}
+    };
+  },
+  mounted() {
+    const router = this.$route.matched.filter(
+      item => item.name !== "Grading"
+    )[0];
+    this.actCurNav(router);
   },
   methods: {}
 };

+ 15 - 0
src/modules/grading/GradingOperation.vue

@@ -0,0 +1,15 @@
+<template>
+  <div class="grading-operation">
+    grading-operation
+  </div>
+</template>
+
+<script>
+export default {
+  name: "grading-operation",
+  data() {
+    return {};
+  },
+  methods: {}
+};
+</script>

+ 45 - 0
src/modules/inspection/Inspection.vue

@@ -0,0 +1,45 @@
+<template>
+  <div class="inspection home">
+    <div class="home-header">
+      <view-header>
+        <div class="home-navs" slot="info">
+          <ul>
+            <li
+              :class="{ act: curNav.name === nav.name }"
+              v-for="(nav, index) in navs"
+              :key="index"
+              @click="switchNav(nav)"
+            >
+              <span class="nav-item-cont">{{ nav.title }}</span>
+            </li>
+          </ul>
+        </div>
+      </view-header>
+    </div>
+
+    <div class="home-body">
+      <div class="home-main">
+        <router-view />
+
+        <view-footer></view-footer>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { navs } from "@/routers/inspection";
+import menuMixins from "@/components/homeMenuMixins";
+
+export default {
+  name: "inspection",
+  mixins: [menuMixins],
+  data() {
+    return { navs, curNav: {} };
+  },
+  mounted() {
+    this.actCurNav(this.$route);
+  },
+  methods: {}
+};
+</script>

+ 15 - 0
src/modules/inspection/InspectionGrading.vue

@@ -0,0 +1,15 @@
+<template>
+  <div class="inspection-grading">
+    inspection-grading
+  </div>
+</template>
+
+<script>
+export default {
+  name: "inspection-grading",
+  data() {
+    return {};
+  },
+  methods: {}
+};
+</script>

+ 15 - 0
src/modules/inspection/InspectionLogs.vue

@@ -0,0 +1,15 @@
+<template>
+  <div class="inspection-logs">
+    inspection-logs
+  </div>
+</template>
+
+<script>
+export default {
+  name: "inspection-logs",
+  data() {
+    return {};
+  },
+  methods: {}
+};
+</script>

+ 15 - 0
src/modules/login/ResetPwd.vue

@@ -0,0 +1,15 @@
+<template>
+  <div class="reset-pwd">
+    reset-pwd
+  </div>
+</template>
+
+<script>
+export default {
+  name: "reset-pwd",
+  data() {
+    return {};
+  },
+  methods: {}
+};
+</script>

+ 1 - 1
src/modules/login/login.vue

@@ -41,7 +41,7 @@
 
 <script>
 import { username, password } from "@/plugins/formRules";
-import { login } from "../api";
+import { login } from "@/api";
 
 export default {
   name: "login",

+ 6 - 18
src/modules/main/Main.vue

@@ -28,10 +28,12 @@
 </template>
 
 <script>
-import { navs } from "../router";
+import { navs } from "@/routers/main";
+import menuMixins from "@/components/homeMenuMixins";
 
 export default {
   name: "admin-home",
+  mixins: [menuMixins],
   data() {
     return {
       navs,
@@ -39,23 +41,9 @@ export default {
     };
   },
   mounted() {
-    this.actCurNav(this.$route);
+    const router = this.$route.matched.filter(item => item.name !== "Main")[0];
+    this.actCurNav(router);
   },
-  methods: {
-    switchNav(item) {
-      if (item.name === this.curNav.name) return;
-
-      this.curNav = item;
-      this.$router.push({
-        name: item.name,
-        params: {
-          workId: this.$route.params.workId
-        }
-      });
-    },
-    actCurNav(router) {
-      this.curNav = this.navs.find(item => item.name === router.name);
-    }
-  }
+  methods: {}
 };
 </script>

+ 10 - 2
src/modules/main/WorkManage.vue

@@ -1,6 +1,14 @@
 <template>
-  <div class="work">
-    work
+  <div class="work home">
+    <div class="home-header">
+      <view-header></view-header>
+    </div>
+
+    <div class="home-body">
+      <div class="home-main">
+        <view-footer></view-footer>
+      </div>
+    </div>
   </div>
 </template>
 

+ 49 - 0
src/modules/mark/MarkHome.vue

@@ -0,0 +1,49 @@
+<template>
+  <div class="mark-home home">
+    <div class="home-header">
+      <view-header>
+        <div class="home-navs" slot="info">
+          <ul>
+            <li
+              :class="{ act: curNav.name === nav.name }"
+              v-for="(nav, index) in navs"
+              :key="index"
+              @click="switchNav(nav)"
+            >
+              <span class="nav-item-cont">{{ nav.title }}</span>
+            </li>
+          </ul>
+        </div>
+      </view-header>
+    </div>
+
+    <div class="home-body">
+      <div class="home-main">
+        <router-view />
+
+        <view-footer></view-footer>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { navs } from "@/routers/mark";
+import menuMixins from "@/components/homeMenuMixins";
+
+export default {
+  name: "mark-home",
+  mixins: [menuMixins],
+  data() {
+    return {
+      navs,
+      curNav: {}
+    };
+  },
+  mounted() {
+    const router = this.$route.matched.filter(item => item.name !== "Mark")[0];
+    this.actCurNav(router);
+  },
+  methods: {}
+};
+</script>

+ 15 - 0
src/modules/mark/MarkOperation.vue

@@ -0,0 +1,15 @@
+<template>
+  <div class="mark-operation">
+    mark-operation
+  </div>
+</template>
+
+<script>
+export default {
+  name: "mark-operation",
+  data() {
+    return {};
+  },
+  methods: {}
+};
+</script>

+ 3 - 3
src/modules/mark/Mark.vue → src/modules/quality/Quality.vue

@@ -1,12 +1,12 @@
 <template>
-  <div class="mark">
-    mark
+  <div class="quality">
+    quality
   </div>
 </template>
 
 <script>
 export default {
-  name: "mark",
+  name: "quality",
   data() {
     return {};
   },

+ 11 - 1
src/plugins/utils.js

@@ -202,6 +202,15 @@ function humpFormat(params) {
     .join("");
 }
 
+function getNavs(routes) {
+  return routes.map(item => {
+    return {
+      name: item.name,
+      title: item.meta.title
+    };
+  });
+}
+
 export {
   objTypeOf,
   deepCopy,
@@ -212,5 +221,6 @@ export {
   qsParams,
   formatDate,
   removeHtmlTag,
-  humpFormat
+  humpFormat,
+  getNavs
 };

+ 16 - 1
src/routers/grading.js

@@ -1,8 +1,13 @@
+import { getNavs } from "@/plugins/utils";
+
+// 管理员(科组长)分档模块
 import Grading from "../modules/grading/Grading";
 import GradingProgress from "../modules/grading/GradingProgress";
 import GradingDetail from "../modules/grading/GradingDetail";
 import GradingUserManage from "../modules/grading/GradingUserManage";
 import GradingGroupManage from "../modules/grading/GradingGroupManage";
+// 阅卷员分档
+import GradingOperation from "../modules/grading/GradingOperation";
 
 const gradingRoutes = [
   {
@@ -39,12 +44,22 @@ const gradingRoutes = [
   }
 ];
 
+export const navs = getNavs(gradingRoutes);
+
 export default [
   {
-    path: "grading",
+    path: "/grading/:workId(\\d+)",
     name: "Grading",
     component: Grading,
     redirect: { name: "GradingProgress" },
     children: gradingRoutes
+  },
+  {
+    path: "/grading-operation/:workId(\\d+)",
+    name: "GradingOperation",
+    component: GradingOperation,
+    meta: {
+      title: "阅卷员分档"
+    }
   }
 ];

+ 6 - 9
src/routers/index.js

@@ -1,14 +1,14 @@
 import Vue from "vue";
 import Router from "vue-router";
 
-import Home from "../views/Home";
 import NotFound from "../views/404";
 import Login from "../modules/login/Login";
-// import account from "./modules/account/router";
 // modules
 import main from "./main";
 import grading from "./grading";
-import com from "./modules/com/router";
+import mark from "./mark";
+import inspection from "./inspection";
+import quality from "./quality";
 
 Vue.use(Router);
 
@@ -24,14 +24,11 @@ export default new Router({
       name: "Login",
       component: Login
     },
-    {
-      path: "/home",
-      name: "Home",
-      component: Home
-    },
     ...main,
     ...grading,
-    ...com,
+    ...mark,
+    ...quality,
+    ...inspection,
     {
       path: "*",
       name: "404",

+ 36 - 0
src/routers/inspection.js

@@ -0,0 +1,36 @@
+import { getNavs } from "@/plugins/utils";
+
+import Inspection from "../modules/inspection/Inspection";
+import InspectionLogs from "../modules/inspection/InspectionLogs";
+import InspectionGrading from "../modules/inspection/InspectionGrading";
+
+const inspectionRoutes = [
+  {
+    path: "inspection-logs",
+    name: "InspectionLogs",
+    component: InspectionLogs,
+    meta: {
+      title: "操作日志"
+    }
+  },
+  {
+    path: "inspection-grading",
+    name: "InspectionGrading",
+    component: InspectionGrading,
+    meta: {
+      title: "改档处理"
+    }
+  }
+];
+
+export const navs = getNavs(inspectionRoutes);
+
+export default [
+  {
+    path: "/inspection",
+    name: "Inspection",
+    component: Inspection,
+    redirect: { name: "InspectionLogs" },
+    children: inspectionRoutes
+  }
+];

+ 8 - 9
src/routers/main.js

@@ -1,4 +1,5 @@
-import Main from "../modules/main";
+import { getNavs } from "@/plugins/utils";
+import Main from "../modules/main/Main.vue";
 import WorkManage from "../modules/main/WorkManage";
 import WorkOverview from "../modules/main/WorkOverview";
 import PaperManage from "../modules/main/PaperManage";
@@ -22,7 +23,7 @@ import MarkRuleSet from "../modules/mark-set/MarkRuleSet";
 import ExportPaper from "../modules/mark-set/ExportPaper";
 
 const workRouter = {
-  path: "/admin/work-manage",
+  path: "/work-manage",
   name: "WorkManage",
   component: WorkManage,
   meta: {
@@ -177,12 +178,10 @@ const mainRoutes = [
   }
 ];
 
-export const navs = mainRoutes.map(item => {
-  return {
-    name: item.name,
-    title: item.meta.title
-  };
-});
+export const navs = getNavs(mainRoutes);
+export const clientSetNavs = getNavs(clientSetRoutes);
+export const gradingSetNavs = getNavs(gradingSetRoutes);
+export const markSetNavs = getNavs(markSetRoutes);
 
 export default [
   { ...workRouter },
@@ -190,7 +189,7 @@ export default [
     path: "/main/:workId(\\d+)",
     name: "Main",
     component: Main,
-    redirect: { name: "Overview" },
+    redirect: { name: "WorkOverview" },
     children: mainRoutes
   }
 ];

+ 65 - 0
src/routers/mark.js

@@ -0,0 +1,65 @@
+import { getNavs } from "@/plugins/utils";
+
+// 管理员(科组长)打分模块
+import MarkHome from "../modules/mark/MarkHome";
+import MarkProgress from "../modules/mark/MarkProgress";
+import MarkDetail from "../modules/mark/MarkDetail";
+import MarkTaskManage from "../modules/mark/MarkTaskManage";
+import MarkGroupManage from "../modules/mark/MarkGroupManage";
+// 阅卷员打分
+import MarkOperation from "../modules/mark/MarkOperation";
+
+const markRoutes = [
+  {
+    path: "mark-progress",
+    name: "MarkProgress",
+    component: MarkProgress,
+    meta: {
+      title: "打分进度"
+    }
+  },
+  {
+    path: "mark-detail",
+    name: "MarkDetail",
+    component: MarkDetail,
+    meta: {
+      title: "打分进度"
+    }
+  },
+  {
+    path: "mark-task-manage",
+    name: "MarkTaskManage",
+    component: MarkTaskManage,
+    meta: {
+      title: "打分进度"
+    }
+  },
+  {
+    path: "mark-group-manage",
+    name: "MarkGroupManage",
+    component: MarkGroupManage,
+    meta: {
+      title: "打分进度"
+    }
+  }
+];
+
+export const navs = getNavs(markRoutes);
+
+export default [
+  {
+    path: "/mark/:workId(\\d+)",
+    name: "Mark",
+    component: MarkHome,
+    redirect: { name: "MarkProgress" },
+    children: markRoutes
+  },
+  {
+    path: "/mark-operation/:workId(\\d+)",
+    name: "MarkOperation",
+    component: MarkOperation,
+    meta: {
+      title: "阅卷员打分"
+    }
+  }
+];

+ 12 - 0
src/routers/quality.js

@@ -0,0 +1,12 @@
+import Quality from "../modules/quality/Quality";
+
+export default [
+  {
+    path: "/quality",
+    name: "Quality",
+    component: Quality,
+    meta: {
+      title: "质量检测"
+    }
+  }
+];

+ 0 - 0
src/routers/subject.js