华西海圻ELN前端工程
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.3 KiB

<!-- 选择试验 -->
<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>