xiexiang преди 9 месеца
родител
ревизия
ac55c05140

+ 454 - 0
src/api/admin.js

@@ -0,0 +1,454 @@
+import axios from '@/utils/axios'
+
+export default {
+    /**
+     * 用户信息
+     */
+    getUserInfo() {
+        return axios.get('/permission/api/system/userinfo')
+    },
+    /**
+     * 修改密码
+     */
+    ChangePassword(params) {
+        return axios({
+            url: '/permission/api/admin/changePassword',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 重置密码
+     */
+    ResetPassword(params) {
+        return axios({
+            url: '/permission/api/admin/resetPassword',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 获取验证码
+     */
+    getVerifyCode() {
+        return axios.get('/permission/api/admin/verifyCode')
+    },
+    /**
+     * 获取用户权限
+     */
+    getPermissionList(params) {
+        return axios.get('/permission/api/system/getPermissionList', {params})
+    },
+    /**
+     * 用户登录
+     */
+    adminLogin(data) {
+        return axios.post('/permission/api/admin/login', data)
+    },
+    /**
+     * 判断是否用户登录
+     */
+    IsadminLogin(params) {
+        return axios({
+            url: '/permission/api/system/getLoginStatusByToken',
+            method: 'post',
+            params: params
+        })
+        // return axios.post('/permission/api/system/getLoginStatusByToken', params)
+    },
+    /**
+     * 退出登录
+     */
+    adminLogout() {
+        return axios.post('/permission/api/admin/logout')
+    },
+
+    /**
+     * 查询租户
+     */
+    getTenantList(params) {
+        return axios.get('/permission/api/tenant/queryPageList', {params})
+    },
+    /**
+     * 编辑租户
+     */
+    editTenant(data) {
+        return axios.post('/permission/api/tenant/update', data)
+    },
+    /**
+     * 新增租户
+     */
+    addTenant(data) {
+        return axios.post('/permission/api/tenant/add', data)
+    },
+    /**
+     * 删除租户
+     */
+    deleteTenant(params) {
+        return axios({
+            url: '/permission/api/tenant/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     * 查询应用
+     */
+    getApplyList(params) {
+        return axios.get('/permission/api/application/queryPageList', {params})
+    },
+    /**
+     * 通过应用ID查询关联租户
+     */
+    getAllTenantByApplicationId(params) {
+        return axios.get('/permission/api/application/getAllTenantByApplicationId', {params})
+    },
+    /**
+     * 编辑应用
+     */
+    editApply(data) {
+        return axios.post('/permission/api/application/update', data)
+    },
+    /**
+     * 新增应用
+     */
+    addApply(data) {
+        return axios.post('/permission/api/application/add', data)
+    },
+    /**
+     * 删除应用
+     */
+    deleteApply(params) {
+        return axios({
+            url: '/permission/api/application/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     * 查询功能
+     */
+    getFunctionList(params) {
+        return axios.get('/permission/api/function/queryPageList', {params})
+    },
+    /**
+     * 查询类型为展示的功能
+     */
+    getFuncListByTypeIsShow(params) {
+        return axios.get('/permission/api/function/getFuncListByTypeIsShow', {params})
+    },
+    /**
+     * 编辑功能
+     */
+    editFunction(data) {
+        return axios.post('/permission/api/function/update', data)
+    },
+    /**
+     * 新增功能
+     */
+    addFunction(data) {
+        return axios.post('/permission/api/function/add', data)
+    },
+    /**
+     * 删除功能
+     */
+    deleteFunction(params) {
+        return axios({
+            url: '/permission/api/function/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     * 查询部门
+     */
+    getDepartmentList(params) {
+        return axios.get('/permission/api/department/queryPageList', {params})
+    },
+    /**
+     * 编辑部门
+     */
+    editDepartment(data) {
+        return axios.post('/permission/api/department/update', data)
+    },
+    /**
+     * 新增部门
+     */
+    addDepartment(data) {
+        return axios.post('/permission/api/department/add', data)
+    },
+    /**
+     * 删除部门
+     */
+    deleteDepartment(params) {
+        return axios({
+            url: '/permission/api/department/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     * 查询职位
+     */
+    getPositionList(params) {
+        return axios.get('/permission/api/position/queryPageList', {params})
+    },
+    /**
+     * 编辑职位
+     */
+    editPosition(data) {
+        return axios.post('/permission/api/position/update', data)
+    },
+    /**
+     * 新增职位
+     */
+    addPosition(data) {
+        return axios.post('/permission/api/position/add', data)
+    },
+    /**
+     * 删除职位
+     */
+    deletePosition(params) {
+        return axios({
+            url: '/permission/api/position/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     * 查询人员
+     */
+    getPersonnelList(data) {
+        return axios.post('/permission/api/personnel/queryPageList', data)
+    },
+    /**
+     * 编辑人员
+     */
+    editPersonnel(data) {
+        return axios.post('/permission/api/personnel/update', data)
+    },
+    /**
+     * 新增人员
+     */
+    addPersonnel(data) {
+        return axios.post('/permission/api/personnel/add', data)
+    },
+    /**
+     * 删除人员
+     */
+    deletePersonnel(params) {
+        return axios({
+            url: '/permission/api/personnel/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     * 查询角色
+     */
+    getRoleList(params) {
+        return axios.get('/permission/api/role/queryPageList', {params})
+    },
+    /**
+     * 编辑角色
+     */
+    editRole(data) {
+        return axios.post('/permission/api/role/update', data)
+    },
+    /**
+     * 新增角色
+     */
+    addRole(data) {
+        return axios.post('/permission/api/role/add', data)
+    },
+    /**
+     * 删除角色
+     */
+    deleteRole(params) {
+        return axios({
+            url: '/permission/api/role/delete',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 获取功能数据列表
+     */
+    getDataList(params) {
+        return axios.post('/permission/api/data/getDataByFunctionIds', params)
+    },
+    /**
+     *
+     * 查询用户组
+     */
+    getGroupList(params) {
+        return axios.get('/permission/api/userGroup/queryPageList', {params})
+    },
+    /**
+     * 编辑用户组
+     */
+    editGroup(data) {
+        return axios.post('/permission/api/userGroup/update', data)
+    },
+    /**
+     * 新增用户组
+     */
+    addGroup(data) {
+        return axios.post('/permission/api/userGroup/add', data)
+    },
+    /**
+     * 删除用户组
+     */
+    deleteGroup(params) {
+        return axios({
+            url: '/permission/api/userGroup/delete',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     *
+     * 根据功能查字典
+     */
+    getDictList(params) {
+        return axios({
+            url: '/permission/api/data/getDataSources',
+            method: 'post',
+            params: params
+        })
+    },
+
+    /**
+     *
+     * 查询数据权限
+     */
+    getDataList(params) {
+        return axios.get('/permission/api/data/queryList', {params})
+    },
+    /**
+     * 编辑数据权限
+     */
+    editData(data) {
+        return axios.post('/permission/api/data/update', data)
+    },
+    /**
+     * 新增数据权限
+     */
+    addData(data) {
+        return axios.post('/permission/api/data/add', data)
+    },
+    /**
+     * 删除数据权限
+     */
+    deleteData(params) {
+        return axios({
+            url: '/permission/api/data/delete',
+            method: 'post',
+            params: params
+        })
+    },
+    /**
+     * 获取租户类型
+     */
+    getDict(params) {
+        return axios.get('/permission/api/system/getDict', {params})
+    },
+
+    /**
+     * 获取所有部门
+     */
+    getAllDepartmentList(params) {
+        return axios.get('/permission/api/department/getDepartmentList', {params})
+    },
+
+    /**
+     * 获取所有职位
+     */
+    getAllPositionList(params) {
+        return axios.get('/permission/api/position/getPositionList', {params})
+    },
+
+    /**
+     * 获取所有人员
+     */
+    getAllPersonnelList(params) {
+        return axios.get('/permission/api/personnel/getPersonnelList', {params})
+    },
+
+    /**
+     * 获取所有角色
+     */
+    getAllRoleList(params) {
+        return axios.get('/permission/api/role/getRoleList', {params})
+    },
+
+    /**
+     * 获取所有用户组
+     */
+    getAllUserGroupList(params) {
+        return axios.get('/permission/api/userGroup/getUserGroupList', {params})
+    },
+    /**
+     * 获取所有租户
+     */
+    getAllTenantList(params) {
+        return axios.get('/permission/api/tenant/getTenantList', {params})
+    },
+
+    /**
+     * 获取所有应用
+     */
+    getAllApplicationList(params) {
+        return axios.get('/permission/api/application/getApplicationList', {params})
+    },
+
+    /**
+     * 获取所有功能
+     */
+    getAllFunctionList(params) {
+        return axios.get('/permission/api/function/getFunctionList', {params})
+    },
+
+    /**
+     * 获取所有功能
+     */
+    addRolePersonnelBatch(params) {
+        return axios.post('/permission/api/role/addRolePersonnelBatch', params)
+    },
+    
+    /**
+     * 会员类别权限管理新增
+     */
+    addNewTenantVipType(params) {
+        return axios.post('/permission/api/tenantVipType/addNew', params)
+  },
+    
+    /**
+     * 会员类别权限管理查询
+     */
+    queryTenantVipType(params) {
+        return axios.post('/permission/api/tenantVipType/queryTenantVipType', params)
+  },
+    
+    /**
+     * 会员类别权限管理更新
+     */
+    updateNewTenantVipType(params) {
+        return axios.post('/permission/api/tenantVipType/update', params)
+  },
+    
+    /**
+     * 会员类别权限管理删除
+     */
+    deleteTenantVipType(params) {
+        return axios.get('/permission/api/tenantVipType/delete', {params})
+    },
+
+}

+ 33 - 0
src/api/department.js

@@ -0,0 +1,33 @@
+import axios from '@/utils/axios'
+
+export default {
+    /**
+     * 获取部门列表
+     * @param {*} data 
+     * @returns 
+     */
+    getDepartmentList(params){
+        return axios.get('/permission/api/department/queryPageList', {params})
+    },
+
+
+    /**
+     * 获取部门信息
+     * @param {*} data
+     * @returns
+     */
+    queryDepartmentInfo(params){
+        return axios.get('/permission/api/department/queryDepartmentInfo', {params})
+    },
+
+    //添加
+    addDepartment(data){
+        return axios.post('/permission/api/department/add', data)
+    },
+
+    //编辑
+    updateDepartment(data){
+        return axios.post('/permission/api/department/update', data)
+    },
+
+}

+ 7 - 1
src/api/index.js

@@ -7,6 +7,9 @@ import version from "./version";
 import vip from "./vipType";
 import file from "./file";
 import paymentCode from "./paymentCode";
+import department from "./department";
+import position from "./position";
+import admin from "./admin"
 
 
 export default {
@@ -17,5 +20,8 @@ export default {
   ...version,
   ...vip,
   ...file,
-  ...paymentCode
+  ...paymentCode,
+  ...department,
+  ...position,
+  ...admin
 }

+ 26 - 0
src/api/position.js

@@ -0,0 +1,26 @@
+import axios from '@/utils/axios'
+
+export default {
+    /**
+     * 获取职位列表
+     * @param {*} data 
+     * @returns 
+     */
+    getPositionList(params){
+        return axios.get('/permission/api/position/queryPageList', {params})
+    },
+
+    // /**
+    //  * 查询角色
+    //  */
+    // getRoleList(params) {
+    //     return axios.get('/permission/api/role/queryPageList', { params })
+    // },
+
+    // /**
+    //  * 用户信息
+    //  */
+    // getUserInfo() {
+    //     return axios.get('/permission/api/admin/userinfo')
+    // },
+}

+ 26 - 12
src/router/index.js

@@ -79,18 +79,32 @@ export const backStageManageRouterItem = [
         component: () => import('@/views/backStageManage/organization/personnel/index.vue'),
         meta: {title: '人员清单',icon: '人员'},
       },
-      // {
-      //   path: 'personnel',
-      //   name: 'Administrator_personnel',
-      //   component: () => import('@/views/backStageManage/organization/personnel/index.vue'),
-      //   meta: {title: '部门管理',icon: '部门'},
-      // },
-      // {
-      //   path: 'personnel',
-      //   name: 'Administrator_personnel',
-      //   component: () => import('@/views/backStageManage/organization/personnel/index.vue'),
-      //   meta: {title: '职位管理',icon: '职位'},
-      // },
+      {
+        path: 'department',
+        name: 'Administrator_department',
+        component: () => import('@/views/backStageManage/organization/department/index.vue'),
+        meta: {title: '部门管理',icon: '部门'},
+      },
+      {
+        path: 'addDepartment',
+        name: 'Administrator_addDepartment',
+        component: () => import('@/views/backStageManage/organization/department/addDepartment.vue'),
+        meta: {title: '添加部门',keepAlive:true},
+        hidden:true
+      },
+      {
+        path: 'editDepartment',
+        name: 'Administrator_editDepartment',
+        component: () => import('@/views/backStageManage/organization/department/editDepartment.vue'),
+        meta: {title: '编辑部门', keepAlive:true},
+        hidden:true
+      },
+      {
+        path: 'position',
+        name: 'Administrator_position',
+        component: () => import('@/views/backStageManage/organization/position/index.vue'),
+        meta: {title: '职位管理',icon: '职位'},
+      },
     ]
   },
 

+ 3 - 1
src/store/index.js

@@ -5,6 +5,7 @@ import getters from './getters'
 import app from './modules/app'
 import history from './modules/history'
 import permission from './modules/permission'
+import admin from './modules/admin'
 
 Vue.use(Vuex)
 
@@ -13,7 +14,8 @@ export default new Vuex.Store({
     user,
     app,
     history,
-    permission
+    permission,
+    admin
   },
   getters
 })

+ 23 - 0
src/store/modules/admin.js

@@ -0,0 +1,23 @@
+export default {
+  state: {
+    userinfo: {},
+    permission:"",
+    dictionaries:''
+  },
+
+  mutations: {
+    SET_ADMIN_USERINFO(state, userinfo) {
+      state.userinfo = userinfo
+    },
+    SET_ADMIN_PERMISSION(state,permission){
+      state.permission = permission
+    },
+    SET_ADMIN_DICTIONARIES(state,dictionaries){
+      state.dictionaries = dictionaries
+    }
+  },
+
+  actions: {
+
+  }
+}

+ 10 - 1
src/views/backStageManage/layout/Layout.vue

@@ -44,7 +44,16 @@ export default {
 
   },
   created(){
- },
+    this.getUserinfo()
+  },
+  methods:{
+    getUserinfo(){
+      this.$api.getUserInfo().then(response => {
+        localStorage.tenant = response.data.tenantId
+        this.$store.commit('SET_ADMIN_USERINFO', response.data)
+      })
+    },
+  }
 }
 </script>
 

+ 25 - 0
src/views/backStageManage/organization/department/addDepartment.vue

@@ -0,0 +1,25 @@
+<template>
+    <div>
+        <departmentFrom model="add"></departmentFrom>
+    </div>
+</template>
+
+<script>
+import departmentFrom from './components/department.vue';
+export default {
+    components: {
+        departmentFrom
+    },
+    props: {},
+    data() {
+        return {};
+    },
+    watch: {},
+    computed: {},
+    created() {},
+    mounted() {},
+    methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 195 - 0
src/views/backStageManage/organization/department/components/department.vue

@@ -0,0 +1,195 @@
+<template>
+    <div class="height_100">
+      <el-container>
+        <el-header>
+          <div class="header">
+            <el-form :inline="true">
+              <el-form-item label="部门名称:" prop="name">
+                <el-input v-model="queryParams.name" placeholder="请输入部门名称"/>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+                <el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd(0)">新增</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+        </el-header>
+        <el-main class="padding_10">
+          <el-table
+              ref="table"
+              :data="tableData"
+              row-key="id"
+              style="width: 100%"
+              max-height="calc(100% - 0)"
+              v-loading="loading"
+          >
+              <el-table-column prop="name" label="部门名称" align="" show-overflow-tooltip></el-table-column>
+              <el-table-column prop="tenantName" label="所属租户" align="center" show-overflow-tooltip></el-table-column>
+              <el-table-column label="角色" align="center" show-overflow-tooltip>
+                <template slot-scope="scope">
+                <span v-for="item in scope.row.roleList">{{item.name}}
+                </span>
+                </template>
+              </el-table-column>
+              <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column>
+              <el-table-column label="操作" align="center" width="280">
+                <template slot-scope="scope">
+                    <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row.id, scope.row)">新增</el-button>
+                    <el-button size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">修改</el-button>
+                    <el-button v-if="scope.row.id != 0" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
+                </template>
+              </el-table-column>
+          </el-table>
+        </el-main>
+        <el-footer class="pagination">
+                <el-pagination background layout="total, sizes, prev, pager, next, jumper"
+                :current-page.sync="queryParams.current" :page-size.sync="queryParams.size"
+                @current-change="handleCurrentChange" @size-change="changeSize" :total="total">
+                </el-pagination>
+        </el-footer>
+      </el-container>
+    </div>
+</template>
+  
+<script>
+export default {
+    components: {},
+    props: {},
+    data() {
+        return {
+            visible: false,
+            btnLoading: false,
+            // 遮罩层
+            loading: false,
+            // 总条数
+            total: 0,
+            lastName: '',
+            tableData: [],
+            // 查询参数
+            queryParams: {
+                current: 1,
+                size: 10,
+                name:''
+            },
+        };
+    },
+    watch: {},
+    computed: {},
+    created() {},
+    mounted() {
+        this.getList()
+    },
+    methods: {
+        /** 查询部门列表 */
+        getList() {
+            this.loading = true;
+            this.$api.getDepartmentList(this.queryParams).then(response=>{
+                if(response.code == 200){
+                    this.tableData = response.data
+                    var a = response.data
+                    for (var i = 0; i < a.length; i++) {
+                        function l(data){
+                            if (data.hasOwnProperty('children')) {
+                                for (var j = 0; j < data.children.length; j++) {
+                                    if(data.hasOwnProperty('last')){
+                                        data.children[i].last=data.last+'/'+data.name
+                                    }else{
+                                        data.children[i].last=data.name
+                                    }
+                                    l(data.children[i])
+                                }
+                            }
+                        }
+                        l(a[i])
+                    }
+                    this.total = response.pageColumn.total
+                    this.loading = false
+                }
+            }).catch(error=>{
+                this.tableData = []
+                this.total = 0
+                this.loading = false
+            })
+        },
+
+        //切换分页
+        handleCurrentChange(val){
+            this.queryParams.current = val
+            this.getList()
+        },
+
+        //切换也大小
+        changeSize(val){
+            this.queryParams.current = 1
+            this.queryParams.size = val
+            this.getList()
+        },
+
+        //排序
+        sortChange({ column, prop, order }){
+
+        },
+
+        // handleAdd(updepartmentId,row) {
+        //     console.log(row)
+        //     this.title = '新增部门'
+        //     this.visible = true
+        //     if(updepartmentId==0){
+        //         this.show=false
+        //         this.ruleForm = {
+        //             updepartment:updepartmentId
+        //         }
+        //     }else{
+        //         this.show=true
+        //         if(row.hasOwnProperty('last')){
+        //             this.lastName=row.last+'/'+row.name
+        //         }else{
+        //             this.lastName=row.name
+        //         }
+        //         this.ruleForm = {
+        //             updepartment:updepartmentId,
+        //             updepartmentName:row.name,
+        //             path:row.path
+        //         }
+        //     }
+        // },
+
+        /** 新增按钮操作 */
+        handleAdd(updepartmentId,row) {
+            this.$router.push('/administrator/addDepartment');
+        },
+
+        handleEdit(row) {
+            this.$router.push({ 
+                path: '/administrator/editDepartment', 
+                query: {
+                    id: row.id
+                }
+            });
+        },
+
+        /** 搜索按钮操作 */
+        handleQuery() {
+            this.queryParams.current = 1;
+            this.getList();
+        },
+
+        /** 重置按钮操作 */
+        resetQuery() {
+            this.queryParams.name = '';
+            this.handleQuery();
+        },
+
+       
+    },
+};
+</script>
+<style lang="scss" scoped>
+.header{
+    width: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+</style>

+ 199 - 0
src/views/backStageManage/organization/department/components/form/department.vue

@@ -0,0 +1,199 @@
+<template>
+    <div>
+        <div class="button-container" v-if="model != 'detail'">
+                <el-button type="primary" size="small" :loading="btnLoading" @click="submitForm">提 交</el-button>
+                <el-button size="small"  @click="init">重 置</el-button>
+        </div>
+        <div class="form_center" >
+            <el-form ref="form" :model="form" :rules="rules" label-position="left" label-width="100px" :class="model == 'detail'?'pointer_events_none':''">
+                <el-form-item label="所属租户" prop="tenant">
+                    <el-tooltip
+                        class="item"
+                        effect="dark"
+                        :disabled="!userinfo.tenantName"
+                        :content="userinfo.tenantName"
+                        placement="top-start"
+                        >
+                        <el-input v-model="userinfo.tenantName" placeholder="请输入所属租户" :readonly="true" ></el-input>
+                    </el-tooltip>
+                </el-form-item>
+        
+                <el-form-item label="所属部门" prop="updepartment" v-if="show==true">
+                    <el-input v-model="lastName" placeholder="请输入所属部门" :disabled="true"></el-input>
+                </el-form-item>
+                
+                <el-form-item label="部门名称" prop="name">
+                    <el-input v-model="form.name" placeholder="请输入部门名称"></el-input>
+                </el-form-item>
+
+                <el-form-item label="角色" prop="role">
+                    <el-select v-model="form.role" filterable multiple collapse-tags placeholder="请选择角色" :disabled="disabled" style="display:block">
+                        <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+                    </el-select>
+                </el-form-item>
+
+                <el-form-item label="备注:" prop="remark">
+                    <el-input v-model="form.remark" placeholder="请输入备注" maxlength="50" />
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+const currentForm = {
+    id:null,
+    name:null,
+    tenantId:null,
+    tenantName:null,
+    role:[],
+    roleList:[],
+    remark:null
+}
+export default {
+    components: {},
+    mixins:[],
+    props: {
+        id:"",
+        model:{
+            type:String,
+            default:"add"
+        },
+    },
+    data() {
+        return {
+            btnLoading: false,
+            // 表单参数
+            form: {},
+            lastName:'',
+            roleList:[],
+            // 表单校验
+            rules: {
+                name: [{ required: true, message: '请输入部门名称', trigger: 'blur' },],
+                parentId: [{ required: true, message: '请选择所属部门', trigger: 'change' },],
+            }
+        };
+    },
+    watch: {
+        id(){
+            if(this.$route.path != '/administrator/editDepartment'){
+                return
+            }
+            this.init()
+        },
+    },
+    computed: {
+        userinfo() {
+            return this.$store.state.admin.userinfo
+        }
+    },
+    created() {},
+    mounted() {
+       this.init()
+    },
+    methods: {
+        //初始化当前页面
+        async init(){
+            if(this.model == 'add'){
+                this.resetForm()
+            }else if(this.model == 'edit'){
+                await this.getById();
+            }
+        },
+        getById(){
+            if(!this.id){
+                this.$message.error('编辑缺少参数')
+                return
+            }
+            var params = {
+                id: this.id,
+            };
+            this.$api.queryDepartmentInfo(params).then(response=>{
+                if(response.code == 200){
+                    this.form = response.data;
+                }
+            }).catch(error=>{
+                this.resetForm()
+            })
+        },
+        //重置表单
+        resetForm(){
+            this.form = Object.assign({}, currentForm)
+            this.$refs['form'].resetFields();
+        },
+        /** 提交按钮 */
+        submitForm: function() {
+            this.$refs['form'].validate((valid) => {
+                if (valid) {
+                    this.btnLoading = true
+                    var a = '添加'
+                    var api = 'addDepartment'
+                    if(this.model == "edit"){
+                        a = '编辑'
+                        api = 'updateDepartment'
+                    }
+                    this.$api[api](this.form).then(response => {
+                        if (response.code === 200) {
+                            this.btnLoading = false
+                            this.$message.success( a + '成功');
+                            this.finish()
+                        }
+                    })
+                    .catch(error => {
+                        this.$message.error(a + '失败')
+                        this.btnLoading = false
+                    });
+                }
+            });
+        },
+
+        getTenantList(){
+            this.$api.getAllTenantList().then(response => {
+                this.tenantList = response.data
+            })
+        },
+
+        getRoleList() {
+            this.$api.getAllRoleList().then((response) => {
+            this.roleList = response.data;
+            var a = this.userinfo.rList.findIndex((item) => {
+                return item.roleId == 1;
+                });
+                if(a == -1){
+                    var b = this.roleList.findIndex(i=>{
+                    return i.id == 1
+                    })
+                    if(b !=-1){
+                    this.roleList[b].disabled=true
+                    }
+                    
+                }else{
+                    this.roleList[0].disabled=false
+                }
+            });
+        },
+    },
+};
+</script>
+<style lang="scss">
+.form_center {
+    width: 800px;
+    margin: 30px auto;
+}
+
+.button-container {
+    max-width: 1200px;
+    display: flex;
+    justify-content:flex-end;
+    margin: 10px auto;
+    position:sticky;
+    top:10px,
+}
+.form_item_title{
+    color: black;
+    font-weight: bold;
+    font-size: 14px;
+    padding: 5px 0;
+    border-bottom: 1px solid white;
+}
+</style>

+ 29 - 0
src/views/backStageManage/organization/department/editDepartment.vue

@@ -0,0 +1,29 @@
+<template>
+    <div>
+        <departmentForm :id="id" model="edit"></departmentForm>
+    </div>
+</template>
+
+<script>
+import departmentForm from './components/form/department.vue';
+export default {
+    components: {
+        departmentForm
+    },
+    props: {},
+    data() {
+        return {};
+    },
+    watch: {},
+    computed: {
+        id() {
+            return this.$route.query.id;
+        },
+    },
+    created() {},
+    mounted() {},
+    methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 26 - 0
src/views/backStageManage/organization/department/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <div class="height_100">
+    <department></department>
+  </div>
+</template>
+
+<script>
+import department from './components/department.vue';
+export default {
+  components: {
+    department
+  },
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 26 - 0
src/views/backStageManage/organization/position/index.vue

@@ -0,0 +1,26 @@
+<template>
+  <div class="height_100">
+    <position></position>
+  </div>
+</template>
+
+<script>
+import position from './position.vue';
+export default {
+  components: {
+    position
+  },
+  props: {},
+  data() {
+    return {
+    };
+  },
+  watch: {},
+  computed: {},
+  created() {},
+  mounted() {},
+  methods: {},
+};
+</script>
+<style lang="scss" scoped>
+</style>

+ 179 - 0
src/views/backStageManage/organization/position/position.vue

@@ -0,0 +1,179 @@
+<template>
+    <div class="height_100">
+      <el-container>
+        <el-header>
+          <div class="header">
+            <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  label-width="68px">
+              <el-form-item label="职位名称" prop="name">
+                <el-input v-model="queryParams.name" placeholder="请输入职位名称"/>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" icon="el-icon-search" size="mini" @click="search">搜索</el-button>
+                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+              </el-form-item>
+            </el-form>
+            
+            <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button type="primary" plain icon="el-icon-plus" size="small" @click="handleAdd">新增</el-button>
+              </el-col>
+            </el-row>
+          </div>
+        </el-header>
+        <el-main class="padding_10">
+          <el-table
+              ref="table"
+              :data="tableData"
+              row-key="id"
+              style="width: 100%"
+              max-height="calc(100% - 0)"
+              v-loading="loading"
+          >
+            <el-table-column prop="position" label="职位名称"></el-table-column>
+            <el-table-column label="角色" align="center" show-overflow-tooltip>
+                <template slot-scope="scope">
+                    <span v-for="item in scope.row.roleList">{{item.name}}
+                    </span>
+                </template>
+            </el-table-column>
+            <el-table-column  label="是否唯一" align="center" show-overflow-tooltip>
+                <template slot-scope="scope">
+                    <span style="margin-left: 10px" v-if="scope.row.ismore==0">否</span>
+                    <span style="margin-left: 10px" v-if="scope.row.ismore==1">是</span>
+                </template>
+            </el-table-column>
+            <el-table-column prop="tenantName" label="所属租户" align="center" show-overflow-tooltip></el-table-column>
+            <el-table-column prop="describe" label="描述" align="center" show-overflow-tooltip></el-table-column>
+
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+                <template slot-scope="scope">
+                    <el-button size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">修改</el-button>
+                    <el-button v-if="scope.row.id != 0" size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+    </el-main>
+    <el-footer class="pagination">
+        <div>
+            <el-pagination background layout="total, sizes, prev, pager, next, jumper"
+                :current-page.sync="queryParams.current" :page-size.sync="queryParams.size"
+                @current-change="handleCurrentChange" @size-change="changeSize" :total="total">
+            </el-pagination>
+        </div>
+    </el-footer>
+    </el-container>
+</div>
+</template>
+
+<script>
+export default {
+    components: {},
+    props: {
+    },
+    data() {
+        return {
+        // 遮罩层
+        loading: false,
+        // 总条数
+        total: 0,
+        tableData: [],
+        // 查询参数
+        queryParams: {
+            current: 1,
+            size: 10,
+            name:'',
+            tenant:''
+        },
+        };
+    },
+    watch: {},
+    computed: {},
+    created() {},
+    mounted() {
+        this.getList()
+    },
+    methods: {
+        //检索
+        search(){
+            this.queryParams.current = 1
+            this.getList()
+        },
+
+        /** 查询职位列表 */
+        getList() {
+            this.loading = true
+            this.$api.getPositionList(this.queryParams).then(response => {
+                this.tableData = response.data
+                this.total = response.pageColumn.total
+                this.loading = false
+            }).catch(error => {
+                this.loading = false
+            })
+        },
+
+        //切换分页
+        handleCurrentChange(val){
+            this.queryParams.current = val
+            this.getList()
+        },
+
+        //切换也大小
+        changeSize(val){
+            this.queryParams.current = 1
+            this.queryParams.size = val
+            this.getList()
+        },
+
+        //排序
+        sortChange({ column, prop, order }){
+
+        },
+
+        /** 新增按钮操作 */
+        handleAdd() {},
+
+        handleEdit(row) {},
+
+        //删除
+        handleDelete(row){},
+
+        //删除
+        removeVersions(ids){
+            this.$confirm('确认删除选择的数据吗?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                    this.loading = true
+                //     this.$api.removeVersions(ids).then(response => {
+                //     this.$message.success('删除成功')
+                //     this.loading = false
+                //     this.getList()
+                // }).catch(error => {
+                //     this.loading = false
+                // })
+            })
+        },
+
+        /** 搜索按钮操作 */
+        handleQuery() {
+            this.queryParams.current = 1;
+            this.getList();
+        },
+
+        /** 重置按钮操作 */
+        resetQuery() {
+            this.queryParams.name = '';
+            this.handleQuery();
+        }
+    },
+};
+</script>
+<style lang="scss" scoped>
+.header{
+width: 100%;
+display: flex;
+align-items: center;
+justify-content: space-between;
+}
+</style>