<template> <el-input :id="id" ref="form-item" v-model="model" v-bind="attrs" v-on="$listeners" v-bind:disabled="isDisable"> <template v-slot:suffix> <slot name="suffix"></slot> </template> </el-input> </template> <script> export default { props: { value: { type: [String, Number], default: undefined }, disabled: { type: Boolean, default: false }, id: { type: String, default: undefined } }, computed: { model: { get () { return this.value }, set (newVal) { this.$emit('input', newVal) } }, mode () { return this.$store.state.Status.mode }, isDisable: { get () { return this.mode === 'display' || this.disabled } }, highlight () { return this.$store.state.Status.highlights.indexOf(this.id) !== -1 }, highlightChanges () { return this.$store.state.Status.highlightChanges.indexOf(this.id) !== -1 }, attrs(){ if(this.mode === 'display' || this.disabled) { let {placeholder,...rest} = this.$attrs return rest } return this.$attrs } } } </script> <style> /* .el-input.highlight .el-input__inner{ border-color: red; } .el-textarea.highlight .el-textarea__inner { border-color: red; } .el-input.change-light .el-input__inner{ border-color: #E6A23C; } .el-textarea.change-light .el-textarea__inner { border-color: #E6A23C; } */ </style>