Checkbox.vue 833 Bytes
Newer Older
liuxin committed
1
<template>
fukai committed
2
  <el-checkbox v-model="model" :true-label="trueLabel" :false-label="falseLabel" v-bind="$attrs" v-on="$listeners" v-bind:disabled="isDisable">
liuxin committed
3 4 5 6 7 8 9 10
    <slot></slot>
  </el-checkbox>
</template>

<script>
export default {
  props: {
    value: {
liuxin committed
11
      type: String | Boolean,
liuxin committed
12 13 14 15 16
      default: ''
    },
    disabled: {
      type: Boolean,
      default: false
fukai committed
17 18 19 20 21 22 23 24
    },
    "true-label":{
      type:String,
      default:"X"
    },
    "false-label":{
      type:String,
      default:""
liuxin committed
25 26 27 28 29
    }
  },
  computed: {
    model: {
      get () {
fukai committed
30
        return this.value
liuxin committed
31 32
      },
      set (newVal) {
fukai committed
33
        this.$emit('input', newVal)
liuxin committed
34 35 36 37 38 39 40 41 42 43 44 45 46
      }
    },
    mode () {
      return this.$store.state.Status.mode
    },
    isDisable: {
      get () {
        return this.mode === 'display' || this.disabled
      }
    }
  }
}
</script>