华西海圻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.
 
 
 
 

79 lines
1.6 KiB

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