From ace68a780c9485d68e90a32f1a9ece3c09d7ceaf Mon Sep 17 00:00:00 2001 From: xiaoluoHe Date: Wed, 17 Jul 2024 18:01:28 +0800 Subject: [PATCH] feat: support shapeComponent & add infographic demo --- packages/vstory/demo/src/App.tsx | 5 + .../demo/src/assets/1920x1080/meeting.jpeg | Bin 0 -> 65554 bytes .../demo/src/demos/infographics/Pictogram.tsx | 437 ++++++++++++++++++ packages/vstory/src/dsl/constant/index.ts | 2 +- .../processorMap/processorMap.ts | 24 +- .../component/characters/character-shape.ts | 11 + .../character/component/graphic/symbol.ts | 36 ++ packages/vstory/src/story/index.ts | 2 + 8 files changed, 496 insertions(+), 21 deletions(-) create mode 100644 packages/vstory/demo/src/assets/1920x1080/meeting.jpeg create mode 100644 packages/vstory/demo/src/demos/infographics/Pictogram.tsx create mode 100644 packages/vstory/src/story/character/component/characters/character-shape.ts create mode 100644 packages/vstory/src/story/character/component/graphic/symbol.ts diff --git a/packages/vstory/demo/src/App.tsx b/packages/vstory/demo/src/App.tsx index 7abd67d..b4d694e 100644 --- a/packages/vstory/demo/src/App.tsx +++ b/packages/vstory/demo/src/App.tsx @@ -15,6 +15,7 @@ import { StoryEdit } from './demos/StoryEdit'; import { Appear } from './demos/Appear'; import { GraphicEdit } from './demos/GraphicEdit'; import { Playground } from './demos/Playground'; +import { Pictogram } from './demos/infographics/Pictogram'; const App = () => { const [activeIndex, setActiveIndex] = useLocalStorage('menuIndex', 0); @@ -74,6 +75,10 @@ const App = () => { { name: 'Playground', component: Playground + }, + { + name: 'Infographic-Pictogram', + component: Pictogram } ]; const selectedMenu = menus[activeIndex ?? menus.length - 1]; diff --git a/packages/vstory/demo/src/assets/1920x1080/meeting.jpeg b/packages/vstory/demo/src/assets/1920x1080/meeting.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..870b4ed477533cd00084727c0ef23d2c61d67a8e GIT binary patch literal 65554 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 startIndex ? '#48A0CF' : 'white' + } + } + }; + characters.push(character); + actions.push({ + characterId: id, + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }); + } + } + return { characters, actions }; +} + +const leftIcons = createIconMatrix(matrixLeft, 40, 116, 330); +const rightIcons = createIconMatrix(matrixRight, 45, 1164, 330); + +export const Pictogram = () => { + const id = 'pictogram'; + + useEffect(() => { + // 准备一个图表 + const spec: IStorySpec = { + characters: [ + { + type: 'RectComponent', + id: 'background-top', + zIndex: 2, + position: { + top: 0, + left: 0, + width: 1920, + height: 254 + }, + options: { + graphic: { + fill: '#2D6BA0', + stroke: false + } + } + }, + { + type: 'RectComponent', + id: 'background-bottom-filter', + zIndex: 0, + position: { + top: 0, + left: 0, + width: 1920, + height: 1080 + }, + options: { + graphic: { + fill: '#193446', + fillOpacity: 1, + stroke: false + } + } + }, + { + type: 'ImageComponent', + id: 'background-bottom', + zIndex: 1, + position: { + top: 0, + left: 0, + width: 1920, + height: 1080 + }, + options: { + graphic: { + image: MeetingImg, + opacity: 0.2 + } + } + }, + { + type: 'RichTextComponent', + id: 'Title', + zIndex: 3, + position: { + top: 254 / 2, + left: 1920 / 2, + width: 1920, + height: 1080 + }, + options: { + graphic: { + width: 1920 - 300, + height: 1080, + fontSize: 40, + wordBreak: 'break-word', + textAlign: 'center', + fill: 'white', + fontWeight: 200, + textConfig: [ + { + text: 'According to a study conducted by ' + }, + { + text: 'Mckinsey & Company', + fontWeight: 'bold' + }, + { + text: ' on the effect the pandemic and remote working had on hiring and human resources management' + } + ] + } + } + }, + { + type: 'LineComponent', + id: 'SplitLine', + zIndex: 3, + position: { + top: 340, + left: 1920 / 2, + width: 20, + height: 560 + }, + options: { + graphic: { + stroke: '#48A0CF', + lineWith: 10, + points: [ + { x: 0, y: 0 }, + { x: 0, y: 560 } + ] + } + } + }, + { + type: 'ShapeComponent', + id: 'Star', + zIndex: 3, + position: { + top: 340 + 560, + left: 1920 / 2, + width: 100, + height: 100 + }, + options: { + graphic: { + fill: '#48A0CF', + stroke: false, + symbolType: + 'M187.5,0.2c-61.2,106-63.8,106-125,0c61.2,106,59.9,108.3-62.5,108.3 c122.4,0,123.7,2.2,62.5,108.3c61.2-106,63.8-106,125,0c-61.2-106-59.9-108.3,62.5-108.3C127.6,108.6,126.3,106.2,187.5,0.2z', + size: 140, + dx: -70, + dy: -60 + } + } + }, + { + type: 'TextComponent', + id: 'LeftPercent', + zIndex: 3, + position: { + top: 760, + left: 420, + width: 300, + height: 100 + }, + options: { + graphic: { + text: '67%', + fill: '#48A0CF', + fontSize: 120, + fontWeight: 600, + stroke: '#48A0CF', + fontFamily: 'Archivo' + } + } + }, + { + type: 'RichTextComponent', + id: 'LeftDescription', + zIndex: 3, + position: { + top: 900, + left: 420, + width: 460, + height: 108 + }, + options: { + graphic: { + fill: 'white', + fontSize: 30, + width: 460, + height: 108, + wordBreak: 'break-word', + textConfig: [ + { + text: 'Of over 120 CEOs plan to spend less time on hiring permanent recruits' + } + ] + } + } + }, + { + type: 'TextComponent', + id: 'RightPercent', + zIndex: 3, + position: { + top: 760, + left: 1483, + width: 300, + height: 100 + }, + options: { + graphic: { + text: '63%', + fill: '#48A0CF', + fontSize: 120, + fontWeight: 600, + stroke: '#48A0CF', + fontFamily: 'Archivo' + } + } + }, + { + type: 'RichTextComponent', + id: 'RightDescription', + zIndex: 3, + position: { + top: 900, + left: 1483, + width: 460, + height: 108 + }, + options: { + graphic: { + fill: 'white', + fontSize: 30, + width: 460, + height: 108, + wordBreak: 'break-word', + textConfig: [ + { + text: 'Plan to grow their IT and tech teams in response to changing ways of working' + } + ] + } + } + }, + ...leftIcons.characters, + ...rightIcons.characters + ], + acts: [ + { + id: 'page1', + scenes: [ + { + id: 'singleScene', + actions: [ + { + characterId: 'background-top', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'background-bottom-filter', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'background-bottom', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'Title', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'SplitLine', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'Star', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + ...leftIcons.actions, + ...rightIcons.actions, + { + characterId: 'LeftPercent', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'LeftDescription', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'RightPercent', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + }, + { + characterId: 'RightDescription', + characterActions: [ + { + action: 'appear', + startTime: 0, + duration: 0 + } + ] + } + ] + } + ] + } + ] + }; + const story = new Story(spec, { dom: id, playerOption: { scaleX: 0.5, scaleY: 0.5 } }); + // const story = new Story(spec, { dom: id, playerOption: {} }); + story.play(); + window.story = story; + }, []); + + return
; +}; diff --git a/packages/vstory/src/dsl/constant/index.ts b/packages/vstory/src/dsl/constant/index.ts index af82309..53b2a50 100644 --- a/packages/vstory/src/dsl/constant/index.ts +++ b/packages/vstory/src/dsl/constant/index.ts @@ -15,7 +15,7 @@ export const enum StoryChartType { } export enum StoryGraphicType { RECT = 'RectComponent', - // Shape = 'SymbolComponent', + SHAPE = 'ShapeComponent', LINE = 'LineComponent', ARC = 'ArcComponent', // AREA = 'AreaComponent', diff --git a/packages/vstory/src/dsl/story-processor/processorMap/processorMap.ts b/packages/vstory/src/dsl/story-processor/processorMap/processorMap.ts index 2d1bf99..7e7eac9 100644 --- a/packages/vstory/src/dsl/story-processor/processorMap/processorMap.ts +++ b/packages/vstory/src/dsl/story-processor/processorMap/processorMap.ts @@ -127,26 +127,10 @@ export const commonMarkProcessor = { bounce: bounceProcessor }; -export const processorMarkMap = { - [StoryGraphicType.RECT]: { - ...commonMarkProcessor - }, - [StoryGraphicType.QIPAO]: { - ...commonMarkProcessor - }, - [StoryGraphicType.TEXT]: { - ...commonMarkProcessor - }, - [StoryGraphicType.RICH_TEXT]: { - ...commonMarkProcessor - }, - [StoryGraphicType.LINE]: { - ...commonMarkProcessor - }, - [StoryGraphicType.IMAGE]: { - ...commonMarkProcessor - } -}; +export const processorMarkMap = {}; +Object.values(StoryGraphicType).forEach(type => { + processorMarkMap[type] = commonMarkProcessor; +}); // TODO: 按需引用, 所有processor export const processorMap = { diff --git a/packages/vstory/src/story/character/component/characters/character-shape.ts b/packages/vstory/src/story/character/component/characters/character-shape.ts new file mode 100644 index 0000000..4be65be --- /dev/null +++ b/packages/vstory/src/story/character/component/characters/character-shape.ts @@ -0,0 +1,11 @@ +import type { Graphic } from '../graphic/graphic'; +import { CharacterComponent } from '../character'; +import { StoryGraphicType } from '../../../../dsl/constant'; +import { GraphicSymbol } from '../graphic/symbol'; + +export class CharacterComponentShape extends CharacterComponent { + readonly graphicType: string = 'shape'; + protected _createGraphic(): Graphic { + return new GraphicSymbol(StoryGraphicType.Shape, this); + } +} diff --git a/packages/vstory/src/story/character/component/graphic/symbol.ts b/packages/vstory/src/story/character/component/graphic/symbol.ts new file mode 100644 index 0000000..b630282 --- /dev/null +++ b/packages/vstory/src/story/character/component/graphic/symbol.ts @@ -0,0 +1,36 @@ +import type { ISymbol } from '@visactor/vrender'; +import { createSymbol } from '@visactor/vrender'; +import type { IPointLike } from '@visactor/vutils'; +import { Graphic } from './graphic'; + +export class GraphicSymbol extends Graphic { + protected _graphic: ISymbol; + + getInitialAttributes() { + return { + x: 0, + y: 0, + width: 120, + height: 80, + angle: 0, + anchor: [60, 40], + lineWidth: 2, + stroke: '#000000', + shapePoints: [] as IPointLike[], + symbolType: 'circle' + }; + } + + init() { + if (!this._graphic) { + this._graphic = createSymbol( + this._transformAttributes({ + ...this.getInitialAttributes(), + ...(this._character.spec.options?.graphic ?? {}) + }) + ); + this._graphic.name = `graphic-symbol-${this._character.id}`; + this._character.getGraphicParent().add(this._graphic); + } + } +} diff --git a/packages/vstory/src/story/index.ts b/packages/vstory/src/story/index.ts index 74c632a..3ac4c98 100644 --- a/packages/vstory/src/story/index.ts +++ b/packages/vstory/src/story/index.ts @@ -22,6 +22,7 @@ import { VChartPicker } from './character/chart/graphic/vchart-graphic-picker'; import { StoryGraphicType } from '../dsl/constant'; import { CharacterComponentLine } from './character/component/characters/character-line'; import { CharacterComponentImage } from './character/component/characters/character-image'; +import { CharacterComponentShape } from './character/component/characters/character-shape'; const splitModule = new ContainerModule((bind: any) => { // chart渲染器注入 @@ -60,6 +61,7 @@ export function registerCharacter() { StoryFactory.registerCharacter(StoryGraphicType.QIPAO, CharacterComponentQipao); StoryFactory.registerCharacter(StoryGraphicType.LINE, CharacterComponentLine); StoryFactory.registerCharacter(StoryGraphicType.IMAGE, CharacterComponentImage); + StoryFactory.registerCharacter(StoryGraphicType.SHAPE, CharacterComponentShape); container.load(splitModule); }