Blame view

ant-design-vue-jeecg/src/components/jeecgbiz/JSelectUserByDep.vue 2.49 KB
1
2
3
<template>
  <div>
    <a-input-search
4
      v-model="userNames"
5
      placeholder="请先选择用户"
6
7
      readOnly
      unselectable="on"
8
9
10
      @search="onSearchDepUser">
      <a-button slot="enterButton" :disabled="disabled">选择用户</a-button>
    </a-input-search>
11
    <j-select-user-by-dep-modal ref="selectModal" :modal-width="modalWidth" :multi="multi" @ok="selectOK" :user-ids="value" @initComp="initComp"/>
12
13
14
15
16
  </div>
</template>

<script>
  import JSelectUserByDepModal from './modal/JSelectUserByDepModal'
17
18
19
  export default {
    name: 'JSelectUserByDep',
20
21
22
23
24
25
    components: {JSelectUserByDepModal},
    props: {
      modalWidth: {
        type: Number,
        default: 1250,
        required: false
26
      },
27
28
29
      value: {
        type: String,
        required: false
30
      },
31
      disabled: {
32
33
34
        type: Boolean,
        required: false,
        default: false
35
36
37
38
39
40
      },
      multi: {
        type: Boolean,
        default: true,
        required: false
      },
41
42
43
44
45
      backUser: {
        type: Boolean,
        default: false,
        required: false
      }
46
47
48
    },
    data() {
      return {
49
50
        userIds: "",
        userNames: ""
51
52
      }
    },
53
54
    mounted() {
      this.userIds = this.value
55
    },
56
57
58
    watch: {
      value(val) {
        this.userIds = val
59
60
      }
    },
61
62
63
64
    model: {
      prop: 'value',
      event: 'change'
    },
65
    methods: {
66
67
68
      initComp(userNames) {
        this.userNames = userNames
      },
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
      //返回选中的用户信息
      backDeparInfo(){
        if(this.backUser===true){
          if(this.userIds && this.userIds.length>0){
            let arr1 = this.userIds.split(',')
            let arr2 = this.userNames.split(',')
            let info = []
            for(let i=0;i<arr1.length;i++){
              info.push({
                value: arr1[i],
                text: arr2[i]
              })
            }
            this.$emit('back', info)
          }
        }
      },
86
87
88
      onSearchDepUser() {
        this.$refs.selectModal.showModal()
      },
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
      selectOK(rows, idstr) {
        console.log("当前选中用户", rows)
        console.log("当前选中用户ID", idstr)
        if (!rows) {
          this.userNames = ''
          this.userIds = ''
        } else {
          let temp = ''
          for (let item of rows) {
            temp += ',' + item.realname
          }
          this.userNames = temp.substring(1)
          this.userIds = idstr
        }
        this.$emit("change", this.userIds)
104
105
106
107
108
109
110
111
      }
    }
  }
</script>

<style scoped>

</style>