<template>
  <el-select
    class="font-family-select"
    v-model="selected"
    placeholder="请选择"
    @change="select"
  >
    <el-option
      v-for="item in optionList"
      :key="item"
      :label="item"
      :value="item"
    >
      <span :style="{ fontFamily: item }">{{ item }}</span>
    </el-option>
  </el-select>
</template>

<script>
const PREDEFINE_OPTIONS = ["宋体", "楷体", "黑体"];

export default {
  name: "font-family-select",
  props: {
    value: String,
    predefine: Array
  },
  data() {
    return {
      optionList: [],
      selected: ""
    };
  },
  watch: {
    value: {
      immediate: true,
      handler(val) {
        this.selected = val;
      }
    }
  },
  created() {
    this.optionList =
      this.predefine && this.predefine.length
        ? this.predefine
        : PREDEFINE_OPTIONS;
  },
  methods: {
    select() {
      this.$emit("input", this.selected);
      this.$emit("change", this.selected);
    }
  }
};
</script>
