<template>
  <el-select
    v-model="selected"
    class="rotation-select"
    placeholder="请选择"
    @change="select"
  >
    <el-option
      v-for="item in optionList"
      :key="item"
      :label="item"
      :value="item"
    >
    </el-option>
  </el-select>
</template>

<script>
const PREDEFINE_OPTIONS = [0, 90, 180, 270];

export default {
  name: "RotationSelect",
  props: {
    value: { type: Number, default: null },
    predefine: {
      type: Array,
      default() {
        return [];
      },
    },
  },
  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>
