12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <template>
- <el-select
- class="size-select"
- v-model="selected"
- placeholder="请选择"
- @change="select"
- >
- <el-option
- v-for="item in optionList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- >
- <span :style="{ fontSize: item.value }">{{ item.label }}</span>
- </el-option>
- </el-select>
- </template>
- <script>
- const PREDEFINE_OPTIONS = [
- {
- value: "14px",
- label: "小(5号)"
- },
- {
- value: "18.7px",
- label: "中(4号)"
- },
- {
- value: "21.3px",
- label: "大(3号)"
- },
- {
- value: "29.3px",
- label: "特大(2号)"
- },
- {
- value: "34.7px",
- label: "超大(1号)"
- }
- ];
- export default {
- name: "size-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>
|