1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <template>
- <section class="config" :key="displayName">
- <div class="config-label">
- <el-tooltip :content="displayName" placement="top">
- <span>{{displayKeyName}}</span>
- </el-tooltip>
- </div>
- <div class="config-content">
- <theme-input
- v-if="isGlobal"
- :val="value"
- @change="onChange"
- ></theme-input>
- <el-select
- size="medium"
- v-if="!isGlobal"
- v-model="value"
- class="select"
- @change="onSelectChange"
- >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </div>
- </section>
- </template>
- <style>
- .select {
- width: 100%;
- }
- </style>
- <script>
- import Mixin from './mixin';
- import Input from './input';
- import { getStyleDisplayName } from '../utils/utils.js';
- export default {
- data() {
- return {
- options: [],
- value: ''
- };
- },
- components: {
- themeInput: Input
- },
- mixins: [Mixin],
- computed: {
- isGlobalInputValue() {
- return this.config.value.startsWith('$');
- }
- },
- methods: {
- onSelectChange(e) {
- this.onChange(e);
- },
- initSelectOption() {
- this.options = [];
- const golbalV = this.golbalValue.border;
- if (golbalV) {
- Object.keys(golbalV).forEach((font) => {
- if (font.includes('border-radius')) {
- const size = golbalV[font];
- this.options.push({
- value: size.key,
- label: getStyleDisplayName(size)
- });
- }
- });
- }
- }
- },
- watch: {
- 'mergedValue': {
- immediate: true,
- handler(value) {
- this.initSelectOption();
- this.value = this.mergedValue;
- }
- }
- }
- };
- </script>
|