<template> <el-input v-model="valueSync" :type="type" :clearable="clearable" :placeholder="placeholder" /> </template> <script> export default { data(){ return { valueSync: null } }, props:{ type: String, value: [String, Number], clearable: Boolean, placeholder: String, default: String, // 默认值 }, computed:{ }, watch:{ valueSync(val){ this.$emit('input', val) }, value(value){ this.valueSync = value this.setDefault() } }, created(){ this.valueSync = this.value this.setDefault() }, methods:{ setDefault(){ if(!this.default){ return false } if(this.valueSync == null || this.valueSync == ''){ this.valueSync = this.default } } } } </script>