Переглянути джерело

Merge branch 'master' of http://git.dayaedu.com/molingzhide/dy-admin-manager

mo 5 роки тому
батько
коміт
1acbd86ecd

+ 80 - 3
src/api/systemManage.js

@@ -16,15 +16,92 @@ export function cooperationOrganUpdate (data) {
     return request({
       url: '/web-server/cooperationOrgan/update',
       method: 'put',
-      data
+      data: qs.stringify(data)
     })
 }
 
-// 根据机构编号获取合作单位(教学点)列表
+// 分页查询合作单位(教学点)列表
 export function queryPage (data) {
     return request({
       url: '/web-server/cooperationOrgan/queryPage',
       method: 'get',
-      data: qs.stringify(data)
+      params: data
+    })
+}
+
+// 根据机构编号获取合作单位(教学点)列表
+export function queryByOrganId (data) {
+    return request({
+      url: '/web-server/cooperationOrgan/queryByOrganId',
+      method: 'get',
+      params: data
+    })
+}
+
+// 分页查询教学点
+export function schoolQueryPage(data) {
+    return request({
+        url: '/web-server/school/queryPage',
+        method: 'get',
+        params: data
+    })
+}
+// 新增教学点
+export function schoolAdd(data) {
+    return request({
+        url: '/web-server/school/add',
+        method: 'post',
+        data: qs.stringify(data)
+    })
+}
+// 修改教学点
+export function schoolUpdate(data) {
+    return request({
+        url: '/web-server/school/update',
+        method: 'post',
+        data: qs.stringify(data)
+    })
+}
+// 修改教学点
+export function schoolDel(data) {
+    return request({
+        url: `/web-server/school/del/${data.id}`,
+        method: 'post'
+    })
+}
+
+// 根据部门获取下面的员工
+export function queryEmployByOrganId(data) {
+    return request({
+        url: `/web-server/employee/queryEmployByOrganId`,
+        method: 'get',
+        params: data
+    })
+}
+
+// 获取用户角色列表
+export function getUserRole(data) {
+    return request({
+        url: `/api-auth/user/getRole`,
+        method: 'get',
+        params: data
+    })
+}
+
+// 获取用户角色列表
+export function organizationQueryPage(data) {
+    return request({
+        url: `/web-server/organization/queryPage`,
+        method: 'get',
+        params: data
+    })
+}
+
+// 获取用户角色列表
+export function organizationAdd(data) {
+    return request({
+        url: `/web-server/organization/queryPage`,
+        method: 'post',
+        data: qs.stringify(data)
     })
 }

+ 1 - 1
src/main.js

@@ -34,7 +34,7 @@ import '@/permission' // permission control
 import VueAMap from 'vue-amap'
 Vue.use(VueAMap)
 VueAMap.initAMapApiLoader({
-  key: 'c7856e7c812d299cff150e74d60ea608',
+  key: 'b1e6ac2eb28902ce91a490edf194e000',
   plugin: ['AMap.Geolocation', 'AMap.PlaceSearch', 'AMap.Geocoder'],
   v: '1.4.4'
 })

+ 3 - 0
src/utils/request.js

@@ -12,6 +12,9 @@ function endLoading () {    //使用Element loading-close 方法
   loading.close()
 }
 
+// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
+
+
 // create an axios instance
 const service = axios.create({
   baseURL: '', // url = base url + request url

+ 209 - 26
src/views/categroyManager/insideSetting/addressManager.vue

@@ -32,26 +32,52 @@
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'>
-          <el-table-column align='center' width="55"
+          <el-table-column align='center' width="55" prop="id"
                            label="编号">
           </el-table-column>
-          <el-table-column align='center'
-                           label="教学点名称">
+          <el-table-column align='center' prop="name"
+                           label="教学点名称"> 
           </el-table-column>
           <el-table-column align='center'
-                           label="教学点来源">
+                           label="教学点来源"
+                           :formatter="filterOrgan">
+            <!-- <template slot-scope="scope">
+              {{ scope.row.cooperationOrganId ? scope.row.cooperationOrganId : '租赁' }}
+            </template>  -->
           </el-table-column>
           <el-table-column align='center'
                            label="费用">
+            <template slot-scope="scope">
+              {{ scope.row.cooperationOrganId ? '免费' : scope.row.remark }}
+            </template> 
           </el-table-column>
           <el-table-column align='center'
                            label="上课地点详情">
+            <template slot-scope="scope">
+              {{ scope.row.address.split(',').join('') }}
+            </template> 
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="delFlag"
                            label="状态">
+            <template slot-scope="scope">
+              <el-tag effect="dark" type="danger" v-if="scope.row.delFlag == 2" key="delFlag"> 停用</el-tag>
+              <el-tag effect="dark" v-else key="delFlag">启用</el-tag>
+            </template> 
+          </el-table-column>
+          <el-table-column align='center'
+                           label="课酬补贴">
+            <template slot-scope="scope">
+              {{ scope.row.subsidy ? scope.row.subsidy : '无' }}
+            </template>
           </el-table-column>
           <el-table-column align='center'
                            label="操作">
+            <template slot-scope="scope">
+              <el-button @click="openTeaching('update', scope.row)" type="text">修改</el-button>
+              <el-button v-if="scope.row.delFlag == 0" @click="onUpdateSubmit(scope.row, 2)" type="text">停用</el-button>
+              <el-button v-if="scope.row.delFlag == 2" @click="onUpdateSubmit(scope.row, 0)" type="text">启用</el-button>
+              <el-button @click="onUpdateSubmit(scope.row, 1)" type="text">删除</el-button>
+            </template>
           </el-table-column>
         </el-table>
         <pagination :total="pageInfo.total"
@@ -62,7 +88,7 @@
       </div>
     </div>
 
-    <el-dialog title="添加教学点" :visible.sync="teachingStatus" width="500px">
+    <el-dialog :title="formTitle[formActionTitle]" :visible.sync="teachingStatus" @close="onFormClose('ruleForm')" width="500px">
       <el-form :model="form" :rules="rules" ref="ruleForm">
         <el-form-item label="教学点名称" prop="name" :label-width="formLabelWidth">
           <el-input v-model="form.name" autocomplete="off"></el-input>
@@ -73,20 +99,23 @@
             <el-option label="租赁" value="2"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item v-if="form.source == 1" prop="company" label="合作单位" :label-width="formLabelWidth">
-          <el-select v-model="form.company">
-            <el-option label="合作单位" value="1"></el-option>
-            <el-option label="租赁" value="2"></el-option>
+        <el-form-item v-if="form.source == 1" prop="cooperationOrganId" label="合作单位" :label-width="formLabelWidth">
+          <el-select v-model="form.cooperationOrganId">
+            <el-option v-for="item in breachList" :key="item.value"
+              :label="item.label" :value="item.value"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item v-if="form.source == 2" prop="fee" label="费用" :label-width="formLabelWidth">
-          <el-input v-model="form.fee" autocomplete="off"></el-input>
+        <el-form-item v-if="form.source == 2" prop="remark" label="费用" :label-width="formLabelWidth">
+          <el-input v-model="form.remark" autocomplete="off"></el-input>
         </el-form-item>
-        <el-form-item v-if="form.source == 2" prop="address" :show-message="addressMessage" label="上课地点" :label-width="formLabelWidth">
+        <el-form-item prop="address" :show-message="addressMessage" label="上课地点" :label-width="formLabelWidth">
           <el-input class="text-address" v-model="form.address" :disabled="true">
             <el-button slot="append" @click="addMap" type="primary" icon="el-icon-plus">选择</el-button>
           </el-input>
         </el-form-item>
+        <el-form-item label="课酬补贴" prop="subsidy" :label-width="formLabelWidth">
+          <el-input v-model.number="form.subsidy" type="number" autocomplete="off"></el-input>
+        </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="onTeachingCancel('ruleForm')">取 消</el-button>
@@ -124,6 +153,8 @@ EventTarget.prototype.addEventListener = function (type, fn, capture) {
   this.func(type, fn, capture);
 };
 }());
+import { schoolQueryPage, schoolAdd, schoolUpdate, queryByOrganId, schoolDel } from '@/api/systemManage'
+import store from '@/store'
 export default {
   components: { pagination },
   name: 'adminManager',
@@ -142,22 +173,30 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
+      formActionTitle: 'create',
+      formTitle: {
+        create: '添加教学点',
+        update: '修改教学点'
+      },
       teachingStatus: false, // 添加教学点 
       formLabelWidth: '100px',
       addressDetail: {},
       form: {
         name: null, // 教学点名称
         source: null, // 来源
-        fee: null,  // 费用
+        cooperationOrganId: null, // 合作单位
+        remark: null,  // 费用
         address: null, // 上课地点
-        company: null, // 合作单位
+        subsidy: null, // 课酬补贴
+        organId: store.getters.organ
       },
       rules: {
         name: [{ required: true, message: '请输入教学点名称', trigger: 'blur' }],
         source: [{required: true, message: '请选择教学点来源', trigger: 'change'}],
-        fee: [{ required: true, message: '请输入教学点名称', trigger: 'blur'}],
+        remark: [{ required: true, message: '请输入教学点名称', trigger: 'blur'}],
         address: [{required: true, message: '请选择上课地点', trigger: 'blur'}],
-        company: [{required: true, message: '请选择合作单位', trigger: 'change'}]
+        cooperationOrganId: [{required: true, message: '请选择合作单位', trigger: 'change'}],
+        subsidy: [{ type: 'number', message: '课酬补贴只能为数字', trigger: 'blur'}]
       },
       addressMessage: true,
       mapStatus: false,
@@ -172,15 +211,47 @@ export default {
           pageIndex: 1, // 页码
           autoFitView: true // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
       },
+      breachList: [], // 分部列表
     }
   },
+  mounted() {
+    this.getList()
+    this.getBreachList()
+  },
   methods: {
     onTeachingSubmit(formName) { // 添加数据
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          alert('submit!');
+          this.form.address = this.addressDetail.address
+          this.form.longitudeLatitude = this.addressDetail.poi
+          if(this.formActionTitle == 'create') {  
+            schoolAdd(this.form).then(res => {
+              if(res.code == 200) {
+                this.$message({
+                  message: '添加成功',
+                  type: 'success'
+                })
+                this.teachingStatus = false
+                this.getList()
+              } else {
+                this.$message.error(res.msg)
+              }
+            })
+          } else if(this.formActionTitle == 'update') {
+            schoolUpdate(this.form).then(res => {
+              if(res.code == 200) {
+                this.$message({
+                  message: '修改成功',
+                  type: 'success'
+                })
+                this.teachingStatus = false
+                this.getList()
+              } else {
+                this.$message.error(res.msg)
+              }
+            })
+          }
         } else {
-          console.log('error submit!!');
           return false;
         }
       })
@@ -191,12 +262,12 @@ export default {
     },
     addMap() { // 
       this.mapStatus = true
-      let poi = this.addressDetail
+      let poi = this.addressDetail.poi
       // 获取经纬度
-      if(poi.lnglat) {
+      if(poi) {
         this.markers = []
-        this.center = [poi.lnglat.lng, poi.lnglat.lat];
-        this.markers.push([poi.lnglat.lng, poi.lnglat.lat])
+        this.center = [poi.split(',')[0], poi.split(',')[1]];
+        this.markers.push([poi.split(',')[0], poi.split(',')[1]])
       }
     },
     onSearchResult(pois) { // 搜索出来的Marker
@@ -224,7 +295,11 @@ export default {
           geocoder.getAddress(e.lnglat, function(status, result) {
             if(status === 'complete' && result.regeocode) {
                 result.regeocode.lnglat = e.lnglat
-                that.addressDetail = result.regeocode
+                let ct = result.regeocode.addressComponent
+                that.addressDetail = {
+                  address: ct.province + ',' + ct.city + ',' + ct.district + ','+ ct.township + ct.street + ct.streetNumber,
+                  poi: e.lnglat.lng + ',' + e.lnglat.lat
+                }
                 that.form.address = result.regeocode.formattedAddress
                 that.mapStatus = false
                 that.addressMessage = false
@@ -235,7 +310,115 @@ export default {
         }
       }
     },
-    getList () { }
+    getList() {
+      schoolQueryPage({
+        organId: this.form.organId,
+        rows: this.pageInfo.limit,
+        page: this.pageInfo.page
+      }).then(res => {
+        if(res.code == 200 && res.data) {
+          this.tableList = res.data.rows
+          this.pageInfo.total = res.data.total
+        }
+      })
+    },
+    getBreachList() { // 获取分部列表
+      queryByOrganId({
+        organId: this.form.organId
+      }).then(res => {
+        if(res.code == 200) {
+          // 判断是否有数据
+          if(!res.data && res.data.length <= 0) return
+          res.data.forEach(r => {
+            this.breachList.push({
+              value: r.id,
+              label: r.name
+            })
+          })
+          
+        }
+      })
+    },
+    openTeaching(type, row) {
+      // 重置数据
+      this.form = {
+        id: null,
+        name: null, // 教学点名称
+        linkman: null, // 来源
+        job: null,  // 费用
+        mobileNo: null, // 合作单位
+      }
+      this.teachingStatus = true
+      this.formActionTitle = type
+      // 修改的时候赋值
+      if(type == 'update') {
+        this.addressDetail = {
+          address: row.address,
+          poi: row.longitudeLatitude
+        }
+        this.form = {
+          id: row.id,
+          name: row.name, // 教学点名称
+          source: row.cooperationOrganId ? "1" : "2", // 来源
+          cooperationOrganId: row.cooperationOrganId, // 合作单位
+          remark: row.remark,  // 费用
+          address: row.address.split(',').join(''), // 上课地点
+          subsidy: row.subsidy, // 课酬补贴
+          organId: store.getters.organ
+        }
+      }
+    },
+    onFormClose(formName) { // 关闭弹窗重置验证
+      this.$refs[formName].clearValidate()
+    },
+    filterOrgan(val) {
+      let result = ''
+      if(val.cooperationOrganId) {
+        this.breachList.forEach(res => {
+          if(res.value == val.cooperationOrganId) {
+            result = res.label
+          }
+        })
+      } else {
+        result = '租赁'
+      }
+      return result
+    },
+    onUpdateSubmit(row, type) {
+      let msg
+      if(type == 2) {
+        msg = '停用'
+      } else if(type == 0) {
+        msg = '启用'
+      } else {
+        msg = '删除'
+      }
+      this.$confirm(`您确定${msg}吗?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        schoolUpdate({
+          id: row.id,
+          delFlag: type
+        }).then(res => {
+          if(res.code == 200) {
+            this.$message({
+              message: '修改成功',
+              type: 'success'
+            })
+            this.teachingStatus = false
+            if(type == 2 || type == 0) {
+              row.delFlag = type
+            } else {
+              this.getList()
+            }
+          } else {
+            this.$message.error(res.msg)
+          }
+        })
+      })
+    }
   }
 }
 </script>
@@ -260,7 +443,7 @@ export default {
   background: #14928a;
   border-color: #14928a;
   color: #fff;
-  &:hover, &:active {
+  &:hover, &:active, &:focus {
     background: #14928a;
     border-color: #14928a;
     color: #FFF;

+ 28 - 12
src/views/categroyManager/insideSetting/adminManager.vue

@@ -9,9 +9,9 @@
                v-model="searchForm">
         <el-form-item>
           <el-select v-model="searchForm.status"
-                     placeholder="工作类型">
-            <el-option label="哈哈哈"
-                       value="1"></el-option>
+                     placeholder="角色类型">
+            <el-option v-for="item in roleList" :key="item.value"
+              :label="item.label" :value="item.value"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -20,7 +20,7 @@
         </el-form-item>
       </el-form>
       <!-- 查询列表 -->
-      <div class="searchWrap">
+      <!-- <div class="searchWrap">
         <p>查询条件:</p>
         <div class="searchItem"
              @click="closeSearch(item)"
@@ -28,7 +28,7 @@
           {{ item.key }}
           <i class="el-icon-close"></i>
         </div>
-      </div>
+      </div> -->
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'>
@@ -45,18 +45,19 @@
                            label="操作">
           </el-table-column>
         </el-table>
-        <pagination :total="rules.total"
-                    :page.sync="rules.page"
-                    :limit.sync="rules.limit"
-                    :page-sizes="rules.page_size"
+        <pagination :total="pageInfo.total"
+                    :page.sync="pageInfo.page"
+                    :limit.sync="pageInfo.limit"
+                    :page-sizes="pageInfo.page_size"
                     @pagination="getList" />
       </div>
     </div>
   </div>
-  </div>
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
+import { getUserRole } from '@/api/systemManage'
+import store from '@/store'
 export default {
   components: { pagination },
   name: 'adminManager',
@@ -67,17 +68,32 @@ export default {
       },
       searchLsit: [],
       tableList: [],
-      rules: {
+      pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
+      organId: store.getters.organ,
+      roleList: [], // 角色列表
     }
   },
+  mounted() {
+    this.getRoleList()
+  },
   methods: {
-    getList () { }
+    getList () { },
+    getRoleList() {
+      getUserRole({ organId: this.organId }).then(res => {
+        if(res.code == 200) {
+          this.roleList = {
+            label: res.data.roleName,
+            value: res.data.id
+          }
+        }
+      })
+    }
   }
 }
 </script>

+ 21 - 12
src/views/categroyManager/insideSetting/branchManager.vue

@@ -62,7 +62,7 @@
       </div>
     </div>
 
-    <el-dialog :title="formTitle[formActionTitle]" :visible.sync="teachingStatus" width="500px">
+    <el-dialog :title="formTitle[formActionTitle]" :visible.sync="teachingStatus" @close="onFormClose('ruleForm')" width="500px">
       <el-form :model="form" :rules="rules" ref="ruleForm">
         <el-form-item label="单位名称" prop="name" :label-width="formLabelWidth">
           <el-input v-model="form.name" autocomplete="off"></el-input>
@@ -78,7 +78,7 @@
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button @click="onTeachingCancel('ruleForm')">取 消</el-button>
+        <el-button @click="teachingStatus = false">取 消</el-button>
         <el-button type="primary" @click="onTeachingSubmit('ruleForm')">确 定</el-button>
       </span>
     </el-dialog>
@@ -133,8 +133,7 @@ export default {
     }
   },
   mounted() {
-    // console.log(store.getters.organ)
-    this.getList()
+    this.getList() // 获取列表数据
   },
   methods: {
     onDelete(rows) {
@@ -176,24 +175,30 @@ export default {
         }
       })
     },
-    onTeachingCancel(formName) {
-      this.teachingStatus = false
-      this.$refs[formName].clearValidate()
-    },
     getList() {
       queryPage({
-        organId: this.form.organId
+        organId: this.form.organId,
+        rows: this.pageInfo.limit,
+        page: this.pageInfo.page
+
       }).then(res => {
         if(res.code == 200 && res.data) {
           this.tableList = res.data.rows
+          this.pageInfo.total = res.data.total
         }
-        
       })
     },
     openTeaching(type, rows) {
+      // 重置数据
+      this.form = {
+        id: null,
+        name: null, // 教学点名称
+        linkman: null, // 来源
+        job: null,  // 费用
+        mobileNo: null, // 合作单位
+      }
       this.teachingStatus = true
       this.formActionTitle = type
-
       // 修改的时候赋值
       if(type == 'update') {
         this.form = {
@@ -202,8 +207,12 @@ export default {
           linkman: rows.linkman, // 来源
           job: rows.job,  // 费用
           mobileNo: rows.mobileNo ? Number(rows.mobileNo) : null, // 合作单位
+          organId: store.getters.organ
         }
       }
+    },
+    onFormClose(formName) { // 关闭弹窗重置验证
+      this.$refs[formName].clearValidate()
     }
   }
 }
@@ -213,7 +222,7 @@ export default {
   background: #14928a;
   border-color: #14928a;
   color: #fff;
-  &:hover, &:active {
+  &:hover, &:active, &:focus {
     background: #14928a;
     border-color: #14928a;
     color: #FFF;

+ 174 - 46
src/views/categroyManager/insideSetting/staffManager.vue

@@ -2,99 +2,227 @@
   <div class='m-container'>
     <h2>员工管理</h2>
     <div class="m-core">
-      <div class='newBand'>添加</div>
-      <!-- 搜索类型 -->
-      <el-form :inline="true"
-               class="searchForm"
-               v-model="searchForm">
-        <el-form-item>
-          <el-select v-model="searchForm.status"
-                     placeholder="工作类型">
-            <el-option label="哈哈哈"
-                       value="1"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-input suffix-icon="el-icon-search"
-                    placeholder="请输入搜索内容"></el-input>
-        </el-form-item>
-      </el-form>
-      <!-- 查询列表 -->
-      <div class="searchWrap">
-        <p>查询条件:</p>
-        <div class="searchItem"
-             @click="closeSearch(item)"
-             v-for="(item,index) in searchLsit">
-          {{ item.key }}
-          <i class="el-icon-close"></i>
-        </div>
-      </div>
+      <div @click="roleOperation('create')" class='newBand'>添加</div>
+      
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="username"
                            label="姓名">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="phone"
                            label="手机号">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="roleName"
                            label="角色分类">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="jobNature"
                            label="工作类型">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="organName"
                            label="所属部门">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="lockFlag"
                            label="状态">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="entryDate"
                            label="入职时间">
           </el-table-column>
-          <el-table-column align='center'
+          <el-table-column align='center' prop="demissionDate"
                            label="离职时间">
           </el-table-column>
           <el-table-column align='center'
                            label="操作">
+            <template slot-scope="scope">
+              <el-button type="text">重置密码</el-button>
+              <!-- /解冻 -->
+              <el-button  type="text">冻结</el-button> 
+              <el-button type="text">离职</el-button>
+            </template>
           </el-table-column>
         </el-table>
-        <pagination :total="rules.total"
-                    :page.sync="rules.page"
-                    :limit.sync="rules.limit"
-                    :page-sizes="rules.page_size"
+        <pagination :total="pageInfo.total"
+                    :page.sync="pageInfo.page"
+                    :limit.sync="pageInfo.limit"
+                    :page-sizes="pageInfo.page_size"
                     @pagination="getList" />
       </div>
     </div>
-  </div>
+
+    <el-dialog :title="formTitle[formActionTitle]" :visible.sync="roleStatus" @close="onFormClose('ruleForm')" width="500px">
+      <el-form :model="form" :rules="rules" ref="ruleForm">
+        <el-form-item label="姓名" prop="username" :label-width="formLabelWidth">
+          <el-input v-model="form.username" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="性别" prop="gender" :label-width="formLabelWidth">
+          <el-select v-model="form.gender">
+            <el-option label="男" value="MAN"></el-option>
+            <el-option label="女" value="WOMAN"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="手机号" prop="phone" :label-width="formLabelWidth">
+          <el-input v-model="form.phone" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="角色分类" prop="roleName" :label-width="formLabelWidth">
+          <el-select v-model="form.roleName">
+            <el-option v-for="item in roleList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="所属部门" prop="organName" :label-width="formLabelWidth">
+          <el-select v-model="form.organName">
+            <el-option label="男" value="MAN"></el-option>
+            <el-option label="女" value="WOMAN"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="工作类型" prop="jobNature" :label-width="formLabelWidth">
+          <el-select v-model="form.jobNature">
+            <el-option label="全职" value="PART_TIME"></el-option>
+            <el-option label="兼职" value="FULL_TIME"></el-option>
+            <el-option label="临时" value="TEMPORARY"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="入职时间" prop="entryDate" :label-width="formLabelWidth">
+          <el-date-picker
+            v-model="form.entryDate"
+            type="date"
+            placeholder="选择日期">
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="roleStatus = false">取 消</el-button>
+        <el-button @click="onRoleSubmit('ruleForm')" type="primary">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
+import { queryEmployByOrganId, getUserRole, organizationQueryPage, organizationAdd } from '@/api/systemManage'
+import store from '@/store'
 export default {
   components: { pagination },
   name: 'adminManager',
   data () {
     return {
-      searchForm: {
-        status: ''
-      },
-      searchLsit: [],
       tableList: [],
-      rules: {
+      pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
+      organId: store.getters.organ,
+      roleStatus: false,
+      formActionTitle: 'create',
+      roleList: [], // 角色列表
+      formTitle: {
+        create: '添加员工',
+        update: '修改员工'
+      },
+      formLabelWidth: '100px',
+      form: {
+        username: null,
+        gender: null,
+        phone: null,
+        roleName: null,
+        organName: null,
+        jobNature: null,
+        entryDate: null
+      },
+      rules: {
+        username: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
+        gender: [{required: true, message: '请选择性别', trigger: 'change'}],
+        phone: [{ type: 'number', required: true, message: '手机号输入有误', trigger: 'blur'}],
+        roleName: [{required: true, message: '请选择分类', trigger: 'change'}],
+        organName: [{required: true, message: '请选择所属部门', trigger: 'change'}],
+        jobNature: [{required: true, message: '请选择工作类型', trigger: 'change'}],
+        entryDate: [{ type: 'date', required: true, message: '请选择入职时间', trigger: 'blur'}],
+      }
     }
   },
+  mounted() {
+    this.getList()
+    this.getRoleList()
+  },
   methods: {
-    getList () { }
+    onRoleSubmit(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          if(this.formActionTitle == 'create') {
+            organizationAdd(this.form).then(res => {
+              if(res.code == 200) {
+                this.$message({
+                  message: '添加成功',
+                  type: 'success'
+                })
+                this.roleStatus = false
+                this.getList()
+              } else {
+                this.$message.error(res.msg)
+              }
+            })
+          }
+        } else {
+          return
+        }
+      })
+    },
+    getList () {
+      queryEmployByOrganId({ organId: this.organId }).then(res => {
+        if(res.code == 200 && res.data) {
+          this.tableList = res.data.rows
+        }
+      })
+    },
+    getRoleList() { // 获取角色
+      getUserRole().then(res => {
+        if(res.code == 200 && res.data && res.data.length > 0) {
+          res.data.forEach(item => {
+            this.roleList.push({
+              label: item.roleName,
+              value: item.id
+            })
+          })
+        }
+      })
+      organizationQueryPage({ // 获取分部
+        delFlag: 0,
+        rows: 9999
+      }).then(res => {
+        // console.log(res)
+      })
+    },
+    roleOperation(type) {
+      this.formActionTitle = type
+      this.roleStatus = true
+      // 修改的时候
+      if(type == 'update') {
+
+      }
+    },
+    onFormClose(formName) { // 关闭弹窗重置验证
+      this.$refs[formName].clearValidate()
+    },
   }
 }
 </script>
 <style lang="scss">
+.el-input-group__append, .el-button--primary {
+  background: #14928a;
+  border-color: #14928a;
+  color: #fff;
+  &:hover, &:active, &:focus {
+    background: #14928a;
+    border-color: #14928a;
+    color: #FFF;
+  }
+}
+.el-dialog__body {
+  padding: 0 20px;
+}
+.el-select, .el-date-editor.el-input{
+  width: 100% !important;
+}
 </style>