<!-- 选择试验 -->
|
|
|
|
<template>
|
|
<div>
|
|
<el-input v-model="selected.name" :placeholder="$t('form.placeholderSelect')" :disabled="disabled"
|
|
@click.native="showStudy" />
|
|
<SelectStudyDialog ref="selectStudyDialog" @callback="handleChange" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import SelectStudyDialog from './SelectStudyDialog.vue'
|
|
export default {
|
|
name: "SelectStudy",
|
|
components: { SelectStudyDialog },
|
|
props: {
|
|
value: {
|
|
type: [Number, String, Array],
|
|
default: ''
|
|
},
|
|
selectkey: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
disabled: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
needPre: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
},
|
|
watch: {
|
|
value: {
|
|
immediate: true,
|
|
handler(v) {
|
|
this.selected.id = v ? ((v + '').indexOf('u_') > -1 ? v : ('u_' + v)) : ''
|
|
}
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
selected: {
|
|
id: '',
|
|
name: ''
|
|
},
|
|
};
|
|
},
|
|
mounted() {
|
|
},
|
|
methods: {
|
|
showStudy() {
|
|
if (!this.disabled) {
|
|
this.$refs.selectStudyDialog.show({ needPre: this.needPre })
|
|
}
|
|
},
|
|
handleChange(obj) {
|
|
this.selected.name = obj.name
|
|
this.selected.id = obj.id
|
|
this.$emit('change', _.merge({}, obj, { key: this.selectkey }))
|
|
this.$emit('input', obj.id)
|
|
},
|
|
}
|
|
};
|
|
</script>
|