<template>
  <el-input-number
		:id="id"
		:class="{'highlight': highlight}"
		:style="{'border-bottom': isShowRed ? `1px solid ${isShowRed}` : ''}"
		ref="form-item"
		v-model="model"
		:controls="false"
		v-bind="$attrs"
		v-on="$listeners"
		v-bind:disabled="isDisable"
		@blur="blurEvent"
		@change="handleChange"
	/>
</template>

<script>
import commonDepend from '~/mixin/commonDepend.js'
import markSetShowRed from '~/components/business/componentMixins/markSetShowRed.js'
export default {
	inject: {
		root: {
			default: () => null
		}
	},

	mixins: [commonDepend, markSetShowRed],
  props: {
    value: {
      type: Number,
      default: undefined
    },
    disabled: {
      type: Boolean,
      default: false
    },
    id: {
      type: String,
      default: undefined
    },
    // 此对象为markset或者modifySet所在的对象,如果传了此对象可以标记当前对象下的字段为红色下划线
    markSetData: {
      type: Object,
      default: () => null
    },
		customModifykey: {
			type: String,
      default: null
		}
  },
  computed: {
    model: {
      get () {
        return this.value
      },
      set (newVal) {
        this.$emit('input', newVal)
      }
    },
    mode () {
      return this.$store.state.Status.mode
    },
    isDisable() {
			return this.mode === 'display' || this.disabled
		},
    highlight () {
      return this.$store.state.Status.highlights.indexOf(this.id) !== -1
		},
  },
  watch: {
    disabled(newVal) {
      if (newVal) {
        this.resetValidate()
      }
    }
  },
	methods: {
		blurEvent () {
			this.$emit('blur', this.model)
		},
		handleChange () {
			if (!this.customModifykey) {
				// 添加isModify属性
				this.changeModify()
			}
		}
	}
}
</script>
<style scope>
.el-input-number .el-input__inner  {
  text-align: left;
}
.el-input.highlight .el-input__inner{
  border-color: red;
}
</style>