Ver código fonte

讲师管理以及授权码管理

OnePsycho 5 anos atrás
pai
commit
7d728be867

+ 37 - 0
src/api/basisMG.js

@@ -10,3 +10,40 @@ export const getOrgList = (params) => { return req("post", "/api/Organization/li
 // 组织机构-修改组织机构数据
 export const updateOrg = (params) => { return req("post", "/api/Organization/update", params) };
 
+// 组织机构-修改组织机构数据
+export const addOrg = (params) => { return req("post", "/api/Organization/add", params) };
+
+/**
+ * 成员管理
+ **/
+// 成员管理-获取成员管理列表
+export const getMemberList = (params) => { return req("post", "/api/Member/list", params) };
+
+// 成员管理-更新成员信息
+export const updateMember = (params) => { return req("post", "/api/Member/update", params) };
+
+// 成员管理-新增成员
+export const addMember = (params) => { return req("post", "/api/Member/add", params) };
+
+// 成员管理-移除成员
+export const removeMember = (params) => { return req("post", "/api/Member/remove", params) };
+
+// 成员管理-退出组织
+export const exitMember = (params) => { return req("post", "/api/Member/exit", params) };
+
+
+// 授权码-新增或者更新
+export const saveOrUpdateCode = (params) => { return req("post", "/api/ActivationCode/saveOrUpdate", params) };
+
+// 授权码-获取组织机构授权信息
+export const getActivationCode = (params) => { return req("post", "/api/ActivationCode/Get", params) };
+
+
+// 讲师管理-获取讲师列表
+export const getLecturerList = (params) => { return req("post", "/api/Lecturer/list", params) };
+
+// 讲师管理-更新讲师信息
+export const updateLecturer = (params) => { return req("post", "/api/Lecturer/update", params) };
+
+// 个人中心 更新
+export const updateSelf = (params) => { return req("post", "/api/Lecturer/updateSelf", params) };

+ 1 - 0
src/components/BaseRegister.vue

@@ -133,6 +133,7 @@ export default {
       if (cellphone && smsCode) {
         phoneLogin({ cellphone: cellphone, smsCode: smsCode }).then(res => {
           localStorage.setItem("token", res.result.data.jwt.access_token);
+          localStorage.setItem('user',JSON.stringify(res.result.data.user))
           this.$message.success("登录成功!");
           this.isLoginLoading = false;
         });

+ 1 - 1
src/components/Pagination.vue

@@ -27,7 +27,7 @@ export default {
     };
   },
   created() {
-    console.log(this.childMsg)
+    // console.log(this.childMsg)
   },
   methods: {
     handleSizeChange(val) {

+ 17 - 4
src/components/leftnav.vue

@@ -1,6 +1,3 @@
-/**
-* 左边菜单
-*/ 
 <template>
   <el-menu
     default-active="2"
@@ -55,12 +52,28 @@ export default {
           url: null,
           menus: [
             {
-              menuid: 34,
+              menuid: 1,
               icon: "icon-order-manage",
               menuname: "组织机构管理",
               hasThird: "N",
               url: "goods/Goods",
               menus: null
+            },
+            {
+              menuid: 2,
+              icon: "icon-order-manage",
+              menuname: "成员管理",
+              hasThird: "N",
+              url: "member/Member",
+              menus: null
+            },
+            {
+              menuid: 4,
+              icon: "icon-order-manage",
+              menuname: "讲师管理",
+              hasThird: "N",
+              url: "lecturer/Lecturer",
+              menus: null
             }
           ]
         }

+ 106 - 30
src/components/navcon.vue

@@ -2,36 +2,84 @@
 * 头部菜单
 */ 
 <template>
+<div class="header-menu">
   <el-menu class="el-menu-demo" mode="horizontal" background-color="#334157" text-color="#fff" active-text-color="#fff">
     <el-button class="buttonimg">
       <img class="showimg" :src="collapsed?imgsq:imgshow" @click="toggle(collapsed)">
     </el-button>
     <el-submenu index="2" class="submenu">
       <!-- <template slot="title">{{user.userRealName}}</template> -->
-      <template slot="title">超级管理员</template>
-      <el-menu-item index="2-1">设置</el-menu-item>
-      <el-menu-item @click="content()" index="2-2">个人中心</el-menu-item>
+      <template slot="title">
+        <span>
+          <img :src="user.avatar" alt="" class="img-avatar">
+          </span>
+        {{user.username}}
+        </template>
+      <el-menu-item @click="handleSetInfo()" index="2-2">个人中心</el-menu-item>
       <el-menu-item @click="exit()" index="2-3">退出</el-menu-item>
     </el-submenu>
   </el-menu>
+  <el-dialog title="个人中心" :visible.sync="updateFormVisible" width="30%" @click="closeDialog">
+      <el-form label-width="120px" :model="updateForm" :rules="rules" ref="updateForm" label-position="top">
+        <el-form-item label="设置头像" prop="expires">
+          <img :src="updateForm.avatar" alt="" style="border-radius:50%;width:80px">
+        </el-form-item>
+        <el-form-item label="修改账号" prop="expires">
+         <el-input   v-model="updateForm.account" :disabled="updateForm.setaccount === 0" auto-complete="off" placeholder="请输入新账号"></el-input>
+          <p class="error-tip">当前用户可修改账号次数为 0</p>
+        </el-form-item>
+        <el-form-item label="设置新密码" prop="password">
+          <el-input type="password"  v-model="updateForm.password" label="请输入新密码"></el-input>
+        </el-form-item>
+        <el-form-item label="确认新密码" prop="password">
+          <el-input type="password"  v-model="psw" label="请确认新密码"></el-input>
+        </el-form-item>
+        
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button   @click="closeDialog">取消</el-button>
+        <el-button
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitUpdateForm('updateForm')"
+        >保存</el-button>
+      </div>
+    </el-dialog>
+</div>
 </template>
+
 <script>
-import { loginout } from '../api/userMG'
+import { updateSelf } from '../api/basisMG'
 export default {
   name: 'navcon',
   data() {
     return {
+      updateFormVisible:false,
+      updateForm:{},
+      psw:"",
       collapsed: true,
       imgshow: require('../assets/img/show.png'),
       imgsq: require('../assets/img/sq.png'),
-      user: {}
+      user: {},
+      // rules表单验证
+      rules: {
+        password: [
+          { required: false, message: "请输入新密码", trigger: "blur" }
+        ]
+      },
     }
   },
   // 创建完毕状态(里面是操作)
   created() {
-    this.user = JSON.parse(localStorage.getItem('userdata'))
+    this.user = JSON.parse(localStorage.getItem('user'))
+    this.updateForm = this.user
   },
   methods: {
+    handleSetInfo(){
+      this.updateForm.password = ''
+      this.updateFormVisible = true
+    },
     // 退出登录
     exit() {
       this.$confirm('退出登录, 是否继续?', '提示', {
@@ -48,30 +96,6 @@ export default {
               message: '已退出登录!'
             })
           }, 1000)
-          // loginout()
-          //   .then(res => {
-          //     if (res.success) {
-          //       //如果请求成功就让他2秒跳转路由
-          //       setTimeout(() => {
-          //         this.$store.commit('logout', 'false')
-          //         this.$router.push({ path: '/login' })
-          //         this.$message({
-          //           type: 'success',
-          //           message: '已退出登录!'
-          //         })
-          //       }, 1000)
-          //     } else {
-          //       this.$message.error(res.msg)
-          //       this.logining = false
-          //       return false
-          //     }
-          //   })
-          //   .catch(err => {
-          //     // 获取图形验证码
-          //     this.getcode()
-          //     this.logining = false
-          //     this.$message.error('退出失败,请稍后再试!')
-          //   })
         })
         .catch(() => {
           this.$message({
@@ -80,6 +104,41 @@ export default {
           })
         })
     },
+    // 更新授权信息
+    submitUpdateForm(editData) {
+      this.$refs[editData].validate(valid => {
+        if (valid) {
+          if(this.updateForm.password === this.psw){
+          updateSelf(this.updateForm)
+            .then(res => {
+              this.updateFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.$message({
+                  type: "success",
+                  message: "更新成功"
+                });
+                localStorage.setItem('user',JSON.stringify(this.updateForm))
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.updateFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
+          }else{
+            this.$message.error("两次密码输入不一致");
+          }
+        } else {
+          return false;
+        }
+      });
+    },
     // 切换显示
     toggle(showtype) {
       this.collapsed = !showtype
@@ -92,6 +151,10 @@ export default {
 .el-menu-vertical-demo:not(.el-menu--collapse) {
   border: none;
 }
+
+.header-menu /deep/ .el-submenu__title{
+  border: none !important;
+}
 .submenu {
   float: right;
 }
@@ -110,4 +173,17 @@ export default {
 .showimg:active {
   border: none;
 }
+.img-avatar{
+  width: 35px;
+  height: 35px;
+  border-radius: 50%;
+  margin-right: 10px;
+  margin-bottom: 5px;
+}
+
+.error-tip{
+  font-size: 12px;
+  color: rgb(236, 104, 104);
+  margin-left: 10px;
+}
 </style>

+ 23 - 122
src/router/index.js

@@ -8,47 +8,18 @@ import index from '@/views/index';
 /**
  * 基础菜单
  */
-// 商品管理
+// 组织机构管理
 import Goods from '@/views/goods/Goods';
-// 机器信息管理
-import Machine from '@/views/machine/Machine';
-// 货道信息管理
-import MachineAisle from '@/views/machine/MachineAisle';
-/**
- * 订单管理
- */
-// 交易订单
-import Order from '@/views/pay/Order';
-/**
- * 系统管理
- */
-// 用户管理
-import user from '@/views/system/user';
-// 菜单管理
-import Module from '@/views/system/Module';
-// 角色管理
-import Role from '@/views/system/Role';
-// 公司管理
-import Dept from '@/views/system/Dept';
-// 系统环境变量
-import Variable from '@/views/system/Variable';
-// 权限管理
-import Permission from '@/views/system/Permission';
-/**
- * 支付管理
- */
-// 支付配置信息
-import MachineConfig from '@/views/machine/MachineConfig';
-// 支付配置
-import Config from '@/views/pay/Config';
-/**
- * 数据监控
- */
-// 监控查询
-import druidLogin from '@/views/druid/login';
 
-// 图表界面
-import statistics from '@/views/charts/statistics';
+// 成员管理
+import Member from '@/views/member/Member';
+
+// 授权码管理
+import Activation from '@/views/activation/Activation';
+
+// 讲师管理
+import Lecturer from '@/views/lecturer/Lecturer';
+
 
 // 启用路由
 Vue.use(Router);
@@ -79,99 +50,29 @@ export default new Router({
         iconCls: 'el-icon-tickets',
         children: [{
             path: '/goods/Goods',
-            name: '商品管理',
+            name: '组织机构管理',
             component: Goods,
             meta: {
                 requireAuth: true
             }
-        }, {
-            path: '/machine/Machine',
-            name: '机器信息管理',
-            component: Machine,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/machine/MachineAisle',
-            name: '货道信息管理',
-            component: MachineAisle,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/pay/Order',
-            name: '交易订单',
-            component: Order,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/system/user',
-            name: '用户管理',
-            component: user,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/system/Module',
-            name: '菜单管理',
-            component: Module,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/system/Role',
-            name: '角色管理',
-            component: Role,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/system/Dept',
-            name: '公司管理',
-            component: Dept,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/system/Variable',
-            name: '系统环境变量',
-            component: Variable,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/system/Permission',
-            name: '权限管理',
-            component: Permission,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/machine/MachineConfig',
-            name: '支付配置信息',
-            component: MachineConfig,
-            meta: {
-                requireAuth: true
-            }
-        }, {
-            path: '/pay/Config',
-            name: '支付配置',
-            component: Config,
+        },{
+            path: '/member/Member',
+            name: '成员管理',
+            component: Member,
             meta: {
                 requireAuth: true
             }
-        }, {
-            path: '/druid/login',
-            name: '监控查询',
-            component: druidLogin,
+        },{
+            path: '/activation/Activation',
+            name: '授权码管理',
+            component: Activation,
             meta: {
                 requireAuth: true
             }
-        }, {
-            path: '/charts/statistics',
-            name: '数据可视化',
-            component: statistics,
+        },{
+            path: '/lecturer/Lecturer',
+            name: '讲师管理',
+            component: Lecturer,
             meta: {
                 requireAuth: true
             }

+ 341 - 0
src/views/activation/Activation.vue

@@ -0,0 +1,341 @@
+/**
+ * 组织机构管理
+ */
+<template>
+  <div>
+    <!-- 面包屑导航 -->
+    <el-breadcrumb separator-class="el-icon-arrow-right">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>授权码管理</el-breadcrumb-item>
+    </el-breadcrumb>
+    <!-- 搜索筛选 -->
+    <el-form :inline="true" :model="defaultParams" class="user-search">
+      <el-form-item label="选择组织机构:">
+        <el-select v-model="defaultParams.data.orgCode" @change="onOrgChange" placeholder="请选择">
+          <el-option
+            v-for="item in orgList"
+            :key="item.code"
+            :label="item.name"
+            :value="item.code">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()">添加成员</el-button>
+      </el-form-item>
+    </el-form>
+    <!--列表-->
+    <el-table
+      size="small"
+      :data="listData"
+      highlight-current-row
+      v-loading="loading"
+      border
+      element-loading-text="拼命加载中"
+      style="width: 100%;"
+    >
+      <el-table-column align="center" type="selection" width="60"></el-table-column>
+      <el-table-column prop="memberName" label="成员名">
+        <template slot-scope="scope">
+          <div>{{scope.row.memberName || '——'}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="username" label="用户名"></el-table-column>
+      <el-table-column prop="cellphone" label="手机号"></el-table-column>
+      <el-table-column sortable prop="createTime" label="创建时间" width="300">
+        <template slot-scope="scope">
+          <div>{{scope.row.createTime|timestampToTime}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="admin" label="是否管理员" width="100">
+        <template slot-scope="scope">
+          <div>{{scope.row.admin === 1 ? '是' : '否'}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="status" label="状态" width="100">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">{{scope.row.status === 1 ? '正常' : '停用'}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" label="操作" width="300">
+        <template slot-scope="scope">
+          <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+          <el-popconfirm
+            confirmButtonText='确认'
+            cancelButtonText='取消'
+            icon="el-icon-info"
+            iconColor="red"
+             @onConfirm="handleRemove(scope.$index, scope.row)"
+            title="确认移除该成员吗?">
+            <el-button slot="reference" size="mini" type="warning">移除</el-button>
+          </el-popconfirm>
+          <el-popconfirm
+            confirmButtonText='确认'
+            cancelButtonText='取消'
+            icon="el-icon-info"
+            iconColor="red"
+             @onConfirm="handleExit(scope.$index, scope.row)"
+            title="确认退出该组织吗?">
+            <el-button slot="reference" size="mini" type="danger">退出</el-button>
+          </el-popconfirm>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
+    <!-- 编辑界面 -->
+    <el-dialog :title="isEdit ? '编辑' : '新增'" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
+      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm" label-position="top">
+        <el-form-item label="成员名称" prop="memberName" v-show="isEdit">
+          <el-input size="small" v-model="editForm.memberName" auto-complete="off" placeholder="请输入成员名称"></el-input>
+        </el-form-item>
+        <el-form-item label="邀请成员手机号" prop="cellphone">
+          <el-input size="small" v-model="editForm.cellphone" auto-complete="off" placeholder="请输入成员手机号" :disabled="isEdit"></el-input>
+        </el-form-item>
+        <el-form-item label="是否管理员" prop="admin">
+          <el-switch v-model="editForm.admin" :active-value="1" :inactive-value="0"></el-switch>
+        </el-form-item>
+        <el-form-item label="当前状态" prop="status">
+          <el-switch v-model="editForm.status" :active-value="1" :inactive-value="0"></el-switch>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeDialog">取消</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitForm('editForm')"
+        >保存</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+// import { timestampToTime } from '../../utils/util'
+import { getOrgList , getMemberList , updateMember , removeMember , exitMember, addMember } from "../../api/basisMG";
+import Pagination from "../../components/Pagination";
+export default {
+  data() {
+    return {
+      isEdit:false,
+      loading: false, //是显示加载
+      editFormVisible: false, //控制编辑页面显示与隐藏
+      title: "添加",
+      editForm: {
+        memberName: "",
+        admin: 0,
+        status: 1,
+        cellphone:''
+      },
+      // rules表单验证
+      rules: {
+        name: [
+          { required: true, message: "请输入组织机构名称", trigger: "blur" }
+        ],
+        code: [{ required: true, message: "请输入组织机构代码", trigger: "blur" }]
+      },
+      orgList:[],
+      defaultParams: {
+        data: {
+          orgCode: "",
+        },
+        page: {
+          pageSize: 10,
+          currPage: 1
+        }
+      },
+      // 删除组织机构
+      seletedata: {
+        ids: "",
+        token: localStorage.getItem("logintoken")
+      },
+      userparm: [], //搜索权限
+      listData: [], //用户数据
+      // 分页参数
+      pageparm: {
+        currentPage: 1,
+        pageSize: 10,
+        total: 10
+      }
+    };
+  },
+  // 注册组件
+  components: {
+    Pagination
+  },
+  created() {
+    this.onGetOrgList()
+  },
+  methods: {
+
+    onGetOrgList(){
+      getOrgList({data:{},page:{pageSize: 100,currPage: 1}}).then(res => {
+        this.loading = false;
+        this.orgList = res.result.data;
+        this.defaultParams.data.orgCode = res.result.data[0].code
+        this.onOrgChange(this.defaultParams)
+      });
+    },
+    // 获取公司列表
+    getData(param) {
+      this.loading = true;
+      getMemberList(param).then(res => {
+        this.loading = false;
+        if(!res.error){
+          res.result.data.forEach(i => {
+            i.username = res.result.extend.lecturers.filter(j => j.unionid === i.unionid)[0].username
+            i.cellphone = res.result.extend.lecturers.filter(j => j.unionid === i.unionid)[0].cellphone
+
+          })
+          this.listData = res.result.data;
+          this.pageparm.currentPage = res.result.page.currPage;
+          this.pageparm.pageSize = res.result.page.pageSize;
+          this.pageparm.total = res.result.page.total;
+        }else{
+          this.$message.warning('数据报错')
+        }
+        
+      });
+    },
+
+    onOrgChange(val){
+        this.defaultParams.page.pageSize = 10
+        this.defaultParams.page.currPage = 1
+        this.getData(this.defaultParams)
+    },
+    // 分页插件事件
+    callFather(parm) {
+      console.log(parm)
+      this.defaultParams.page.currPage = parm.currentPage;
+      this.defaultParams.page.pageSize = parm.pageSize;
+      this.getData(this.defaultParams);
+    },
+    // 搜索事件
+    search() {
+      this.getData(this.defaultParams);
+    },
+    //显示编辑界面
+    handleEdit(index, row) {
+      this.editFormVisible = true;
+      if(row){
+        this.isEdit = true
+        this.editForm = row;
+        console.log(row)
+      }else{
+        this.isEdit = false
+        this.editForm = {
+          admin:1,
+          orgCode:this.defaultParams.data.orgCode,
+          username:'',
+          memberName:''
+        }
+      }
+      
+    },
+
+    handleRemove(index,row){
+      removeMember(row).then(res => {
+        if(!res.error){
+          this.$message.success('移除成功!')
+        }else{
+          this.$message.warning(res.error.message)
+        }
+          
+      })
+    },  
+
+    handleExit(index,row){
+      exitMember({unionid : row.unionid , orgCode : this.defaultParams.data.orgCode}).then(res => {
+        if(!res.error){
+          this.$message.success('退出成功!')
+        }else{
+          this.$message.warning(res.error.message)
+        }
+          
+      })
+    },  
+
+    // 编辑、增加页面保存方法
+    submitForm(editData) {
+      this.$refs[editData].validate(valid => {
+        if (valid) {
+          if(this.isEdit){
+          updateMember(this.editForm)
+            .then(res => {
+              this.editFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "更新成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.editFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
+          }else{
+            this.editForm.cellphone = [this.editForm.cellphone]
+            addMember(this.editForm)
+            .then(res => {
+              this.editFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "添加成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.editFormVisible = false;
+              this.loading = false;
+              this.$message.error("添加失败,请稍后再试!");
+            });
+          }
+        } else {
+          return false;
+        }
+      });
+    },
+    // 关闭编辑、增加弹出框
+    closeDialog() {
+      this.editFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style>
+.el-popconfirm__action{
+  margin-top: 20px;
+}
+</style>
+<style scoped>
+.user-search {
+  margin-top: 20px;
+}
+.userRole {
+  width: 100%;
+}
+</style>
+
+ 
+ 

+ 190 - 17
src/views/goods/Goods.vue

@@ -18,7 +18,7 @@
       </el-form-item>
       <el-form-item>
         <el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
-        <el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()">添加</el-button>
+        <el-button size="small" type="primary" icon="el-icon-plus" @click="handlddeAdd()">添加</el-button>
       </el-form-item>
     </el-form>
     <!--列表-->
@@ -32,27 +32,38 @@
       style="width: 100%;"
     >
       <el-table-column align="center" type="selection" width="60"></el-table-column>
-      <el-table-column prop="name" label="组织机构名称" width="300"></el-table-column>
-      <el-table-column prop="code" label="组织机构代码" width="300"></el-table-column>
-      <el-table-column sortable prop="editTime" label="创建时间" width="300">
+      <el-table-column prop="name" label="组织机构名称"></el-table-column>
+      <el-table-column prop="code" label="组织机构代码" min-width="200"></el-table-column>
+      <el-table-column sortable prop="editTime" label="创建时间" width="200">
         <template slot-scope="scope">
           <div>{{scope.row.createTime|timestampToTime}}</div>
         </template>
       </el-table-column>
-      <el-table-column prop="type" label="类型" width="100">
+      <el-table-column sortable prop="expires" label="授权到期时间" width="200">
+        <template slot-scope="scope">
+          <div>{{scope.row.expires|timestampToTime}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column sortable prop="maximum" label="成员数量" width="120"></el-table-column>
+      <el-table-column prop="type" label="类型" width="80">
         <template slot-scope="scope">
           <div>{{scope.row.type === 1 ? '企业' : '个人'}}</div>
         </template>
       </el-table-column>
-      <el-table-column prop="status" label="状态" width="100">
+      <el-table-column prop="activeStatus" label="授权状态" width="100">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.activeStatus === 1 ? 'success' : 'danger'">{{scope.row.activeStatus === 1 ? '正常' : '停用'}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column prop="status" label="组织机构状态" width="100">
         <template slot-scope="scope">
           <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">{{scope.row.status === 1 ? '正常' : '停用'}}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column align="center" label="操作" min-width="300">
+      <el-table-column align="center" label="操作" width="300">
         <template slot-scope="scope">
-          <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
-          <el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
+          <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+          <el-button size="mini" type="primary" @click="handleUpdateActivation(scope.$index, scope.row)">更新授权信息</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -82,19 +93,90 @@
         >保存</el-button>
       </div>
     </el-dialog>
+    <!-- 新增组织机构 -->
+    <el-dialog title="新增组织机构" :visible.sync="addFormVisible" width="30%" @click="closeDialog">
+      <el-form label-width="120px" :model="addForm" :rules="rules" ref="addForm" label-position="top">
+        <el-form-item label="组织机构名称" prop="orgName">
+          <el-input size="small" v-model="addForm.orgName" auto-complete="off" placeholder="请输入组织机构名称"></el-input>
+        </el-form-item>
+        <el-form-item label="授权天数" prop="expires">
+          <el-input-number size="small" v-model="addForm.expires" :min="0" :max="3650" label="请输入授权天数"></el-input-number>
+        </el-form-item>
+        <el-form-item label="成员数量" prop="maximum">
+          <el-input-number size="small" v-model="addForm.maximum" :min="1" :max="1000" label="请输入成员数量"></el-input-number>
+        </el-form-item>
+        <el-form-item label="管理员手机号" prop="adminCellphone">
+          <el-input size="small" v-model="addForm.adminCellphone" auto-complete="off" placeholder="请输入组织机构名称"></el-input>
+        </el-form-item>
+        <el-form-item label="特殊资源">
+          <el-radio-group v-model="addForm.orgType">
+            <el-radio :label="1">企业</el-radio>
+            <el-radio :label="2">个人</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeDialog">取消</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitAddForm('addForm')"
+        >保存</el-button>
+      </div>
+    </el-dialog>
+    <!-- 更新授权信息界面 -->
+    <el-dialog title="更新授权信息" :visible.sync="updateFormVisible" width="30%" @click="closeDialog">
+      <el-form label-width="120px" :model="updateForm" :rules="rules" ref="updateForm" label-position="top">
+        <el-form-item label="延长授权时间" prop="expires">
+          <el-input-number size="small" v-model="updateForm.expires" :min="0" :max="3650" label="请输入延长天数"></el-input-number>
+        </el-form-item>
+        <el-form-item label="成员数量" prop="maximum">
+          <el-input-number size="small" v-model="updateForm.maximum" :min="1" :max="updateForm.type === 2 ? 1 : 1000" label="请输入成员数量"></el-input-number>
+        </el-form-item>
+        <el-form-item label="当前状态" prop="activeStatus">
+          <el-switch v-model="updateForm.activeStatus" :active-value="1" :inactive-value="0"></el-switch>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeDialog">取消</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitUpdateForm('updateForm')"
+        >保存</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { getOrgList , updateOrg } from "../../api/basisMG";
-import { deptList, deptSave, deptDelete } from "../../api/userMG";
+import { getOrgList , addOrg , updateOrg , saveOrUpdateCode  } from "../../api/basisMG";
 import Pagination from "../../components/Pagination";
 export default {
   data() {
     return {
       loading: false, //是显示加载
+      addFormVisible: false, //控制编辑页面显示与隐藏
       editFormVisible: false, //控制编辑页面显示与隐藏
+      updateFormVisible:false,
       title: "添加",
+      updateForm: {
+        expires:0,
+        maximum: 0,
+        status: 0
+      },
+      addForm: {
+        orgName:'',
+        expires:0,
+        maximum: 0,
+        adminCellphone:'',
+        orgType:1
+      },
       editForm: {
         id: "",
         name: "",
@@ -146,11 +228,22 @@ export default {
     getData(param) {
       this.loading = true;
       getOrgList(param).then(res => {
-        this.loading = false;
-        this.listData = res.result.data;
-        this.pageparm.currentPage = res.result.page.currPage;
-        this.pageparm.pageSize = res.result.page.pageSize;
-        this.pageparm.total = res.result.page.total;
+        if(!res.error){
+          this.loading = false;
+          res.result.data.forEach(i => {
+            i.expires = res.result.extend.Activation.filter(j => j.orgCode === i.code)[0].expires
+            i.maximum = res.result.extend.Activation.filter(j => j.orgCode === i.code)[0].maximum
+            i.activeStatus = res.result.extend.Activation.filter(j => j.orgCode === i.code)[0].status
+          })
+
+          this.listData = res.result.data;
+          this.pageparm.currentPage = res.result.page.currPage;
+          this.pageparm.pageSize = res.result.page.pageSize;
+          this.pageparm.total = res.result.page.total;
+        }else{
+          this.$message.error(error.message)
+        }
+        
       });
     },
     // 分页插件事件
@@ -165,11 +258,22 @@ export default {
       this.getData(this.defaultParams);
     },
     //显示编辑界面
-    handleEdit: function(index, row) {
+    handleEdit(index, row) {
       this.editFormVisible = true;
       this.editForm = row;
       console.log(row)
     },
+    //显示编辑界面
+    handlddeAdd(index, row) {
+      this.addFormVisible = true;
+    },
+
+    handleUpdateActivation(index,row){
+      this.updateFormVisible = true;
+      this.updateForm = row;
+      this.updateForm.expires = 0;
+      console.log(row)
+    },
     // 编辑、增加页面保存方法
     submitForm(editData) {
       this.$refs[editData].validate(valid => {
@@ -201,9 +305,78 @@ export default {
         }
       });
     },
+    // 更新授权信息
+    submitUpdateForm(editData) {
+      this.$refs[editData].validate(valid => {
+        if (valid) {
+          let params = {
+            expires : this.updateForm.expires , 
+            maximum : this.updateForm.maximum ,
+            orgCode : this.updateForm.code,
+            status : this.updateForm.status
+          }
+          saveOrUpdateCode(params)
+            .then(res => {
+              this.updateFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "更新成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.updateFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    // 新增组织机构
+    submitAddForm(editData) {
+      this.$refs[editData].validate(valid => {
+        if (valid) {
+          addOrg(this.addForm)
+            .then(res => {
+              this.addFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "更新成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.addFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
+        } else {
+          return false;
+        }
+      });
+    },
     // 关闭编辑、增加弹出框
     closeDialog() {
       this.editFormVisible = false;
+      this.updateFormVisible = false;
     }
   }
 };

+ 307 - 0
src/views/lecturer/Lecturer.vue

@@ -0,0 +1,307 @@
+/**
+ * 组织机构管理
+ */
+<template>
+  <div>
+    <!-- 面包屑导航 -->
+    <el-breadcrumb separator-class="el-icon-arrow-right">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>成员管理</el-breadcrumb-item>
+    </el-breadcrumb>
+    <!-- 搜索筛选 -->
+    <el-form :inline="true" :model="defaultParams" class="user-search">
+     <el-form-item label="搜索:">
+        <el-input size="small" v-model="defaultParams.data.account" placeholder="输入讲师账号"></el-input>
+      </el-form-item>
+      <el-form-item label>
+        <el-input size="small" v-model="defaultParams.data.username" placeholder="输入讲师用户名"></el-input>
+      </el-form-item>
+       <el-form-item label>
+        <el-input size="small" v-model="defaultParams.data.cellphone" placeholder="输入讲师手机号"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
+        <el-button size="small" type="primary" @click="showAll()">显示全部</el-button>
+      </el-form-item>
+    </el-form>
+    <!--列表-->
+    <el-table
+      size="small"
+      :data="listData"
+      highlight-current-row
+      v-loading="loading"
+      border
+      element-loading-text="拼命加载中"
+      style="width: 100%;"
+    >
+      <el-table-column align="center" type="selection" width="60"></el-table-column>
+      <el-table-column prop="account" label="账号"></el-table-column>
+      <el-table-column prop="username" label="用户名"></el-table-column>
+      <el-table-column prop="cellphone" label="手机号"></el-table-column>
+      <el-table-column prop="avatar" label="头像">
+        <template slot-scope="scope">
+          <img :src="scope.row.avatar" alt="" class="img-avatar">
+        </template>
+      </el-table-column>
+      <el-table-column sortable prop="registerTime" label="注册时间" width="300">
+        <template slot-scope="scope">
+          <div>{{scope.row.registerTime|timestampToTime}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="status" label="状态" width="100">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">{{scope.row.status === 1 ? '正常' : '停用'}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" label="操作" width="300">
+        <template slot-scope="scope">
+          <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">修改状态</el-button>
+          <el-popconfirm
+            confirmButtonText='确认'
+            cancelButtonText='取消'
+            icon="el-icon-info"
+            iconColor="red"
+             @onConfirm="handleResetPsw(scope.$index, scope.row)"
+            title="确认重置该讲师密码吗?">
+            <el-button slot="reference" size="mini" type="warning">重置密码</el-button>
+          </el-popconfirm>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
+    <!-- 编辑界面 -->
+    <el-dialog :title="isEdit ? '修改状态' : '新增'" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
+      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm" label-position="top">
+        <el-form-item label="当前状态" prop="status">
+          <el-switch v-model="editForm.status" :active-value="1" :inactive-value="0"></el-switch>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeDialog">取消</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitForm('editForm')"
+        >保存</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+// import { timestampToTime } from '../../utils/util'
+import { getOrgList , getLecturerList, updateLecturer } from "../../api/basisMG";
+import Pagination from "../../components/Pagination";
+export default {
+  data() {
+    return {
+      isEdit:true,
+      loading: false, //是显示加载
+      editFormVisible: false, //控制编辑页面显示与隐藏
+      title: "添加",
+      editForm: {
+        username: "",
+        account: 0,
+        status: 1,
+        cellphone:'',
+        avatar:'',
+        registerTime:''
+      },
+      // rules表单验证
+      rules: {
+        name: [
+          { required: true, message: "请输入组织机构名称", trigger: "blur" }
+        ],
+        code: [{ required: true, message: "请输入组织机构代码", trigger: "blur" }]
+      },
+      orgList:[],
+      defaultParams: {
+        data: {
+          cellphone: "",
+          account:"",
+          username:"",
+          id:""
+        },
+        page: {
+          pageSize: 10,
+          currPage: 1
+        }
+      },
+      // 删除组织机构
+      seletedata: {
+        ids: "",
+        token: localStorage.getItem("logintoken")
+      },
+      userparm: [], //搜索权限
+      listData: [], //用户数据
+      // 分页参数
+      pageparm: {
+        currentPage: 1,
+        pageSize: 10,
+        total: 10
+      }
+    };
+  },
+  // 注册组件
+  components: {
+    Pagination
+  },
+  created() {
+    this.getData(this.defaultParams)
+  },
+  methods: {
+    // 获取公司列表
+    getData(param) {
+      this.loading = true;
+      getLecturerList(param).then(res => {
+        this.loading = false;
+        if(!res.error){
+          this.listData = res.result.data;
+          this.pageparm.currentPage = res.result.page.currPage;
+          this.pageparm.pageSize = res.result.page.pageSize;
+          this.pageparm.total = res.result.page.total;
+        }else{
+          this.$message.warning('数据报错')
+        }
+        
+      });
+    },
+
+    // 分页插件事件
+    callFather(parm) {
+      console.log(parm)
+      this.defaultParams.page.currPage = parm.currentPage;
+      this.defaultParams.page.pageSize = parm.pageSize;
+      this.getData(this.defaultParams);
+    },
+    // 搜索事件
+    search() {
+      this.getData(this.defaultParams);
+    },
+    //显示编辑界面
+    handleEdit(index, row) {
+      this.editFormVisible = true;
+      if(row){
+        this.isEdit = true
+        this.editForm = row;
+        console.log(row)
+      }else{
+        this.isEdit = false
+        this.editForm = {
+          admin:1,
+          orgCode:this.defaultParams.data.orgCode,
+          username:'',
+          memberName:''
+        }
+      }
+      
+    },
+
+    handleResetPsw(index,row){
+      console.log(row)
+      row.password = row.cellphone.substring(5,11)
+      updateLecturer(row)
+      .then(res => {
+        this.editFormVisible = false;
+        this.loading = false;
+        if (!res.error) {
+          this.getData(this.defaultParams);
+          this.$message({
+            type: "success",
+            message: "更新成功"
+          });
+        } else {
+          this.$message({
+            type: "info",
+            message: res.error.message
+          });
+        }
+      })
+      .catch(err => {
+        this.editFormVisible = false;
+        this.loading = false;
+        this.$message.error("更新失败,请稍后再试!");
+      });
+    },  
+
+    // 编辑、增加页面保存方法
+    submitForm(editData) {
+      this.$refs[editData].validate(valid => {
+        if (valid) {
+          updateLecturer(this.editForm)
+            .then(res => {
+              this.editFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "更新成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.editFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+
+    showAll(){
+      this.defaultParams =  {
+        data: {
+          cellphone: "",
+          account:"",
+          username:"",
+          id:""
+        },
+        page: {
+          pageSize: 10,
+          currPage: 1
+        }
+      }
+
+      this.getData(this.defaultParams)
+    },
+    // 关闭编辑、增加弹出框
+    closeDialog() {
+      this.editFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style>
+.el-popconfirm__action{
+  margin-top: 20px;
+}
+</style>
+<style scoped>
+.user-search {
+  margin-top: 20px;
+}
+.userRole {
+  width: 100%;
+}
+
+.img-avatar{
+  width: 50px;
+  height: 50px;
+  border-radius: 50%;
+}
+</style>
+
+ 
+ 

+ 3 - 5
src/views/login.vue

@@ -159,17 +159,15 @@ export default {
             this.$message.success("新用户请完善信息!");
             this.curSmsCode = smsCode
             this.curPhone = cellphone
+
             this.curTicket = res.result.data.ticket
             this.newUser = res.result.data.user
             this.isShowRegister = true
           } else {
-            // setTimeout(() => {
-            //   this.isLoginLoading = false;
-            //   this.$store.commit("login", "true");
-            //   this.$router.push({ path: "/goods/Goods" });
-            // }, 1000);
             localStorage.setItem('token',res.result.data.jwt.access_token)
+            localStorage.setItem('user',JSON.stringify(res.result.data.user))
             this.$message.error("登录成功!");
+            this.$store.commit("login", "true");
             this.$router.push({ path: "/goods/Goods" });
             this.isLoginLoading = false;
           }

+ 341 - 0
src/views/member/Member.vue

@@ -0,0 +1,341 @@
+/**
+ * 组织机构管理
+ */
+<template>
+  <div>
+    <!-- 面包屑导航 -->
+    <el-breadcrumb separator-class="el-icon-arrow-right">
+      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
+      <el-breadcrumb-item>成员管理</el-breadcrumb-item>
+    </el-breadcrumb>
+    <!-- 搜索筛选 -->
+    <el-form :inline="true" :model="defaultParams" class="user-search">
+      <el-form-item label="选择组织机构:">
+        <el-select v-model="defaultParams.data.orgCode" @change="onOrgChange" placeholder="请选择">
+          <el-option
+            v-for="item in orgList"
+            :key="item.code"
+            :label="item.name"
+            :value="item.code">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button size="small" type="primary" icon="el-icon-plus" @click="handleEdit()">添加成员</el-button>
+      </el-form-item>
+    </el-form>
+    <!--列表-->
+    <el-table
+      size="small"
+      :data="listData"
+      highlight-current-row
+      v-loading="loading"
+      border
+      element-loading-text="拼命加载中"
+      style="width: 100%;"
+    >
+      <el-table-column align="center" type="selection" width="60"></el-table-column>
+      <el-table-column prop="memberName" label="成员名">
+        <template slot-scope="scope">
+          <div>{{scope.row.memberName || '——'}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="username" label="用户名"></el-table-column>
+      <el-table-column prop="cellphone" label="手机号"></el-table-column>
+      <el-table-column sortable prop="createTime" label="创建时间" width="300">
+        <template slot-scope="scope">
+          <div>{{scope.row.createTime|timestampToTime}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="admin" label="是否管理员" width="100">
+        <template slot-scope="scope">
+          <div>{{scope.row.admin === 1 ? '是' : '否'}}</div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="status" label="状态" width="100">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'">{{scope.row.status === 1 ? '正常' : '停用'}}</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column align="center" label="操作" width="300">
+        <template slot-scope="scope">
+          <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+          <el-popconfirm
+            confirmButtonText='确认'
+            cancelButtonText='取消'
+            icon="el-icon-info"
+            iconColor="red"
+             @onConfirm="handleRemove(scope.$index, scope.row)"
+            title="确认移除该成员吗?">
+            <el-button slot="reference" size="mini" type="warning">移除</el-button>
+          </el-popconfirm>
+          <el-popconfirm
+            confirmButtonText='确认'
+            cancelButtonText='取消'
+            icon="el-icon-info"
+            iconColor="red"
+             @onConfirm="handleExit(scope.$index, scope.row)"
+            title="确认退出该组织吗?">
+            <el-button slot="reference" size="mini" type="danger">退出</el-button>
+          </el-popconfirm>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <Pagination v-bind:child-msg="pageparm" @callFather="callFather"></Pagination>
+    <!-- 编辑界面 -->
+    <el-dialog :title="isEdit ? '编辑' : '新增'" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
+      <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm" label-position="top">
+        <el-form-item label="成员名称" prop="memberName" v-show="isEdit">
+          <el-input size="small" v-model="editForm.memberName" auto-complete="off" placeholder="请输入成员名称"></el-input>
+        </el-form-item>
+        <el-form-item label="邀请成员手机号" prop="cellphone">
+          <el-input size="small" v-model="editForm.cellphone" auto-complete="off" placeholder="请输入成员手机号" :disabled="isEdit"></el-input>
+        </el-form-item>
+        <el-form-item label="是否管理员" prop="admin">
+          <el-switch v-model="editForm.admin" :active-value="1" :inactive-value="0"></el-switch>
+        </el-form-item>
+        <el-form-item label="当前状态" prop="status">
+          <el-switch v-model="editForm.status" :active-value="1" :inactive-value="0"></el-switch>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="small" @click="closeDialog">取消</el-button>
+        <el-button
+          size="small"
+          type="primary"
+          :loading="loading"
+          class="title"
+          @click="submitForm('editForm')"
+        >保存</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+// import { timestampToTime } from '../../utils/util'
+import { getOrgList , getMemberList , updateMember , removeMember , exitMember, addMember } from "../../api/basisMG";
+import Pagination from "../../components/Pagination";
+export default {
+  data() {
+    return {
+      isEdit:false,
+      loading: false, //是显示加载
+      editFormVisible: false, //控制编辑页面显示与隐藏
+      title: "添加",
+      editForm: {
+        memberName: "",
+        admin: 0,
+        status: 1,
+        cellphone:''
+      },
+      // rules表单验证
+      rules: {
+        name: [
+          { required: true, message: "请输入组织机构名称", trigger: "blur" }
+        ],
+        code: [{ required: true, message: "请输入组织机构代码", trigger: "blur" }]
+      },
+      orgList:[],
+      defaultParams: {
+        data: {
+          orgCode: "",
+        },
+        page: {
+          pageSize: 10,
+          currPage: 1
+        }
+      },
+      // 删除组织机构
+      seletedata: {
+        ids: "",
+        token: localStorage.getItem("logintoken")
+      },
+      userparm: [], //搜索权限
+      listData: [], //用户数据
+      // 分页参数
+      pageparm: {
+        currentPage: 1,
+        pageSize: 10,
+        total: 10
+      }
+    };
+  },
+  // 注册组件
+  components: {
+    Pagination
+  },
+  created() {
+    this.onGetOrgList()
+  },
+  methods: {
+
+    onGetOrgList(){
+      getOrgList({data:{},page:{pageSize: 100,currPage: 1}}).then(res => {
+        this.loading = false;
+        this.orgList = res.result.data;
+        this.defaultParams.data.orgCode = res.result.data[0].code
+        this.onOrgChange(this.defaultParams)
+      });
+    },
+    // 获取公司列表
+    getData(param) {
+      this.loading = true;
+      getMemberList(param).then(res => {
+        this.loading = false;
+        if(!res.error){
+          res.result.data.forEach(i => {
+            i.username = res.result.extend.lecturers.filter(j => j.unionid === i.unionid)[0].username
+            i.cellphone = res.result.extend.lecturers.filter(j => j.unionid === i.unionid)[0].cellphone
+
+          })
+          this.listData = res.result.data;
+          this.pageparm.currentPage = res.result.page.currPage;
+          this.pageparm.pageSize = res.result.page.pageSize;
+          this.pageparm.total = res.result.page.total;
+        }else{
+          this.$message.warning('数据报错')
+        }
+        
+      });
+    },
+
+    onOrgChange(val){
+        this.defaultParams.page.pageSize = 10
+        this.defaultParams.page.currPage = 1
+        this.getData(this.defaultParams)
+    },
+    // 分页插件事件
+    callFather(parm) {
+      console.log(parm)
+      this.defaultParams.page.currPage = parm.currentPage;
+      this.defaultParams.page.pageSize = parm.pageSize;
+      this.getData(this.defaultParams);
+    },
+    // 搜索事件
+    search() {
+      this.getData(this.defaultParams);
+    },
+    //显示编辑界面
+    handleEdit(index, row) {
+      this.editFormVisible = true;
+      if(row){
+        this.isEdit = true
+        this.editForm = row;
+        console.log(row)
+      }else{
+        this.isEdit = false
+        this.editForm = {
+          admin:1,
+          orgCode:this.defaultParams.data.orgCode,
+          username:'',
+          memberName:''
+        }
+      }
+      
+    },
+
+    handleRemove(index,row){
+      removeMember(row).then(res => {
+        if(!res.error){
+          this.$message.success('移除成功!')
+        }else{
+          this.$message.warning(res.error.message)
+        }
+          
+      })
+    },  
+
+    handleExit(index,row){
+      exitMember({unionid : row.unionid , orgCode : this.defaultParams.data.orgCode}).then(res => {
+        if(!res.error){
+          this.$message.success('退出成功!')
+        }else{
+          this.$message.warning(res.error.message)
+        }
+          
+      })
+    },  
+
+    // 编辑、增加页面保存方法
+    submitForm(editData) {
+      this.$refs[editData].validate(valid => {
+        if (valid) {
+          if(this.isEdit){
+          updateMember(this.editForm)
+            .then(res => {
+              this.editFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "更新成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.editFormVisible = false;
+              this.loading = false;
+              this.$message.error("更新失败,请稍后再试!");
+            });
+          }else{
+            this.editForm.cellphone = [this.editForm.cellphone]
+            addMember(this.editForm)
+            .then(res => {
+              this.editFormVisible = false;
+              this.loading = false;
+              if (!res.error) {
+                this.getData(this.defaultParams);
+                this.$message({
+                  type: "success",
+                  message: "添加成功"
+                });
+              } else {
+                this.$message({
+                  type: "info",
+                  message: res.error.message
+                });
+              }
+            })
+            .catch(err => {
+              this.editFormVisible = false;
+              this.loading = false;
+              this.$message.error("添加失败,请稍后再试!");
+            });
+          }
+        } else {
+          return false;
+        }
+      });
+    },
+    // 关闭编辑、增加弹出框
+    closeDialog() {
+      this.editFormVisible = false;
+    }
+  }
+};
+</script>
+
+<style>
+.el-popconfirm__action{
+  margin-top: 20px;
+}
+</style>
+<style scoped>
+.user-search {
+  margin-top: 20px;
+}
+.userRole {
+  width: 100%;
+}
+</style>
+
+ 
+