From 43c46c873c583be530497c7dd114123d2f8d1439 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A5=94=E8=B7=91=E7=9A=84=E9=9D=A2=E6=9D=A1?=
<1262327911@qq.com>
Date: Tue, 19 Apr 2022 22:07:54 +0800
Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E5=9B=BE?=
=?UTF-8?q?=E8=A1=A8=E9=A2=9C=E8=89=B2=E6=BB=A4=E9=95=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Pages/ChartItemSetting/StylesSetting.vue | 91 +++++++++++++++++--
src/packages/index.d.ts | 15 ++-
src/packages/public/publicConfig.ts | 12 ++-
.../chartEditStore/chartEditStore.d.ts | 21 +++--
src/views/preview/utils/style.ts | 5 +-
5 files changed, 121 insertions(+), 23 deletions(-)
diff --git a/src/components/Pages/ChartItemSetting/StylesSetting.vue b/src/components/Pages/ChartItemSetting/StylesSetting.vue
index 8a7794f9..b13534d5 100644
--- a/src/components/Pages/ChartItemSetting/StylesSetting.vue
+++ b/src/components/Pages/ChartItemSetting/StylesSetting.vue
@@ -1,13 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
@@ -17,15 +76,27 @@ import { PropType } from 'vue'
import { PickCreateComponentType } from '@/packages/index.d'
import {
SettingItemBox,
- CollapseItem
+ SettingItem,
+ CollapseItem,
} from '@/components/Pages/ChartItemSetting'
const props = defineProps({
chartStyles: {
type: Object as PropType>,
- required: true
- }
+ required: true,
+ },
})
+
+// 百分比格式化persen
+const sliderFormatTooltip = (v: string) => {
+ // @ts-ignore
+ return `${(parseFloat(v) * 100).toFixed(0)}%`
+}
+// 角度格式化
+const degFormatTooltip = (v: string) => {
+ // @ts-ignore
+ return `${v}deg`
+}
diff --git a/src/packages/index.d.ts b/src/packages/index.d.ts
index 5c5b1e2e..37df8e98 100644
--- a/src/packages/index.d.ts
+++ b/src/packages/index.d.ts
@@ -30,7 +30,20 @@ export interface PublicConfigType extends requestConfig {
id: string
rename?: string
attr: { x: number; y: number; w: number; h: number; zIndex: number }
- styles: { opacity: number; animations: string[] }
+ styles: {
+ // 透明度
+ opacity: number;
+ // 饱和度
+ saturate: number;
+ // 对比度
+ contrast: number;
+ // 色相
+ hueRotate: number;
+ // 亮度
+ brightness: number;
+ // 动画
+ animations: string[]
+ }
setPosition: Function
}
export interface CreateComponentType extends PublicConfigType {
diff --git a/src/packages/public/publicConfig.ts b/src/packages/public/publicConfig.ts
index 508da632..2c0012b7 100644
--- a/src/packages/public/publicConfig.ts
+++ b/src/packages/public/publicConfig.ts
@@ -14,9 +14,19 @@ export class publicConfig implements PublicConfigType {
public rename = undefined
// 基本信息
public attr = { x: 0, y: 0, w: 500, h: 300, zIndex: -1 }
- // 基本样式(动画,透明)
+ // 基本样式
public styles = {
+ // 透明
opacity: 1,
+ // 饱和度
+ saturate: 1,
+ // 对比度
+ contrast: 1,
+ // 色相
+ hueRotate: 0,
+ // 亮度
+ brightness: 1,
+ // 动画
animations: []
}
// 数据
diff --git a/src/store/modules/chartEditStore/chartEditStore.d.ts b/src/store/modules/chartEditStore/chartEditStore.d.ts
index 85937840..81dceb1f 100644
--- a/src/store/modules/chartEditStore/chartEditStore.d.ts
+++ b/src/store/modules/chartEditStore/chartEditStore.d.ts
@@ -54,20 +54,21 @@ export enum EditCanvasConfigEnum {
}
export interface EditCanvasConfigType {
+ // 滤镜-色相
+ [EditCanvasConfigEnum.HUE_ROTATE]: number
+ // 滤镜-饱和度
+ [EditCanvasConfigEnum.SATURATE]: number
+ // 滤镜-亮度
+ [EditCanvasConfigEnum.BRIGHTNESS]: number
+ // 滤镜-对比度
+ [EditCanvasConfigEnum.CONTRAST]: number
+ // 滤镜-不透明度
+ [EditCanvasConfigEnum.UN_OPACITY]: number
+
// 大屏宽度
[EditCanvasConfigEnum.WIDTH]: number
// 大屏高度
[EditCanvasConfigEnum.HEIGHT]: number
- // 色相
- [EditCanvasConfigEnum.HUE_ROTATE]: number
- // 饱和度
- [EditCanvasConfigEnum.SATURATE]: number
- // 亮度
- [EditCanvasConfigEnum.BRIGHTNESS]: number
- // 对比度
- [EditCanvasConfigEnum.CONTRAST]: number
- // 不透明度
- [EditCanvasConfigEnum.UN_OPACITY]: number
// 背景色
[EditCanvasConfigEnum.BACKGROUND]?: string
[EditCanvasConfigEnum.BACKGROUND_IAMGE]?: string | null
diff --git a/src/views/preview/utils/style.ts b/src/views/preview/utils/style.ts
index 1dfa11b6..0ea0c446 100644
--- a/src/views/preview/utils/style.ts
+++ b/src/views/preview/utils/style.ts
@@ -44,9 +44,12 @@ export const animationsClass = (animations: string[]) => {
return ''
}
+// 样式
export const getStyle = (styles: StylesType) => {
+ const { opacity, saturate, contrast, hueRotate, brightness } = styles
return {
// 透明度
- opacity: styles.opacity
+ opacity: opacity,
+ filter: `saturate(${saturate}) contrast(${contrast}) hue-rotate(${hueRotate}deg) brightness(${brightness})`
}
}