89 lines
1.9 KiB
Vue
89 lines
1.9 KiB
Vue
<template>
|
|
<div>
|
|
<a-input-search
|
|
v-model="userNames"
|
|
placeholder="请先选择用户"
|
|
readOnly
|
|
unselectable="on"
|
|
@search="onSearchDepUser">
|
|
<a-button slot="enterButton" :disabled="disabled">选择用户</a-button>
|
|
</a-input-search>
|
|
<j-select-user-by-dep-modal ref="selectModal" :modal-width="modalWidth" :multi="multi" @ok="selectOK" :user-ids="value" @initComp="initComp"/>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import JSelectUserByDepModal from './modal/JSelectUserByDepModal'
|
|
|
|
export default {
|
|
name: 'JSelectUserByDep',
|
|
components: {JSelectUserByDepModal},
|
|
props: {
|
|
modalWidth: {
|
|
type: Number,
|
|
default: 1250,
|
|
required: false
|
|
},
|
|
value: {
|
|
type: String,
|
|
required: false
|
|
},
|
|
disabled: {
|
|
type: Boolean,
|
|
required: false,
|
|
default: false
|
|
},
|
|
multi: {
|
|
type: Boolean,
|
|
default: true,
|
|
required: false
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
userIds: "",
|
|
userNames: ""
|
|
}
|
|
},
|
|
mounted() {
|
|
this.userIds = this.value
|
|
},
|
|
watch: {
|
|
value(val) {
|
|
this.userIds = val
|
|
}
|
|
},
|
|
model: {
|
|
prop: 'value',
|
|
event: 'change'
|
|
},
|
|
methods: {
|
|
initComp(userNames) {
|
|
this.userNames = userNames
|
|
},
|
|
onSearchDepUser() {
|
|
this.$refs.selectModal.showModal()
|
|
},
|
|
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)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style> |