feat:新增图片组件,修改文件组件

This commit is contained in:
奔跑的面条
2022-05-01 17:36:23 +08:00
parent bacdcd1760
commit 3bcef87d6c
9 changed files with 162 additions and 40 deletions
@@ -2,8 +2,15 @@ import { publicConfig } from '@/packages/public'
import { CreateComponentType } from '@/packages/index.d'
import { ImageConfig } from './index'
import cloneDeep from 'lodash/cloneDeep'
import logo from '@/../public/logo.png'
export const option = {
// 图片路径
dataset: logo,
// 适应方式
fit: 'contain',
// 圆角
borderRadius: 10
}
export default class Config extends publicConfig implements CreateComponentType
@@ -1,6 +1,67 @@
<template>
<collapse-item name="图片" :expanded="true">
<setting-item-box name="路径" :alone="true">
<setting-item>
<n-input v-model:value="optionData.dataset" size="small"></n-input>
</setting-item>
</setting-item-box>
<setting-item-box name="样式">
<setting-item name="类型">
<n-select
v-model:value="optionData.fit"
size="small"
:options="fitList"
></n-select>
</setting-item>
<setting-item name="圆角">
<n-input-number
v-model:value="optionData.borderRadius"
size="small"
:min="0"
placeholder="圆角"
></n-input-number>
</setting-item>
</setting-item-box>
</collapse-item>
</template>
<script setup lang="ts">
import { PropType } from 'vue'
import { option } from './config'
import {
CollapseItem,
SettingItemBox,
SettingItem,
} from '@/components/Pages/ChartItemSetting'
const props = defineProps({
optionData: {
type: Object as PropType<typeof option>,
required: true,
},
})
// 适应类型
const fitList = [
{
value: 'fill',
label: 'fill'
},
{
value: 'contain',
label: 'contain'
},
{
value: 'cover',
label: 'cover'
},
{
value: 'scale-down',
label: 'scale-down'
},
{
value: 'none',
label: 'none'
},
]
</script>
@@ -1,13 +1,42 @@
<template>
<div>
图片
<div class="go-packages-image">
<div :style="getStyle(borderRadius)">
<n-image
:object-fit="fit"
preview-disabled
:src="dataset"
:fallback-src="requireErrorImg()"
:width="w"
:height="h"
></n-image>
</div>
</div>
</template>
<script setup lang="ts">
import { PropType, computed, toRefs } from 'vue'
import { CreateComponentType } from '@/packages/index.d'
import { requireErrorImg } from '@/utils'
const props = defineProps({
chartConfig: {
type: Object as PropType<CreateComponentType>,
required: true,
},
})
const { w, h } = toRefs(props.chartConfig.attr)
const { dataset, fit, borderRadius } = toRefs(props.chartConfig.option)
const getStyle = (radius: number) => {
return {
borderRadius: `${radius}px`,
overflow: 'hidden',
}
}
</script>
<style lang="scss" scoped>
.go-packages-image {
}
</style>