<template>
|
|
<HandleWrapper v-on="$listeners">
|
|
<el-input
|
|
:maxlength="item.maxlength || 30"
|
|
:disabled="item.disabled"
|
|
:class="item.borderType | getBorderType"
|
|
:placeholder="item.placeholder ? item.placeholder : ('请输入' + item.label)"
|
|
:value = "value"
|
|
@input = "onInput"
|
|
/>
|
|
</HandleWrapper>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
import HandleWrapper from './HandleFormItem.vue'
|
|
export default {
|
|
components:{
|
|
HandleWrapper
|
|
},
|
|
props:{
|
|
borderType: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
item:{
|
|
type:Object,
|
|
default:()=>{
|
|
return{
|
|
placeholder:"",
|
|
maxlength:30,
|
|
label:"",
|
|
disabled:false,
|
|
}
|
|
}
|
|
},
|
|
value:{
|
|
type:String,
|
|
value:"",
|
|
}
|
|
},
|
|
data(){
|
|
return {
|
|
inputValue: this.$attrs.modelValue
|
|
}
|
|
},
|
|
filters: {
|
|
getBorderType(type) {
|
|
const typeObj = {
|
|
orange: "orange-border",
|
|
green: "green-border",
|
|
blue: "blue-border",
|
|
}
|
|
return typeObj[type] || ""
|
|
},
|
|
|
|
},
|
|
methods:{
|
|
onInput(val){
|
|
this.$emit("input",val)
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.orange-border {
|
|
input {
|
|
border-color: #f9c588;
|
|
|
|
&:focus {
|
|
border-color: #f9c588;
|
|
}
|
|
|
|
&:hover {
|
|
border-color: #f9c588;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
.green-border {
|
|
input {
|
|
border-color: green;
|
|
|
|
&:focus {
|
|
border-color: green;
|
|
}
|
|
|
|
&:hover {
|
|
border-color: green;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
.blue-border {
|
|
input {
|
|
border-color: #4ea2ff;
|
|
|
|
&:focus {
|
|
border-color: #4ea2ff;
|
|
}
|
|
|
|
&:hover {
|
|
border-color: #4ea2ff;
|
|
}
|
|
}
|
|
|
|
}
|
|
</style>
|