zhangqiOMG 3 years ago
parent
commit
74d9ea17b9
33 changed files with 662 additions and 430 deletions
  1. 1 1
      src/Form/marketing2/agent/add.vue
  2. 3 2
      src/HManagement/accountManage/modules/account_detail.vue
  3. 1 1
      src/HManagement/accountManage/modules/add.vue
  4. 1 1
      src/HManagement/accountManage/modules/unuseAccount.vue
  5. 1 1
      src/HManagement/accountManage/modules/useAccdount.vue
  6. 110 0
      src/HManagement/department/bak/index copy.vue
  7. 59 68
      src/HManagement/department/index.vue
  8. 2 1
      src/HManagement/department/modules/del_dep.vue
  9. 4 4
      src/HManagement/department/modules/dep_list.vue
  10. 3 2
      src/HManagement/department/modules/edit_dep.vue
  11. 3 2
      src/HManagement/department/modules/start_dep.vue
  12. 50 0
      src/HManagement/department/staff/detail/index copy.vue
  13. 102 28
      src/HManagement/department/staff/detail/index.vue
  14. 3 3
      src/HManagement/department/staff/detail/modules/createUser.vue
  15. 1 1
      src/HManagement/department/staff/detail/modules/linkAccount.vue
  16. 15 45
      src/HManagement/department/staff/detail/modules/main.vue
  17. 95 93
      src/HManagement/department/staff/list/modules/add.vue
  18. 96 96
      src/HManagement/department/staff/list/modules/edit.vue
  19. 0 19
      src/HManagement/marketing2/agent/index.vue
  20. 0 21
      src/HManagement/marketing2/saler/index.vue
  21. 4 4
      src/HManagement/marketing2/salerScope/index.vue
  22. 2 1
      src/HManagement/roleManage/modules/auth_list.vue
  23. 0 1
      src/HManagement/roleManage/modules/role_details.vue
  24. 4 1
      src/components/newLayout/index.vue
  25. 37 2
      src/components/normal-basic-layout/details/index.vue
  26. 10 0
      src/components/normal-basic-layout/drawerDetail/index.vue
  27. 1 0
      src/components/normal-basic-layout/modules/cpAdd.vue
  28. 0 4
      src/components/normal-basic-layout/modules/table.vue
  29. 33 6
      src/components/selectMenber/modules/dep_list.vue
  30. 1 2
      src/components/selectMenber/staff/list/list.vue
  31. 10 18
      src/router/HManagement.js
  32. 9 1
      src/store/index.js
  33. 1 1
      src/style/style.css

+ 1 - 1
src/Form/marketing2/agent/add.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button type="primary" size="mini" @click="onShow">新 建</el-button>
+    <el-button type="primary" size="small" @click="onShow">新 建</el-button>
     <el-dialog title="创建经销商" append-to-body :visible.sync="dialogVisible">
       <el-row :gutter="20">
         <el-form :model="form" ref="form" :rules="rules" size="small" label-position="left" label-width="100px" class="demo-form-inline">

+ 3 - 2
src/HManagement/accountManage/modules/account_detail.vue

@@ -7,6 +7,7 @@
       :editData="mainData"
       :mainAreaData="mainAreaData"
       turnPageId="20221031141102"
+      delApiId="20221031141202"
       idname="userid"
       ownertable="sys_users"
       tags=""
@@ -33,9 +34,9 @@
       </div>
       <div class="container normal-panel" slot="slot1" >
         <tableLayout :layout="table_roleinfo" :data="roleData" :opwidth="200" :custom="false">
-          <template v-slot:opreation="scope">
+          <!-- <template v-slot:opreation="scope">
             <el-button type="text" size="small" @click="$router.push({path:'/roleDetail',query:{id:scope.data.roleid}})">详 情</el-button>
-          </template>
+          </template> -->
         </tableLayout>
       </div>
     </basicDetails>

+ 1 - 1
src/HManagement/accountManage/modules/add.vue

@@ -4,7 +4,7 @@
     <el-drawer
       title="创建用户"
       :visible.sync="drawer"
-      width="864px"
+      size="800px"
       direction="rtl"
       append-to-body
       @close="onClose">

+ 1 - 1
src/HManagement/accountManage/modules/unuseAccount.vue

@@ -1,5 +1,5 @@
 <template>
-  <div v-if="data.status === 'ACTIVE'">
+  <div class="inline-16" v-if="data.status === 'ACTIVE'">
     <el-popconfirm
       title="确定停用当前选中账号吗?"
       @confirm="stop()">

+ 1 - 1
src/HManagement/accountManage/modules/useAccdount.vue

@@ -1,5 +1,5 @@
 <template>
-  <div  v-if="data.status === 'INACTIVE'">
+  <div class="inline-16" v-if="data.status === 'INACTIVE'">
     <el-popconfirm
       title="确定启用当前选中账号吗?"
       @confirm="start()">

+ 110 - 0
src/HManagement/department/bak/index copy.vue

@@ -0,0 +1,110 @@
+<template>
+  <div class="flex">
+    <dep-list ref="list" style="width:180px;flex:0 1 auto" @onClick="onClick">
+      <template v-slot:operation="data">
+        <addDep v-if="tool.checkAuth($route.name,'addDep')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addDep>
+      </template>
+    </dep-list>
+    <div class="hm-info-panel">
+      <div class="container normal-panel normal-margin sticky">
+        <editDep v-if="tool.checkAuth($route.name,'editDep')" class="inline-16" :data="depInfo.data" @editSuccess="editSuccess"></editDep>
+        <delDep  v-if="tool.checkAuth($route.name,'delDep')" class="inline-16" :data="depInfo.data" @onSuccess="onSuccess"></delDep>
+        <startDep v-if="tool.checkAuth($route.name,'editDep')" class="inline-16" :data="depInfo.data" @stopOrStart="stopOrStart"></startDep>
+      </div>
+      <dep-info-card class="normal-margin" :depInfo='depInfo'></dep-info-card>
+      <staffList :depInfo="depInfo" ref="staff">
+        <template v-slot:detail="scope">
+          <div class="inline-16">
+            <el-button  type="text" size="mini" @click="$router.push({path:'/depManage/staffDetail',query:{id:scope.data.hrid}})">详 情</el-button>
+          </div>
+        </template>
+        <add-staff v-if="tool.checkAuth($route.name,'addStaff')" slot="staff" :depInfo="depInfo" @onSuccess="onStaffSuccess"></add-staff>
+        <template v-slot:del="scope">
+          <del-staff  v-if="tool.checkAuth($route.name,'delStaff')" slot="del" :data="scope.data" @onSuccess="onStaffSuccess"></del-staff>
+        </template>
+        <template v-slot:edit="scope">
+          <edit-staff v-if="tool.checkAuth($route.name,'editStaff')" slot="edit" :data="scope.data" @onSuccess="onStaffSuccess"></edit-staff>
+        </template>
+  
+      </staffList>
+    </div>
+  </div>
+</template>
+
+<script>
+import depList from '../modules/dep_list.vue'
+import staffList from '../staff/list/list.vue'
+
+import depInfoCard from '../modules/dep_info.vue'
+
+import addDep from '../modules/add_dep.vue'
+import delDep from '../modules/del_dep.vue'
+import editDep from '../modules/edit_dep.vue'
+import startDep from '../modules/start_dep.vue'
+
+import addStaff from '../staff/list/modules/add.vue'
+import delStaff from '../staff/list/modules/del.vue'
+import editStaff from '../staff/list/modules/edit.vue'
+
+export default {
+  components:{
+    depList,
+    depInfoCard,
+    staffList,
+    addDep,
+    delDep,
+    editDep,
+    addStaff,
+    delStaff,
+    editStaff,
+    startDep
+  },
+  data () {
+    return {
+      depInfo:{
+        data:null,
+        parent:{
+          data:{}
+        }
+      }
+    }
+  },
+  methods:{
+    onClick (data) {
+      this.depInfo = data
+      this.$refs.staff.listData(this.depInfo.data.departmentid)
+    },
+    onSuccess () {
+      this.$refs.list.department()
+    },
+    editSuccess (form) {
+      this.$refs.list.department(()=>{
+        form.label = form.depname
+        this.depInfo.data = Object.assign({},this.depInfo.data,form)
+        this.$emit('onClick',this.depInfo)
+        this.$refs['list'].setCurrentKey(form.departmentid)
+      })
+    },
+    stopOrStart(status) {
+      status === 1?this.depInfo.data.isused = 0:this.depInfo.data.isused = 1
+    },
+    onStaffSuccess () {
+      this.$refs.staff.listData(this.depInfo.data.departmentid)
+    },
+  }
+}
+
+</script>
+<style>
+</style>
+<style scoped>
+.flex{
+  display: flex;
+}
+.hm-info-panel{
+  flex:1;
+  width:500px;
+  height:calc(100vh - 100px);
+  overflow-y:scroll
+}
+</style>

+ 59 - 68
src/HManagement/department/index.vue

@@ -1,96 +1,87 @@
 <template>
   <div class="flex">
-    <dep-list ref="list" style="width:180px;flex:0 1 auto" @onClick="onClick">
+    <!-- 营销区域列表 -->
+    <areaTree ref="arealist" style="width:250px;flex:0 1 auto" @onClick="onClick">
       <template v-slot:operation="data">
-        <addDep v-if="tool.checkAuth($route.name,'addDep')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addDep>
+        <!-- 新增区域 -->
+        <addArea v-if="tool.checkAuth($route.name,'addDep')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addArea>
+        <el-dropdown>
+          <span class="el-dropdown-link"><i class="el-icon-more"></i>
+          </span>
+          <el-dropdown-menu slot="dropdown">
+            <el-dropdown-item>
+              <editArea v-if="tool.checkAuth($route.name,'editDep')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></editArea>
+            </el-dropdown-item>
+            <el-dropdown-item>
+              <delArea  v-if="tool.checkAuth($route.name,'delDep')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></delArea>
+            </el-dropdown-item>
+            <el-dropdown-item >
+              <startArea v-if="tool.checkAuth($route.name,'editDep')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></startArea>
+            </el-dropdown-item>
+          </el-dropdown-menu>
+        </el-dropdown>
       </template>
-    </dep-list>
+    </areaTree>
     <div class="hm-info-panel">
-      <div class="container normal-panel normal-margin sticky">
-        <editDep v-if="tool.checkAuth($route.name,'editDep')" class="inline-16" :data="depInfo.data" @editSuccess="editSuccess"></editDep>
-        <delDep  v-if="tool.checkAuth($route.name,'delDep')" class="inline-16" :data="depInfo.data" @onSuccess="onSuccess"></delDep>
-        <startDep v-if="tool.checkAuth($route.name,'editDep')" class="inline-16" :data="depInfo.data" @stopOrStart="stopOrStart"></startDep>
-      </div>
-      <dep-info-card class="normal-margin" :depInfo='depInfo'></dep-info-card>
-      <staffList :depInfo="depInfo" ref="staff">
-        <template v-slot:detail="scope">
-          <div class="inline-16">
-            <el-button  type="text" size="mini" @click="$router.push({path:'/depManage/staffDetail',query:{id:scope.data.hrid}})">详 情</el-button>
+      <basicLayout 
+        ref="basicLayout" 
+        :oldFormPath="{
+          add:'HManagement/department/staff/list/modules'
+        }"
+        tableName="staffTable" 
+        idName="hrid"
+        :detailPath="{path:'/depManage/staffDetail',param:{depid:areaInfo.departmentid}}"
+        :apiId="{query:20221102090303,del:20221102090403}"
+        :autoQuery="false"
+        :options="options">
+        <div slot="custom"></div>
+        <template v-slot:tbList="scope">
+          <div>
+            <p v-if="scope.data.column.columnname === 'province'">
+              {{`${scope.data.column.data.province}-${scope.data.column.data.city}-${scope.data.column.data.county}`}}
+            </p>
+            <p v-else>{{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}</p>
           </div>
         </template>
-        <add-staff v-if="tool.checkAuth($route.name,'addStaff')" slot="staff" :depInfo="depInfo" @onSuccess="onStaffSuccess"></add-staff>
-        <template v-slot:del="scope">
-          <del-staff  v-if="tool.checkAuth($route.name,'delStaff')" slot="del" :data="scope.data" @onSuccess="onStaffSuccess"></del-staff>
-        </template>
-        <template v-slot:edit="scope">
-          <edit-staff v-if="tool.checkAuth($route.name,'editStaff')" slot="edit" :data="scope.data" @onSuccess="onStaffSuccess"></edit-staff>
-        </template>
-  
-      </staffList>
+      </basicLayout>
     </div>
   </div>
 </template>
 
 <script>
-import depList from './modules/dep_list.vue'
-import staffList from './staff/list/list.vue'
-
-import depInfoCard from './modules/dep_info.vue'
-
-import addDep from './modules/add_dep.vue'
-import delDep from './modules/del_dep.vue'
-import editDep from './modules/edit_dep.vue'
-import startDep from './modules/start_dep.vue'
-
-import addStaff from './staff/list/modules/add.vue'
-import delStaff from './staff/list/modules/del.vue'
-import editStaff from './staff/list/modules/edit.vue'
+import areaTree from './modules/dep_list'
+import addArea from './modules/add_dep'
+import editArea from './modules/edit_dep'
+import startArea from './modules/start_dep'
+import delArea from './modules/del_dep'
 
 export default {
   components:{
-    depList,
-    depInfoCard,
-    staffList,
-    addDep,
-    delDep,
-    editDep,
-    addStaff,
-    delStaff,
-    editStaff,
-    startDep
+    areaTree,
+    addArea,
+    editArea,
+    delArea,
+    startArea,
   },
   data () {
     return {
-      depInfo:{
-        data:null,
-        parent:{
-          data:{}
-        }
-      }
+      options:[],
+      areaInfo:{}
     }
   },
   methods:{
     onClick (data) {
-      this.depInfo = data
-      this.$refs.staff.listData(this.depInfo.data.departmentid)
+      this.areaInfo = data
+      this.$refs['basicLayout'].param.content.departmentids = [data.departmentid]
+      this.$refs['basicLayout'].param.content.containssub = 1
+      this.$refs['basicLayout'].listData()
+      this.$store.dispatch('sendDataToForm',data)
     },
     onSuccess () {
-      this.$refs.list.department()
-    },
-    editSuccess (form) {
-      this.$refs.list.department(()=>{
-        form.label = form.depname
-        this.depInfo.data = Object.assign({},this.depInfo.data,form)
-        this.$emit('onClick',this.depInfo)
-        this.$refs['list'].setCurrentKey(form.departmentid)
+      this.$refs.arealist.department(()=>{
+        this.$refs.arealist.setCurrentKey(this.areaInfo.departmentid)
       })
-    },
-    stopOrStart(status) {
-      status === 1?this.depInfo.data.isused = 0:this.depInfo.data.isused = 1
-    },
-    onStaffSuccess () {
-      this.$refs.staff.listData(this.depInfo.data.departmentid)
-    },
+    }
   }
 }
 

+ 2 - 1
src/HManagement/department/modules/del_dep.vue

@@ -1,7 +1,8 @@
 <template>
   <div>
     <!-- <i style="font-weight:bold" class="el-icon-delete" @click="() => append()"></i> -->
-    <el-button size="small" icon="el-icon-delete" @click="() => append()">删 除</el-button>
+    <!-- <el-button size="small" type="text" icon="el-icon-delete" @click="() => append()">删 除</el-button> -->
+    <p  @click="() => append()"><i style="font-weight:bold" class="el-icon-delete">&nbsp;删 除</i></p>
   </div>
 </template>
 

+ 4 - 4
src/HManagement/department/modules/dep_list.vue

@@ -42,10 +42,9 @@ export default {
       })
       // 数据格式转换成elementui-tree所需的格式
       this.deplist = this.createMenu(res.data)
-      console.log(this.deplist);
       
       this.$store.dispatch('setDeplistData',this.deplist)
-      callback()
+      callback?callback():""
     },
     createMenu (array) {
       var that = this
@@ -83,7 +82,8 @@ export default {
       return arr
     },
     handleClick (row,node,VueComponent) {
-      this.$emit('onClick',node)
+      console.log(row)
+      this.$emit('onClick',row)
     },
     setCurrentKey (id) {
       this.currentKey = id
@@ -96,7 +96,7 @@ export default {
   },
   mounted () {
     this.department(()=>{
-      this.$emit('onClick',{data:this.deplist[0],parent:[]})
+      this.$emit('onClick',{departmentid:this.deplist[0].departmentid})
       this.setCurrentKey(this.deplist[0].departmentid)
     })
   }

+ 3 - 2
src/HManagement/department/modules/edit_dep.vue

@@ -1,7 +1,8 @@
 <template>
   <div>
     <!-- <i style="font-weight:bold" class="el-icon-edit" @click="() => append()"></i> -->
-    <el-button size="small" icon="el-icon-edit" @click="() => append()">编 辑</el-button>
+    <!-- <el-button size="small"  type="text" icon="el-icon-edit" @click="() => append()">编 辑</el-button> -->
+    <p  @click="() => append()"><i style="font-weight:bold" class="el-icon-edit">&nbsp;编 辑</i></p>
     <el-dialog title="编辑部门" append-to-body width="864px" :visible.sync="dialogDepVisible">
       <el-row :gutter="20">
         <el-form :model="form" :rules="rules" ref="form" size="small" label-width="100px" label-position="left">
@@ -77,7 +78,7 @@ export default {
           "content": this.form
         })
         this.tool.showMessage(res,()=>{
-          this.$emit('editSuccess',this.form)
+          this.$emit('onSuccess',this.form)
           this.dialogDepVisible = false
         })
       });

+ 3 - 2
src/HManagement/department/modules/start_dep.vue

@@ -1,7 +1,8 @@
 <template>
   <div>
     <!-- <i style="font-weight:bold" class="el-icon-delete" @click="() => append()"></i> -->
-    <el-button v-if="data" size="small" :icon="data.isused === 1?'el-icon-circle-close':'el-icon-circle-check'" @click="() => append()">{{data.isused === 1?'停 用':'启 用'}}</el-button>
+    <!-- <el-button v-if="data" size="small"  type="text" :icon="data.isused === 1?'el-icon-circle-close':'el-icon-circle-check'" @click="() => append()">{{data.isused === 1?'停 用':'启 用'}}</el-button> -->
+    <p  @click="() => append()"><i style="font-weight:bold" :class="data.isused === 1?'el-icon-circle-close':'el-icon-circle-check'">&nbsp;{{data.isused === 1?'停 用':'启 用'}}</i></p>
   </div>
 </template>
 
@@ -31,7 +32,7 @@ export default {
           "content": this.form
         })
         this.tool.showMessage(res,()=>{
-          this.$emit('stopOrStart',this.data.isused)
+          this.$emit('onSuccess',this.data.isused)
         })
       }).catch(() => {
         this.$message({

+ 50 - 0
src/HManagement/department/staff/detail/index copy.vue

@@ -0,0 +1,50 @@
+<template>
+  <mianStaff ref="main">
+    <template v-slot:edit="scope">
+      <div class="container normal-panel normal-margin" v-if="tool.checkAuth($route.name,'editStaff')">
+        <editStaff  :data="scope.data" :type="'btn'" @onSuccess="query_hrMain"></editStaff>
+      </div>
+    </template>
+     <template v-slot:createuser="scope">
+        <createUser  v-if="tool.checkAuth($route.name,'editStaff') && !scope.data.userid" :data="scope.data"  @onSuccess="query_hrMain"></createUser>
+     </template>
+    <template v-slot:linkact="scope">
+      <linkAccount v-if="tool.checkAuth($route.name,'editStaff')"  :data="scope.data"  @onSuccess="query_hrMain"></linkAccount>
+    </template>
+    <restPas slot="restpas" v-if="tool.checkAuth($route.name,'restpas')"></restPas>
+  </mianStaff>
+</template>
+
+<script>
+import mianStaff from './modules/main.vue'
+import editStaff from "../list/modules/edit.vue"
+import restPas from "./modules/restPassword.vue"
+import linkAccount from "./modules/linkAccount.vue"
+import createUser from "./modules/createUser.vue"
+
+export default {
+  components:{
+    mianStaff,
+    editStaff,
+    restPas,
+    linkAccount,
+    createUser
+  },
+  data () {
+    return {
+      mainInfo:{}
+    }
+  },
+  methods:{
+    query_hrMain () {
+      this.$refs.main.query_hrMain()
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+.user-panel .el-descriptions__title{width: 100%;}
+</style>

+ 102 - 28
src/HManagement/department/staff/detail/index.vue

@@ -1,50 +1,124 @@
 <template>
-  <mianStaff ref="main">
-    <template v-slot:edit="scope">
-      <div class="container normal-panel normal-margin" v-if="tool.checkAuth($route.name,'editStaff')">
-          <editStaff  :data="scope.data" :type="'btn'" @onSuccess="query_hrMain"></editStaff>
+  <div>
+    <basicDetails
+        ref="details"
+        :titleText="`${mainData.name}${mainData.hrcode}`"
+        :oldFormPath="{edit:'HManagement/department/staff/list/modules'}"
+        :editData="mainData"
+        :mainAreaData="mainAreaData"
+        turnPageId="20221102090303"
+        idname="hrid"
+        ownertable="sys_hr"
+        tags=""
+        :tabs="['基础信息']"
+        @pageChange="pageChange"
+        @onEditSuccess="queryMainData($route.query.id)">
+      <div slot="tags">
       </div>
-    </template>
-     <template v-slot:createuser="scope">
-        <createUser  v-if="tool.checkAuth($route.name,'editStaff') && !scope.data.userid" :data="scope.data"  @onSuccess="query_hrMain"></createUser>
-     </template>
-    <template v-slot:linkact="scope">
-      <linkAccount v-if="tool.checkAuth($route.name,'editStaff')"  :data="scope.data"  @onSuccess="query_hrMain"></linkAccount>
-    </template>
-    <restPas slot="restpas" v-if="tool.checkAuth($route.name,'restpas')"></restPas>
-  </mianStaff>
+      <div slot="customOperation" >
+        <linkAccount class="inline-16" v-if="tool.checkAuth($route.name,'update')"  :data="mainData"  @onSuccess="queryMainData"></linkAccount>
+        <createUser class="inline-16" v-if="tool.checkAuth($route.name,'update') && !mainData.userid" :data="mainData"  @onSuccess="queryMainData"></createUser>
+      </div>
+      <div class="container normal-panel" slot="slot0" >
+        <baseInfo :mainInfo="mainData"></baseInfo>
+      </div>
+    </basicDetails>
+  </div>
 </template>
 
 <script>
-import mianStaff from './modules/main.vue'
-import editStaff from "../list/modules/edit.vue"
+import baseInfo from './modules/main.vue'
 import restPas from "./modules/restPassword.vue"
 import linkAccount from "./modules/linkAccount.vue"
 import createUser from "./modules/createUser.vue"
-
 export default {
+  name: "detail",
+  data() {
+    return {
+      mainData:{},
+      mainAreaData:{}
+    }
+  },
   components:{
-    mianStaff,
-    editStaff,
+    baseInfo,
     restPas,
     linkAccount,
     createUser
   },
-  data () {
-    return {
-      mainInfo:{}
-    }
-  },
   methods:{
-    query_hrMain () {
-      this.$refs.main.query_hrMain()
+    async queryMainData(id) {
+      const res = await this.$api.requested({
+        "classname": "webmanage.hr.hr",
+        "method": "query_hrMain",
+        "content": {
+          "hrid":this.$route.query.id
+        }
+      })
+      this.mainData = res.data
+      this.$refs['details'].param.content.containssub = 1
+      this.$refs['details'].param.content.departmentids = [this.$route.query.depid]
+      this.changeDataStructure()
+    },
+    changeDataStructure() {
+      this.mainAreaData = [
+        {
+          label:'电话',
+          value:this.mainData.phonenumber
+        },
+        {
+          label:'办公电话',
+          value:this.mainData.officetelephone
+        },
+        {
+          label:'部门',
+          value:this.mainData.depname
+        },
+        {
+          label:'职位',
+          value:this.mainData.position
+        },
+        {
+          label:'是否部门负责人',
+          value:this.mainData.isleader === 1?'是':'否'
+        },
+        {
+          label:'电子邮箱',
+          value:this.mainData.email
+        },
+        {
+          label:'汇报对象',
+          value:this.mainData.reporthrname
+        },
+        {
+          label:'身份证号',
+          value:this.mainData.idcard
+        },
+        {
+          label:'性别',
+          value:this.mainData.sex
+        }
+      ]
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex) {
+      this.flag = false
+      this.$router.replace({path:'/depManage/staffDetail',query:{id:id,rowindex:rowindex,depid:this.$route.query.depid}})
+      this.queryMainData(id)
+    },
+    onSuccess(){
+      this.visible = false
+      this.queryMainData(this.$route.query.id)
+      this.$emit('onSuccess')
     }
   },
   mounted () {
+    this.queryMainData(this.$route.query.id)
+  },
+  created() {
   }
 }
-
 </script>
-<style>
-.user-panel .el-descriptions__title{width: 100%;}
+
+<style scoped>
+
 </style>

+ 3 - 3
src/HManagement/department/staff/detail/modules/createUser.vue

@@ -1,17 +1,17 @@
 <template>
-  <div class="inline-16">
-    <el-button type="primary" size="small" @click="onShow">一键创建账号</el-button>
+  <div>
+    <el-button type="success" size="mini" @click="onShow">一键创建账号</el-button>
     <el-dialog
       title="授权角色"
       :visible.sync="drawer"
       width="564px"
+      append-to-body
       @close="onClose">
       <div>
         <el-row :gutter="50">
           <el-form :model="form" :rules="rules" ref="form"  size="mini" label-position="left">
             <el-col :span="24">
               <el-form-item label="授权角色" label-width="100px" prop="roleids">
-                <!-- <el-input v-model="form.sex" autocomplete="off" placeholder="输入性别"></el-input> -->
                 <el-select v-model="form.roleids" style="width:100%" placeholder="请选择" multiple>
                   <el-option
                     v-for="item in options"

+ 1 - 1
src/HManagement/department/staff/detail/modules/linkAccount.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" icon="el-icon-link" type="primary" style="background:#52C41A;border:1px solid #52C41A;float:right" @click="onShow">关联账号</el-button>
+    <el-button size="mini" icon="el-icon-link" type="primary"  @click="onShow">关联账号</el-button>
     <el-dialog title="绑定账号" append-to-body :visible.sync="dialogTableVisible">
       <tableLayout :layout="tablecols" :data="sys_options" height="400px">
         <template v-slot:opreation="scope">

+ 15 - 45
src/HManagement/department/staff/detail/modules/main.vue

@@ -1,32 +1,6 @@
 <template>
   <div>
-    <slot name="edit" :data="mainInfo"></slot>
-    <div class="container normal-panel normal-margin">
-      <el-descriptions title="员工信息" :column="6">
-          <el-descriptions-item label="编号">{{mainInfo.hrcode?mainInfo.hrcode:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="身份证号">{{mainInfo.idcard?mainInfo.idcard:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="部门">{{mainInfo.depname?mainInfo.depname:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="是否部门负责人">{{mainInfo.isleader === 1?'是':'否'}}</el-descriptions-item>
-          <el-descriptions-item label="职位">{{mainInfo.position?mainInfo.position:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="办公电话">{{mainInfo.officetelephone?mainInfo.officetelephone:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="姓名">{{mainInfo.name?mainInfo.name:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="电话">{{mainInfo.phonenumber?mainInfo.phonenumber:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="性别">{{mainInfo.sex?mainInfo.sex:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="电子邮箱">{{mainInfo.email?mainInfo.email:'--'}}</el-descriptions-item>
-           <el-descriptions-item label="汇报对象">{{mainInfo.reporthrname?mainInfo.reporthrname:'--'}}</el-descriptions-item>
-          
-      </el-descriptions>
-    </div>
-    <div class="container normal-panel normal-margin">
-      <el-descriptions title="系统信息" :column="4">
-          <el-descriptions-item label="创建人">{{mainInfo.createby?mainInfo.createby:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="最后修改人">{{mainInfo.changeby?mainInfo.changeby:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="手机号">{{mainInfo.userphonenumber?mainInfo.userphonenumber:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="创建时间">{{mainInfo.createdate?mainInfo.createdate:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="最后修改时间">{{mainInfo.changedate?mainInfo.changedate:'--'}}</el-descriptions-item>
-      </el-descriptions>
-    </div>
-    <div class="container normal-panel normal-margin user-panel">
+    <div class="user-panel normal-margin">
       <el-descriptions :column="5">
           <div slot="title" class="flex-align-center flex-between">
             <span>账号信息</span>
@@ -35,11 +9,10 @@
               <slot name="linkact" :data="mainInfo"></slot>
             </div>
           </div>
-          <!-- <el-descriptions-item label="头像"><img width="40" style="margin-top:-8px" src="../../../../../assets/avatar.png" alt=""></el-descriptions-item> -->
-          <el-descriptions-item label="账号名称">{{mainInfo.username?mainInfo.username:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="账号类型">{{mainInfo.usertypename?mainInfo.usertypename:'--'}}</el-descriptions-item>
-          <el-descriptions-item label="角色">{{mainInfo.userrole?(mainInfo.userrole).toString():''}}</el-descriptions-item>
-          <el-descriptions-item label="账号密码">
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="账号名称">{{mainInfo.username?mainInfo.username:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="账号类型">{{mainInfo.usertypename?mainInfo.usertypename:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="角色">{{mainInfo.userrole?(mainInfo.userrole).toString():''}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="账号密码">
             <div class="flex-align-center flex-between">
               *******
              <slot name="restpas"></slot>
@@ -47,33 +20,30 @@
           </el-descriptions-item>
       </el-descriptions>
     </div>
+    <div class="">
+      <el-descriptions title="系统信息" :column="4">
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="创建人">{{mainInfo.createby?mainInfo.createby:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="修改人">{{mainInfo.changeby?mainInfo.changeby:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="手机号">{{mainInfo.userphonenumber?mainInfo.userphonenumber:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="创建时间">{{mainInfo.createdate?mainInfo.createdate:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="修改时间">{{mainInfo.changedate?mainInfo.changedate:'--'}}</el-descriptions-item>
+      </el-descriptions>
+    </div>
   </div>
 </template>
 
 <script>
 export default {
-  props:['data'],
+  props:['mainInfo'],
   components:{
   },
   data () {
     return {
-      mainInfo:{}
     }
   },
   methods:{
-     async query_hrMain () {
-      const res = await this.$api.requested({
-        "classname": "webmanage.hr.hr",
-        "method": "query_hrMain",
-        "content": {
-            "hrid":this.$route.query.id
-        }
-      })
-      this.mainInfo = res.data
-    },
   },
   mounted () {
-    this.query_hrMain()
   }
 }
 

+ 95 - 93
src/HManagement/department/staff/list/modules/add.vue

@@ -1,104 +1,106 @@
 <template>
 <div>
   <el-button type="primary" size="small" icon="el-icon-plus" @click="onShow">新建员工</el-button>
-  <el-dialog title="新建员工" :visible.sync="dialogFormVisible" @close="$refs.form.clearValidate()">
-    <el-row :gutter="20">
-      <el-form :model="form" size="small" :rules="rules" ref="form" label-position="left" label-width="100px">
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="编号:" prop="hrcode">
-            <el-input v-model="form.hrcode" placeholder="输入人员编号" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="性别">
-            <el-select v-model="form.sex" style="width:100%" placeholder="请选择">
-              <el-option
-                v-for="item in sys_options"
-                :key="item.index"
-                :label="item.value"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="姓名:" prop="name">
-            <el-input v-model="form.name" placeholder="输入姓名" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="电子邮箱:" prop="email">
-            <el-input v-model="form.email" placeholder="输入电子邮箱" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="手机号码:" prop="phonenumber">
-            <el-input v-model="form.phonenumber" placeholder="输入手机号码" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="身份证号:">
-            <el-input v-model="form.idcard" placeholder="输入身份证号" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="部门:">
-            <el-input v-model="form.depname" readonly placeholder="请选择" suffix-icon="el-icon-arrow-down" @focus="showTree = true" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="办公电话:">
-            <el-input v-model="form.officetelephone" placeholder="输入办公电话" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24" v-if="showTree">
-          <el-form-item label="选择部门:">
-            <div style="border:1px solid #f1f2f3">
-              <el-tree
-                :data="deplist"
-                node-key="id"
-                default-expand-all
-                highlight-current
-                :expand-on-click-node="false">
-                <span class="custom-tree-node" slot-scope="{ node, data }">
-                  <span>{{ node.label }}</span>
-                  <span>
-                    <el-button size="small" type="text" @click="selectDep(data)">选 择</el-button>
+  <el-drawer title="新建员工" direction="rtl" append-to-body :visible.sync="dialogFormVisible" size="800px" @close="$refs.form.clearValidate()">
+    <div class="drawer__panel">
+      <el-row :gutter="20">
+        <el-form :model="form" size="small" :rules="rules" ref="form" label-position="left" label-width="100px">
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="编号:" prop="hrcode">
+              <el-input v-model="form.hrcode" placeholder="输入人员编号" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="性别">
+              <el-select v-model="form.sex" style="width:100%" placeholder="请选择">
+                <el-option
+                  v-for="item in sys_options"
+                  :key="item.index"
+                  :label="item.value"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="姓名:" prop="name">
+              <el-input v-model="form.name" placeholder="输入姓名" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="电子邮箱:" prop="email">
+              <el-input v-model="form.email" placeholder="输入电子邮箱" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="手机号码:" prop="phonenumber">
+              <el-input v-model="form.phonenumber" placeholder="输入手机号码" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="身份证号:">
+              <el-input v-model="form.idcard" placeholder="输入身份证号" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="部门:">
+              <el-popover
+                placement="bottom"
+                width="400"
+                trigger="click"
+                v-model="visible">
+                <el-tree
+                  :data="deplist"
+                  node-key="id"
+                  default-expand-all
+                  highlight-current
+                  :expand-on-click-node="false">
+                  <span class="custom-tree-node" slot-scope="{ node, data }">
+                    <span>{{ node.label }}</span>
+                    <span>
+                      <el-button size="small" type="text" @click="selectDep(data,visible=false)">选 择</el-button>
+                    </span>
                   </span>
-                </span>
-              </el-tree>
-            </div>
-          </el-form-item>
-        </el-col>
-        
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="职位:">
-            <el-input v-model="form.position" placeholder="输入职位" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="汇报对象:">
-            <selectMenber @selectMenber="selectMenber"></selectMenber>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="24">
-          <el-form-item>
-            <el-checkbox v-model="form.isleader" :false-label="0" :true-label="1">是否部门负责人</el-checkbox>
-          </el-form-item>
-        </el-col>
-      </el-form>
-    </el-row>
-    <div class="dialog-footer">
+                </el-tree>
+                <el-input slot="reference" v-model="form.depname" readonly placeholder="请选择" autocomplete="off"></el-input>
+              </el-popover>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="办公电话:">
+              <el-input v-model="form.officetelephone" placeholder="输入办公电话" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="职位:">
+              <el-input v-model="form.position" placeholder="输入职位" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="汇报对象:">
+              <selectMenber @selectMenber="selectMenber"></selectMenber>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="24">
+            <el-form-item>
+              <el-checkbox v-model="form.isleader" :false-label="0" :true-label="1">是否部门负责人</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+    </div>
+    <div class="fixed__btn__panel">
       <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
-      <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
     </div>
-  </el-dialog>
+  </el-drawer>
 </div>
 </template>
 
 <script>
 import {mapGetters} from 'vuex'
-import selectMenber from '../../../../../components/selectMenber/index.vue'
+import selectMenber from '@/components/selectMenber/index.vue'
 export default {
   props:['depInfo'],
   components:{
@@ -113,7 +115,7 @@ export default {
   data () {
     return {
       dialogFormVisible:false,
-      showTree:false,
+      visible:false,
       rules:{
         hrcode: [
           { required: true, message: '请输入员工编码', trigger: 'blur' },
@@ -152,8 +154,8 @@ export default {
   methods:{
     onShow () {
       this.dialogFormVisible = true
-      this.form.depname = this.depInfo.data.label
-      this.form.departmentid = this.depInfo.data.departmentid
+      // this.form.depname = this.depInfo.data.label
+      // this.form.departmentid = this.depInfo.data.departmentid
       this.$store.dispatch('optiontypeselect','sex')
     },
     selectDep  (data) {

+ 96 - 96
src/HManagement/department/staff/list/modules/edit.vue

@@ -1,107 +1,107 @@
 <template>
-<div class="inline-16">
-  <el-button v-if="type === 'btn'" type=""  icon="el-icon-edit" size="small" @click="onShow">编 辑</el-button>
-  <el-button v-else type="text" size="small" @click="onShow">编 辑</el-button>
-  <el-dialog title="编辑员工" :visible.sync="dialogFormVisible">
-    <el-row :gutter="20">
-      <el-form :model="form" size="small" :rules="rules" ref="form" label-position="left" label-width="100px">
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="编号:" prop="hrcode">
-            <el-input v-model="form.hrcode" placeholder="输入人员编号" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="性别">
-            <el-select v-model="form.sex" style="width:100%" placeholder="请选择">
-              <el-option
-                v-for="item in sys_options"
-                :key="item.index"
-                :label="item.value"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="姓名:" prop="name">
-            <el-input v-model="form.name" placeholder="输入姓名" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12" >
-          <el-form-item label="电子邮箱:" prop="email">
-            <el-input v-model="form.email" placeholder="输入电子邮箱" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="手机号码:" prop="phonenumber">
-            <el-input v-model="form.phonenumber" placeholder="输入手机号码" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="身份证号:">
-            <el-input v-model="form.idcard" placeholder="输入身份证号" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="部门:">
-            <el-input v-model="form.depname" readonly placeholder="请选择" suffix-icon="el-icon-arrow-down" @focus="showTree = true" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="办公电话:">
-            <el-input v-model="form.officetelephone" placeholder="输入办公电话" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24" v-if="showTree">
-          <el-form-item label="选择部门:">
-            <div style="border:1px solid #f1f2f3">
-              <el-tree
-                :data="deplist"
-                node-key="id"
-                default-expand-all
-                highlight-current
-                :expand-on-click-node="false">
-                <span class="custom-tree-node" slot-scope="{ node, data }">
-                  <span>{{ node.label }}</span>
-                  <span>
-                    <el-button size="small" type="text" @click="selectDep(data)">选 择</el-button>
+<div>
+  <el-button type="default" size="mini" @click="onShow">编 辑</el-button>
+  <el-drawer title="编辑员工" direction="rtl" append-to-body :visible.sync="dialogFormVisible" size="800px" @close="$refs.form.clearValidate()">
+    <div class="drawer__panel">
+      <el-row :gutter="20">
+        <el-form :model="form" size="small" :rules="rules" ref="form" label-position="left" label-width="100px">
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="编号:" prop="hrcode">
+              <el-input v-model="form.hrcode" placeholder="输入人员编号" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="性别">
+              <el-select v-model="form.sex" style="width:100%" placeholder="请选择">
+                <el-option
+                  v-for="item in sys_options"
+                  :key="item.index"
+                  :label="item.value"
+                  :value="item.value">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="姓名:" prop="name">
+              <el-input v-model="form.name" placeholder="输入姓名" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="电子邮箱:" prop="email">
+              <el-input v-model="form.email" placeholder="输入电子邮箱" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="手机号码:" prop="phonenumber">
+              <el-input v-model="form.phonenumber" placeholder="输入手机号码" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="身份证号:">
+              <el-input v-model="form.idcard" placeholder="输入身份证号" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="部门:">
+              <el-popover
+                placement="bottom"
+                width="400"
+                trigger="click"
+                v-model="visible">
+                <el-tree
+                  :data="deplist"
+                  node-key="id"
+                  default-expand-all
+                  highlight-current
+                  :expand-on-click-node="false">
+                  <span class="custom-tree-node" slot-scope="{ node, data }">
+                    <span>{{ node.label }}</span>
+                    <span>
+                      <el-button size="small" type="text" @click="selectDep(data,visible=false)">选 择</el-button>
+                    </span>
                   </span>
-                </span>
-              </el-tree>
-            </div>
-          </el-form-item>
-        </el-col>
-        
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="职位:">
-            <el-input v-model="form.position" placeholder="输入职位" autocomplete="off"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="12">
-          <el-form-item label="汇报对象:">
-            <selectMenber :reporthrname="form.reporthrname" @selectMenber="selectMenber"></selectMenber>
-          </el-form-item>
-        </el-col>
-        <el-col class="mb-30" :span="24">
-          <el-form-item>
-            <el-checkbox v-model="form.isleader" :false-label="0" :true-label="1">是否部门负责人</el-checkbox>
-          </el-form-item>
-        </el-col>
-      </el-form>
-    </el-row>
-    <div class="dialog-footer">
+                </el-tree>
+                <el-input slot="reference" v-model="form.depname" readonly placeholder="请选择" autocomplete="off"></el-input>
+              </el-popover>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="办公电话:">
+              <el-input v-model="form.officetelephone" placeholder="输入办公电话" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="职位:">
+              <el-input v-model="form.position" placeholder="输入职位" autocomplete="off"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="12">
+            <el-form-item label="汇报对象:">
+              <selectMenber @selectMenber="selectMenber"></selectMenber>
+            </el-form-item>
+          </el-col>
+          <el-col class="mb-30" :span="24">
+            <el-form-item>
+              <el-checkbox v-model="form.isleader" :false-label="0" :true-label="1">是否部门负责人</el-checkbox>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+    </div>
+    <div class="fixed__btn__panel">
       <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
-      <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
     </div>
-  </el-dialog>
+  </el-drawer>
 </div>
 </template>
 
 <script>
 import {mapGetters} from 'vuex'
-import selectMenber from '../../../../../components/selectMenber/index.vue'
+import selectMenber from '@/components/selectMenber/index.vue'
 export default {
-  props:['data','type'],
   components:{
     selectMenber
   },
@@ -113,7 +113,7 @@ export default {
   data () {
     return {
       dialogFormVisible:false,
-      showTree:false,
+      visible:false,
       rules:{
         hrcode: [
           { required: true, message: '请输入员工编码', trigger: 'blur' },
@@ -156,7 +156,7 @@ export default {
         "classname": "webmanage.hr.hr",
         "method": "query_hrMain",
         "content": {
-            "hrid":this.data.hrid
+            "hrid":this.$route.query.id
         }
       })
       this.form = Object.assign({},this.form, res.data)

+ 0 - 19
src/HManagement/marketing2/agent/index.vue

@@ -2,25 +2,6 @@
   <div class="flex">
     <!-- 营销区域列表 -->
     <areaTree ref="arealist" style="width:250px;flex:0 1 auto" @onClick="onClick">
-      <template v-slot:operation="data">
-        <!-- 新增区域 -->
-        <addArea v-if="tool.checkAuth($route.name,'insert')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addArea>
-        <el-dropdown>
-          <span class="el-dropdown-link"><i class="el-icon-more"></i>
-          </span>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item>
-              <editArea v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="data.data" @editSuccess="editSuccess"></editArea>
-            </el-dropdown-item>
-            <el-dropdown-item>
-              <delArea  v-if="tool.checkAuth($route.name,'delete')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></delArea>
-            </el-dropdown-item>
-            <el-dropdown-item >
-              <startArea v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="areaInfo" @onStartArea="onStartArea"></startArea>
-            </el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </template>
     </areaTree>
     <div class="hm-info-panel">
       <basicLayout 

+ 0 - 21
src/HManagement/marketing2/saler/index.vue

@@ -2,25 +2,6 @@
   <div class="flex">
     <!-- 营销区域列表 -->
     <areaTree ref="arealist" style="width:250px;flex:0 1 auto" @onClick="onClick">
-      <template v-slot:operation="data">
-        <!-- 新增区域 -->
-        <addArea v-if="tool.checkAuth($route.name,'insert')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addArea>
-        <el-dropdown>
-          <span class="el-dropdown-link"><i class="el-icon-more"></i>
-          </span>
-          <el-dropdown-menu slot="dropdown">
-            <el-dropdown-item>
-              <editArea v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="data.data" @editSuccess="editSuccess"></editArea>
-            </el-dropdown-item>
-            <el-dropdown-item>
-              <delArea  v-if="tool.checkAuth($route.name,'delete')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></delArea>
-            </el-dropdown-item>
-            <el-dropdown-item >
-              <startArea v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="areaInfo" @onStartArea="onStartArea"></startArea>
-            </el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </template>
     </areaTree>
     <div class="hm-info-panel">
       <basicLayout 
@@ -37,8 +18,6 @@
             {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
           </div>
         </template>
-        <template v-slot:tbOpreation="scope">
-        </template>
       </basicLayout>
     </div>
   </div>

+ 4 - 4
src/HManagement/marketing2/salerScope/index.vue

@@ -4,19 +4,19 @@
     <areaTree ref="arealist" style="width:250px;flex:0 1 auto" @onClick="onClick">
       <template v-slot:operation="data">
         <!-- 新增区域 -->
-        <addArea v-if="tool.checkAuth($route.name,'insert')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addArea>
+        <addArea v-if="tool.checkAuth($route.name,'addArea')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></addArea>
         <el-dropdown>
           <span class="el-dropdown-link"><i class="el-icon-more"></i>
           </span>
           <el-dropdown-menu slot="dropdown">
             <el-dropdown-item>
-              <editArea v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="data.data" @editSuccess="editSuccess"></editArea>
+              <editArea v-if="tool.checkAuth($route.name,'updateArea')" class="inline-16" :data="data.data" @editSuccess="editSuccess"></editArea>
             </el-dropdown-item>
             <el-dropdown-item>
-              <delArea  v-if="tool.checkAuth($route.name,'delete')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></delArea>
+              <delArea  v-if="tool.checkAuth($route.name,'deleteArea')" class="inline-16" :data="data.data" @onSuccess="onSuccess"></delArea>
             </el-dropdown-item>
             <el-dropdown-item >
-              <startArea v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="areaInfo" @onStartArea="onStartArea"></startArea>
+              <startArea v-if="tool.checkAuth($route.name,'startArea')" class="inline-16" :data="areaInfo" @onStartArea="onStartArea"></startArea>
             </el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>

+ 2 - 1
src/HManagement/roleManage/modules/auth_list.vue

@@ -148,7 +148,8 @@ export default {
   },
   methods:{
     onShow () {
-      if (this.$route.query) return this.$message({
+      console.log(this.$route.query)
+      if (!this.$route.query.id) return this.$message({
         message:'请先保存角色信息',
         type:'error'
       })

+ 0 - 1
src/HManagement/roleManage/modules/role_details.vue

@@ -127,7 +127,6 @@ export default {
   mounted () {
    // 获取应用表结构
     this.tablecols = this.tool.tabelCol(this.$route.name).detailsAppsTable.tablecols
-
     this.roleid = this.$route.query.id
     this.roleid !== '0'?this.queryMainData():''
   },

+ 4 - 1
src/components/newLayout/index.vue

@@ -12,7 +12,10 @@
         </div>
       </div>
       <div style="width:60px;">
-        <div style="position:fixed;right:0;top:0;height:100%;width:60px;background:#333;z-index:99999;">
+        <div style="position:fixed;right:0;top:0;height:100%;width:60px;background:#333;z-index:99;">
+          <div v-for="i in 5" :key="i" style="height:60px;width:60px;text-align:center;line-height:60px">
+            <i class="el-icon-menu" style="color:#fff"></i>
+          </div>
         </div>
       </div>
     </div>

+ 37 - 2
src/components/normal-basic-layout/details/index.vue

@@ -8,6 +8,7 @@
         </div>
         <div class="flex-align-center">
           <cpEdit v-if="tool.checkAuth($route.name,'update')" :formPath="formPath" :oldFormPath="oldFormPath" :data="editData" btnType="default" @onAddSuccess="onSuccess"></cpEdit>
+          <el-button v-if="tool.checkAuth($route.name,'delete')" class="inline-16" size="mini" @click="deleteData">删 除</el-button>
           <div>
             <slot name="customOperation"></slot>
           </div>
@@ -18,7 +19,7 @@
         </div>
       </div>
       <div>
-        <el-descriptions :column="6" size="mini">
+        <el-descriptions :column="5" size="mini">
           <el-descriptions-item label-class-name="my-label" content-class-name="my-content" v-for="item in mainAreaData" :key="item.index" :label="item.label">{{item.value?item.value:'--'}}</el-descriptions-item>
         </el-descriptions>
       </div>
@@ -53,7 +54,7 @@ import tabTemp from './modules/tabs/tab.vue'
 import group from './modules/group/group.vue'
 
 export default {
-  props:['titleText','mainAreaData','turnPageId','idname','ownertable','formPath','oldFormPath','editData','tags','tabs'],
+  props:['titleText','mainAreaData','turnPageId','delApiId','idname','ownertable','formPath','oldFormPath','editData','tags','tabs'],
   data () {
     return {
       routerName:'',
@@ -101,6 +102,40 @@ export default {
     onSuccess () {
       this.$emit('onEditSuccess')
     },
+     deleteData () {
+      this.$confirm('确定删除当前数据吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(async () => {
+        let param = {
+          "id": this.delApiId,
+          "content":{}
+        }
+        if (this.idname instanceof Array) { //判断传入的类型是多个还是单个idname
+          let obj = {}
+          this.idname.forEach(e=>{
+            obj[e] = ''
+          })
+          param.content[`${this.idname[0]}s`] =  [Object.keys(obj).map((key,item)=>{
+            obj[key] = this.editData[key]
+          })]
+        } else {
+          param.content[`${this.idname}s`] = [this.editData[this.idname]]
+        }
+        const res = await this.$api.requested(param)
+        this.tool.showMessage(res,()=>{
+          this.$store.dispatch('detailDeleleSuccess',true)
+        })
+      }).catch((err) => {
+        
+        console.log(err)
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });          
+      });
+    },
   },
   mounted () {
   },

+ 10 - 0
src/components/normal-basic-layout/drawerDetail/index.vue

@@ -17,11 +17,15 @@
 </template>
 
 <script>
+import  {mapGetters} from 'vuex'
 export default {
   props:['data','detailPath','idName'],
   components:{
   },
   computed:{
+    ...mapGetters({
+      closeDrawerTemp:'closeDrawerTemp'
+    })
 	},
   data () {
     return {
@@ -35,8 +39,14 @@ export default {
     },
     closeDrawer () {
       this.$router.replace({path:this.detailPath.path})
+      this.$store.dispatch('detailDeleleSuccess',false)
       this.$emit('onSuccess')
     }
+  },
+  watch:{
+    closeDrawerTemp (val) {
+      val?this.drawer = false:''
+    }
   }
 }
 

+ 1 - 0
src/components/normal-basic-layout/modules/cpAdd.vue

@@ -14,6 +14,7 @@ export default {
   computed:{
 		formComponent(){
       if (this.oldFormPath) {
+        console.log(this.oldFormPath)
         return ()=>import(`@/${this.oldFormPath.add}/add.vue`)
       } else {
         return ()=>import(`@/Form/${this.formPath}/add.vue`)

+ 0 - 4
src/components/normal-basic-layout/modules/table.vue

@@ -53,10 +53,6 @@ export default {
     checkFixed (columnname) {
       let isRight = this.fixRightData.some(item=>item === columnname)
       let isLeft = this.fixLeftData.some(item=>item === columnname)
-      if (columnname === 'operation'){
-        console.log(columnname,this.fixRightData,isRight)
-      }
-      
       if (isRight) return 'right'
       if (isLeft) return 'left'
     }

+ 33 - 6
src/components/selectMenber/modules/dep_list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="tree-panel">
-    <el-tree
+    <!-- <el-tree
       ref="cusTreeRef"
       :data="deplist"
       node-key="departmentid"
@@ -10,6 +10,7 @@
       :check-on-click-node="true"
       :expand-on-click-node="false"
       :show-checkbox="checked"
+      :current-node-key="currentKey"
       @node-click="checkChange"
       :default-checked-keys="dep_default">
       <span class="custom-tree-node" slot-scope="{ node, data }">
@@ -18,6 +19,22 @@
           <slot name="operation" :data="data"></slot>
         </span>
       </span>
+    </el-tree> -->
+    <el-tree
+      ref="cusTreeRef"
+      :data="deplist"
+      node-key="departmentid"
+      :current-node-key="currentKey"
+      default-expand-all
+      highlight-current
+      :expand-on-click-node="false"
+      @node-click="checkChange">
+      <span class="custom-tree-node" slot-scope="{ node, data }">
+        <span>{{ node.label }}</span>
+        <span>
+          <slot name="operation" :data="data"></slot>
+        </span>
+      </span>
     </el-tree>
   </div>
 </template>
@@ -44,7 +61,7 @@ export default {
     }
   },
   methods:{
-    async department () {
+    async department (callback) {
       const res = await this.$api.requested({
         "classname": "webmanage.department.department",
         "method": "querydepartment",
@@ -57,7 +74,7 @@ export default {
       // this.$store.dispatch('setDeplistData',this.deplist)
       
       this.$emit('onClick',{data:this.deplist[0],parent:[]})
-
+      callback?callback():''
       // 如果存在默认组织数据就执行
     },
     createMenu (array) {
@@ -139,14 +156,24 @@ export default {
     },
     checkChange (a,b,c) {
       this.$emit('onClick',{data:a})
-    }
+    },
+    setCurrentKey (id) {
+      this.currentKey = id
+      this.$nextTick(() => {
+        this.$refs['cusTreeRef'].setCurrentKey(this.currentKey)
+      })
+    },
   },
   mounted () {
-    this.department()
+    this.department(()=>{
+      this.setCurrentKey(this.deplist[0].departmentid)
+    })
   },
   watch:{
     pageOnlyRead () {
-      this.department()
+      this.department(()=>{
+        this.setCurrentKey(this.deplist[0].departmentid)
+      })
     },
     dep_default (val) {
       this.$emit('onChecked',this.dep_default)

+ 1 - 2
src/components/selectMenber/staff/list/list.vue

@@ -66,8 +66,7 @@ export default {
   data () {
     return {
       param:{
-        "classname": "webmanage.hr.hr",
-        "method": "query_hrList",
+        "id":'20221102090303',
         "content": {
             "nocahe":true,
             "pageNumber": 1,

+ 10 - 18
src/router/HManagement.js

@@ -46,15 +46,6 @@ const HManagement = [
     ]
   },
   {
-    path: '/roleEdit',
-    name: 'roles',
-    meta: {
-      title: '编辑角色',
-      ast_nav: true,
-      keeproute: true
-    },
-    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/roleManage/modules/roleContentTemp.vue')
-  }, {
     path: '/account_manage',
     name: 'users',
     meta: {
@@ -80,15 +71,16 @@ const HManagement = [
       ast_nav: true
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HManagement/department/index.vue'),
-  }, {
-    path: '/depManage/staffDetail',
-    name: 'depManage',
-    meta: {
-      title: '员工详情',
-      ast_nav: true,
-      keeproute: true
-    },
-    component: () => import(/* webpackChunkName: "about" */ '@/HManagement/department/staff/detail/index.vue')
+    children:[{
+      path: '/depManage/staffDetail',
+      name: 'depManage',
+      meta: {
+        title: '员工详情',
+        ast_nav: true,
+        keeproute: true
+      },
+      component: () => import(/* webpackChunkName: "about" */ '@/HManagement/department/staff/detail/index.vue')
+    }]
   }, {
     path: '/salermag',
     name: 'salermag',

+ 9 - 1
src/store/index.js

@@ -20,7 +20,8 @@ export default new Vuex.Store({
     dataToForm:{},
     acitveApp:{},
     menuApp:[],
-    searchValue:''
+    searchValue:'',
+    closeDrawerTemp:false
   },
   getters: {
     siteinfo:state => state.siteinfo,
@@ -35,6 +36,7 @@ export default new Vuex.Store({
     acitveApp:state => state.acitveApp,
     menuApp:state => state.menuApp,
     searchValue:state => state.searchValue,
+    closeDrawerTemp:state => state.closeDrawerTemp
   },
   mutations: {
     setSiteInfo(state,res) {
@@ -73,6 +75,9 @@ export default new Vuex.Store({
     setAppMenu (state,data) {
       state.menuApp = data
     },
+    detailDeleleSuccess (state,bool) {
+      state.closeDrawerTemp = bool
+    },
   },
   actions: {
     // 系统选项分类查询
@@ -190,6 +195,9 @@ export default new Vuex.Store({
     setActiveApp ({commit}, data) {
       commit('setActiveApp',data)
     },
+    detailDeleleSuccess ({commit}, bool) {
+      commit('detailDeleleSuccess',bool)
+    },
   },
   modules: {
   },

+ 1 - 1
src/style/style.css

@@ -158,7 +158,7 @@ ul{
 }
 
 .my-label{
-  width: 70px;
+  width: 80px;
   font-size: 14px;
   color:rgb(163, 163, 163) !important;
 }