新增边框处理逻辑

v1.1.0^2
于肖磊 2024-12-24 09:51:20 +08:00
parent 0ddb4150b9
commit cb95eff636
1 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,61 @@
<template>
<el-form-item label="边框">
<el-switch v-model="border_show" active-value="1" inactive-value="0" />
</el-form-item>
<template v-if="border_show == '1'">
<el-form-item v-if="typeList.includes('color')" label="边框颜色">
<color-picker v-model="border_color" :default-color="defaultColor"></color-picker>
</el-form-item>
<el-form-item v-if="typeList.includes('style')" label="边框样式">
<el-radio-group v-model="border_style">
<el-radio value="dashed"><div class="border-style-item" style="border: 1px dashed #979797"></div></el-radio>
<el-radio value="solid"><div class="border-style-item" style="border: 1px solid #979797"></div></el-radio>
<el-radio value="dotted"><div class="border-style-item" style="border: 1px dotted #979797"></div></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="typeList.includes('size')" label="边框粗细">
<padding :value="border_size" :max="100"></padding>
</el-form-item>
</template>
</template>
<script setup lang="ts">
interface Props {
defaultColor?: string;
typeList?: string[]; // 3
}
const props = withDefaults(defineProps<Props>(), {
defaultColor: '',
typeList: () => ['color', 'style', 'size'],
});
const border_show = defineModel('show', {
type: String,
default: '0',
});
const border_color = defineModel('color', {
type: String,
default: '#FF3F3F',
});
const border_style = defineModel('style', {
type: String,
default: 'solid',
});
const border_size = defineModel('size', {
type: Object,
default: {
padding: 0,
padding_top: 0,
padding_bottom: 0,
padding_left: 0,
padding_right: 0,
},
});
</script>
<style lang="scss" scoped>
.border-style-item {
width: 3rem;
height: 2rem;
}
</style>