Input.vue 1.46 KB
Newer Older
liuxin committed
1
<template>
liushikai committed
2 3 4 5 6
  <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>
liuxin committed
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
</template>

<script>
export default {
  props: {
    value: {
      type: [String, Number],
      default: undefined
    },
    disabled: {
      type: Boolean,
      default: false
    },
    id: {
      type: String,
fukai committed
22
      default: undefined
liuxin committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
    }
  },
  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
fukai committed
47 48 49 50 51 52 53 54
    },
    attrs(){
      if(this.mode === 'display' || this.disabled)
      {
        let {placeholder,...rest} = this.$attrs
        return rest
      }
      return this.$attrs
liuxin committed
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
    }
  }
}
</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>