营销:适配商城装修组件【分割线】
parent
ff6788b685
commit
51a0d8792e
|
@ -21,8 +21,8 @@
|
||||||
<s-image-cube v-if="type === 'MagicCube'" :data="data" :styles="styles" />
|
<s-image-cube v-if="type === 'MagicCube'" :data="data" :styles="styles" />
|
||||||
<!-- 图文组件:视频播放 -->
|
<!-- 图文组件:视频播放 -->
|
||||||
<s-video-block v-if="type === 'VideoPlayer'" :data="data" :styles="styles" />
|
<s-video-block v-if="type === 'VideoPlayer'" :data="data" :styles="styles" />
|
||||||
<!-- 基础组件:辅助线 -->
|
<!-- 基础组件:分割线 -->
|
||||||
<s-line-block v-if="type === 'lineBlock'" :data="data" />
|
<s-line-block v-if="type === 'Divider'" :data="data" />
|
||||||
<!-- 图文组件:热区 -->
|
<!-- 图文组件:热区 -->
|
||||||
<s-hotzone-block v-if="type === 'hotzone'" :data="data" :styles="styles" />
|
<s-hotzone-block v-if="type === 'hotzone'" :data="data" :styles="styles" />
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<template>
|
<template>
|
||||||
<su-subline :color="data.lineColor" :lineStyle="data.style"></su-subline>
|
<su-subline v-bind="data"></su-subline>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default() {},
|
default: {},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,42 +1,62 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="ui-subline-wrap" :style="[elStyle]"></view>
|
<view class="wrap" :style="{height: `${height}px`}">
|
||||||
|
<view class="divider" :style="[elStyle]"></view>
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
/**
|
/**
|
||||||
* 辅助线
|
* 分割线
|
||||||
*
|
|
||||||
* @property {String} width = ['thin', 'medium', 'thick', '10px'] - 线条宽度
|
|
||||||
* @property {String} color = #000 - 线条颜色
|
|
||||||
* @property {String} style = ['dotted', 'solid', 'double', 'dashed'] - 线条样式,圆点,实线,双线,虚线
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { computed } from 'vue';
|
import { computed } from 'vue';
|
||||||
|
|
||||||
// 接收参数
|
// 接收参数
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
color: {
|
// 线条颜色
|
||||||
|
lineColor: {
|
||||||
type: String,
|
type: String,
|
||||||
default: '#000',
|
default: '#000',
|
||||||
},
|
},
|
||||||
lineStyle: {
|
// 线条样式:'dotted', 'solid', 'double', 'dashed'
|
||||||
|
borderType: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'dashed',
|
default: 'dashed',
|
||||||
},
|
},
|
||||||
width: {
|
// 线条宽度
|
||||||
type: String,
|
lineWidth: {
|
||||||
default: 'thin',
|
type: Number,
|
||||||
|
default: 1,
|
||||||
},
|
},
|
||||||
|
// 高度
|
||||||
|
height: {
|
||||||
|
type: [Number, String],
|
||||||
|
default: 'auto'
|
||||||
|
},
|
||||||
|
// 左右边距:none - 无边距,horizontal - 左右留边
|
||||||
|
paddingType: {
|
||||||
|
type: String,
|
||||||
|
default: 'none'
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const elStyle = computed(() => {
|
const elStyle = computed(() => {
|
||||||
return {
|
return {
|
||||||
'border-top-width': props.width,
|
'border-top-width': `${props.lineWidth}px`,
|
||||||
'border-top-color': props.color,
|
'border-top-color': props.lineColor,
|
||||||
'border-top-style': props.lineStyle,
|
'border-top-style': props.borderType,
|
||||||
|
margin: props.paddingType === 'none' ? '0' : '0px 16px'
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped>
|
||||||
|
.wrap {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.divider {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue