feat: 新增自定义svg组件
parent
dab5968681
commit
d9fe506c43
@ -0,0 +1,5 @@
|
|||||||
|
<svg class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
|
||||||
|
<text x="250" y="700" font-family="Microsoft YaHei" font-size="505" >文</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 258 B |
@ -0,0 +1,32 @@
|
|||||||
|
<!-- eslint-disable vue/html-indent -->
|
||||||
|
<template>
|
||||||
|
<text
|
||||||
|
x="50"
|
||||||
|
y="55"
|
||||||
|
:font-family="props.fontFamily"
|
||||||
|
:font-size="props.fontSize"
|
||||||
|
:fill="props.fill"
|
||||||
|
>{{ props.text }}</text
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
// 文字的内容决定了长度 所以没办法预先定义中心点 导致连线有偏移
|
||||||
|
const props = defineProps({
|
||||||
|
fontFamily: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
fontSize: {
|
||||||
|
type: Number,
|
||||||
|
default: 15
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
fill: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
@ -0,0 +1,45 @@
|
|||||||
|
import { EConfigItemPropsType, EDoneJsonType, IConfigItem } from '@/config-center/types';
|
||||||
|
|
||||||
|
export const custom_svg_text: IConfigItem = {
|
||||||
|
name: 'custom-svg-text',
|
||||||
|
title: '文字',
|
||||||
|
tag: 'custom-svg-text',
|
||||||
|
type: EDoneJsonType.CustomSvg,
|
||||||
|
config: {
|
||||||
|
can_zoom: true,
|
||||||
|
have_anchor: true,
|
||||||
|
actual_rect: true
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
text: {
|
||||||
|
title: '文字内容',
|
||||||
|
type: EConfigItemPropsType.Input,
|
||||||
|
val: '文字'
|
||||||
|
},
|
||||||
|
fontFamily: {
|
||||||
|
title: '字体',
|
||||||
|
type: EConfigItemPropsType.Select,
|
||||||
|
val: 'Microsoft YaHei',
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
value: 'Microsoft YaHei',
|
||||||
|
label: '微软雅黑'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 'NSimSun',
|
||||||
|
label: '新宋体'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
fontSize: {
|
||||||
|
title: '文字大小',
|
||||||
|
type: EConfigItemPropsType.InputNumber,
|
||||||
|
val: 15
|
||||||
|
},
|
||||||
|
fill: {
|
||||||
|
title: '文字颜色',
|
||||||
|
type: EConfigItemPropsType.Color,
|
||||||
|
val: '#FFF200FF'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,8 @@
|
|||||||
|
import { IConfigComponentGroup } from '../types';
|
||||||
|
import { custom_svg_text } from './custom-svg-text';
|
||||||
|
|
||||||
|
export const custom_svg_group: IConfigComponentGroup = {
|
||||||
|
groupType: 'custom_svg_group',
|
||||||
|
title: '自定义svg',
|
||||||
|
list: [custom_svg_text]
|
||||||
|
};
|
@ -1,9 +1,12 @@
|
|||||||
import { svgfile_config_center } from './svg-file';
|
import { svgfile_config_center } from './svg-file';
|
||||||
import { IConfigCenter } from './types';
|
import { IComponentImport, IConfigCenter } from './types';
|
||||||
|
import customSvgText from '@/components/webtopo-svgedit/components/custom-svg/custom-svg-text/index.vue';
|
||||||
export const configCenter: IConfigCenter = {
|
export const configCenter: IConfigCenter = {
|
||||||
svg文件: svgfile_config_center,
|
svg文件: svgfile_config_center,
|
||||||
vue组件: [],
|
vue组件: [],
|
||||||
自定义组件: [],
|
自定义组件: [],
|
||||||
图表: []
|
图表: []
|
||||||
};
|
};
|
||||||
|
export const ComponentImport: IComponentImport = {
|
||||||
|
'custom-svg-text': customSvgText
|
||||||
|
};
|
||||||
|
Loading…
Reference in New Issue