tanyanfei 1 rok pred
rodič
commit
acfbea2b9d

+ 4 - 1
src/App.vue

@@ -8,7 +8,10 @@
 </template>
 
 <style lang='scss'>
-
+	input:-webkit-autofill {
+		-webkit-box-shadow: 0 0 0px 1000px white inset;
+		/* border: 1px solid #CCC!important; */
+	}
 </style>
 
 <script>

BIN
src/assets/bg.png


BIN
src/assets/logo.png


+ 14 - 7
src/router.js

@@ -17,31 +17,38 @@ export default new Router({
                 import ('./views/WorldMap.vue'),
             show: 0,
         },
+		
         {
             path: '/school',
-            name: '师生管理',
+            name: '学校管理',
             icon: 'el-icon-user-solid',
             component: () =>
                 import ('./views/Home.vue'),
             show: 1,
             isLeaf: 0,
             children: [
+				{
+				    path: '/school/list',
+				    component: () =>
+				        import ('./views/school/SchoolList.vue'),
+				    name: '学校管理'
+				},
                 {
-                    path: 'class/list',
+                    path: '/school/class',
                     component: () =>
-                        import ('./views/grade/Index.vue'),
+                        import ('./views/school/ClassList.vue'),
                     name: '班级管理'
                 },
                 {
-                    path: 'teacher/list',
+                    path: '/school/teacher',
                     component: () =>
-                        import ('./views/teacher/Index.vue'),
+                        import ('./views/school/TeacherList.vue'),
                     name: '教师管理'
                 },
                 {
-                    path: 'student/list',
+                    path: '/school/student',
                     component: () =>
-                        import ('./views/student/Index.vue'),
+                        import ('./views/school/StudentList.vue'),
                     name: '学生管理'
                 },
             ]

+ 55 - 19
src/style/home.scss

@@ -1,64 +1,80 @@
 @import 'style';
 @import 'base';
-$height: 50px;
+$height: 64px;
 .el-header {
     padding: 0;
+	height: $height !important;
 }
 
 .header {
-    background: #151932;
-    color: #fff;
-    height: 60px !important;
+    background: #fff;
+    color: #333;
+    height: 64px !important;
     font-size-adjust: 20px;
-    line-height: 60px;
+    line-height: 64px;
     font-weight: bolder;
     padding: 0 24px;
     border-bottom:1px solid #fff;
+	font-size: 20px;
+	padding-left: 180px;
+	img{
+		position: absolute;
+		left: 10px;
+		top: 12px;
+	}
     .logout {
+		color: #FA0A2F;
+		font-size: 14px;
         float: right;
+		font-weight: normal;
     }
 }
 
 .main {
     position: relative;
-    height: calc(100vh - 60px);
+    height: calc(100vh - 65px);
     background: #F4F4F4;
-    // padding-top: 10px;
+
+    padding-top: 1px;
 }
 
 .left-aside {
     height: 100%;
     overflow-y: auto;
     overflow-x: hidden;
-    background: #151932;
+    background: #fff;
     .left-menue {
         border: none;
         &>.is-active {
-            background-color: rgba(255, 81, 81, .2) !important;
+            // background-color: rgba(255, 81, 81, .2) !important;
             position: relative;
             border-left: 8px solid #FF5151;
             transition: all .3s linear;
             .iconfont {
-                color: #ffffff;
+                // color: #ffffff;
             }
             &>.el-submenu__title {
-                color: #ffffff !important;
+                // color: #ffffff !important;
             }
             .is-active {
-                background-color: rgba(255, 81, 81, .2) !important;
-                border-left: 8px solid #FF5151;
+                // background-color: rgba(255, 81, 81, .2) !important;
+                // border-left: 8px solid #FF5151;
                 transition: all .3s linear;
                 position: relative;
+				font-weight: bold;
                 .iconfont {
-                    color: #ffffff;
+                    // color: #ffffff;
                 }
             }
         }
         .is-opened {
-            background-color: #fff !important;
-            border-left: none !important;
+            background-color: #FFE6E6 !important;
+            border: none !important;
+			ul{
+				background-color: #FFE6E6 !important;
+			}
             &>.el-submenu__title {
-                color: #fff !important;
+                border-left: 2px solid #FF5151
             }
         }
         .el-menu-item-group__title {
@@ -71,7 +87,7 @@ $height: 50px;
         .el-submenu__title {
             height: 48px;
             line-height: 48px;
-            font-size: 15px;
+            font-size: 13px;
         }
         // .el-menu-item{
         // 	height: 44px;
@@ -97,7 +113,7 @@ $height: 50px;
         }
     }
     .content {
-        // background: #ccc;
+        background: #fff;
         // padding: 20px !important;
         height: 100vh;
         margin: 0 !important;
@@ -266,4 +282,24 @@ tbody {
 .clear{
     clear: both;
     height: 0px;
+}
+
+
+.el-button--primary{
+	background-color: #FA0A2F !important;
+	border-color: #FA0A2F !important;
+	&:hover{
+		background-color: #FA0A2F;
+		border-color: #FA0A2F;
+	}
+}
+.el-button--primary.is-plain {
+    color: #FA0A2F !important;
+    background: #fff !important;
+    border-color: #FA0A2F !important;
+	&:hover{
+		color: #FA0A2F;
+		background-color: #fff;
+		border-color: #FA0A2F;
+	}
 }

+ 12 - 3
src/views/Home.vue

@@ -4,6 +4,14 @@
 	.siteTitle {
 		font-size: 20px;
 		font-weight: 400;
+		position: relative;
+		&::before{
+			content: '|';
+			position: absolute;
+			left:-20px;
+			font-size: 14px;
+			color: #D2D2D2;
+		}
 	}
 </style>
 
@@ -20,15 +28,16 @@
 						<el-dropdown-item @click.native="changePsw">修改密码</el-dropdown-item>
 					</el-dropdown-menu>
 				</el-dropdown>
-				<div class="siteTitle">阅卷系统管理后台</div>
+				<img width="128" src="../assets/logo.png" alt="">
+				<div class="siteTitle">云阅评管理系统</div>
 			</div>
 		</el-header>
 		<el-container class="main">
 			<!-- 左侧菜单 -->
 			<el-aside class="left-aside" width="210px">
-				<el-menu background-color='#151932' text-color='#ffffff' :unique-opened='false'
+				<el-menu  :unique-opened='false'
 					:default-active="0" router class="left-menue"
-					active-text-color="#ffffff">
+					active-text-color="#FA0A2F">
 					<template v-for="(item, index) in $router.options.routes">
 						<el-menu-item v-if='item.show&&item.isLeaf' :index="item.path" :key='index'>
 							<i :class="item.icon"></i>

+ 56 - 35
src/views/Login.vue

@@ -2,50 +2,66 @@
   @import '../style/_base.scss';
   .login{
     height: 100vh;
+	min-width: 780px;
     min-height: 450px;
     background: url(../assets/bg.png) no-repeat;
-    background-size: 100%;
+    background-size: 100% 50%;
+	background-position: center 176px;
     position: relative;
+	&>h1{
+		position: absolute;
+		width: 100%;
+		top: 130px;
+		font-size: 32px;
+		color: #333;
+		text-align: center;
+	}
     .login-div{
-      width:520px;
+      width:400px;
       height:448px;
       background:#FFFFFF;
       box-shadow:0px 12px 24px 0px rgba(0,0,0,0.24);
       border-radius:8px;
       position: absolute;
-      top: 0;
-      bottom: 0;
+      top: 280px;
+      // bottom: 0;
       left: 0;
       right: 0;
       margin: auto;
-      padding:48px  75px;
+      padding:25px  35px;
       h1{
         text-align: center;
         margin-bottom: 40px;
-        font-size: 28px;
+        font-size: 24px;
+		font-weight: 400;
       }
       .input_div{
         position: relative;
         margin-bottom: 12px;
         input{
-          padding-left: 80px;
           outline: none;
-          background:#F2F5F7;
-          border-radius:8px;
-          border:1px solid #EEEEEE;
+		  border: none;
+          border-bottom:1px solid #DFDFDF;
           display: block;
-          height: 54px;
+          padding: 15px 0;
           width: 100%;
-          font-size: 16px;
+          font-size: 15px;
+		  &::placeholder{
+			color: #ccc;
+		  }
         }
         label{
           color: #222;
-          font-size: 16px;
-          position: absolute;
-          left: 16px;
-          top:16px;
-          z-index: 99;
+          font-size: 15px;
+          display: block;
         }
+		.err{
+			color: #F64646;
+			font-size: 14px;
+			position: absolute;
+			right: 0;
+			bottom: -25px;
+		}
       }
       .code{
         input{
@@ -61,15 +77,15 @@
       }
       
       .login-btn{
-        background: #FF5151;
+        background: linear-gradient(270deg, #FF3F2E 0%, #FF7F29 99%);
         width: 100%;
         height: 54px;
         margin-top: 36px;
-        font-size: 18px;
+        font-size: 19px;
         color: #FFF;
-        font-weight: 600;
+        // font-weight: 600;
         border:none;
-        border-radius: 8px;
+        border-radius: 4px;
       }
     }
     .footer{
@@ -79,36 +95,40 @@
       left:0;
       z-index: 9;
       text-align: center;
-      color:#000;
+      color:#999999;
       font-size: 14px;
-      font-weight: bold;
     }
   }
 </style>
 
 <template>
   <div class="login">
+	  <h1>云阅评后台管理系统</h1>
       <div class="login-div">
-        <!-- <h1><img width="345" src="../assets/title.png" alt=""></h1>  -->
-        <h1>阅卷系统</h1>
+        <!-- <h1><img width="345" src="../assets/title.png" alt=""></h1> -->
+        <h1>用户登录</h1>
         <form>
             <div class="input_div">
-              <label>用户名</label>
-              <input type="text" v-model="logindata.username" placeholder="请输入用户名" @keyup.enter="login">
-            </div>
+              <label>账号</label>
+              <input placeholder="" type="text" v-model="logindata.username" placeholder="请输入您的账号" @keyup.enter="login">
+			  <span class="err">{{tp}}</span>
+			</div>
             <div class="input_div">
-              <label>密&nbsp;&nbsp;码</label>
+              <label>密码</label>
               <input type="password" v-model="logindata.password" placeholder="请输入密码" @keyup.enter="login">
-            </div>
-            <div class="input_div code">
+			  <!-- <span class="err">错误提示</span> -->
+			</div>
+        <!--    <div class="input_div code">
               <img @click="getCode" :src="code" alt="">
               <label>图形码</label>
               <input type="text" v-model="logindata.imgcode" placeholder="请输入验证码">  
-            </div>
+            </div> -->
             <el-button @click="login" @click.native.prevent="login" @keyup.native.enter="login" class="login-btn" type="primary">登  录</el-button>
         </form>
       </div>
-      <p class="footer">Copyright © {{copyrightdate}} supermarkpp版权所有</p>
+		<p class="footer">
+		  Copyright 2016 www.say365.cn,lnc.All rights reserverd <br> 鲁ICP备14000919号-1
+		</p>
   </div>
 </template>
 
@@ -117,7 +137,7 @@ export default {
   name: 'login',
   data(){
     return{
-      tp:'xt',
+      tp:'',
       code:'',
       logindata:{
         username:'',
@@ -146,7 +166,8 @@ export default {
                   if(res.data.code == 0){
                       window.location.hash='/school/class/list';
                   }else{
-                      this.$message.error(res.data.message);
+                      // this.$message.error(res.data.message);
+					  this.tp=res.data.message
                   } 
             })
       },

+ 285 - 0
src/views/school/ClassList.vue

@@ -0,0 +1,285 @@
+<style lang="scss">
+	.area{
+		.el-select{
+			width: 120px;
+			display: inline-block;
+			margin-right: 6px;
+		}
+	}
+</style>
+<template>
+  <section class="content">
+    <div class="breadcrumb">
+        <el-breadcrumb separator="/">
+            <el-breadcrumb-item><a href="/">学校管理</a></el-breadcrumb-item>
+            <el-breadcrumb-item>班级管理</el-breadcrumb-item>
+        </el-breadcrumb>
+    </div>
+    <el-form :model="queryParams" size="mini" label-width="80px" class="filter-form" :inine="true">
+      <el-row>
+        <el-col :span="4">
+          <el-form-item label="学校">
+			  <el-select placeholder="请选择学校">
+			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+			  </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="年级" v-model="queryParams.grade_id">
+            <el-select placeholder="请选择年级">
+              <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+            </el-select>
+          </el-form-item>
+        </el-col>
+		<el-col :span="4">
+		  <el-form-item label="创建时间" v-model="queryParams.grade_id">
+		    <el-date-picker
+		          v-model="queryParams.ctime"
+		          type="datetime"
+		          placeholder="选择日期时间">
+		    </el-date-picker>
+		  </el-form-item>
+		</el-col>
+        <el-col :span="11">
+          <el-form-item label-width="10" style="margin-left: 10px">
+            <el-button type="primary" @click="getData" size="mini"
+              >搜索</el-button
+            >
+            <el-button
+              type="info"
+              size="mini"
+              @click="handleAdd"
+              >重置</el-button
+            >
+			<el-button style="float: right;"
+			  type="primary"
+			  plain 
+			  icon="el-icon-plus"
+			  size="mini"
+			  @click="handleAdd"
+			  >添加班级</el-button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
+      v-loading="loading"
+      :data="list"
+      style="width: 100%; margin-top: 10px"
+      height="50vh"
+    >
+      <el-table-column align="center" prop="name" label="班级名称" />
+      <el-table-column align="center" prop="phone" label="年级" />
+      <el-table-column label="所属学校">
+      </el-table-column>
+      <el-table-column label="教师人数"></el-table-column>
+	  <el-table-column label="学生人数"></el-table-column>
+      <el-table-column align="center" prop="ctime" label="创建时间" />
+      <el-table-column align="center" prop="date" label="操作" width="320">
+        <template slot-scope="scope">
+          <el-button @click="edit(scope.row.id)" size="mini" type="info" plain
+            >编辑</el-button
+          >
+          <el-button @click="del(scope.row.id)" size="mini" type="info" plain
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <Page
+      ref="pageButton"
+      :current="form.page"
+      :page_size="form.page_size"
+      :total="total"
+      @pageChange="gopage"
+    />
+    <!-- 新增班级-->
+	<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+	  <el-form   ref="form" :model="form" :rules="rules" label-width="80px">
+		<el-form-item label="所属学校" prop="name">
+		  <el-select
+		    v-model="form.parent_id"
+		    placeholder="请选择学校"
+		    clearable
+		    filterable  
+		  >
+		    <el-option
+		      v-for="item in doctorList"
+		      :key="item.value"
+		      :label="item.name"
+		      :value="item.id"
+		    >
+		    </el-option>
+		  </el-select>
+		</el-form-item>
+	    <el-form-item label="所属年级">
+	      <el-select 
+	        v-model="form.parent_id"
+	        placeholder="请选择"
+	        clearable
+	        filterable  
+	      >
+	        <el-option
+	          v-for="item in doctorList"
+	          :key="item.value"
+	          :label="item.name"
+	          :value="item.id"
+	        >
+	        </el-option>
+	      </el-select>
+	    </el-form-item>
+	    
+	    <el-form-item label="班级数量" prop="">
+			<el-input-number v-model="form.number" controls-position="right"  :min="1" >			
+			</el-input-number>
+	    </el-form-item>
+	
+	    <el-form-item label="班级名称" prop="hospital_name">
+	      <el-input
+	        clearable
+	        v-model="form.hospital_name"
+	        placeholder="请输入班级名称"
+	      ></el-input>
+	    </el-form-item>
+	  </el-form>
+	  <div slot="footer" class="dialog-footer">
+	    <el-button type="primary" @click="submitForm">保存</el-button>
+	    <el-button @click="open = false">取 消</el-button>
+	  </div>
+	</el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      loading: false,
+      queryParams: {
+        page: 1,
+      },
+      form: {},
+      form1: {},
+      form2: {},
+      list: [{}, {}],
+      total: 0,
+      title: "新增学校",
+      open: false,
+	  open2: false,
+      doctorList: [],
+      rules: {},
+    };
+  },
+  methods: {
+    del(id) {
+      this.$confirm("确认删除?", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api
+          .delDoctorInfo({
+            id: id,
+          })
+          .then((res) => {
+            if (!res.data.code) {
+              this.$msgSuccess("删除成功");
+              this.getData();
+            } else {
+              this.$msgError(res.data.message);
+            }
+          });
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.queryParams.page_size = size;
+      }
+      this.queryParams.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    getData() {
+      this.loading = true;
+      this.$api.getDoctorsList(this.queryParams).then((res) => {
+        this.list = res.data.data.list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+
+      this.$api
+          .getDoctorsSearchList({
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+    },
+    handleAdd() {
+      this.open = true;
+      this.title = "新增班级";
+      this.form = {};
+    },
+    edit(id) {
+      this.title = "编辑";
+      this.$api
+        .getDoctorInfo({
+          id: id,
+        })
+        .then((res) => {
+          this.form = res.data.data;
+          this.open = true;
+        });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.id != null) {
+            this.$api.editDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          } else {
+            this.$api.addDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          }
+        }
+      });
+    },
+    remoteMethod(query) {
+      if (query !== "") {
+        // this.loading = true;
+        this.$api
+          .getDoctorsSearchList({
+            name: query,
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+      } else {
+        this.doctorList = [];
+      }
+    },
+  },
+  created() {
+    this.getData();
+    
+  },
+};
+</script>

+ 366 - 0
src/views/school/SchoolList.vue

@@ -0,0 +1,366 @@
+<style lang="scss">
+	.area{
+		.el-select{
+			width: 120px;
+			display: inline-block;
+			margin-right: 6px;
+		}
+	}
+</style>
+<template>
+  <section class="content">
+    <div class="breadcrumb">
+        <el-breadcrumb separator="/">
+            <el-breadcrumb-item><a href="/">学校管理</a></el-breadcrumb-item>
+            <el-breadcrumb-item>学校管理</el-breadcrumb-item>
+        </el-breadcrumb>
+    </div>
+    <el-form :model="queryParams" size="mini" label-width="80px" class="filter-form" :inine="true">
+      <el-row>
+        <el-col :span="4">
+          <el-form-item label="学校">
+			  <el-input placeholder="请输入名称" v-model="queryParams.school_name"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="4">
+          <el-form-item label="地区" v-model="queryParams.grade_id">
+            <el-select >
+              <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+            </el-select>
+          </el-form-item>
+        </el-col>
+		<el-col :span="4">
+		  <el-form-item label="创建时间" v-model="queryParams.grade_id">
+		    <el-date-picker
+		          v-model="queryParams.ctime"
+		          type="datetime"
+		          placeholder="选择日期时间">
+		    </el-date-picker>
+		  </el-form-item>
+		</el-col>
+        <el-col :span="11">
+          <el-form-item label-width="10" style="margin-left: 10px">
+            <el-button type="primary" @click="getData" size="mini"
+              >搜索</el-button
+            >
+            <el-button
+              type="info"
+              size="mini"
+              @click="handleAdd"
+              >重置</el-button
+            >
+			<el-button style="float: right;"
+			  type="primary"
+			  plain 
+			  icon="el-icon-plus"
+			  size="mini"
+			  @click="handleAdd"
+			  >添加学校</el-button>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <el-table
+      v-loading="loading"
+      :data="list"
+      style="width: 100%; margin-top: 10px"
+      height="50vh"
+    >
+      <el-table-column align="center" prop="name" label="学校名称" />
+      <el-table-column align="center" prop="phone" label="地区" />
+      <el-table-column label="联系人">
+      </el-table-column>
+      <el-table-column label="联系人电话"></el-table-column>
+      <el-table-column align="center" prop="ctime" label="创建时间" />
+      <el-table-column align="center" prop="date" label="操作" width="320">
+        <template slot-scope="scope">
+			<el-button @click="addClass" size="mini" type="primary" plain
+			  >添加班级</el-button
+			>
+          <el-button @click="edit(scope.row.id)" size="mini" type="info" plain
+            >编辑</el-button
+          >
+          <el-button @click="del(scope.row.id)" size="mini" type="info" plain
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <Page
+      ref="pageButton"
+      :current="form.page"
+      :page_size="form.page_size"
+      :total="total"
+      @pageChange="gopage"
+    />
+    <!-- 新增学校 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form   ref="form" :model="form" :rules="rules" label-width="80px">
+		<el-form-item label="学校名称" prop="name">
+		  <el-input
+		    clearable
+		    v-model="form.name"
+		    placeholder="请输入名称"
+		  ></el-input>
+		</el-form-item>
+        <el-form-item label="学校地区" prop="parent_id" class="area">
+          <el-select 
+            v-model="form.parent_id"
+            placeholder="请选择"
+            clearable
+            filterable  
+          >
+            <el-option
+              v-for="item in doctorList"
+              :key="item.value"
+              :label="item.name"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+		  <el-select
+		    v-model="form.parent_id"
+		    placeholder="请选择"
+		    clearable
+		    filterable  
+		  >
+		    <el-option
+		      v-for="item in doctorList"
+		      :key="item.value"
+		      :label="item.name"
+		      :value="item.id"
+		    >
+		    </el-option>
+		  </el-select>
+		  <el-select
+		    v-model="form.parent_id"
+		    placeholder="请选择"
+		    clearable
+		    filterable  
+		  >
+		    <el-option
+		      v-for="item in doctorList"
+		      :key="item.value"
+		      :label="item.name"
+		      :value="item.id"
+		    >
+		    </el-option>
+		  </el-select>
+        </el-form-item>
+        
+        <el-form-item label="联系人" prop="phone">
+          <el-input
+            clearable
+            v-model="form.phone"
+            placeholder="请输入学校联系人"
+          ></el-input>
+        </el-form-item>
+
+        <el-form-item label="联系电话" prop="hospital_name">
+          <el-input
+            clearable
+            v-model="form.hospital_name"
+            placeholder="请输入联系电话"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">保存</el-button>
+        <el-button @click="open = false">取 消</el-button>
+      </div>
+    </el-dialog>
+	<!-- 新增班级 -->
+	<el-dialog :title="title" :visible.sync="open2" width="500px" append-to-body>
+	  <el-form   ref="form" :model="form" :rules="rules" label-width="80px">
+		<el-form-item label="所属学校" prop="name">
+		  <el-select
+		    v-model="form.parent_id"
+		    placeholder="请选择学校"
+		    clearable
+		    filterable  
+		  >
+		    <el-option
+		      v-for="item in doctorList"
+		      :key="item.value"
+		      :label="item.name"
+		      :value="item.id"
+		    >
+		    </el-option>
+		  </el-select>
+		</el-form-item>
+	    <el-form-item label="所属年级">
+	      <el-select 
+	        v-model="form.parent_id"
+	        placeholder="请选择"
+	        clearable
+	        filterable  
+	      >
+	        <el-option
+	          v-for="item in doctorList"
+	          :key="item.value"
+	          :label="item.name"
+	          :value="item.id"
+	        >
+	        </el-option>
+	      </el-select>
+	    </el-form-item>
+	    
+	    <el-form-item label="班级数量" prop="">
+			<el-input-number v-model="form.number" controls-position="right"  :min="1" >			
+			</el-input-number>
+	    </el-form-item>
+	
+	    <el-form-item label="班级名称" prop="hospital_name">
+	      <el-input
+	        clearable
+	        v-model="form.hospital_name"
+	        placeholder="请输入班级名称"
+	      ></el-input>
+	    </el-form-item>
+	  </el-form>
+	  <div slot="footer" class="dialog-footer">
+	    <el-button type="primary" @click="submitForm">保存</el-button>
+	    <el-button @click="open = false">取 消</el-button>
+	  </div>
+	</el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      loading: false,
+      queryParams: {
+        page: 1,
+      },
+      form: {},
+      form1: {},
+      form2: {},
+      list: [{}, {}],
+      total: 0,
+      title: "新增学校",
+      open: false,
+	  open2: false,
+      doctorList: [],
+      rules: {},
+    };
+  },
+  methods: {
+    del(id) {
+      this.$confirm("确认删除?", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api
+          .delDoctorInfo({
+            id: id,
+          })
+          .then((res) => {
+            if (!res.data.code) {
+              this.$msgSuccess("删除成功");
+              this.getData();
+            } else {
+              this.$msgError(res.data.message);
+            }
+          });
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.queryParams.page_size = size;
+      }
+      this.queryParams.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    getData() {
+      this.loading = true;
+      this.$api.getDoctorsList(this.queryParams).then((res) => {
+        this.list = res.data.data.list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+
+      this.$api
+          .getDoctorsSearchList({
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+    },
+    handleAdd() {
+      this.open = true;
+      this.title = "新增学校";
+      this.form = {};
+    },
+	addClass(){
+		this.open2 = true;
+		this.title = "新增班级";
+		// this.form = {};
+	},
+    edit(id) {
+      this.title = "编辑";
+      this.$api
+        .getDoctorInfo({
+          id: id,
+        })
+        .then((res) => {
+          this.form = res.data.data;
+          this.open = true;
+        });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.id != null) {
+            this.$api.editDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          } else {
+            this.$api.addDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          }
+        }
+      });
+    },
+    remoteMethod(query) {
+      if (query !== "") {
+        // this.loading = true;
+        this.$api
+          .getDoctorsSearchList({
+            name: query,
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+      } else {
+        this.doctorList = [];
+      }
+    },
+  },
+  created() {
+    this.getData();
+    
+  },
+};
+</script>

+ 306 - 0
src/views/school/StudentList.vue

@@ -0,0 +1,306 @@
+<style lang="scss">
+	.area{
+		.el-select{
+			width: 120px;
+			display: inline-block;
+			margin-right: 6px;
+		}
+	}
+</style>
+<template>
+  <section class="content">
+    <div class="breadcrumb">
+        <el-breadcrumb separator="/">
+            <el-breadcrumb-item><a href="/">学校管理</a></el-breadcrumb-item>
+            <el-breadcrumb-item>学生管理</el-breadcrumb-item>
+        </el-breadcrumb>
+    </div>
+    <el-form :model="queryParams" size="mini"  :inline="true" style="padding-left: 20px;">
+     <el-form-item label="名称">
+     	<el-input placeholder="请输入名称" v-model="queryParams.school_name"></el-input>
+     </el-form-item>
+	 <el-form-item label="学校">
+	 	<el-select placeholder="请选择学校">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label="年级">
+	 	<el-select placeholder="请选择">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label="班级">
+	 	<el-select placeholder="请选择">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label-width="10" style="float: right;">
+	   <el-button type="primary" @click="getData" size="mini"
+	     >搜索</el-button
+	   >
+	   <el-button
+	     type="info"
+	     size="mini"
+	     @click="handleAdd"
+	     >重置</el-button
+	   >
+	   <el-button
+	     type="info"
+	     size="mini"
+	     @click="handleAdd"
+	     >批量导入</el-button
+	   >
+	   <el-button  
+	 			  type="primary"
+	 			  plain 
+	 			  icon="el-icon-plus"
+	 			  size="mini"
+	 			  @click="handleAdd"
+	 			  >添加学生</el-button>
+	 </el-form-item>
+
+    </el-form>
+    <el-table
+      v-loading="loading"
+      :data="list"
+      style="width: 100%; margin-top: 10px"
+      height="50vh"
+    >
+      <el-table-column align="center" prop="name" label="学生姓名" />
+      <el-table-column align="center" prop="phone" label="学号" />
+	  <el-table-column label="性别"></el-table-column>
+      <el-table-column label="年龄"></el-table-column>
+      <el-table-column label="手机号"></el-table-column>
+	  <el-table-column label="所属班级"></el-table-column>
+	  <el-table-column label="所属学校"></el-table-column>
+	  
+      <el-table-column align="center" prop="ctime" label="创建时间" />
+      <el-table-column align="center" prop="date" label="操作" width="320">
+        <template slot-scope="scope">
+          <el-button @click="edit(scope.row.id)" size="mini" type="info" plain
+            >编辑</el-button
+          >
+          <el-button @click="del(scope.row.id)" size="mini" type="info" plain
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <Page
+      ref="pageButton"
+      :current="form.page"
+      :page_size="form.page_size"
+      :total="total"
+      @pageChange="gopage"
+    />
+    <!-- 新增学生-->
+	<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+	  <el-form   ref="form" :model="form" :rules="rules" label-width="80px">
+		  <el-form-item label="学生姓名" prop="hospital_name">
+		    <el-input
+		      clearable
+		      v-model="form.hospital_name"
+		      placeholder="请输入名称"
+		    ></el-input>
+		  </el-form-item>
+		  <el-form-item label="性别" prop="name">
+		    <el-select
+		      v-model="form.parent_id"
+		      placeholder="请选择"
+		      clearable
+		      filterable  
+		    >
+		      </el-option>
+		    </el-select>
+		  </el-form-item>
+		  <el-form-item label="年龄" prop="hospital_name">
+		    <el-input
+		      clearable
+		      v-model="form.hospital_name"
+		      placeholder="请输入年龄"
+		    ></el-input>
+		  </el-form-item>
+		<el-form-item label="学校" prop="name">
+		  <el-select
+		    v-model="form.parent_id"
+		    placeholder="请选择学校"
+		    clearable
+		    filterable  
+		  >
+		    </el-option>
+		  </el-select>
+		</el-form-item>
+	    <el-form-item label="年级">
+	      <el-select 
+	        v-model="form.parent_id"
+	        placeholder="请选择"
+	        clearable
+	        filterable  
+	      >
+	        <el-option
+	          v-for="item in doctorList"
+	          :key="item.value"
+	          :label="item.name"
+	          :value="item.id"
+	        >
+	        </el-option>
+	      </el-select>
+	    </el-form-item>
+	    <el-form-item label="班级">
+	      <el-select 
+	        v-model="form.parent_id"
+	        placeholder="请选择"
+	        clearable
+	        filterable  
+	      >
+	        <el-option
+	          v-for="item in doctorList"
+	          :key="item.value"
+	          :label="item.name"
+	          :value="item.id"
+	        >
+	        </el-option>
+	      </el-select>
+	    </el-form-item>
+	  </el-form>
+	  <div slot="footer" class="dialog-footer">
+	    <el-button type="primary" @click="submitForm">保存</el-button>
+	    <el-button @click="open = false">取 消</el-button>
+	  </div>
+	</el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      loading: false,
+      queryParams: {
+        page: 1,
+      },
+      form: {},
+      form1: {},
+      form2: {},
+      list: [{}, {}],
+      total: 0,
+      title: "新增学校",
+      open: false,
+	  open2: false,
+      doctorList: [],
+      rules: {},
+    };
+  },
+  methods: {
+    del(id) {
+      this.$confirm("确认删除?", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api
+          .delDoctorInfo({
+            id: id,
+          })
+          .then((res) => {
+            if (!res.data.code) {
+              this.$msgSuccess("删除成功");
+              this.getData();
+            } else {
+              this.$msgError(res.data.message);
+            }
+          });
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.queryParams.page_size = size;
+      }
+      this.queryParams.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    getData() {
+      this.loading = true;
+      this.$api.getDoctorsList(this.queryParams).then((res) => {
+        this.list = res.data.data.list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+
+      this.$api
+          .getDoctorsSearchList({
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+    },
+    handleAdd() {
+      this.open = true;
+      this.title = "新增学生";
+      this.form = {};
+    },
+    edit(id) {
+      this.title = "编辑";
+      this.$api
+        .getDoctorInfo({
+          id: id,
+        })
+        .then((res) => {
+          this.form = res.data.data;
+          this.open = true;
+        });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.id != null) {
+            this.$api.editDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          } else {
+            this.$api.addDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          }
+        }
+      });
+    },
+    remoteMethod(query) {
+      if (query !== "") {
+        // this.loading = true;
+        this.$api
+          .getDoctorsSearchList({
+            name: query,
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+      } else {
+        this.doctorList = [];
+      }
+    },
+  },
+  created() {
+    this.getData();
+    
+  },
+};
+</script>

+ 333 - 0
src/views/school/TeacherList.vue

@@ -0,0 +1,333 @@
+<style lang="scss">
+	.area{
+		.el-select{
+			width: 120px;
+			display: inline-block;
+			margin-right: 6px;
+		}
+	}
+</style>
+<template>
+  <section class="content">
+    <div class="breadcrumb">
+        <el-breadcrumb separator="/">
+            <el-breadcrumb-item><a href="/">学校管理</a></el-breadcrumb-item>
+            <el-breadcrumb-item>教师管理</el-breadcrumb-item>
+        </el-breadcrumb>
+    </div>
+    <el-form :model="queryParams" size="mini"  :inline="true" style="padding-left: 20px;">
+     <el-form-item label="教师名称">
+     	<el-input placeholder="请输入名称" v-model="queryParams.school_name"></el-input>
+     </el-form-item>
+	 <el-form-item label="学校">
+	 	<el-select placeholder="请选择学校">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label="年级">
+	 	<el-select placeholder="请选择">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label="班级">
+	 	<el-select placeholder="请选择">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label="职务">
+	 	<el-select placeholder="请选择">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label="任教科目">
+	 	<el-select placeholder="请选择">
+	 			    <!-- <el-option label="高三一班" value="高三一班">高三一班</el-option> -->
+	 	</el-select>
+	 </el-form-item>
+	 <el-form-item label-width="10" style="margin-left: 10px">
+	   <el-button type="primary" @click="getData" size="mini"
+	     >搜索</el-button
+	   >
+	   <el-button
+	     type="info"
+	     size="mini"
+	     @click="handleAdd"
+	     >重置</el-button
+	   >
+	   <el-button
+	     type="info"
+	     size="mini"
+	     @click="handleAdd"
+	     >批量导入</el-button
+	   >
+	   <el-button  
+	 			  type="primary"
+	 			  plain 
+	 			  icon="el-icon-plus"
+	 			  size="mini"
+	 			  @click="handleAdd"
+	 			  >添加教师</el-button>
+	 </el-form-item>
+
+    </el-form>
+    <el-table
+      v-loading="loading"
+      :data="list"
+      style="width: 100%; margin-top: 10px"
+      height="50vh"
+    >
+      <el-table-column align="center" prop="name" label="教师名称" />
+      <el-table-column align="center" prop="phone" label="性别" />
+      <el-table-column label="年龄">
+      </el-table-column>
+      <el-table-column label="手机号"></el-table-column>
+	  <el-table-column label="所属班级"></el-table-column>
+	  <el-table-column label="所属学校"></el-table-column>
+	  <el-table-column label="职务"></el-table-column>
+	  <el-table-column label="任教科目"></el-table-column>
+	  
+      <el-table-column align="center" prop="ctime" label="创建时间" />
+      <el-table-column align="center" prop="date" label="操作" width="320">
+        <template slot-scope="scope">
+          <el-button @click="edit(scope.row.id)" size="mini" type="info" plain
+            >编辑</el-button
+          >
+          <el-button @click="del(scope.row.id)" size="mini" type="info" plain
+            >删除</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <Page
+      ref="pageButton"
+      :current="form.page"
+      :page_size="form.page_size"
+      :total="total"
+      @pageChange="gopage"
+    />
+    <!-- 新增教师-->
+	<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+	  <el-form   ref="form" :model="form" :rules="rules" label-width="80px">
+		  <el-form-item label="教师名称" prop="hospital_name">
+		    <el-input
+		      clearable
+		      v-model="form.hospital_name"
+		      placeholder="请输入班级名称"
+		    ></el-input>
+		  </el-form-item>
+		  <el-form-item label="性别" prop="name">
+		    <el-select
+		      v-model="form.parent_id"
+		      placeholder="请选择"
+		      clearable
+		      filterable  
+		    >
+		      </el-option>
+		    </el-select>
+		  </el-form-item>
+		  <el-form-item label="年龄" prop="hospital_name">
+		    <el-input
+		      clearable
+		      v-model="form.hospital_name"
+		      placeholder="请输入年龄"
+		    ></el-input>
+		  </el-form-item>
+		<el-form-item label="学校" prop="name">
+		  <el-select
+		    v-model="form.parent_id"
+		    placeholder="请选择学校"
+		    clearable
+		    filterable  
+		  >
+		    </el-option>
+		  </el-select>
+		</el-form-item>
+	    <el-form-item label="年级">
+	      <el-select 
+	        v-model="form.parent_id"
+	        placeholder="请选择"
+	        clearable
+	        filterable  
+	      >
+	        <el-option
+	          v-for="item in doctorList"
+	          :key="item.value"
+	          :label="item.name"
+	          :value="item.id"
+	        >
+	        </el-option>
+	      </el-select>
+	    </el-form-item>
+	    <el-form-item label="班级">
+	      <el-select 
+	        v-model="form.parent_id"
+	        placeholder="请选择"
+	        clearable
+	        filterable  
+	      >
+	        <el-option
+	          v-for="item in doctorList"
+	          :key="item.value"
+	          :label="item.name"
+	          :value="item.id"
+	        >
+	        </el-option>
+	      </el-select>
+	    </el-form-item>
+	    <el-form-item label="职务" prop="hospital_name">
+	      <el-input
+	        clearable
+	        v-model="form.hospital_name"
+	        placeholder="请输入"
+	      ></el-input>
+	    </el-form-item>
+	
+	    <el-form-item label="任教科目" prop="hospital_name">
+	      <el-input
+	        clearable
+	        v-model="form.hospital_name"
+	        placeholder="请输入"
+	      ></el-input>
+	    </el-form-item>
+	  </el-form>
+	  <div slot="footer" class="dialog-footer">
+	    <el-button type="primary" @click="submitForm">保存</el-button>
+	    <el-button @click="open = false">取 消</el-button>
+	  </div>
+	</el-dialog>
+  </section>
+</template>
+<script>
+import Page from "../../components/Page";
+export default {
+  components: {
+    Page,
+  },
+  data() {
+    return {
+      loading: false,
+      queryParams: {
+        page: 1,
+      },
+      form: {},
+      form1: {},
+      form2: {},
+      list: [{}, {}],
+      total: 0,
+      title: "新增学校",
+      open: false,
+	  open2: false,
+      doctorList: [],
+      rules: {},
+    };
+  },
+  methods: {
+    del(id) {
+      this.$confirm("确认删除?", "提示", {
+        type: "warning",
+      }).then(() => {
+        this.$api
+          .delDoctorInfo({
+            id: id,
+          })
+          .then((res) => {
+            if (!res.data.code) {
+              this.$msgSuccess("删除成功");
+              this.getData();
+            } else {
+              this.$msgError(res.data.message);
+            }
+          });
+      });
+    },
+    gopage(size) {
+      if (size) {
+        this.queryParams.page_size = size;
+      }
+      this.queryParams.page = this.$refs.pageButton.page;
+      this.getData();
+    },
+    getData() {
+      this.loading = true;
+      this.$api.getDoctorsList(this.queryParams).then((res) => {
+        this.list = res.data.data.list;
+        this.total = res.data.data.total;
+        this.loading = false;
+      });
+
+      this.$api
+          .getDoctorsSearchList({
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+    },
+    handleAdd() {
+      this.open = true;
+      this.title = "新增教师";
+      this.form = {};
+    },
+    edit(id) {
+      this.title = "编辑";
+      this.$api
+        .getDoctorInfo({
+          id: id,
+        })
+        .then((res) => {
+          this.form = res.data.data;
+          this.open = true;
+        });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          if (this.form.id != null) {
+            this.$api.editDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          } else {
+            this.$api.addDoctorInfo(this.form).then((res) => {
+              if (res.data.code == 0) {
+                this.msgSuccess("成功!");
+                this.open = false;
+                this.getData();
+              } else {
+                this.msgError(res.data.message);
+              }
+            });
+          }
+        }
+      });
+    },
+    remoteMethod(query) {
+      if (query !== "") {
+        // this.loading = true;
+        this.$api
+          .getDoctorsSearchList({
+            name: query,
+          })
+          .then((res) => {
+            this.doctorList = res.data.data;
+            this.$set(this.doctorList, res.data.data);
+            // this.loading = false;
+          });
+      } else {
+        this.doctorList = [];
+      }
+    },
+  },
+  created() {
+    this.getData();
+    
+  },
+};
+</script>