Newer
Older
smartKitchenFront / src / components / mycomponent / input / inputVue.vue
<!--输入组件-->
<template>
  <div class="inputBox" :style="{width:boxWidth}">
    <red-star v-if="redStar" />
    <div style="white-space: nowrap;" :class="{'ismargin':title}">
      {{ title }}{{ title?':':'' }}
    </div>
    <!--可以自定义 输入框  -->
    <slot>
      <el-input v-model="vls" :placeholder="placeholder" :size="size" :style="{width:width}" :class="{'readinput':readable}" clearable :disabled="disabled" @input="changeinput" @blur="blurInput" />
    </slot>
  </div>
</template>

<script>
import RedStar from '../redStar.vue'
export default {
  components: {
    RedStar
  },
  model: {
    prop: 'input',
    event: 'changeinput'
  },
  props: {
    readable: {
      type: Boolean,
      default: false
    },
    redStar: false,
    title: '',
    width: '',
    placeholder: '',
    boxWidth: '',
    input: '',
    size: '',
    disabled: false
  },
  data() {
    return {
      vls: ''
    }
  },
  watch: { // 利用侦听器 实现自定义组件的双向绑定
    input: {
      handler() {
        this.vls = this.input
      },
      // 强制立即执行回调
      immediate: true

    }
  },
  methods: {
    changeinput() {
      this.$emit('changeinput', this.vls)
    },
    blurInput() {
      this.$emit('submit')
    }
  }

}
</script>

<style scoped>
.inputBox {
  display: flex;
  align-items: center;
  margin: 5px 10px 5px 0;
  justify-content: space-between;
}

.ismargin {
  min-width: 68.45px;
  margin-right: 10px
}
  .readinput{

  }
</style>
<style>
  .readinput.is-disabled .el-input__inner {
      background-color: #fff !important;
      border-color: #E4E7ED;
      color: #303133;
      cursor: not-allowed;
    }

</style>