forked from github/dataease
Merge pull request #11979 from dataease/pr@dev-v2@refacto_triangle
refactor(数据大屏): 三角形图形样式优化
This commit is contained in:
commit
683490adba
@ -200,7 +200,17 @@ const start = ref({
|
|||||||
const width = ref(0)
|
const width = ref(0)
|
||||||
const height = ref(0)
|
const height = ref(0)
|
||||||
const isShowArea = ref(false)
|
const isShowArea = ref(false)
|
||||||
const svgFilterAttrs = ['width', 'height', 'top', 'left', 'rotate', 'backgroundColor']
|
const svgFilterAttrs = [
|
||||||
|
'width',
|
||||||
|
'height',
|
||||||
|
'top',
|
||||||
|
'left',
|
||||||
|
'rotate',
|
||||||
|
'backgroundColor',
|
||||||
|
'borderWidth',
|
||||||
|
'borderStyle',
|
||||||
|
'borderColor'
|
||||||
|
]
|
||||||
const commonFilterAttrs = ['width', 'height', 'top', 'left', 'rotate']
|
const commonFilterAttrs = ['width', 'height', 'top', 'left', 'rotate']
|
||||||
const commonFilterAttrsFilterBorder = [
|
const commonFilterAttrsFilterBorder = [
|
||||||
'width',
|
'width',
|
||||||
@ -1569,6 +1579,23 @@ defineExpose({
|
|||||||
:dv-info="dvInfo"
|
:dv-info="dvInfo"
|
||||||
:canvas-active="canvasActive"
|
:canvas-active="canvasActive"
|
||||||
/>
|
/>
|
||||||
|
<component
|
||||||
|
v-else-if="item.component.includes('Svg')"
|
||||||
|
:is="findComponent(item.component)"
|
||||||
|
:id="'component' + item.id"
|
||||||
|
:scale="curBaseScale"
|
||||||
|
class="component"
|
||||||
|
:is-edit="true"
|
||||||
|
:style="getSvgComponentStyle(item.style)"
|
||||||
|
:prop-value="item.propValue"
|
||||||
|
:element="item"
|
||||||
|
:request="item.request"
|
||||||
|
:canvas-style-data="canvasStyleData"
|
||||||
|
:canvas-view-info="canvasViewInfo"
|
||||||
|
:dv-info="dvInfo"
|
||||||
|
:active="item.id === curComponentId"
|
||||||
|
:canvas-active="canvasActive"
|
||||||
|
/>
|
||||||
<component
|
<component
|
||||||
v-else
|
v-else
|
||||||
:is="findComponent(item.component)"
|
:is="findComponent(item.component)"
|
||||||
|
@ -156,7 +156,17 @@ const onClick = e => {
|
|||||||
|
|
||||||
const getComponentStyleDefault = style => {
|
const getComponentStyleDefault = style => {
|
||||||
if (config.value.component.includes('Svg')) {
|
if (config.value.component.includes('Svg')) {
|
||||||
return getStyle(style, ['top', 'left', 'width', 'height', 'rotate', 'backgroundColor'])
|
return getStyle(style, [
|
||||||
|
'top',
|
||||||
|
'left',
|
||||||
|
'width',
|
||||||
|
'height',
|
||||||
|
'rotate',
|
||||||
|
'backgroundColor',
|
||||||
|
'borderWidth',
|
||||||
|
'borderStyle',
|
||||||
|
'borderColor'
|
||||||
|
])
|
||||||
} else {
|
} else {
|
||||||
return getStyle(style, style.borderActive ? commonFilterAttrs : commonFilterAttrsFilterBorder)
|
return getStyle(style, style.borderActive ? commonFilterAttrs : commonFilterAttrsFilterBorder)
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import { COLOR_PANEL } from '@/views/chart/components/editor/util/chart'
|
|||||||
const dvMainStore = dvMainStoreWithOut()
|
const dvMainStore = dvMainStoreWithOut()
|
||||||
|
|
||||||
const snapshotStore = snapshotStoreWithOut()
|
const snapshotStore = snapshotStoreWithOut()
|
||||||
const { canvasStyleData } = storeToRefs(dvMainStore)
|
const { canvasStyleData, curComponent } = storeToRefs(dvMainStore)
|
||||||
|
|
||||||
const props = withDefaults(
|
const props = withDefaults(
|
||||||
defineProps<{
|
defineProps<{
|
||||||
@ -63,6 +63,10 @@ const sizeChange = key => {
|
|||||||
changeStyle({ key: key, value: styleInfo.value[key] })
|
changeStyle({ key: key, value: styleInfo.value[key] })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isSvgComponent = computed(
|
||||||
|
() => curComponent.value && curComponent.value.component === 'SvgTriangle'
|
||||||
|
)
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => styleInfo.value,
|
() => styleInfo.value,
|
||||||
() => {
|
() => {
|
||||||
@ -78,6 +82,46 @@ watch(
|
|||||||
<template>
|
<template>
|
||||||
<el-row class="custom-row">
|
<el-row class="custom-row">
|
||||||
<el-form label-position="top">
|
<el-form label-position="top">
|
||||||
|
<template v-if="isSvgComponent">
|
||||||
|
<el-row style="display: flex">
|
||||||
|
<el-form-item
|
||||||
|
style="width: 70px"
|
||||||
|
label="颜色"
|
||||||
|
class="form-item"
|
||||||
|
:class="'form-item-' + themes"
|
||||||
|
>
|
||||||
|
<el-color-picker
|
||||||
|
title="颜色"
|
||||||
|
v-model="styleForm.borderColor"
|
||||||
|
class="color-picker-style"
|
||||||
|
:triggerWidth="65"
|
||||||
|
is-custom
|
||||||
|
:predefine="state.predefineColors"
|
||||||
|
@change="changeStylePre('borderColor')"
|
||||||
|
>
|
||||||
|
</el-color-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
style="width: 150px"
|
||||||
|
label="线宽"
|
||||||
|
class="form-item"
|
||||||
|
:class="'form-item-' + themes"
|
||||||
|
>
|
||||||
|
<el-input-number
|
||||||
|
title="线宽"
|
||||||
|
:min="0"
|
||||||
|
:max="50"
|
||||||
|
:effect="themes"
|
||||||
|
controls-position="right"
|
||||||
|
v-model="styleMounted.borderWidth"
|
||||||
|
class="color-picker-style"
|
||||||
|
@change="sizeChange('borderWidth')"
|
||||||
|
>
|
||||||
|
</el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
<el-row style="display: flex">
|
<el-row style="display: flex">
|
||||||
<el-form-item
|
<el-form-item
|
||||||
style="width: 70px"
|
style="width: 70px"
|
||||||
@ -157,6 +201,7 @@ watch(
|
|||||||
</el-input-number>
|
</el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
</template>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-row>
|
</el-row>
|
||||||
</template>
|
</template>
|
||||||
|
Loading…
Reference in New Issue
Block a user