|
@@ -1,3 +1,4 @@
|
|
|
+<!-- 用户组件(单选) -->
|
|
|
<template>
|
|
|
<div>
|
|
|
<el-select
|
|
@@ -36,6 +37,13 @@
|
|
|
prop: 'userId',
|
|
|
event: 'userSelected'
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ userId (value) {
|
|
|
+ this.value = value
|
|
|
+ // 检查缺失item
|
|
|
+ this.checkItem(value)
|
|
|
+ }
|
|
|
+ },
|
|
|
data () {
|
|
|
return {
|
|
|
value: '',
|
|
@@ -77,7 +85,9 @@
|
|
|
data.data.records.forEach(item => {
|
|
|
this.options.push({
|
|
|
label: item.name + ' (' + item.orgName + ')',
|
|
|
- value: item.userId
|
|
|
+ value: item.userId,
|
|
|
+ name: item.name,
|
|
|
+ phone: item.mobile
|
|
|
})
|
|
|
})
|
|
|
} else {
|
|
@@ -98,6 +108,26 @@
|
|
|
}
|
|
|
this.$emit('userSelected', item)
|
|
|
},
|
|
|
+ checkItem (code) {
|
|
|
+ console.log('code = ' + code)
|
|
|
+ // console.log(this.options)
|
|
|
+ if (!code || !this.options) return
|
|
|
+ let i = this.options.findIndex(item => item.value === code)
|
|
|
+ console.log('i = ' + i)
|
|
|
+ if (i > -1) return
|
|
|
+ // info
|
|
|
+ this.$http({
|
|
|
+ url: this.$http.adornUrl(`/user-service/user/info/${code}`),
|
|
|
+ method: 'get'
|
|
|
+ }).then(({data}) => {
|
|
|
+ if (data && data.code === '200' && data.data) {
|
|
|
+ this.options.push({
|
|
|
+ label: data.data.name + ' (' + data.data.orgName + ')',
|
|
|
+ value: data.data.userId
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
cancelReadOnly (onOff) {
|
|
|
this.$nextTick(() => {
|
|
|
if (!onOff) {
|