index.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <template>
  2. <div>
  3. <el-input v-model="value.name" readonly placeholder="选择对象人员" suffix-icon="el-icon-arrow-down" autocomplete="off" @focus="dialogTableVisible = true"></el-input>
  4. <el-dialog title="选择人员" append-to-body :visible.sync="dialogTableVisible" width="80%">
  5. <div class="flex">
  6. <dep-list ref="list" style="width:200px" @onClick="onClick">
  7. </dep-list>
  8. <div style="width:600px;flex:1 0 auto">
  9. <staffList :depInfo="depInfo" ref="staff">
  10. <template v-slot:detail="scope">
  11. <div class="inline-16">
  12. <el-button type="text" size="mini" @click="selectMenber(scope.data)">选 择</el-button>
  13. </div>
  14. </template>
  15. </staffList>
  16. </div>
  17. </div>
  18. </el-dialog>
  19. </div>
  20. </template>
  21. <script>
  22. import depList from './modules/dep_list.vue'
  23. import staffList from './staff/list/list.vue'
  24. export default {
  25. props:['reporthrname'],
  26. components:{
  27. depList,
  28. staffList,
  29. },
  30. data () {
  31. return {
  32. dialogTableVisible:false,
  33. depInfo:{
  34. data:null,
  35. parent:{
  36. data:{}
  37. }
  38. },
  39. value:{
  40. name:'',
  41. hrid:''
  42. }
  43. }
  44. },
  45. methods:{
  46. onClick (data) {
  47. this.depInfo = data
  48. this.$refs.staff.listData(this.depInfo.data.departmentid)
  49. },
  50. selectMenber (data) {
  51. this.value = data
  52. this.$emit('selectMenber',data)
  53. this.dialogTableVisible = false
  54. },
  55. onStaffSuccess () {
  56. this.$refs.staff.listData(this.depInfo.data.departmentid)
  57. },
  58. },
  59. watch:{
  60. reporthrname (val) {
  61. this.value.name = val
  62. }
  63. }
  64. }
  65. </script>
  66. <style>
  67. </style>
  68. <style scoped>
  69. .flex{
  70. display: flex;
  71. }
  72. </style>