├── mock └── .gitkeep ├── src ├── access.ts ├── utils │ ├── Assist │ │ ├── About │ │ │ ├── README.md │ │ │ └── index.tsx │ │ ├── EventEmitter │ │ │ └── README.md │ │ ├── BreakingChange │ │ │ ├── README.md │ │ │ ├── ComponentTransformOriginChange │ │ │ │ ├── README.md │ │ │ │ └── index.ts │ │ │ ├── ComponentInputButtonWidthChange │ │ │ │ └── README.md │ │ │ ├── ConditionChange │ │ │ │ └── README.md │ │ │ └── ScreenThemeTypeChange │ │ │ │ └── README.md │ │ ├── Logger │ │ │ ├── RequestLogger │ │ │ │ └── index.less │ │ │ └── Window │ │ │ │ └── index.less │ │ ├── GlobalDva │ │ │ └── index.ts │ │ ├── GlobalComponent │ │ │ └── index.ts │ │ └── Progress │ │ │ └── index.ts │ ├── constants │ │ ├── data.ts │ │ ├── theme.ts │ │ └── mobile.ts │ └── index.ts ├── components │ ├── ChartComponents │ │ ├── Common │ │ │ ├── Modal │ │ │ │ └── index.tsx │ │ │ ├── RenderWrapper │ │ │ │ ├── README.md │ │ │ │ └── ShowIdWrapper │ │ │ │ │ ├── index.less │ │ │ │ │ └── connect.ts │ │ │ ├── index.less │ │ │ ├── BaseConfig │ │ │ │ ├── index.less │ │ │ │ └── connect.ts │ │ │ ├── SimpleHueSelect │ │ │ │ └── index.less │ │ │ ├── InterActiveConfig │ │ │ │ ├── components │ │ │ │ │ ├── LinkageConfig │ │ │ │ │ │ └── index.less │ │ │ │ │ └── BaseConfig │ │ │ │ │ │ └── connect.ts │ │ │ │ ├── index.less │ │ │ │ └── connect.ts │ │ │ ├── Component │ │ │ │ └── hook │ │ │ │ │ ├── useChartEvent.ts │ │ │ │ │ ├── useComponentResize.ts │ │ │ │ │ └── index.ts │ │ │ ├── DataConfig │ │ │ │ ├── components │ │ │ │ │ └── ResponseData │ │ │ │ │ │ └── components │ │ │ │ │ │ ├── DataConfigDetail │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── DefineConfig │ │ │ │ │ │ │ ├── type.d.ts │ │ │ │ │ │ │ ├── ApiConfig │ │ │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ │ └── MockConfig │ │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ │ ├── SubTitle │ │ │ │ │ │ │ └── index.less │ │ │ │ │ │ │ ├── ResponseDataTitle │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ │ └── DataFilter │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ ├── AutoUpdate │ │ │ │ │ │ └── index.less │ │ │ │ │ │ └── CodeViewer │ │ │ │ │ │ └── connect.ts │ │ │ │ └── connect.ts │ │ │ ├── LocalUpload │ │ │ │ └── index.less │ │ │ ├── PositionConfig │ │ │ │ └── index.less │ │ │ ├── Structure │ │ │ │ ├── HalfFormPlaceHolder │ │ │ │ │ └── index.less │ │ │ │ ├── FullForm │ │ │ │ │ └── index.less │ │ │ │ ├── HalfForm │ │ │ │ │ └── index.less │ │ │ │ ├── PlaceHolder │ │ │ │ │ └── index.less │ │ │ │ └── Container │ │ │ │ │ ├── index.less │ │ │ │ │ └── index.tsx │ │ │ ├── Icon │ │ │ │ └── index.tsx │ │ │ ├── Checkbox │ │ │ │ ├── index.less │ │ │ │ └── index.tsx │ │ │ ├── RuleTree │ │ │ │ └── components │ │ │ │ │ ├── InnerConnectLeft │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── InnerConnectRight │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── OuterConnectRight │ │ │ │ │ └── index.tsx │ │ │ │ │ └── OuterConnectLeft │ │ │ │ │ └── index.tsx │ │ │ ├── Switch │ │ │ │ └── index.tsx │ │ │ └── FetchFragment │ │ │ │ └── connect.ts │ │ ├── Font │ │ │ ├── Title │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── id.ts │ │ │ │ └── index.ts │ │ │ ├── Icon │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── Tag │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Text │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── LoopText │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── FontCarousel │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── TimeMachine │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ └── CountUpNumber │ │ │ │ ├── id.ts │ │ │ │ └── component │ │ │ │ └── index.less │ │ ├── Media │ │ │ ├── Image │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Audio │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── Model │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Video │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Carousel │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ └── PictureWall │ │ │ │ ├── component │ │ │ │ └── index.less │ │ │ │ ├── id.ts │ │ │ │ └── type.ts │ │ ├── Other │ │ │ ├── List │ │ │ │ ├── id.ts │ │ │ │ └── index.ts │ │ │ ├── Iframe │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ ├── MessageTooltip │ │ │ │ │ │ └── index.less │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── QrCode │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Weather │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── index.ts │ │ │ │ └── type.ts │ │ │ ├── LuckyDraw │ │ │ │ ├── id.ts │ │ │ │ └── index.ts │ │ │ ├── PathBasic │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── StateCard │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── StateList │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── WaterBall │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ └── WordCloud │ │ │ │ └── id.ts │ │ ├── Interactive │ │ │ ├── Rate │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Tab │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── index.ts │ │ │ │ └── type.ts │ │ │ ├── Button │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Input │ │ │ │ ├── id.ts │ │ │ │ └── index.ts │ │ │ ├── Radio │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Select │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── Steps │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── components │ │ │ │ │ │ └── RcSteps │ │ │ │ │ │ ├── interface.ts │ │ │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ │ ├── Switch │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── index.ts │ │ │ ├── Checkbox │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Datepicker │ │ │ │ └── id.ts │ │ │ ├── FullScreen │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── component │ │ │ │ │ └── index.less │ │ │ └── Pagination │ │ │ │ └── id.ts │ │ ├── Source │ │ │ ├── Ticket │ │ │ │ ├── id.ts │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Typed │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ ├── type.ts │ │ │ │ └── index.ts │ │ │ ├── Decoration1 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── Decoration2 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── Decoration3 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── Decoration4 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── Decoration5 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── Decoration6 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ ├── Decoration7 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ │ └── Decoration8 │ │ │ │ ├── id.ts │ │ │ │ ├── component │ │ │ │ └── index.less │ │ │ │ └── type.ts │ │ ├── Chart │ │ │ ├── Bar │ │ │ │ ├── LineBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── RankBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── BarBasic │ │ │ │ │ └── id.ts │ │ │ │ ├── CachetBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PolarBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── RadialBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── StackBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── ZebraBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── NegativeBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PercentBar │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── ProgressBar │ │ │ │ │ └── id.ts │ │ │ │ ├── HorizontalBar │ │ │ │ │ └── id.ts │ │ │ │ ├── PolarStackBar │ │ │ │ │ └── id.ts │ │ │ │ └── WaterFallBar │ │ │ │ │ └── id.ts │ │ │ ├── Line │ │ │ │ ├── LineBasic │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── StepLine │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── RadialLine │ │ │ │ │ └── id.ts │ │ │ │ └── RadialStackLine │ │ │ │ │ └── id.ts │ │ │ ├── Pie │ │ │ │ ├── CirclePie │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PieBasic │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── PercentPie │ │ │ │ │ └── id.ts │ │ │ │ └── NightingalePie │ │ │ │ │ └── id.ts │ │ │ ├── Tree │ │ │ │ └── TreeBasic │ │ │ │ │ ├── id.ts │ │ │ │ │ └── index.ts │ │ │ ├── Gauge │ │ │ │ ├── ClockGauge │ │ │ │ │ └── id.ts │ │ │ │ └── GaugeBasic │ │ │ │ │ └── id.ts │ │ │ ├── Radar │ │ │ │ └── RadarBasic │ │ │ │ │ └── id.ts │ │ │ ├── BoxPlot │ │ │ │ └── BoxPlotBasic │ │ │ │ │ └── id.ts │ │ │ ├── Funnel │ │ │ │ └── FunnelBasic │ │ │ │ │ └── id.ts │ │ │ ├── Scatter │ │ │ │ ├── ScatterBasic │ │ │ │ │ └── id.ts │ │ │ │ └── BubbleScatter │ │ │ │ │ └── id.ts │ │ │ ├── TreeMap │ │ │ │ └── TreeMapBasic │ │ │ │ │ └── id.ts │ │ │ ├── Parallel │ │ │ │ └── ParallelBasic │ │ │ │ │ └── id.ts │ │ │ ├── SunBurst │ │ │ │ └── SunBurstBasic │ │ │ │ │ ├── id.ts │ │ │ │ │ └── type.ts │ │ │ ├── Candlestick │ │ │ │ └── CandlestickBasic │ │ │ │ │ └── id.ts │ │ │ └── PictorialBar │ │ │ │ └── PictorialBarBasic │ │ │ │ └── id.ts │ │ └── Map │ │ │ ├── Ali3DMap │ │ │ ├── id.ts │ │ │ └── index.ts │ │ │ └── ScatterMap │ │ │ ├── id.ts │ │ │ └── index.ts │ ├── InternalBackground │ │ └── components │ │ │ └── Background │ │ │ ├── index.less │ │ │ ├── ColorLineBackground │ │ │ └── index.less │ │ │ ├── DoodleBubbleBackground │ │ │ └── index.less │ │ │ └── GradientMixBackground │ │ │ └── index.tsx │ ├── BackgroundSelect │ │ └── index.less │ ├── Tooltip │ │ ├── index.less │ │ └── index.tsx │ ├── ScreenComponentConfigChangeTooltip │ │ ├── index.less │ │ ├── Constants │ │ │ ├── 1.21 │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ └── connect.ts │ ├── Decoration │ │ ├── Decoration5 │ │ │ └── index.less │ │ ├── Decoration8 │ │ │ └── index.less │ │ ├── Decoration1 │ │ │ └── index.less │ │ ├── Decoration3 │ │ │ └── index.less │ │ ├── Decoration6 │ │ │ └── index.less │ │ ├── Decoration2 │ │ │ └── index.less │ │ └── Decoration11 │ │ │ └── index.less │ ├── ColorGradientSelect │ │ └── index.less │ ├── ParamsSelect │ │ ├── index.less │ │ └── connect.ts │ ├── ColorMatcher │ │ └── index.tsx │ ├── IconTooltip │ │ └── index.less │ ├── Empty │ │ └── index.tsx │ ├── CodeEditor │ │ └── index.tsx │ ├── InternalBorder │ │ ├── components │ │ │ └── Border │ │ │ │ ├── DashedBorder │ │ │ │ └── index.less │ │ │ │ ├── index.less │ │ │ │ ├── type.ts │ │ │ │ ├── BorderBox12 │ │ │ │ └── index.less │ │ │ │ ├── BorderBox13 │ │ │ │ └── index.less │ │ │ │ ├── BorderBox8 │ │ │ │ └── index.less │ │ │ │ ├── BorderBox9 │ │ │ │ └── index.less │ │ │ │ ├── BorderBox2 │ │ │ │ └── index.less │ │ │ │ ├── BorderBox6 │ │ │ │ └── index.less │ │ │ │ └── BorderBox11 │ │ │ │ └── index.less │ │ └── connect.ts │ ├── PromptChrome │ │ └── index.less │ ├── GhostButton │ │ ├── index.less │ │ └── index.tsx │ ├── RelationBorder │ │ └── index.less │ ├── ComponentSelect │ │ └── index.less │ ├── IntroductionButton │ │ └── index.less │ ├── Ruler │ │ └── connect.ts │ ├── GuideLine │ │ └── connect.ts │ ├── ColorSelect │ │ └── index.less │ ├── ComponentError │ │ └── index.less │ ├── ColorImageBackground │ │ └── index.less │ ├── ScrollText │ │ └── index.less │ ├── DesignerBackground │ │ └── index.less │ ├── ImageUpload │ │ └── index.less │ ├── PageLoading │ │ └── index.less │ ├── ContextMenu │ │ └── Actions │ │ │ ├── Redo.tsx │ │ │ └── Undo.tsx │ ├── SyncCodeEditor │ │ └── Typesetting.tsx │ └── DeepStructureComponent │ │ └── index.tsx ├── INTERNAL.md ├── favicon.ico ├── loading.tsx ├── pages │ ├── Designer │ │ ├── components │ │ │ ├── Header │ │ │ │ ├── ActionList │ │ │ │ │ ├── index.less │ │ │ │ │ └── components │ │ │ │ │ │ ├── ComponentSearch │ │ │ │ │ │ └── index.less │ │ │ │ │ │ └── DebugConfig │ │ │ │ │ │ └── Winbox │ │ │ │ │ │ └── components │ │ │ │ │ │ └── InsertComponent │ │ │ │ │ │ └── connect.ts │ │ │ │ ├── connect.ts │ │ │ │ └── index.less │ │ │ ├── LeftContent │ │ │ │ ├── components │ │ │ │ │ ├── RequestDefaultConfig │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── LayerManage │ │ │ │ │ │ ├── type.ts │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── Header │ │ │ │ │ │ │ └── index.less │ │ │ │ │ │ │ └── Tree │ │ │ │ │ │ │ ├── connect.ts │ │ │ │ │ │ │ └── components │ │ │ │ │ │ │ └── ActionBar │ │ │ │ │ │ │ └── index.less │ │ │ │ │ ├── ComponentList │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── LensConfig │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── ConstantManage │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── CallbackManage │ │ │ │ │ │ └── connect.ts │ │ │ │ │ └── ThemeConfig │ │ │ │ │ │ ├── CustomConfig │ │ │ │ │ │ └── index.less │ │ │ │ │ │ └── index.less │ │ │ │ └── index.less │ │ │ ├── RenderComponent │ │ │ │ ├── components │ │ │ │ │ ├── NameTag │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── Content │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ ├── ComponentWrapper │ │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ ├── ComponentInternalWrapper │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── SubGroup │ │ │ │ │ │ │ └── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ │ └── Wrapper │ │ │ │ │ │ └── PcWrapper │ │ │ │ │ │ └── ResizeComponent.tsx │ │ │ │ ├── index.less │ │ │ │ └── connect.ts │ │ │ ├── Panel │ │ │ │ ├── components │ │ │ │ │ ├── Painter │ │ │ │ │ │ └── index.less │ │ │ │ │ ├── ToolBar │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── Scale │ │ │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ │ ├── PanelThumb │ │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ │ └── ShortcutKeys │ │ │ │ │ │ │ │ └── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── PanelWrapper │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── components │ │ │ │ │ │ │ ├── Ruler │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ │ │ ├── GuideLineButton │ │ │ │ │ │ │ └── index.less │ │ │ │ │ │ │ └── AbsorbGuideLine │ │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── ReactSelecto │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ │ └── ComponentList │ │ │ │ │ │ └── connect.ts │ │ │ │ └── index.less │ │ │ ├── ShepherdWrapper │ │ │ │ ├── index.less │ │ │ │ └── connect.ts │ │ │ ├── RightContent │ │ │ │ ├── components │ │ │ │ │ ├── GroupConfig │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── Config │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ ├── WrapperConfig │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ │ └── ComponentSelect │ │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── connect.ts │ │ │ │ │ ├── MultiConfig │ │ │ │ │ │ └── index.less │ │ │ │ │ ├── ComponentConfig │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ │ └── GlobalConfig │ │ │ │ │ │ ├── index.less │ │ │ │ │ │ └── connect.ts │ │ │ │ ├── index.less │ │ │ │ └── connect.ts │ │ │ ├── ExchangeScreenFlag │ │ │ │ ├── components │ │ │ │ │ └── MobilePreviewer │ │ │ │ │ │ ├── context.ts │ │ │ │ │ │ └── index.less │ │ │ │ └── connect.ts │ │ │ └── PageLoading │ │ │ │ └── index.less │ │ ├── index.less │ │ ├── connect.ts │ │ └── utils │ │ │ └── component │ │ │ └── GenerateList │ │ │ └── index.tsx │ ├── Test │ │ └── index.tsx │ ├── ScreenList │ │ ├── components │ │ │ └── SvgAnimation │ │ │ │ └── index.less │ │ └── connect.ts │ ├── Share │ │ ├── components │ │ │ └── WaterMark │ │ │ │ ├── index.less │ │ │ │ ├── connect.ts │ │ │ │ └── index.tsx │ │ └── index.less │ ├── Login │ │ └── connect.ts │ ├── Forget │ │ └── connect.ts │ ├── Register │ │ └── connect.ts │ └── Home │ │ └── components │ │ └── MatterBoxes │ │ └── index.less ├── services │ ├── index.ts │ ├── third.ts │ └── mock.ts ├── layouts │ ├── AuthLayout │ │ └── index.tsx │ └── components │ │ ├── CommonLayout │ │ ├── FetchLoginWrapper │ │ │ └── connect.ts │ │ ├── EnvironmentPrompt │ │ │ └── index.tsx │ │ ├── EventEmitWrapper │ │ │ └── index.tsx │ │ └── ContainerWrapper4Static │ │ │ └── index.tsx │ │ └── Avatar │ │ └── connect.ts ├── hooks │ ├── useAnyDva.ts │ ├── useDeepUpdateEffect.ts │ ├── usePanelFocus.ts │ └── useFirstChange.ts └── manifest.json ├── public ├── CNAME ├── logo.jpg ├── favicon.ico ├── components │ ├── tag.jpg │ ├── audio.jpg │ ├── icon.jpg │ ├── input.jpg │ ├── model.jpg │ ├── radio.jpg │ ├── rate.jpg │ ├── steps.jpg │ ├── text.jpg │ ├── tree.png │ ├── typed.jpg │ ├── ali-map.jpg │ ├── box-plot.png │ ├── button.jpg │ ├── checkbox.jpg │ ├── iframe.jpg │ ├── line-bar.png │ ├── qrcode.jpg │ ├── rank-bar.png │ ├── switch.jpg │ ├── ticket.jpg │ ├── weather.png │ ├── bar-basic.png │ ├── cachet-bar.png │ ├── circle-pie.png │ ├── line-basic.png │ ├── list-basic.jpg │ ├── lucky-draw.jpg │ ├── pagination.jpg │ ├── path-basic.jpg │ ├── pie-basic.png │ ├── polar-bar.png │ ├── radial-bar.png │ ├── stack-bar.png │ ├── state-card.jpg │ ├── state-list.jpg │ ├── step-line.png │ ├── tab-basic.jpg │ ├── water-ball.png │ ├── word-cloud.png │ ├── zebra-bar.png │ ├── carousel-text.jpg │ ├── clock-gauge.png │ ├── date-picker.jpg │ ├── decoration-1.jpg │ ├── decoration-2.jpg │ ├── decoration-3.jpg │ ├── decoration-4.jpg │ ├── decoration-5.jpg │ ├── decoration-6.jpg │ ├── decoration-7.jpg │ ├── decoration-8.jpg │ ├── default-chart.png │ ├── full-screen.jpg │ ├── funnel-basic.png │ ├── gauge-basic.png │ ├── image-basic.jpg │ ├── negative-bar.png │ ├── percent-bar.png │ ├── percent-pie.png │ ├── picture-wall.jpg │ ├── progress-bar.png │ ├── radar-basic.png │ ├── radial-line.png │ ├── scatter-basic.png │ ├── scatter-map.png │ ├── select-basic.jpg │ ├── text-carousel.jpg │ ├── time-machine.jpg │ ├── title-basic.jpg │ ├── video-basic.jpg │ ├── waterfall-bar.png │ ├── bubble-scatter.png │ ├── carousel-basic.jpg │ ├── count-up-number.jpg │ ├── horizontal-bar.png │ ├── nightingale-pie.png │ ├── parallel-basic.png │ ├── polar-stack-bar.png │ ├── sub-burst-basic.png │ ├── tree-map-basic.png │ ├── candlestick-basic.png │ ├── radial-stack-line.png │ └── pictorial-bar-basic.png ├── home │ ├── bar-chart.png │ ├── dot-chart.png │ ├── pie-chart.png │ ├── area-chart.png │ ├── condition-1.png │ ├── condition-2.png │ ├── earth-chart.png │ ├── image-chart.png │ ├── line-chart.png │ ├── list-chart.png │ ├── radar-chart.png │ ├── title-chart.png │ ├── video-chart.png │ ├── condition-normal.png │ ├── thermogram-chart.png │ └── wall.svg ├── other │ ├── prizes-1.png │ ├── prizes-2.png │ ├── prizes-3.png │ ├── prizes-4.png │ ├── prizes-5.png │ └── prizes-6.png ├── login │ ├── cloud-top.png │ ├── cloud-bottom.png │ ├── cloud-small.png │ ├── login-left-circle.png │ ├── login-background-main.png │ ├── login-main-background.png │ └── login-pink-background.png └── start-background.jpeg ├── assets ├── development │ ├── attention │ │ └── README.md │ ├── README.md │ ├── 展示组件抽离.md │ ├── 版本升级文档修改流程.md │ └── H5设计器.md ├── panel.png ├── other │ ├── home_bg.png │ ├── background.jpeg │ ├── screenshoot-1.png │ ├── screenshoot-2.png │ ├── screenshoot-3.jpg │ ├── screenshoot-4.jpg │ ├── screenshoot-5.jpg │ └── screenshoot-6.jpg ├── icons │ ├── icon-128x128.png │ ├── icon-192x192.png │ └── icon-512x512.png └── docs │ ├── 1.20.md │ ├── 1.11.md │ ├── 1.19.md │ ├── 1.13.md │ ├── 1.12.md │ ├── 1.17.md │ ├── 1.7.md │ ├── 1.10.md │ ├── 1.0.md │ ├── 1.16.md │ └── 1.9.md ├── .eslintignore ├── scripts └── GenerateComponent │ ├── TemplateComponentFolder │ ├── id.ts │ └── type.ts │ ├── README.md │ └── TemplateComponentImport.txt ├── .stylelintrc.js ├── .sentryclirc ├── .prettierignore ├── jsconfig.json ├── .eslintrc.js ├── .editorconfig └── .prettierrc /mock/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/access.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/CNAME: -------------------------------------------------------------------------------- 1 | preview.pro.ant.design -------------------------------------------------------------------------------- /src/utils/Assist/About/README.md: -------------------------------------------------------------------------------- 1 | 2 | 各种外部链接跳转 -------------------------------------------------------------------------------- /assets/development/attention/README.md: -------------------------------------------------------------------------------- 1 | # 记录逻辑代码更新细节 -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Modal/index.tsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/utils/Assist/EventEmitter/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 一些事件订阅的事件 -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /lambda/ 2 | /scripts 3 | /config 4 | .history -------------------------------------------------------------------------------- /src/INTERNAL.md: -------------------------------------------------------------------------------- 1 | 2 | ## 内部细节 3 | 4 | ### 全局事件 5 | 携带注释 #绑定全局事件 -------------------------------------------------------------------------------- /src/components/InternalBackground/components/Background/index.less: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/development/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 开发思路 3 | 4 | 放一些开发过程中,构思的一些东西。 -------------------------------------------------------------------------------- /src/components/BackgroundSelect/index.less: -------------------------------------------------------------------------------- 1 | .component-background-select { 2 | } 3 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RenderWrapper/README.md: -------------------------------------------------------------------------------- 1 | # 对组件的render进行一系列的同类处理 -------------------------------------------------------------------------------- /src/utils/constants/data.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_FILTER_CODE = `return data`; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/index.less: -------------------------------------------------------------------------------- 1 | @design-config-sub-color: #bcc9d4; 2 | -------------------------------------------------------------------------------- /src/components/Tooltip/index.less: -------------------------------------------------------------------------------- 1 | .tooltip-background-cls { 2 | color: red; 3 | } 4 | -------------------------------------------------------------------------------- /public/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/logo.jpg -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /assets/panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/panel.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Title/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-title { 2 | } 3 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Image/component/index.less: -------------------------------------------------------------------------------- 1 | .component-media-image { 2 | } 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/BaseConfig/index.less: -------------------------------------------------------------------------------- 1 | .component-design-config-base { 2 | } 3 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Icon/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'ICON'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Tag/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TAG'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Text/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TEXT'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Title/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TITLE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/List/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'LIST'; 2 | -------------------------------------------------------------------------------- /src/loading.tsx: -------------------------------------------------------------------------------- 1 | import Loading from '@/components/PageLoading'; 2 | 3 | export default Loading; 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Rate/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RATE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Tab/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TAB'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Audio/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'AUDIO'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Image/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'IMAGE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Model/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'MODEL'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Video/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'VIDEO'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Iframe/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'IFRAME'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/QrCode/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'QR_CODE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Weather/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'WEATHER'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Ticket/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TICKET'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Typed/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TYPED'; 2 | -------------------------------------------------------------------------------- /src/utils/constants/theme.ts: -------------------------------------------------------------------------------- 1 | export enum ThemeMap { 2 | light = 'light', 3 | dark = 'dark', 4 | } 5 | -------------------------------------------------------------------------------- /assets/other/home_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/home_bg.png -------------------------------------------------------------------------------- /public/components/tag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/tag.jpg -------------------------------------------------------------------------------- /public/home/bar-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/bar-chart.png -------------------------------------------------------------------------------- /public/home/dot-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/dot-chart.png -------------------------------------------------------------------------------- /public/home/pie-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/pie-chart.png -------------------------------------------------------------------------------- /public/other/prizes-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/other/prizes-1.png -------------------------------------------------------------------------------- /public/other/prizes-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/other/prizes-2.png -------------------------------------------------------------------------------- /public/other/prizes-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/other/prizes-3.png -------------------------------------------------------------------------------- /public/other/prizes-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/other/prizes-4.png -------------------------------------------------------------------------------- /public/other/prizes-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/other/prizes-5.png -------------------------------------------------------------------------------- /public/other/prizes-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/other/prizes-6.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/LineBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'LINE_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/RankBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RANK_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/LoopText/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'LOOP_TEXT'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Button/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'BUTTON'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Input/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'INPUT'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Radio/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RADIO'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Select/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'SELECT'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Steps/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'STEPS'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Switch/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'SWITCH'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Map/Ali3DMap/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'ALI3D_MAP'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Map/ScatterMap/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'SCATTER_MAP'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Carousel/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'CAROUSEL'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/PictureWall/component/index.less: -------------------------------------------------------------------------------- 1 | .component-media-picture-wall { 2 | } 3 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/LuckyDraw/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'LUCKY_DRAW'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/PathBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PATH_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/StateCard/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'STATE_CARD'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/StateList/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'STATE_LIST'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/WaterBall/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'WATER_BALL'; 2 | -------------------------------------------------------------------------------- /src/components/ScreenComponentConfigChangeTooltip/index.less: -------------------------------------------------------------------------------- 1 | .screen-component-config-change-tooltip { 2 | } 3 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Header/ActionList/index.less: -------------------------------------------------------------------------------- 1 | .design-header-action { 2 | height: 30px; 3 | } 4 | -------------------------------------------------------------------------------- /src/utils/Assist/BreakingChange/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Breaking Change 3 | 4 | 这里存放的是一些重大变动,会影响到版本前的大屏的一些`HACK`操作。 -------------------------------------------------------------------------------- /src/utils/constants/mobile.ts: -------------------------------------------------------------------------------- 1 | export const MOBILE_WIDTH = 375; 2 | 3 | export const MOBILE_HEIGHT = 667; 4 | -------------------------------------------------------------------------------- /public/components/audio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/audio.jpg -------------------------------------------------------------------------------- /public/components/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/icon.jpg -------------------------------------------------------------------------------- /public/components/input.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/input.jpg -------------------------------------------------------------------------------- /public/components/model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/model.jpg -------------------------------------------------------------------------------- /public/components/radio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/radio.jpg -------------------------------------------------------------------------------- /public/components/rate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/rate.jpg -------------------------------------------------------------------------------- /public/components/steps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/steps.jpg -------------------------------------------------------------------------------- /public/components/text.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/text.jpg -------------------------------------------------------------------------------- /public/components/tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/tree.png -------------------------------------------------------------------------------- /public/components/typed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/typed.jpg -------------------------------------------------------------------------------- /public/home/area-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/area-chart.png -------------------------------------------------------------------------------- /public/home/condition-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/condition-1.png -------------------------------------------------------------------------------- /public/home/condition-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/condition-2.png -------------------------------------------------------------------------------- /public/home/earth-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/earth-chart.png -------------------------------------------------------------------------------- /public/home/image-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/image-chart.png -------------------------------------------------------------------------------- /public/home/line-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/line-chart.png -------------------------------------------------------------------------------- /public/home/list-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/list-chart.png -------------------------------------------------------------------------------- /public/home/radar-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/radar-chart.png -------------------------------------------------------------------------------- /public/home/title-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/title-chart.png -------------------------------------------------------------------------------- /public/home/video-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/video-chart.png -------------------------------------------------------------------------------- /public/login/cloud-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/cloud-top.png -------------------------------------------------------------------------------- /scripts/GenerateComponent/TemplateComponentFolder/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID:ComponentSelfType = '{{COMPONENT_TYPE}}'; -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/BarBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'BAR_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/CachetBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'CACHET_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/PolarBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'POLAR_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/RadialBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RADIAL_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/StackBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'STACK_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/ZebraBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'ZEBRA_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Line/LineBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'LINE_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Line/StepLine/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'STEP_LINE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Pie/CirclePie/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'CIRCLE_PIE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Pie/PieBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PIE_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Tree/TreeBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TREE_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/FontCarousel/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'FONT_CAROUSEL'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/TimeMachine/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TIME_MACHINE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Checkbox/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'CHECKBOX'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/PictureWall/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PICTURE_WALL'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration1/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_1'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration2/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_2'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration3/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_3'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration4/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_4'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration5/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_5'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration6/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_6'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration7/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_7'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration8/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DECORATION_8'; 2 | -------------------------------------------------------------------------------- /src/pages/Test/index.tsx: -------------------------------------------------------------------------------- 1 | const Test = () => { 2 | return
444444
; 3 | }; 4 | 5 | export default Test; 6 | -------------------------------------------------------------------------------- /.stylelintrc.js: -------------------------------------------------------------------------------- 1 | const fabric = require('@umijs/fabric'); 2 | 3 | module.exports = { 4 | ...fabric.stylelint, 5 | }; 6 | -------------------------------------------------------------------------------- /assets/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/icons/icon-128x128.png -------------------------------------------------------------------------------- /assets/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/icons/icon-192x192.png -------------------------------------------------------------------------------- /assets/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/icons/icon-512x512.png -------------------------------------------------------------------------------- /assets/other/background.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/background.jpeg -------------------------------------------------------------------------------- /assets/other/screenshoot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/screenshoot-1.png -------------------------------------------------------------------------------- /assets/other/screenshoot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/screenshoot-2.png -------------------------------------------------------------------------------- /assets/other/screenshoot-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/screenshoot-3.jpg -------------------------------------------------------------------------------- /assets/other/screenshoot-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/screenshoot-4.jpg -------------------------------------------------------------------------------- /assets/other/screenshoot-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/screenshoot-5.jpg -------------------------------------------------------------------------------- /assets/other/screenshoot-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/assets/other/screenshoot-6.jpg -------------------------------------------------------------------------------- /public/components/ali-map.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/ali-map.jpg -------------------------------------------------------------------------------- /public/components/box-plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/box-plot.png -------------------------------------------------------------------------------- /public/components/button.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/button.jpg -------------------------------------------------------------------------------- /public/components/checkbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/checkbox.jpg -------------------------------------------------------------------------------- /public/components/iframe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/iframe.jpg -------------------------------------------------------------------------------- /public/components/line-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/line-bar.png -------------------------------------------------------------------------------- /public/components/qrcode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/qrcode.jpg -------------------------------------------------------------------------------- /public/components/rank-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/rank-bar.png -------------------------------------------------------------------------------- /public/components/switch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/switch.jpg -------------------------------------------------------------------------------- /public/components/ticket.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/ticket.jpg -------------------------------------------------------------------------------- /public/components/weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/weather.png -------------------------------------------------------------------------------- /public/login/cloud-bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/cloud-bottom.png -------------------------------------------------------------------------------- /public/login/cloud-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/cloud-small.png -------------------------------------------------------------------------------- /public/start-background.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/start-background.jpeg -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/NegativeBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'NEGATIVE_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/PercentBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PERCENT_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/ProgressBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PROGRESS_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Gauge/ClockGauge/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'CLOCK_GAUGE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Gauge/GaugeBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'GAUGE_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Line/RadialLine/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RADIAL_LINE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Pie/PercentPie/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PERCENT_PIE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Radar/RadarBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RADAR_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/CountUpNumber/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'COUNT_UP_NUMBER'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Datepicker/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'DATE_PICKER'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/FullScreen/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'FULL_SCREEN'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Pagination/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PAGINATION'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/WordCloud/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'WORD_CLOUD_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration5/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-5 { 2 | width: 100%; 3 | height: 100%; 4 | } 5 | -------------------------------------------------------------------------------- /public/components/bar-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/bar-basic.png -------------------------------------------------------------------------------- /public/components/cachet-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/cachet-bar.png -------------------------------------------------------------------------------- /public/components/circle-pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/circle-pie.png -------------------------------------------------------------------------------- /public/components/line-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/line-basic.png -------------------------------------------------------------------------------- /public/components/list-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/list-basic.jpg -------------------------------------------------------------------------------- /public/components/lucky-draw.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/lucky-draw.jpg -------------------------------------------------------------------------------- /public/components/pagination.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/pagination.jpg -------------------------------------------------------------------------------- /public/components/path-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/path-basic.jpg -------------------------------------------------------------------------------- /public/components/pie-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/pie-basic.png -------------------------------------------------------------------------------- /public/components/polar-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/polar-bar.png -------------------------------------------------------------------------------- /public/components/radial-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/radial-bar.png -------------------------------------------------------------------------------- /public/components/stack-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/stack-bar.png -------------------------------------------------------------------------------- /public/components/state-card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/state-card.jpg -------------------------------------------------------------------------------- /public/components/state-list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/state-list.jpg -------------------------------------------------------------------------------- /public/components/step-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/step-line.png -------------------------------------------------------------------------------- /public/components/tab-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/tab-basic.jpg -------------------------------------------------------------------------------- /public/components/water-ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/water-ball.png -------------------------------------------------------------------------------- /public/components/word-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/word-cloud.png -------------------------------------------------------------------------------- /public/components/zebra-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/zebra-bar.png -------------------------------------------------------------------------------- /public/home/condition-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/condition-normal.png -------------------------------------------------------------------------------- /public/home/thermogram-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/home/thermogram-chart.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/HorizontalBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'HORIZONTAL_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/PolarStackBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'POLAR_STACK_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Bar/WaterFallBar/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'WATER_FALL_BAR'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/BoxPlot/BoxPlotBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'BOX_PLOT_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Funnel/FunnelBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'FUNNEL_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Pie/NightingalePie/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'NIGHTINGALE_PIE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Scatter/ScatterBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'SCATTER_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/TreeMap/TreeMapBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'TREE_MAP_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Typed/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-typed { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /public/components/carousel-text.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/carousel-text.jpg -------------------------------------------------------------------------------- /public/components/clock-gauge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/clock-gauge.png -------------------------------------------------------------------------------- /public/components/date-picker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/date-picker.jpg -------------------------------------------------------------------------------- /public/components/decoration-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-1.jpg -------------------------------------------------------------------------------- /public/components/decoration-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-2.jpg -------------------------------------------------------------------------------- /public/components/decoration-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-3.jpg -------------------------------------------------------------------------------- /public/components/decoration-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-4.jpg -------------------------------------------------------------------------------- /public/components/decoration-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-5.jpg -------------------------------------------------------------------------------- /public/components/decoration-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-6.jpg -------------------------------------------------------------------------------- /public/components/decoration-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-7.jpg -------------------------------------------------------------------------------- /public/components/decoration-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/decoration-8.jpg -------------------------------------------------------------------------------- /public/components/default-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/default-chart.png -------------------------------------------------------------------------------- /public/components/full-screen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/full-screen.jpg -------------------------------------------------------------------------------- /public/components/funnel-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/funnel-basic.png -------------------------------------------------------------------------------- /public/components/gauge-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/gauge-basic.png -------------------------------------------------------------------------------- /public/components/image-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/image-basic.jpg -------------------------------------------------------------------------------- /public/components/negative-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/negative-bar.png -------------------------------------------------------------------------------- /public/components/percent-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/percent-bar.png -------------------------------------------------------------------------------- /public/components/percent-pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/percent-pie.png -------------------------------------------------------------------------------- /public/components/picture-wall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/picture-wall.jpg -------------------------------------------------------------------------------- /public/components/progress-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/progress-bar.png -------------------------------------------------------------------------------- /public/components/radar-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/radar-basic.png -------------------------------------------------------------------------------- /public/components/radial-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/radial-line.png -------------------------------------------------------------------------------- /public/components/scatter-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/scatter-basic.png -------------------------------------------------------------------------------- /public/components/scatter-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/scatter-map.png -------------------------------------------------------------------------------- /public/components/select-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/select-basic.jpg -------------------------------------------------------------------------------- /public/components/text-carousel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/text-carousel.jpg -------------------------------------------------------------------------------- /public/components/time-machine.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/time-machine.jpg -------------------------------------------------------------------------------- /public/components/title-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/title-basic.jpg -------------------------------------------------------------------------------- /public/components/video-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/video-basic.jpg -------------------------------------------------------------------------------- /public/components/waterfall-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/waterfall-bar.png -------------------------------------------------------------------------------- /public/login/login-left-circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/login-left-circle.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Line/RadialStackLine/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'RADIAL_STACK_LINE'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Parallel/ParallelBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PARALLEL_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Scatter/BubbleScatter/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'BUBBLE_SCATTER'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/SunBurst/SunBurstBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'SUN_BURST_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/SimpleHueSelect/index.less: -------------------------------------------------------------------------------- 1 | .simple-hue-select-wrapper { 2 | align-items: center; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/LoopText/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-loop-text { 2 | white-space: nowrap; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Weather/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-weather { 2 | white-space: nowrap; 3 | } 4 | -------------------------------------------------------------------------------- /.sentryclirc: -------------------------------------------------------------------------------- 1 | [auth] 2 | token=token 3 | 4 | [defaults] 5 | url = https://sentry.io 6 | org = food-billboard 7 | project = create-chart -------------------------------------------------------------------------------- /public/components/bubble-scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/bubble-scatter.png -------------------------------------------------------------------------------- /public/components/carousel-basic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/carousel-basic.jpg -------------------------------------------------------------------------------- /public/components/count-up-number.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/count-up-number.jpg -------------------------------------------------------------------------------- /public/components/horizontal-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/horizontal-bar.png -------------------------------------------------------------------------------- /public/components/nightingale-pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/nightingale-pie.png -------------------------------------------------------------------------------- /public/components/parallel-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/parallel-basic.png -------------------------------------------------------------------------------- /public/components/polar-stack-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/polar-stack-bar.png -------------------------------------------------------------------------------- /public/components/sub-burst-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/sub-burst-basic.png -------------------------------------------------------------------------------- /public/components/tree-map-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/tree-map-basic.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/InterActiveConfig/components/LinkageConfig/index.less: -------------------------------------------------------------------------------- 1 | .design-config-interactive-linkage { 2 | } 3 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration1/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-1 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration2/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-2 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration3/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-3 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration4/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-4 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration5/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-5 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration6/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-6 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration7/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-7 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration8/component/index.less: -------------------------------------------------------------------------------- 1 | .component-source-decoration-8 { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /public/components/candlestick-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/candlestick-basic.png -------------------------------------------------------------------------------- /public/components/radial-stack-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/radial-stack-line.png -------------------------------------------------------------------------------- /public/login/login-background-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/login-background-main.png -------------------------------------------------------------------------------- /public/login/login-main-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/login-main-background.png -------------------------------------------------------------------------------- /public/login/login-pink-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/login/login-pink-background.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/Candlestick/CandlestickBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'CANDLESTICK_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/PictorialBar/PictorialBarBasic/id.ts: -------------------------------------------------------------------------------- 1 | export const CHART_ID: ComponentSelfType = 'PICTORIAL_BAR_BASIC'; 2 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Component/hook/useChartEvent.ts: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | 3 | export function useChartEvent() {} 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/CountUpNumber/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-count-up-number { 2 | white-space: nowrap; 3 | } 4 | -------------------------------------------------------------------------------- /public/components/pictorial-bar-basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/food-billboard/create-chart/HEAD/public/components/pictorial-bar-basic.png -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration1/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration1Config = { 2 | color: ComponentData.TColorConfig[]; 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration3/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration3Config = { 2 | color: ComponentData.TColorConfig[]; 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration6/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration6Config = { 2 | color: ComponentData.TColorConfig[]; 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration8/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration8Config = { 2 | color: ComponentData.TColorConfig[]; 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration8/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-8 { 2 | display: flex; 3 | width: 100%; 4 | height: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/RequestDefaultConfig/index.less: -------------------------------------------------------------------------------- 1 | .request-default-config-frequency { 2 | width: 68%; 3 | } 4 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.md 2 | **/*.svg 3 | **/*.ejs 4 | **/*.html 5 | scripts/* 6 | package.json 7 | .umi 8 | .umi-production 9 | .umi-test 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Icon/type.ts: -------------------------------------------------------------------------------- 1 | export type TIconConfig = { 2 | color: ComponentData.TColorConfig; 3 | value: string; 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Iframe/component/MessageTooltip/index.less: -------------------------------------------------------------------------------- 1 | .component-iframe-message-tooltip { 2 | text-align: left; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ColorGradientSelect/index.less: -------------------------------------------------------------------------------- 1 | .component-gradient-select { 2 | &-color { 3 | width: 100%; 4 | height: 80px; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/components/InternalBackground/components/Background/ColorLineBackground/index.less: -------------------------------------------------------------------------------- 1 | .color-line-background { 2 | background-color: black; 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/NameTag/index.less: -------------------------------------------------------------------------------- 1 | .component-name-tag { 2 | background-color: rgba(0, 0, 0, 0.3); 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Tag/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-font-tag { 2 | width: 100%; 3 | height: 100%; 4 | overflow: hidden; 5 | } 6 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Video/component/index.less: -------------------------------------------------------------------------------- 1 | .component-media-video { 2 | video { 3 | width: 100%; 4 | height: 100%; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Header/ActionList/components/ComponentSearch/index.less: -------------------------------------------------------------------------------- 1 | .design-header-action-component-search { 2 | font-size: 16px; 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/Painter/index.less: -------------------------------------------------------------------------------- 1 | .page-design-main-panel { 2 | transition: transform 0.3s; 3 | position: absolute; 4 | } 5 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ToolBar/index.less: -------------------------------------------------------------------------------- 1 | .design-page-toolbar { 2 | width: 100%; 3 | height: 50px; 4 | line-height: 50px; 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Content/index.less: -------------------------------------------------------------------------------- 1 | .render-component-children { 2 | min-width: 1px; 3 | min-height: 1px; 4 | } 5 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration5/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration5Config = { 2 | color: ComponentData.TColorConfig[]; 3 | dur: number; 4 | }; 5 | -------------------------------------------------------------------------------- /src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as request } from './request'; 2 | export * from './tool'; 3 | export * from './constants'; 4 | export * from './captureCover'; 5 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/index.less: -------------------------------------------------------------------------------- 1 | .design-config-data-detail { 2 | width: 100%; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/PathBasic/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-path-basic { 2 | &-shape { 3 | transform-origin: center center; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration7/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration7Config = { 2 | color: ComponentData.TColorConfig[]; 3 | reverse: boolean; 4 | }; 5 | -------------------------------------------------------------------------------- /src/components/ParamsSelect/index.less: -------------------------------------------------------------------------------- 1 | .params-select-checkbox { 2 | :global { 3 | .ant-checkbox-inner { 4 | display: inline-block; 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/utils/Assist/BreakingChange/ComponentTransformOriginChange/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 组件transform中心更改 3 | 4 | ## 2022-06-24 5 | 6 | ## 1.6 7 | 8 | 之前的的中心为左上角,现更改为中心。 -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/index.less: -------------------------------------------------------------------------------- 1 | .design-page-left { 2 | height: 100%; 3 | &-content { 4 | height: 100%; 5 | overflow: hidden; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/utils/Assist/BreakingChange/ComponentInputButtonWidthChange/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 输入框组件按钮宽度配置修改 3 | 4 | ## 2022-12-23 5 | 6 | ## 1.17 7 | 8 | 之前的输入框的宽度是`px`,现在修改为百分比。 -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Typed/type.ts: -------------------------------------------------------------------------------- 1 | export type TTypedConfig = { 2 | textStyle: ComponentData.TFontConfig; 3 | loop: boolean; 4 | typeSpeed: number; 5 | }; 6 | -------------------------------------------------------------------------------- /src/components/ColorMatcher/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | const ColorMatcher = () => { 4 | return
配色选择
; 5 | }; 6 | 7 | export default ColorMatcher; 8 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/PanelWrapper/constants.ts: -------------------------------------------------------------------------------- 1 | export const wrapperId = 'designer-page-main'; 2 | export const subWrapperId = 'designer-page-main-sub'; 3 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Iframe/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-iframe { 2 | overflow: hidden; 3 | & > div { 4 | transform-origin: left top; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration1/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-1 { 2 | width: 100%; 3 | height: 100%; 4 | 5 | svg { 6 | transform-origin: left top; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration3/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-3 { 2 | width: 100%; 3 | height: 100%; 4 | 5 | svg { 6 | transform-origin: left top; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration6/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-6 { 2 | width: 100%; 3 | height: 100%; 4 | 5 | svg { 6 | transform-origin: left top; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration2/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration2Config = { 2 | color: ComponentData.TColorConfig[]; 3 | dur: number; 4 | reverse: boolean; 5 | }; 6 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Decoration4/type.ts: -------------------------------------------------------------------------------- 1 | export type TDecoration4Config = { 2 | color: ComponentData.TColorConfig[]; 3 | dur: number; 4 | reverse: boolean; 5 | }; 6 | -------------------------------------------------------------------------------- /src/components/IconTooltip/index.less: -------------------------------------------------------------------------------- 1 | .component-icon-tooltip { 2 | font-size: 12px; 3 | :global { 4 | .ant-tooltip-inner { 5 | text-align: center; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/LayerManage/type.ts: -------------------------------------------------------------------------------- 1 | export interface LayerManageRef { 2 | open: () => void; 3 | close: () => void; 4 | visible: boolean; 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/index.less: -------------------------------------------------------------------------------- 1 | .design-panel-content { 2 | flex: 1; 3 | overflow: auto; 4 | min-width: 400px; 5 | display: flex; 6 | flex-direction: column; 7 | } 8 | -------------------------------------------------------------------------------- /src/pages/Designer/components/ShepherdWrapper/index.less: -------------------------------------------------------------------------------- 1 | .shepherd-button { 2 | background: #4ea397; 3 | } 4 | .shepherd-button:not(:disabled):hover { 5 | background: #22c3aa; 6 | } 7 | -------------------------------------------------------------------------------- /src/pages/ScreenList/components/SvgAnimation/index.less: -------------------------------------------------------------------------------- 1 | .svg-animation { 2 | width: 100%; 3 | height: 100%; 4 | position: fixed; 5 | z-index: 0; 6 | left: 0; 7 | top: 0; 8 | } 9 | -------------------------------------------------------------------------------- /assets/development/展示组件抽离.md: -------------------------------------------------------------------------------- 1 | 2 | # 抽离展示组件 3 | 4 | 允许在脱离项目对大屏进行展示。 5 | 6 | ## 去掉不需要的模块 7 | 8 | - 登录判断 9 | - 生命周期判断 10 | - Mock数据接口默认不调用,使用props 11 | - 服务端请求接口默认不调用,使用props -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Content/ComponentWrapper/index.less: -------------------------------------------------------------------------------- 1 | .render-component-wrapper-inner { 2 | transform-origin: left top; 3 | position: absolute; 4 | } 5 | -------------------------------------------------------------------------------- /src/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './upload'; 2 | export * from './screen'; 3 | export * from './user'; 4 | export * from './model'; 5 | export * from './mock'; 6 | export * from './third'; 7 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/LocalUpload/index.less: -------------------------------------------------------------------------------- 1 | .component-local-upload-button { 2 | & > span { 3 | font-size: 30px; 4 | } 5 | & > div { 6 | font-size: 12px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration2/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-2 { 2 | display: flex; 3 | width: 100%; 4 | height: 100%; 5 | justify-content: center; 6 | align-items: center; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/ScreenComponentConfigChangeTooltip/Constants/1.21/index.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | '/DataConfig/ResponseData/AutoUpdate': 3 | '最低更新频率是1秒,对于前版本的1秒以下的情况,均会作为1秒来处理。(`へ´*)ノ', 4 | }; 5 | -------------------------------------------------------------------------------- /src/utils/Assist/Logger/RequestLogger/index.less: -------------------------------------------------------------------------------- 1 | .request-log-item { 2 | color: white; 3 | :global { 4 | .ant-collapse-header { 5 | padding: 3px 4px !important; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /assets/development/版本升级文档修改流程.md: -------------------------------------------------------------------------------- 1 | # 版本升级文档修改流程 2 | 3 | 1. `package.json`文件的`version`字段 4 | 2. `README.md`文件 5 | - 当前版本修改 6 | - `changelog` 7 | - 说在后头的版本 8 | 3. `/assets/docs`增加新版本迭代信息文件 -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Iframe/type.ts: -------------------------------------------------------------------------------- 1 | export type TIFrameConfig = { 2 | scrolling: 'yes' | 'no' | 'auto'; 3 | scale: number; 4 | pointEvent: boolean; 5 | relationParams: string[]; 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/Empty/index.tsx: -------------------------------------------------------------------------------- 1 | import { Empty as AntEmpty, EmptyProps } from 'antd'; 2 | 3 | const Empty = (props: EmptyProps) => { 4 | return ; 5 | }; 6 | 7 | export default Empty; 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Audio/type.ts: -------------------------------------------------------------------------------- 1 | export type TAudioConfig = { 2 | autoplay: boolean; 3 | loop: boolean; 4 | controls: boolean; 5 | condition: ComponentData.ComponentConditionConfig; 6 | }; 7 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GroupConfig/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-config-group { 4 | background-color: @layout-header-background; 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/MultiConfig/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-config-multi { 4 | background-color: @layout-header-background; 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Content/ComponentInternalWrapper/index.tsx: -------------------------------------------------------------------------------- 1 | import { InternalBorderWrapper } from '@/components/InternalBorder'; 2 | 3 | export default InternalBorderWrapper; 4 | -------------------------------------------------------------------------------- /src/components/CodeEditor/index.tsx: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | 3 | export default LazyLoadWrapper(() => { 4 | return import(/* webpackChunkName: "CODE_EDITOR" */ '../SyncCodeEditor'); 5 | }); 6 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "emitDecoratorMetadata": true, 4 | "experimentalDecorators": true, 5 | "baseUrl": ".", 6 | "paths": { 7 | "@/*": ["./src/*"] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/DashedBorder/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-dashed-border { 2 | border: var(--internal-border-dashed-border-width) dotted 3 | var(--internal-border-dashed-border-color); 4 | } 5 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/InterActiveConfig/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-config-interactive { 4 | background-color: @layout-header-background; 5 | padding-bottom: 8px; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/PictureWall/type.ts: -------------------------------------------------------------------------------- 1 | export type TPictureWallConfig = { 2 | maxCount: number; 3 | columnCount: number; 4 | margin: [number, number]; 5 | preview: { 6 | show: boolean; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /assets/docs/1.20.md: -------------------------------------------------------------------------------- 1 | ## 1.20.1 2 | 3 | ### 设计器 4 | 5 | fix(): 保存时没有id导致保存失败 6 | 7 | refactor(): 错别字 8 | 9 | ## 1.20 10 | 11 | ### 设计器 12 | 13 | fix(): 折叠组件列表,搜索弹出框位置错误 14 | fix(): 折叠右侧配置面板,标尺和辅助线的尺寸未更新 15 | 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Tab/component/index.less: -------------------------------------------------------------------------------- 1 | .component-interactive-tab { 2 | &-item { 3 | display: flex; 4 | align-items: center; 5 | justify-content: center; 6 | cursor: pointer; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: [require.resolve('@umijs/fabric/dist/eslint')], 3 | globals: { 4 | ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION: true, 5 | page: true, 6 | REACT_APP_ENV: true, 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/DefineConfig/type.d.ts: -------------------------------------------------------------------------------- 1 | export type TOnChange = ( 2 | value: SuperPartial, 3 | ) => void; 4 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/TimeMachine/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-time-machine { 2 | &-main { 3 | justify-content: center; 4 | align-items: center; 5 | white-space: nowrap; 6 | display: flex; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/PanelWrapper/index.less: -------------------------------------------------------------------------------- 1 | .designer-page-main { 2 | width: 100%; 3 | padding-top: 0; 4 | flex: 1; 5 | overflow: hidden; 6 | & > div { 7 | overflow: hidden auto; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/PositionConfig/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-config-position-config-active { 4 | color: white !important; 5 | background-color: @primary-color !important; 6 | } 7 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Structure/HalfFormPlaceHolder/index.less: -------------------------------------------------------------------------------- 1 | .design-config-half-form-placeholder { 2 | cursor: pointer; 3 | position: absolute; 4 | left: 50%; 5 | transform: translateX(-6px); 6 | font-size: 14px; 7 | } 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/FullScreen/type.ts: -------------------------------------------------------------------------------- 1 | export type TFullScreenConfig = { 2 | backgroundColor: ComponentData.TColorConfig; 3 | borderRadius: number; 4 | icon: { 5 | enter: string; 6 | quit: string; 7 | }; 8 | }; 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/ExchangeScreenFlag/components/MobilePreviewer/context.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from 'react'; 2 | 3 | export const ExchangePreviewerContext = createContext<{ 4 | flag?: ComponentData.ScreenFlagType; 5 | }>({}); 6 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ToolBar/components/Scale/index.less: -------------------------------------------------------------------------------- 1 | .design-page-toolbar-scale { 2 | display: inline-block; 3 | :global { 4 | .ant-space-item:nth-last-of-type(1) { 5 | flex: 1; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GroupConfig/components/Config/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import {} from 'antd'; 3 | 4 | const BaseConfig = () => { 5 | return
; 6 | }; 7 | 8 | export default BaseConfig; 9 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Steps/component/components/RcSteps/interface.ts: -------------------------------------------------------------------------------- 1 | export type Status = 'error' | 'process' | 'finish' | 'wait'; 2 | 3 | export interface Icons { 4 | finish: React.ReactNode; 5 | error: React.ReactNode; 6 | } 7 | -------------------------------------------------------------------------------- /src/utils/Assist/GlobalDva/index.ts: -------------------------------------------------------------------------------- 1 | import { getDvaGlobalModelData } from '../Component'; 2 | 3 | export const getGlobalSelect: () => string[] = () => { 4 | const globalState = getDvaGlobalModelData(); 5 | return globalState.select || []; 6 | }; 7 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Select/component/index.less: -------------------------------------------------------------------------------- 1 | .component-interactive-select { 2 | :global { 3 | [class$='indicatorContainer'] { 4 | &:hover { 5 | color: currentColor; 6 | } 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/components/PromptChrome/index.less: -------------------------------------------------------------------------------- 1 | .component-prompt-chrome { 2 | overflow: hidden; 3 | width: 100vw; 4 | height: 100vh; 5 | display: flex; 6 | flex-direction: column; 7 | align-items: center; 8 | justify-content: center; 9 | } 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Steps/component/components/RcSteps/index.ts: -------------------------------------------------------------------------------- 1 | // rc-steps 应该是比较早的版本了 2 | 3 | import Steps from './Steps'; 4 | import Step from './Step'; 5 | import './css/index.less'; 6 | 7 | export { Step }; 8 | export default Steps; 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/ComponentConfig/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-config-component { 4 | min-height: 100%; 5 | height: 100%; 6 | background-color: @layout-header-background; 7 | } 8 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GroupConfig/components/WrapperConfig/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import {} from 'antd'; 3 | 4 | const WrapperConfig = () => { 5 | return
; 6 | }; 7 | 8 | export default WrapperConfig; 9 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return {}; 5 | }; 6 | 7 | export const mapDispatchToProps = (dispatch: any) => ({}); 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Icon/index.tsx: -------------------------------------------------------------------------------- 1 | import { createFromIconfontCN } from '@ant-design/icons'; 2 | 3 | const IconFont = createFromIconfontCN({ 4 | scriptUrl: '//at.alicdn.com/t/c/font_3208102_8u5ei3wwylp.js', 5 | }); 6 | 7 | export default IconFont; 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RenderWrapper/ShowIdWrapper/index.less: -------------------------------------------------------------------------------- 1 | .render-wrapper-show-id { 2 | position: absolute; 3 | left: 0; 4 | top: 0; 5 | font-size: 14px; 6 | user-select: none; 7 | pointer-events: none; 8 | z-index: 0; 9 | } 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/FontCarousel/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-carousel { 2 | &-wrapper { 3 | display: flex; 4 | align-items: center; 5 | } 6 | &-main { 7 | display: flex; 8 | align-items: center; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/components/GhostButton/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-config-ghost-btn { 4 | width: 120px; 5 | &:hover { 6 | color: white !important; 7 | background-color: @primary-color !important; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/components/RelationBorder/index.less: -------------------------------------------------------------------------------- 1 | .component-relation-border-wrapper { 2 | display: flex; 3 | } 4 | .component-relation-border { 5 | border-right-color: transparent; 6 | width: 24px; 7 | } 8 | .component-relation-border-main { 9 | flex: 1; 10 | } 11 | -------------------------------------------------------------------------------- /assets/docs/1.11.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.11 3 | 4 | ### 设计器 5 | 6 | feat(): 滤镜 7 | 8 | refactor(): 自动保存取消关闭提示 9 | 10 | ### 组件 11 | 12 | 新增组件 13 | - 高德地图 14 | - 3d模型 15 | - 声音 16 | 17 | 优化组件 18 | - iframe支持上下层级交互 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Wrapper/PcWrapper/ResizeComponent.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | 3 | const ResizeHandleComponent = (props: any) => { 4 | return
; 5 | }; 6 | 7 | export default ResizeHandleComponent; 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/StateCard/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-state-card { 2 | width: 100%; 3 | height: 100%; 4 | overflow: hidden; 5 | &-content { 6 | } 7 | &-column { 8 | &-state { 9 | } 10 | &-main { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/components/ComponentSelect/index.less: -------------------------------------------------------------------------------- 1 | .component-select { 2 | &-item { 3 | } 4 | &-item-active { 5 | } 6 | &-loading { 7 | width: 100%; 8 | height: 100%; 9 | position: absolute; 10 | left: 0; 11 | top: 0; 12 | z-index: 1; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /scripts/GenerateComponent/TemplateComponentFolder/type.ts: -------------------------------------------------------------------------------- 1 | export type T{{COMPONENT_NAME}}Config = { 2 | color: ComponentData.TColorConfig 3 | content: string 4 | counter: number 5 | textStyle: ComponentData.TFontConfig 6 | condition: ComponentData.ComponentConditionConfig; 7 | }; 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Switch/component/index.less: -------------------------------------------------------------------------------- 1 | .component-interactive-switch { 2 | &-icon { 3 | align-items: center; 4 | justify-content: center; 5 | white-space: nowrap; 6 | } 7 | .react-switch-handle { 8 | // width: ; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GroupConfig/connect.ts: -------------------------------------------------------------------------------- 1 | export const mapStateToProps = () => { 2 | return {}; 3 | }; 4 | 5 | export const mapDispatchToProps = (dispatch: any) => ({ 6 | setSelect: (value: any) => dispatch({ type: 'global/setSelect', value }), 7 | }); 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Checkbox/index.less: -------------------------------------------------------------------------------- 1 | .design-config-checkbox { 2 | font-size: 12px; 3 | :global { 4 | .ant-checkbox { 5 | font-size: 12px; 6 | } 7 | .ant-checkbox-inner { 8 | width: 14px; 9 | height: 14px; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/components/IntroductionButton/index.less: -------------------------------------------------------------------------------- 1 | .introduction-button { 2 | :global { 3 | .rtf { 4 | margin: 0; 5 | & > li { 6 | margin: 0; 7 | padding: 0; 8 | } 9 | } 10 | } 11 | .right.always-show { 12 | font-size: 12px; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/ComponentConfig/connect.ts: -------------------------------------------------------------------------------- 1 | export const mapStateToProps = () => { 2 | return {}; 3 | }; 4 | 5 | export const mapDispatchToProps = (dispatch: any) => ({ 6 | setSelect: (value: any) => dispatch({ type: 'global/setSelect', value }), 7 | }); 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Icon/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-icon { 2 | align-items: center; 3 | justify-content: center; 4 | :global { 5 | .bi { 6 | position: relative; 7 | } 8 | .bi::before { 9 | position: absolute; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ReactSelecto/index.less: -------------------------------------------------------------------------------- 1 | .react-select-to-wrapper { 2 | :global { 3 | .selecto-selection { 4 | background: var(--react-select-to-background) !important; 5 | border-color: var(--react-select-to-border) !important; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GroupConfig/components/ComponentSelect/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { Select } from 'antd'; 3 | 4 | const ComponentSelect = () => { 5 | return ; 6 | }; 7 | 8 | export default ComponentSelect; 9 | -------------------------------------------------------------------------------- /src/pages/Share/components/WaterMark/index.less: -------------------------------------------------------------------------------- 1 | .designer-water-mark { 2 | position: absolute; 3 | bottom: 4px; 4 | right: 4px; 5 | background-image: url(../../../../../public/logo.jpg); 6 | width: 50px; 7 | height: 50px; 8 | background-size: 100% 100%; 9 | z-index: 99; 10 | } 11 | -------------------------------------------------------------------------------- /src/utils/Assist/BreakingChange/ComponentTransformOriginChange/index.ts: -------------------------------------------------------------------------------- 1 | import { versionCompare } from '@/utils'; 2 | 3 | export const ComponentTransformOriginChange = (version: string) => { 4 | return !version || versionCompare(version, '1.6') 5 | ? 'center center' 6 | : 'left top'; 7 | }; 8 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/AutoUpdate/index.less: -------------------------------------------------------------------------------- 1 | .design-config-auto-update { 2 | margin-top: 15px; 3 | margin-left: 10px; 4 | font-size: 12px; 5 | :global { 6 | .ant-input-number { 7 | width: 32px; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GlobalConfig/index.less: -------------------------------------------------------------------------------- 1 | .design-config-global { 2 | :global { 3 | .ant-tabs-content-holder { 4 | overflow-y: auto; 5 | &::-webkit-scrollbar { 6 | width: 0; 7 | height: 0; 8 | } 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/DefineConfig/ApiConfig/index.less: -------------------------------------------------------------------------------- 1 | .api-config-copy-text { 2 | margin-bottom: 0 !important; 3 | :global { 4 | .ant-typography-copy { 5 | color: white !important; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/components/Ruler/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | theme: state.global.screenData.config.attr.theme, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/components/GuideLine/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | theme: state.global.screenData.config.attr.theme, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Content/SubGroup/index.less: -------------------------------------------------------------------------------- 1 | .group-component-carousel-wrapper { 2 | } 3 | .group-component-carousel-wrapper-children { 4 | } 5 | .group-component-carousel-wrapper-children-left { 6 | left: 0; 7 | top: 0; 8 | // transform: translateX(100%); 9 | } 10 | -------------------------------------------------------------------------------- /src/pages/ScreenList/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect' 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | loading: state.loading.effects["settings/getUserInfo"] 6 | } 7 | } 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | 11 | }) -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/StateList/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-state-list { 2 | &-content { 3 | width: 100%; 4 | height: 100%; 5 | &-item { 6 | display: inline-flex; 7 | float: left; 8 | overflow: hidden; 9 | word-break: break-all; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Ticket/type.ts: -------------------------------------------------------------------------------- 1 | export type TTicketConfig = { 2 | radius: number; 3 | length: number; 4 | dashed: { 5 | show: boolean; 6 | color: ComponentData.TColorConfig; 7 | }; 8 | shadow: { 9 | show: boolean; 10 | }; 11 | color: ComponentData.TColorConfig; 12 | }; 13 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-common { 2 | width: 100%; 3 | height: 100%; 4 | position: absolute; 5 | top: 0; 6 | left: 0; 7 | } 8 | .internal-border-outer { 9 | width: 100%; 10 | height: 100%; 11 | position: absolute; 12 | top: 0; 13 | left: 0; 14 | } 15 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/type.ts: -------------------------------------------------------------------------------- 1 | import { ReactNode, CSSProperties } from 'react'; 2 | 3 | export type CommonBorderProps = { 4 | children: ReactNode; 5 | style?: CSSProperties; 6 | className?: string; 7 | [key: string]: any; 8 | } & ComponentData.TScreenData['config']['attr']['componentBorder']; 9 | -------------------------------------------------------------------------------- /src/layouts/AuthLayout/index.tsx: -------------------------------------------------------------------------------- 1 | import { useGetUserInfo } from '@/hooks'; 2 | import { Outlet, useLocation } from 'umi'; 3 | 4 | const AuthLayout = (props: any) => { 5 | const location = useLocation(); 6 | 7 | useGetUserInfo(location); 8 | 9 | return ; 10 | }; 11 | 12 | export default AuthLayout; 13 | -------------------------------------------------------------------------------- /src/pages/Designer/components/ShepherdWrapper/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | userId: state.user.currentUser._id, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/pages/Login/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return {}; 5 | }; 6 | 7 | export const mapDispatchToProps = (dispatch: any) => ({ 8 | login: (value: any) => dispatch({ type: 'user/login', payload: value }), 9 | }); 10 | -------------------------------------------------------------------------------- /assets/docs/1.19.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.19 3 | 4 | ### 设计器 5 | 6 | fix(): 前端大屏导出按钮一直loading 7 | fix(): 前端大屏移动端切换错误调用接口 8 | fix(): 前端大屏新增首次拖入组件报错 9 | 10 | feat(): 组内轮播 11 | feat(): 增加内置背景粒子动画 12 | 13 | style(): 图层排序ui样式修改 14 | 15 | refactor(): 未操作过期时间延长,或者在页面显示的情况下增加时间 16 | refactor(): 跳转交互配置,不启用无法编辑输入框 17 | 18 | -------------------------------------------------------------------------------- /src/components/InternalBackground/components/Background/DoodleBubbleBackground/index.less: -------------------------------------------------------------------------------- 1 | .internal-background-doodle-hex-background { 2 | position: absolute; 3 | z-index: 0; 4 | width: 100%; 5 | height: 100%; 6 | left: 0; 7 | top: 0; 8 | &-main { 9 | width: 100%; 10 | height: 100%; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/components/ScreenComponentConfigChangeTooltip/Constants/index.ts: -------------------------------------------------------------------------------- 1 | import versionTooltip1P21 from './1.21'; 2 | 3 | export default [ 4 | { 5 | version: '1.21', 6 | tooltip: versionTooltip1P21, 7 | }, 8 | ] as { 9 | version: string; 10 | tooltip: { 11 | [configId: string]: string; 12 | }; 13 | }[]; 14 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Header/ActionList/components/DebugConfig/Winbox/components/InsertComponent/connect.ts: -------------------------------------------------------------------------------- 1 | export const mapStateToProps = () => { 2 | return {}; 3 | }; 4 | 5 | export const mapDispatchToProps = (dispatch: any) => ({ 6 | setSelect: (value: any) => dispatch({ type: 'global/setSelect', value }), 7 | }); 8 | -------------------------------------------------------------------------------- /src/pages/Forget/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return {}; 5 | }; 6 | 7 | export const mapDispatchToProps = (dispatch: any) => ({ 8 | forger: (value: any) => dispatch({ type: 'user/forger', payload: value }), 9 | }); 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | 15 | [Makefile] 16 | indent_style = tab 17 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/InterActiveConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | components: state.global.components, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/FontCarousel/type.ts: -------------------------------------------------------------------------------- 1 | export type TFontCarouselConfig = { 2 | textStyle: ComponentData.TFontConfig; 3 | speed: number; 4 | direction: 'left' | 'right'; 5 | play: boolean; 6 | pauseOnHover: boolean; 7 | delay: number; 8 | condition: ComponentData.ComponentConditionConfig; 9 | }; 10 | -------------------------------------------------------------------------------- /src/pages/Register/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return {}; 5 | }; 6 | 7 | export const mapDispatchToProps = (dispatch: any) => ({ 8 | register: (value: any) => dispatch({ type: 'user/register', payload: value }), 9 | }); 10 | -------------------------------------------------------------------------------- /src/pages/Share/components/WaterMark/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | waterMark: state.global.screenData.config.attr.waterMark, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "all", 4 | "printWidth": 80, 5 | "importOrder": [ 6 | "", 7 | "^@(.*)", 8 | "^[./]" 9 | ], 10 | "overrides": [ 11 | { 12 | "files": ".prettierrc", 13 | "options": { "parser": "json" } 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/NameTag/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | loggerMode: state.local.loggerMode, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/SubTitle/index.less: -------------------------------------------------------------------------------- 1 | .design-config-data-detail-sub-title { 2 | margin-top: 15px; 3 | font-size: 12px; 4 | font-size: 12px; 5 | } 6 | .design-config-data-detail-sub-form { 7 | margin: 10px 0; 8 | font-size: 12px; 9 | } 10 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Text/component/index.less: -------------------------------------------------------------------------------- 1 | .component-font-text { 2 | overflow: hidden; 3 | &-carousel { 4 | animation: transform 1s linear infinite; 5 | } 6 | } 7 | @keyframes transform { 8 | 0% { 9 | transform: translateY(0); 10 | } 11 | 100% { 12 | transform: translateY(-50%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/components/ColorSelect/index.less: -------------------------------------------------------------------------------- 1 | .component-color-select { 2 | width: 24px; 3 | height: 24px; 4 | flex: none; 5 | } 6 | .component-color-select-tooltip { 7 | :global { 8 | .ant-tooltip-inner { 9 | padding: 0; 10 | } 11 | input[id^='rc-editable-input'] { 12 | color: black; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ComponentList/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | components: state.global.components || [], 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ToolBar/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | flag: state.global.screenData.config.flag.type, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({}); 10 | -------------------------------------------------------------------------------- /src/utils/Assist/Logger/Window/index.less: -------------------------------------------------------------------------------- 1 | .logger-window { 2 | flex-direction: column; 3 | :global { 4 | .ant-tabs { 5 | flex: 1; 6 | overflow: hidden; 7 | } 8 | .ant-tabs-content-holder { 9 | overflow: auto; 10 | } 11 | } 12 | } 13 | .logger-window-main { 14 | } 15 | .logger-window-footer { 16 | } 17 | -------------------------------------------------------------------------------- /assets/docs/1.13.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.13 3 | 4 | ### 设计器 5 | 6 | feat(): 跨屏复制粘贴组件 7 | feat(): 组件与组增加边框配置 8 | feat(): 所有组件增加链接跳转配置 9 | feat(): 增加全局配置,预设背景选择 10 | 11 | ### 组件 12 | 13 | 新增组件 14 | - 抽奖 15 | 16 | 优化组件 17 | - 天气组件频繁调用接口 18 | - 高德地图弹框背景色默认值修改 19 | - 取消高德地图设计时的鼠标事件 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Video/type.ts: -------------------------------------------------------------------------------- 1 | import { PathStyleMap } from '@/hooks/useClipPath'; 2 | 3 | export type TVideoConfig = { 4 | autoplay: boolean; 5 | loop: boolean; 6 | controls: boolean; 7 | muted: boolean; 8 | condition: ComponentData.ComponentConditionConfig; 9 | clipPath: keyof typeof PathStyleMap; 10 | }; 11 | -------------------------------------------------------------------------------- /src/components/ComponentError/index.less: -------------------------------------------------------------------------------- 1 | .component-error { 2 | flex-direction: column; 3 | justify-content: center; 4 | align-items: center; 5 | border: 1px solid white; 6 | border-radius: 8px; 7 | &-icon { 8 | margin-bottom: 12px; 9 | } 10 | &-title { 11 | font-weight: bold; 12 | line-height: 1.8; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/layouts/components/CommonLayout/FetchLoginWrapper/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return {}; 5 | }; 6 | 7 | export const mapDispatchToProps = (dispatch: any) => ({ 8 | getUserInfo: () => dispatch({ type: 'user/getUserInfo' }), 9 | }); 10 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/index.less: -------------------------------------------------------------------------------- 1 | @import '../../../../global.less'; 2 | 3 | .render-component-content { 4 | } 5 | .render-component-wrapper { 6 | border: 1px solid transparent; 7 | } 8 | .render-component-wrapper:hover { 9 | &:extend(.border-1); 10 | } 11 | .render-component-main { 12 | border-width: 1px; 13 | } 14 | -------------------------------------------------------------------------------- /assets/docs/1.12.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.12 3 | 4 | ### 设计器 5 | 6 | feat(): 图层搜索 7 | feat(): 组件搜索 8 | 9 | style(): 组件研发未完成状态标识 10 | style(): 组件列表大图预览 11 | 12 | refactor(): 错误弹窗单例模式 13 | 14 | ### 组件 15 | 16 | 新增组件 17 | - 路径动画 18 | - 二维码 19 | 20 | 优化组件 21 | - 高德地图事件 22 | - 高德地图坐标配置新增 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/components/ColorImageBackground/index.less: -------------------------------------------------------------------------------- 1 | .component-color-image-background { 2 | position: relative; 3 | display: flex; 4 | flex-direction: column; 5 | align-items: center; 6 | &-image { 7 | z-index: 0; 8 | position: absolute; 9 | left: 0; 10 | top: 0; 11 | width: 100%; 12 | height: 100%; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /scripts/GenerateComponent/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 快速生成新组件 3 | 4 | ## 所需参数 5 | 6 | - 大类型 7 | parent 8 | 组件所属的大类型,比如`chart`、`font`、`source`、`other`、`` 9 | - 子类型 10 | sub 11 | 组件所属的子类型 12 | - 类型 13 | type 14 | 组件自身的类型 15 | - 标题 16 | title 17 | 组件的名称 18 | - 描述 19 | description 20 | 组件的描述,可选 21 | - 键名 22 | key 23 | 组件的`key`,不写则表示类型 -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RenderWrapper/ShowIdWrapper/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | debug: state.local.debug, 6 | screenType: state.global.screenType, 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = () => ({}); 11 | -------------------------------------------------------------------------------- /src/layouts/components/Avatar/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | userInfo: state.user.currentUser, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | logout: () => dispatch({ type: 'user/logout' }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Structure/FullForm/index.less: -------------------------------------------------------------------------------- 1 | .design-config-full-form { 2 | padding: 0 4px 4px 4px; 3 | width: 100%; 4 | &-content { 5 | line-height: var(--config-component-height); 6 | } 7 | &-label { 8 | color: rgb(92, 99, 102); 9 | height: 16px; 10 | line-height: 16px; 11 | font-size: 12px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Structure/HalfForm/index.less: -------------------------------------------------------------------------------- 1 | .design-config-half-form { 2 | padding: 0 4px 4px 4px; 3 | width: 48%; 4 | &-content { 5 | line-height: var(--config-component-height); 6 | } 7 | &-label { 8 | color: rgb(92, 99, 102); 9 | height: 16px; 10 | line-height: 16px; 11 | font-size: 12px; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Structure/PlaceHolder/index.less: -------------------------------------------------------------------------------- 1 | .design-right-placeholder { 2 | display: block; 3 | width: 16px; 4 | height: var(--config-component-height); 5 | margin-right: 4px; 6 | position: relative; 7 | line-height: var(--config-component-height); 8 | text-align: center; 9 | } 10 | .design-right-placeholder-show { 11 | } 12 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/FullScreen/component/index.less: -------------------------------------------------------------------------------- 1 | .component-interactive-full-screen { 2 | &-main { 3 | & > div { 4 | padding: 16%; 5 | & img { 6 | left: 50%; 7 | top: 50%; 8 | transform: translateX(-50%) translateY(-50%); 9 | object-fit: contain; 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Rate/type.ts: -------------------------------------------------------------------------------- 1 | export type TRateConfig = { 2 | backgroundColor: ComponentData.TColorConfig; 3 | rateBackgroundColor: ComponentData.TColorConfig; 4 | size: number; 5 | count: number; 6 | margin: number; 7 | defaultValue: number; 8 | shape: string; 9 | allowHalf: boolean; 10 | allowClear: boolean; 11 | }; 12 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Model/component/index.less: -------------------------------------------------------------------------------- 1 | .component-media-model { 2 | overflow: hidden; 3 | position: relative; 4 | & iframe { 5 | width: 100%; 6 | height: 100%; 7 | } 8 | &-loading { 9 | position: absolute; 10 | left: 50%; 11 | top: 50%; 12 | transform: translateX(-50%) translateY(-50%); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/components/ParamsSelect/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | const { constants, params } = state.global.screenData.config.attr; 5 | return { 6 | params, 7 | constants, 8 | }; 9 | }; 10 | 11 | export const mapDispatchToProps = (dispatch: any) => ({}); 12 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/TimeMachine/type.ts: -------------------------------------------------------------------------------- 1 | export type TTimeMachineConfig = { 2 | textStyle: ComponentData.TFontConfig; 3 | icon: { 4 | show: boolean; 5 | value: string; 6 | color: ComponentData.TColorConfig; 7 | size: number; 8 | margin: number; 9 | position: 'before' | 'after'; 10 | }; 11 | formatter: string; 12 | }; 13 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Button/type.ts: -------------------------------------------------------------------------------- 1 | export type TButtonConfig = { 2 | textStyle: ComponentData.TFontConfig; 3 | backgroundColor: ComponentData.TColorConfig; 4 | icon: string; 5 | borderRadius: number; 6 | type: 'primary' | 'default'; 7 | actionType: 'submit' | 'normal'; 8 | condition: ComponentData.ComponentConditionConfig; 9 | }; 10 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/ComponentList/connect.ts: -------------------------------------------------------------------------------- 1 | export const mapStateToProps = () => { 2 | return {}; 3 | }; 4 | 5 | export const mapDispatchToProps = (dispatch: any) => ({ 6 | setDragInfo: (value: any) => dispatch({ type: 'global/setDragInfo', value }), 7 | setSelect: (value: any) => dispatch({ type: 'global/setSelect', value }), 8 | }); 9 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Content/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | screenType: state.global.screenType, 6 | version: state.global.version || '', 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = () => ({}); 11 | -------------------------------------------------------------------------------- /src/pages/Share/index.less: -------------------------------------------------------------------------------- 1 | .page-preview-pc { 2 | left: 0 !important; 3 | top: 0 !important; 4 | overflow: hidden; 5 | } 6 | .page-preview-h5 { 7 | left: 0 !important; 8 | top: 0 !important; 9 | position: relative !important; 10 | height: auto !important; 11 | } 12 | .page-preview-h5-wrapper { 13 | overflow-y: auto; 14 | overflow-x: hidden; 15 | } 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/BaseConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | components: state.global.components, 6 | flag: state.global.screenData.config.flag.type, 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = (dispatch: any) => ({}); 11 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Structure/Container/index.less: -------------------------------------------------------------------------------- 1 | .design-config-form-item-container { 2 | margin-left: -4px; 3 | margin-right: -4px; 4 | display: flex; 5 | flex-flow: wrap; 6 | align-items: center; 7 | justify-content: space-between; 8 | padding-bottom: 0; 9 | line-height: var(--config-component-height); 10 | position: relative; 11 | } 12 | -------------------------------------------------------------------------------- /src/components/ScrollText/index.less: -------------------------------------------------------------------------------- 1 | .component-scroll-text { 2 | overflow: hidden; 3 | &-content { 4 | position: absolute; 5 | width: 100%; 6 | white-space: nowrap; 7 | animation-name: scroll-text-animation; 8 | } 9 | } 10 | 11 | @keyframes scroll-text-animation { 12 | 0% { 13 | left: 0; 14 | } 15 | 100% { 16 | left: -110%; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/pages/Designer/index.less: -------------------------------------------------------------------------------- 1 | .designer-page { 2 | width: 100%; 3 | height: 100vh; 4 | overflow: hidden; 5 | position: relative; 6 | display: flex; 7 | flex-direction: column; 8 | & *:not(input) { 9 | user-select: none; 10 | } 11 | &-content { 12 | min-width: 100vw; 13 | display: flex; 14 | flex: 1; 15 | overflow: hidden; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Tag/type.ts: -------------------------------------------------------------------------------- 1 | export type TTagConfig = { 2 | margin: number; 3 | textStyle: ComponentData.TFontConfig; 4 | series: { 5 | color: ComponentData.TColorConfig; 6 | icon?: string; 7 | }[]; 8 | icon: { 9 | position: 'start' | 'end'; 10 | margin: number; 11 | }; 12 | condition: ComponentData.ComponentConditionConfig; 13 | }; 14 | -------------------------------------------------------------------------------- /src/components/DesignerBackground/index.less: -------------------------------------------------------------------------------- 1 | .designer-page-background { 2 | width: 100%; 3 | height: 100%; 4 | background: currentColor; 5 | background-image: linear-gradient(currentColor 14px, transparent 0), 6 | linear-gradient(90deg, pink 1px, transparent 0); 7 | background-size: 15px 15px, 15px 15px; 8 | top: 0; 9 | left: 0; 10 | overflow: hidden; 11 | } 12 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/LayerManage/components/Header/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .design-layer-manage-content-header { 4 | width: 100%; 5 | height: 50px; 6 | top: 0; 7 | align-items: center; 8 | background-color: @layout-header-background; 9 | z-index: 2; 10 | & > div { 11 | flex: 1; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RenderComponent/components/Content/ComponentWrapper/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | screenType: state.global.screenType, 6 | version: state.global.version || '', 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = () => ({}); 11 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Carousel/component/index.less: -------------------------------------------------------------------------------- 1 | .component-media-carousel { 2 | :global { 3 | .slick-dots { 4 | margin: 0; 5 | li button::before { 6 | display: none; 7 | } 8 | } 9 | .slick-list { 10 | height: 100%; 11 | } 12 | .ant-carousel { 13 | width: 100%; 14 | height: 100%; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Model/type.ts: -------------------------------------------------------------------------------- 1 | export type TModelConfig = { 2 | position: { 3 | x: number; 4 | y: number; 5 | z: number; 6 | }; 7 | focus: { 8 | x: number; 9 | y: number; 10 | z: number; 11 | }; 12 | scale: number; 13 | color: ComponentData.TColorConfig; 14 | rotate: { 15 | show: boolean; 16 | speed: number; 17 | }; 18 | }; 19 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Header/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | screenData: state.global.screenData, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreen: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/index.less: -------------------------------------------------------------------------------- 1 | .design-page-right { 2 | overflow: hidden; 3 | height: 100%; 4 | user-select: none; 5 | font-size: 12px; 6 | flex-shrink: 0; 7 | transition-property: opacity, width; 8 | transition-duration: 0.2s, 0.5s; 9 | opacity: 0; 10 | width: 0; 11 | } 12 | .design-page-right-show { 13 | opacity: 1; 14 | width: 332px; 15 | } 16 | -------------------------------------------------------------------------------- /src/services/third.ts: -------------------------------------------------------------------------------- 1 | import request from '../utils/request'; 2 | 3 | // 获取天气 4 | export const getWeatherData = (data: API_THIRD.TWeatherParams) => { 5 | return request('/api/third/request', { 6 | method: 'POST', 7 | data: { 8 | params: { 9 | ...data, 10 | _id: '630c7f824fa77520a214a75d', 11 | }, 12 | }, 13 | }); 14 | }; 15 | -------------------------------------------------------------------------------- /src/utils/Assist/BreakingChange/ConditionChange/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 组件条件配置大改动 3 | 4 | ## 2022-07-25 5 | 6 | ## 1.8 7 | 8 | 之前的条件配置为`ComponentData.ComponentCondition[]`,为纯数组。 9 | 因为需要新增一些相关的条件配置,所以现在将他更改为对象。新数据格式为: 10 | ```ts 11 | type ConfitionType = { 12 | value: ComponentData.ComponentCondition[] 13 | initialState: ComponentData.ComponentConditionActionType 14 | } 15 | ``` -------------------------------------------------------------------------------- /src/utils/Assist/BreakingChange/ScreenThemeTypeChange/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 大屏主题色配置更改 3 | 4 | ## 2022-10-13 5 | 6 | ## 1.14 7 | 8 | 之前的主题色仅为内置,且无法在新增大屏后修改,数据类型为`字符串`。 9 | 先支持在任何时机进行修改,且支持自定义上传图片获取主题色。 10 | 新数据格式为: 11 | ```ts 12 | type TScreenTheme = { 13 | type: 'internal' | 'custom' 14 | value: string 15 | // 只有非内置的需要保存颜色数组 16 | color?: string[] 17 | } 18 | ``` -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Structure/Container/index.tsx: -------------------------------------------------------------------------------- 1 | import { ReactNode } from 'react'; 2 | import styles from './index.less'; 3 | 4 | const FormContainer = ({ children }: { children?: ReactNode }) => { 5 | return ( 6 |
7 | {children} 8 |
9 | ); 10 | }; 11 | 12 | export default FormContainer; 13 | -------------------------------------------------------------------------------- /src/layouts/components/CommonLayout/EnvironmentPrompt/index.tsx: -------------------------------------------------------------------------------- 1 | import PromptChrome from '@/components/PromptChrome'; 2 | 3 | // 环境判断 4 | const EnvironmentPrompt = (props: any) => { 5 | const { Component, ...nextProps } = props; 6 | return ( 7 | 8 | 9 | 10 | ); 11 | }; 12 | 13 | export default EnvironmentPrompt; 14 | -------------------------------------------------------------------------------- /src/components/Decoration/Decoration11/index.less: -------------------------------------------------------------------------------- 1 | .component-decoration-11 { 2 | position: relative; 3 | width: 100%; 4 | height: 100%; 5 | display: flex; 6 | 7 | &-content { 8 | position: absolute; 9 | top: 0px; 10 | left: 0px; 11 | width: 100%; 12 | height: 100%; 13 | display: flex; 14 | align-items: center; 15 | justify-content: center; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/components/ImageUpload/index.less: -------------------------------------------------------------------------------- 1 | .component-image-upload { 2 | :global { 3 | .ant-upload.ant-upload-select-picture-card, 4 | .ant-upload-list-picture-card-container { 5 | width: 100%; 6 | height: 200px; 7 | } 8 | } 9 | &-placeholder { 10 | & > span { 11 | font-size: 40px; 12 | } 13 | & > div { 14 | font-size: 12px; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Text/type.ts: -------------------------------------------------------------------------------- 1 | export type TTextConfig = { 2 | textStyle: ComponentData.TFontConfig & { 3 | lineHeight: number; 4 | letterSpacing: number; 5 | textAlign: 'left' | 'right' | 'justify'; 6 | textIndent: number; 7 | }; 8 | animation: { 9 | show: boolean; 10 | speed: number; 11 | }; 12 | condition: ComponentData.ComponentConditionConfig; 13 | }; 14 | -------------------------------------------------------------------------------- /src/components/Tooltip/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { Tooltip as AntTooltip } from 'antd'; 3 | import type { TooltipProps } from 'antd/es/tooltip'; 4 | import { usePrimaryColor } from '@/hooks'; 5 | 6 | const Tooltip = (props: TooltipProps) => { 7 | const primaryColor = usePrimaryColor(); 8 | 9 | return ; 10 | }; 11 | 12 | export default Tooltip; 13 | -------------------------------------------------------------------------------- /src/pages/Designer/components/ExchangeScreenFlag/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | flag: state.global.screenData.config.flag.type, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreen: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ReactSelecto/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | screenType: state.global.screenType, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setSelect: (value: any) => dispatch({ type: 'global/setSelect', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /assets/docs/1.17.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.17 3 | 4 | ### 首页 5 | 6 | style(): logo旁文字在手机端显示太小 7 | style(): 控制刚体元素在页面中的宽度 8 | 9 | ### 设计器 10 | 11 | fix(): 组内元素调整大小没有同步调整组的大小 12 | 13 | style(): 图层列表组件hover文字颜色显示不对 14 | style(): 画布模块最外层不设置滚动 15 | style(): 画布去除横向滚动条 16 | 17 | refactor(): 组件相关使用按需加载 18 | 19 | ### 组件 20 | 21 | 优化组件 22 | - 搜索组件,按钮占比配置使用百分比 23 | - switch默认背景色不对 24 | - 下拉框组件层级显示错误 -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Component/hook/useComponentResize.ts: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react'; 2 | 3 | export function useComponentResize( 4 | value: ComponentData.TComponentData, 5 | callback?: () => void, 6 | ) { 7 | const { 8 | config: { 9 | style: { width, height }, 10 | }, 11 | } = value; 12 | 13 | useEffect(() => { 14 | callback?.(); 15 | }, [width, height]); 16 | } 17 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/QrCode/component/index.less: -------------------------------------------------------------------------------- 1 | .component-other-qr-code { 2 | overflow: hidden; 3 | &-content { 4 | position: relative; 5 | &-image { 6 | width: 100%; 7 | height: 100%; 8 | } 9 | } 10 | &-logo { 11 | position: absolute; 12 | left: 50%; 13 | top: 50%; 14 | transform: translateX(-50%) translateY(-50%); 15 | z-index: 1; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/pages/Designer/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return {}; 5 | }; 6 | 7 | export const mapDispatchToProps = (dispatch: any) => ({ 8 | setScreenType: (value: any) => 9 | dispatch({ type: 'global/setScreenType', value }), 10 | getMockValueKindMap: () => dispatch({ type: 'data/getMockValueKindMap' }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/components/PageLoading/index.less: -------------------------------------------------------------------------------- 1 | .page-custom-loading { 2 | position: relative; 3 | left: 50%; 4 | top: 50%; 5 | transform: translateX(-50%) translateY(-50%); 6 | } 7 | .page-custom-loading-wrapper { 8 | width: 100vw; 9 | height: 100vh; 10 | overflow: hidden; 11 | display: flex; 12 | justify-content: center; 13 | align-items: center; 14 | position: absolute; 15 | left: 0; 16 | top: 0; 17 | } 18 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/components/GlobalConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | screenData: state.global.screenData, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreenData: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/utils/Assist/About/index.tsx: -------------------------------------------------------------------------------- 1 | export const gotoGithub = () => { 2 | window.open('https://github.com/food-billboard', '_blank'); 3 | }; 4 | 5 | export const gotoBlog = () => { 6 | window.open('https://food-billboard.github.io/', '_blank'); 7 | }; 8 | 9 | export const gotoOperation = () => { 10 | window.open( 11 | 'http://47.97.27.23/api/backend/create-chart-docs/index.html', 12 | '_blank', 13 | ); 14 | }; 15 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/LensConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | lens: state.global.screenData.config.attr.lens, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreen: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/pages/Designer/components/RightContent/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | components: state.global.components || [], 6 | select: state.global.select || [], 7 | componentConfigCollapse: state.local.componentConfigCollapse, 8 | }; 9 | }; 10 | 11 | export const mapDispatchToProps = (dispatch: any) => ({}); 12 | -------------------------------------------------------------------------------- /assets/docs/1.7.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.7 3 | 4 | ### 首页 5 | style(): 新增介绍首页 6 | 7 | ### 大屏列表&模板列表 8 | style(): 增加背景动效 9 | 10 | ### 登录权限页面 11 | style(): 登录背景重构 12 | 13 | ### 设计器 14 | fix(): 数据更改图表无动画 15 | fix(): 组内组件新增mock字段报错 16 | fix(): mock重新获取数据的按钮不显示 17 | fix(): 数据改变图表组件没更新 18 | 19 | feat(): 组件配置更新按批次提交后台 20 | feat(): 设计状态下定时请求不开启 21 | feat(): 增加代码形式的相关功能开关 22 | feat(): 保存超时提示 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /scripts/GenerateComponent/TemplateComponentImport.txt: -------------------------------------------------------------------------------- 1 | import ThisIsComponentImage from '../../../../../../public/components/default-chart.png' 2 | 3 | export default { 4 | type: 'component-type-prefix', 5 | parentType: 'component-parent-type-prefix', 6 | subParentType: 'component-sub-parent-type-prefix', 7 | icon: ThisIsComponentImage, 8 | title: 'component-title-prefix', 9 | description: 'component-description-prefix' 10 | } -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Audio/component/index.less: -------------------------------------------------------------------------------- 1 | .component-media-audio { 2 | overflow: hidden; 3 | position: relative; 4 | audio { 5 | width: 100%; 6 | height: 100%; 7 | } 8 | &-tooltip { 9 | position: absolute; 10 | z-index: 1; 11 | text-align: center; 12 | left: 50%; 13 | top: 50%; 14 | transform: translateX(-50%) translateY(-50%); 15 | font-size: 14px; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/hooks/useAnyDva.ts: -------------------------------------------------------------------------------- 1 | import { getDvaApp } from 'umi'; 2 | import type { Dispatch } from 'dva'; 3 | import { ConnectState } from '@/models/connect'; 4 | 5 | let app: any; 6 | 7 | export function useAnyDva(): { 8 | dispatch: Dispatch; 9 | getState: () => ConnectState; 10 | } { 11 | if (!app) app = getDvaApp(); 12 | 13 | return { 14 | dispatch: app._store.dispatch, 15 | getState: app._store.getState, 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /src/pages/Designer/components/PageLoading/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .page-designer-loading { 4 | width: 100vw; 5 | height: 100vh; 6 | z-index: 99; 7 | position: fixed; 8 | left: 0; 9 | top: 0; 10 | pointer-events: none; 11 | background-color: @component-background; 12 | display: flex; 13 | align-items: center; 14 | justify-content: center; 15 | pointer-events: none; 16 | } 17 | -------------------------------------------------------------------------------- /src/pages/Home/components/MatterBoxes/index.less: -------------------------------------------------------------------------------- 1 | .home-page-matter-boxes-container { 2 | // position: sticky; 3 | // left: 0; 4 | // top: 0; 5 | // z-index: 1; 6 | --container-width: ~'min(100vw, 1024px)'; 7 | width: var(--container-width); 8 | height: calc(var(--container-width) * 0.56); 9 | border: 3px solid white; 10 | position: relative; 11 | left: 50%; 12 | top: 0; 13 | transform: translateX(-50%); 14 | } 15 | -------------------------------------------------------------------------------- /assets/docs/1.10.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.10 3 | 4 | ### 设计器 5 | fix(): 辅助线放大缩小后位置变动 6 | fix(): 拖拽辅助线多次保存 7 | fix(): 关闭过滤器,组件未刷新 8 | fix(): 颜色选择多次调用保存 9 | fix(): 配置在聚焦情况切换选中组件未保存 10 | 11 | feat(): 新增组件拖拽事件 12 | feat(): 新增画布缩略图 13 | feat(): 组件列表可折叠 14 | feat(): 组件onChange预调用 15 | 16 | style(): 画布顶点位置修改 17 | 18 | refactor(): 辅助线吸附效果优化 19 | 20 | ### 组件 21 | 22 | 新增组件 23 | - 天气预报 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /public/home/wall.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/InternalBorder/connect.ts: -------------------------------------------------------------------------------- 1 | import { get } from 'lodash'; 2 | import { ConnectState } from '@/models/connect'; 3 | 4 | export const mapStateToProps = (state: ConnectState) => { 5 | const { width, padding } = get( 6 | state, 7 | 'global.screenData.config.attr.componentBorder', 8 | ); 9 | return { 10 | width, 11 | padding, 12 | }; 13 | }; 14 | 15 | export const mapDispatchToProps = (dispatch: any) => ({}); 16 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/RequestDefaultConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | request: state.global.screenData.config.attr.request, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreen: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/utils/Assist/GlobalComponent/index.ts: -------------------------------------------------------------------------------- 1 | class GlobalComponent { 2 | COMPONENT_MAP: any = {}; 3 | 4 | register = (key: string, value: any) => { 5 | this.COMPONENT_MAP[key] = value; 6 | }; 7 | 8 | unRegister = (key: string) => { 9 | delete this.COMPONENT_MAP[key]; 10 | }; 11 | 12 | getComponent = (key: string) => { 13 | return this.COMPONENT_MAP[key]; 14 | }; 15 | } 16 | 17 | export default new GlobalComponent(); 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/InterActiveConfig/components/BaseConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | params: state.global.screenData.config.attr.params, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreen: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Image/type.ts: -------------------------------------------------------------------------------- 1 | import { PathStyleMap } from '@/hooks/useClipPath'; 2 | 3 | export type TImageConfig = { 4 | type: 'image' | 'color'; 5 | clipPath: keyof typeof PathStyleMap; 6 | content: string | ComponentData.TColorConfig; 7 | repeat: { 8 | x: boolean; 9 | y: boolean; 10 | }; 11 | condition: ComponentData.ComponentConditionConfig; 12 | preview: { 13 | show: boolean; 14 | }; 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox12/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-12-border { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | 8 | &-container { 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | top: 0px; 13 | left: 0px; 14 | } 15 | 16 | &-content { 17 | position: relative; 18 | width: 100%; 19 | height: 100%; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox13/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-13-border { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | 8 | &-container { 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | top: 0px; 13 | left: 0px; 14 | } 15 | 16 | &-content { 17 | position: relative; 18 | width: 100%; 19 | height: 100%; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox8/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-8-border { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | 8 | &-container { 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | left: 0px; 13 | top: 0px; 14 | } 15 | 16 | &-content { 17 | position: relative; 18 | width: 100%; 19 | height: 100%; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox9/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-9-border { 2 | position: absolute; 3 | left: 0; 4 | top: 0; 5 | width: 100%; 6 | height: 100%; 7 | 8 | &-container { 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | left: 0px; 13 | top: 0px; 14 | } 15 | 16 | &-content { 17 | position: relative; 18 | width: 100%; 19 | height: 100%; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/ConstantManage/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | constants: state.global.screenData.config.attr.constants || [], 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setScreen: (value: any) => dispatch({ type: 'global/setScreen', value }), 11 | }); 12 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ToolBar/components/PanelThumb/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | const { width, height } = state.global.screenData.config.style; 5 | return { 6 | width, 7 | height, 8 | components: state.global.components, 9 | }; 10 | }; 11 | 12 | export const mapDispatchToProps = (dispatch: any) => ({}); 13 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/CodeViewer/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | const { filter, params, constants } = state.global.screenData.config.attr; 5 | return { 6 | filter, 7 | params, 8 | constants, 9 | }; 10 | }; 11 | 12 | export const mapDispatchToProps = (dispatch: any) => ({}); 13 | -------------------------------------------------------------------------------- /src/hooks/useDeepUpdateEffect.ts: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | import { useDeepCompareEffect } from 'ahooks'; 3 | 4 | export const useDeepUpdateEffect: typeof useDeepCompareEffect = ( 5 | effect, 6 | deps, 7 | ) => { 8 | const isFirst = useRef(true); 9 | 10 | useDeepCompareEffect(() => { 11 | if (isFirst.current) { 12 | isFirst.current = false; 13 | } else { 14 | return effect(); 15 | } 16 | }, deps); 17 | }; 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RuleTree/components/InnerConnectLeft/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { ReactComponent as Connect } from './index.svg'; 3 | 4 | const InnerConnectLeft = () => { 5 | return ( 6 |
13 | 14 |
15 | ); 16 | }; 17 | 18 | export default InnerConnectLeft; 19 | -------------------------------------------------------------------------------- /src/components/ContextMenu/Actions/Redo.tsx: -------------------------------------------------------------------------------- 1 | import { useCallback } from 'react'; 2 | import { RedoOutlined } from '@ant-design/icons'; 3 | import useChildren from './useChildren'; 4 | 5 | const RedoAction = () => { 6 | const handleClick = useCallback(() => {}, []); 7 | 8 | return ( 9 |
10 | 11 | 重做 12 |
13 | ); 14 | }; 15 | 16 | export default RedoAction; 17 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/CallbackManage/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | callback: state.global.screenData.config.attr.filter || [], 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setCallbackData: (value: any) => 11 | dispatch({ type: 'global/setCallbackData', value }), 12 | }); 13 | -------------------------------------------------------------------------------- /src/pages/Designer/utils/component/GenerateList/index.tsx: -------------------------------------------------------------------------------- 1 | // import xxxComponent from './xxx' 2 | // component-generate-import 3 | 4 | const GENERATE_COMPONENT_LIST: { 5 | parentType: string; 6 | subParentType: string; 7 | type: string; 8 | icon: string; 9 | title: string; 10 | description: string; 11 | }[] = []; 12 | 13 | // GENERATE_COMPONENT_LIST.push(xxxComponent) 14 | // component-generate-insert 15 | 16 | export default GENERATE_COMPONENT_LIST; 17 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Component/hook/index.ts: -------------------------------------------------------------------------------- 1 | export * from './useComponent'; 2 | export * from './useChartComponentResize'; 3 | export * from './useChartValueMap'; 4 | export * from './useComponentResize'; 5 | export * from './useAnimationChange'; 6 | export * from './useCondition'; 7 | export * from './useChartComponentTooltip'; 8 | export * from './useGroupComponent'; 9 | export * from './useChartPerConfig'; 10 | export * from './useComponentSize'; 11 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RuleTree/components/InnerConnectRight/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { ReactComponent as Connect } from './index.svg'; 3 | 4 | const InnerConnectLeft = () => { 5 | return ( 6 |
13 | 14 |
15 | ); 16 | }; 17 | 18 | export default InnerConnectLeft; 19 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RuleTree/components/OuterConnectRight/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { ReactComponent as Connect } from './index.svg'; 3 | 4 | const OuterConnectRight = () => { 5 | return ( 6 |
13 | 14 |
15 | ); 16 | }; 17 | 18 | export default OuterConnectRight; 19 | -------------------------------------------------------------------------------- /src/components/SyncCodeEditor/Typesetting.tsx: -------------------------------------------------------------------------------- 1 | import { SkinOutlined } from '@ant-design/icons'; 2 | import IconTooltip from '../IconTooltip'; 3 | 4 | const Typesetting = (props: { onClick?: () => void }) => { 5 | const { onClick } = props; 6 | 7 | return ( 8 | 9 | 10 | 11 | ); 12 | }; 13 | 14 | export default Typesetting; 15 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/PanelWrapper/components/Ruler/connect.ts: -------------------------------------------------------------------------------- 1 | import { get } from 'lodash'; 2 | import { ConnectState } from '@/models/connect'; 3 | 4 | export const mapStateToProps = (state: ConnectState) => { 5 | return { 6 | guideLineList: get(state, 'global.guideLine.value') || [], 7 | guideLineShow: get(state, 'global.guideLine.show') ?? false, 8 | }; 9 | }; 10 | 11 | export const mapDispatchToProps = (dispatch: any) => ({}); 12 | -------------------------------------------------------------------------------- /src/services/mock.ts: -------------------------------------------------------------------------------- 1 | import request from '../utils/request'; 2 | 3 | // mock数据格式列表 4 | export const getMockKindList = () => { 5 | return request('/api/screen/mock/params', { 6 | method: 'GET', 7 | }).then((data) => { 8 | return data.map((item: any) => { 9 | return { 10 | id: item._id, 11 | value: item.data_kind, 12 | description: item.description, 13 | }; 14 | }); 15 | }); 16 | }; 17 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/RuleTree/components/OuterConnectLeft/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { ReactComponent as Connect } from './index.svg'; 3 | 4 | const OuterConnectLeft = (props: {}) => { 5 | return ( 6 |
13 | 14 |
15 | ); 16 | }; 17 | 18 | export default OuterConnectLeft; 19 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Carousel/type.ts: -------------------------------------------------------------------------------- 1 | import { PathStyleMap } from '@/hooks/useClipPath'; 2 | 3 | export type TCarouselConfig = { 4 | speed: number; 5 | autoplay: boolean; 6 | clipPath: keyof typeof PathStyleMap; 7 | dot: { 8 | show: boolean; 9 | position: 'top' | 'bottom' | 'left' | 'right'; 10 | }; 11 | pauseOnHover: boolean; 12 | // easing: string 13 | fade: boolean; 14 | condition: ComponentData.ComponentConditionConfig; 15 | }; 16 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/ThemeConfig/CustomConfig/index.less: -------------------------------------------------------------------------------- 1 | .designer-theme-config-custom { 2 | &-item { 3 | width: 100%; 4 | align-items: center; 5 | & > div:nth-of-type(2) { 6 | flex: 1; 7 | } 8 | } 9 | } 10 | .designer-theme-config-custom-upload { 11 | :global { 12 | .ant-upload.ant-upload-select-picture-card, 13 | .ant-upload-list-picture-card-container { 14 | width: 100%; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/ResponseDataTitle/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | params: state.global.screenData.config.attr.params, 6 | constants: state.global.screenData.config.attr.constants, 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = (dispatch: any) => ({}); 11 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Radio/type.ts: -------------------------------------------------------------------------------- 1 | export type TRadioConfig = { 2 | borderColor: ComponentData.TColorConfig; 3 | backgroundColor: ComponentData.TColorConfig; 4 | textStyle: ComponentData.TFontConfig; 5 | size: number; 6 | defaultChecked: string; 7 | active: { 8 | borderColor: ComponentData.TColorConfig; 9 | backgroundColor: ComponentData.TColorConfig; 10 | }; 11 | check: { 12 | color: ComponentData.TColorConfig; 13 | }; 14 | }; 15 | -------------------------------------------------------------------------------- /src/components/DeepStructureComponent/index.tsx: -------------------------------------------------------------------------------- 1 | // [Parent, Children] 2 | const ReduceLayout = (Components: any[]) => { 3 | return Components.reduceRight((Component, CurComponent) => { 4 | if (!Component) 5 | return (props: any) => { 6 | return ; 7 | }; 8 | return (props: any) => { 9 | return ; 10 | }; 11 | }, null); 12 | }; 13 | 14 | export default ReduceLayout; 15 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/DefineConfig/ApiConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | params: state.global.screenData.config.attr.params, 6 | constants: state.global.screenData.config.attr.constants, 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = (dispatch: any) => ({}); 11 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/DefineConfig/MockConfig/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | params: state.global.screenData.config.attr.params, 6 | constants: state.global.screenData.config.attr.constants, 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = (dispatch: any) => ({}); 11 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/LayerManage/components/Tree/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | components: state.global.components || [], 6 | select: state.global.select || [], 7 | }; 8 | }; 9 | 10 | export const mapDispatchToProps = (dispatch: any) => ({ 11 | setSelect: (value: any) => dispatch({ type: 'global/setSelect', value }), 12 | }); 13 | -------------------------------------------------------------------------------- /assets/development/H5设计器.md: -------------------------------------------------------------------------------- 1 | 2 | # H5大屏设计器 3 | 4 | 设计在手机上查看的大屏。 5 | 6 | ## 功能 7 | 8 | - 取消对预览和分享页面关于是否`手机浏览器`的判断。 9 | - 增加数据结构对手机大屏的标识。 10 | - 增加`pc`转`h5`的支持。 11 | - 阉割或修改设计阶段画布的操作。 12 | - 列表和模板列表增加Pc和H5筛选。 13 | - 新建时选择PC和H5 14 | - 可在编辑时对大屏进行类型修改。并支持预览。 15 | 16 | ## 细节 17 | 18 | ### 阉割或修改设计阶段画布的操作 19 | - 流式布局 20 | - 居中显示(space-between) 21 | - 全局增加padding 22 | - 取消drag 23 | - 增加sort-hoc 24 | - 置顶置底逻辑修改 25 | - 标尺显示动态更新 26 | - 画布动态增加高度 27 | - 宽高尺寸不可编辑 -------------------------------------------------------------------------------- /src/components/InternalBackground/components/Background/GradientMixBackground/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import './index.less'; 3 | 4 | const GradientMixBackground = () => { 5 | return ( 6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | ); 15 | }; 16 | 17 | export default GradientMixBackground; 18 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/PanelWrapper/components/GuideLineButton/index.less: -------------------------------------------------------------------------------- 1 | .designer-page-main-guide-btn { 2 | z-index: 2; 3 | position: absolute; 4 | width: 30px !important; 5 | height: 30px !important; 6 | line-height: 30px !important; 7 | } 8 | .designer-page-main-guide-btn, 9 | .designer-page-main-guide-btn-sub { 10 | transition: none; 11 | color: white; 12 | &:hover, 13 | &:focus { 14 | background-color: rgba(51, 51, 51); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Switch/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { Switch as AntSwitch } from 'antd'; 3 | import { SwitchProps } from 'antd/es/switch'; 4 | import classnames from 'classnames'; 5 | import styles from './index.less'; 6 | 7 | const Switch = (props: SwitchProps) => { 8 | return ( 9 | 10 | 11 | 12 | ); 13 | }; 14 | 15 | export default Switch; 16 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Header/index.less: -------------------------------------------------------------------------------- 1 | .designer-page-header { 2 | padding: 8px 24px; 3 | &-title { 4 | width: 20vw; 5 | font-size: 16px; 6 | line-height: 1.5715; 7 | padding: 6.5px 11px; 8 | font-weight: bold; 9 | } 10 | &-title-active { 11 | font-size: 16px; 12 | width: 20vw; 13 | input { 14 | font-weight: bold; 15 | } 16 | } 17 | :global { 18 | .ant-page-header-content { 19 | padding-top: 4px; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/hooks/usePanelFocus.ts: -------------------------------------------------------------------------------- 1 | import { useFocusWithin } from 'ahooks'; 2 | import { Options } from 'ahooks/es/useFocusWithin'; 3 | import { BasicTarget } from 'ahooks/es/utils/domTarget'; 4 | import CopyAndPasteUtil from '@/utils/Assist/CopyAndPaste'; 5 | 6 | export function usePanelFocus( 7 | target: BasicTarget, 8 | options?: Options, 9 | control?: boolean, 10 | ) { 11 | return useFocusWithin( 12 | target, 13 | CopyAndPasteUtil.injectHooksOptions(options, control), 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/FetchFragment/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | params: state.global.screenData.config.attr.params, 6 | filter: state.global.screenData.config.attr.filter, 7 | constants: state.global.screenData.config.attr.constants, 8 | screenType: state.global.screenType, 9 | }; 10 | }; 11 | 12 | export const mapDispatchToProps = (dispatch: any) => ({}); 13 | -------------------------------------------------------------------------------- /src/components/ScreenComponentConfigChangeTooltip/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | versionChangeTooltip: state.global.screenData.extra.versionChangeTooltip, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setVersionChangeTooltip: (value: any) => 11 | dispatch({ 12 | type: 'global/setConfigChangeTooltip', 13 | value, 14 | }), 15 | }); 16 | -------------------------------------------------------------------------------- /src/pages/Designer/components/ExchangeScreenFlag/components/MobilePreviewer/index.less: -------------------------------------------------------------------------------- 1 | .component-exchange-screen-flag-drawer { 2 | position: relative; 3 | min-height: 100%; 4 | &-loading { 5 | z-index: 1; 6 | left: 0; 7 | top: 0; 8 | } 9 | &-footer { 10 | position: sticky; 11 | bottom: 0; 12 | width: 100%; 13 | text-align: right; 14 | } 15 | } 16 | 17 | .component-exchange-screen-flag-component-list-item { 18 | pointer-events: none; 19 | position: relative; 20 | } 21 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/DataConfig/components/ResponseData/components/DataConfigDetail/components/DataFilter/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | filter: state.global.screenData.config.attr.filter, 6 | }; 7 | }; 8 | 9 | export const mapDispatchToProps = (dispatch: any) => ({ 10 | setCallbackData: (value: any) => 11 | dispatch({ type: 'global/setCallbackData', value }), 12 | }); 13 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Checkbox/type.ts: -------------------------------------------------------------------------------- 1 | export type TCheckboxConfig = { 2 | borderColor: ComponentData.TColorConfig; 3 | borderRadius: number; 4 | backgroundColor: ComponentData.TColorConfig; 5 | textStyle: ComponentData.TFontConfig; 6 | size: number; 7 | defaultChecked: string; 8 | active: { 9 | borderColor: ComponentData.TColorConfig; 10 | backgroundColor: ComponentData.TColorConfig; 11 | }; 12 | check: { 13 | color: ComponentData.TColorConfig; 14 | }; 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Chart/SunBurst/SunBurstBasic/type.ts: -------------------------------------------------------------------------------- 1 | export type TSunBurstBasicConfig = { 2 | tooltip: ComponentData.ComponentTooltip; 3 | series: { 4 | center: [number, number]; 5 | radius: number; 6 | label: Omit & { 7 | formatter: string; 8 | }; 9 | nodeClick: false | 'rootToNode'; 10 | }; 11 | animation: ComponentData.ComponentChartAnimationConfig; 12 | condition: ComponentData.ComponentConditionConfig; 13 | }; 14 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Common/Checkbox/index.tsx: -------------------------------------------------------------------------------- 1 | import {} from 'react'; 2 | import { Checkbox as AntCheckbox } from 'antd'; 3 | import { CheckboxProps } from 'antd/es/checkbox'; 4 | import classnames from 'classnames'; 5 | import styles from './index.less'; 6 | 7 | const Switch = (props: CheckboxProps) => { 8 | return ( 9 | 13 | ); 14 | }; 15 | 16 | export default Switch; 17 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/StateCard/type.ts: -------------------------------------------------------------------------------- 1 | export type TStateCardConfig = { 2 | margin: number; 3 | textStyle: ComponentData.TFontConfig; 4 | stateList: { 5 | value: string; 6 | stateIcon: { 7 | color: ComponentData.TColorConfig; 8 | }; 9 | }[]; 10 | stateIcon: { 11 | position: 'start' | 'end'; 12 | borderRadius: number; 13 | rotate: number; 14 | margin: number; 15 | size: [number, number]; 16 | }; 17 | condition: ComponentData.ComponentConditionConfig; 18 | }; 19 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/QrCode/type.ts: -------------------------------------------------------------------------------- 1 | export type TQrCodeConfig = { 2 | logo: { 3 | show: boolean; 4 | image: string; 5 | size: { 6 | width: number; 7 | height: number; 8 | }; 9 | borderRadius: number; 10 | border: ComponentData.ComponentLineGroupConfig; 11 | }; 12 | base: { 13 | backgroundColor: ComponentData.TColorConfig; 14 | codeColor: ComponentData.TColorConfig; 15 | margin: number; 16 | }; 17 | condition: ComponentData.ComponentConditionConfig; 18 | }; 19 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/WaterBall/type.ts: -------------------------------------------------------------------------------- 1 | export type TWaterBallConfig = { 2 | series: { 3 | label: Omit; 4 | amplitude: number; 5 | backgroundStyle: { 6 | color: ComponentData.TColorConfig; 7 | }; 8 | color: ComponentData.TGradientColorConfig; 9 | center: [number, number]; 10 | radius: number; 11 | }; 12 | condition: ComponentData.ComponentConditionConfig; 13 | animation: ComponentData.ComponentChartAnimationConfig; 14 | }; 15 | -------------------------------------------------------------------------------- /src/components/ContextMenu/Actions/Undo.tsx: -------------------------------------------------------------------------------- 1 | import { useCallback } from 'react'; 2 | import { UndoOutlined } from '@ant-design/icons'; 3 | import useChildren from './useChildren'; 4 | import { CommonActionType } from './type'; 5 | 6 | const UndoAction = (props: CommonActionType) => { 7 | const handleClick = useCallback(() => {}, []); 8 | 9 | return ( 10 |
11 | 12 | 撤销 13 |
14 | ); 15 | }; 16 | 17 | export default UndoAction; 18 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/LayerManage/components/Tree/components/ActionBar/index.less: -------------------------------------------------------------------------------- 1 | @import '~antd/es/style/themes/default.less'; 2 | 3 | .layer-action-bar-header, 4 | .layer-action-bar-footer { 5 | position: sticky; 6 | z-index: 2; 7 | height: 40px; 8 | line-height: 40px; 9 | text-align: center; 10 | background-color: @layout-header-background; 11 | transition: 0.1s; 12 | } 13 | .layer-action-bar-header { 14 | top: 50px; 15 | } 16 | .layer-action-bar-footer { 17 | bottom: 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/PanelWrapper/components/AbsorbGuideLine/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | components: state.global.components, 6 | guideLine: state.global.guideLine, 7 | scale: state.global.scale, 8 | }; 9 | }; 10 | 11 | export const mapDispatchToProps = (dispatch: any) => ({ 12 | setGuideLine: (value: any) => 13 | dispatch({ type: 'global/setGuideLine', value }), 14 | }); 15 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ToolBar/components/ShortcutKeys/index.less: -------------------------------------------------------------------------------- 1 | .shortcut-keys-wrapper { 2 | display: inline-block; 3 | } 4 | .shortcut-keys { 5 | width: 200px; 6 | min-height: 100px; 7 | &-item { 8 | justify-content: space-between; 9 | line-height: 1.5; 10 | &:nth-last-of-type(1) { 11 | margin: 0; 12 | } 13 | & span { 14 | display: inline-block; 15 | width: 50%; 16 | } 17 | & span:nth-of-type(1) { 18 | text-align: left; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Tag/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "TAG" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "TAG" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox2/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-2-border { 2 | position: absolute; 3 | width: 100%; 4 | height: 100%; 5 | top: 0; 6 | left: 0; 7 | 8 | &-container { 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | top: 0px; 13 | left: 0px; 14 | 15 | & > polyline { 16 | fill: none; 17 | stroke-width: 1; 18 | } 19 | } 20 | 21 | &-content { 22 | position: relative; 23 | width: 100%; 24 | height: 100%; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox6/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-6-border { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | 8 | &-container { 9 | position: absolute; 10 | top: 0px; 11 | left: 0px; 12 | width: 100%; 13 | height: 100%; 14 | 15 | & > polyline { 16 | fill: none; 17 | stroke-width: 1; 18 | } 19 | } 20 | 21 | &-content { 22 | position: relative; 23 | width: 100%; 24 | height: 100%; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Icon/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "ICON" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "ICON" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Text/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "TEXT" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "TEXT" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Font/Title/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "TITLE" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "TITLE" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/List/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "LIST" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "LIST" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/InternalBorder/components/Border/BorderBox11/index.less: -------------------------------------------------------------------------------- 1 | .internal-border-11-border { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | width: 100%; 6 | height: 100%; 7 | 8 | &-container { 9 | position: absolute; 10 | width: 100%; 11 | height: 100%; 12 | top: 0px; 13 | left: 0px; 14 | 15 | & > polyline { 16 | fill: none; 17 | stroke-width: 1; 18 | } 19 | } 20 | 21 | &-content { 22 | position: relative; 23 | width: 100%; 24 | height: 100%; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/layouts/components/CommonLayout/EventEmitWrapper/index.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react'; 2 | import { 3 | presetRegisterEvent, 4 | presetUnRegisterEvent, 5 | } from '@/utils/Assist/EventEmitter/PresetEmit'; 6 | 7 | // 事件订阅 8 | const EventEmitWrapper = (props: any) => { 9 | const { Component, ...nextProps } = props; 10 | useEffect(() => { 11 | presetRegisterEvent(); 12 | return presetUnRegisterEvent; 13 | }, []); 14 | 15 | return ; 16 | }; 17 | 18 | export default EventEmitWrapper; 19 | -------------------------------------------------------------------------------- /src/pages/Designer/components/LeftContent/components/ThemeConfig/index.less: -------------------------------------------------------------------------------- 1 | .designer-theme-config { 2 | &-list { 3 | cursor: pointer; 4 | transition: 0.2s; 5 | border-radius: 8px; 6 | } 7 | &-list:not(&-list-check) { 8 | &:hover { 9 | background-color: rgba(255, 255, 255, 0.2); 10 | } 11 | } 12 | &-list&-list-check { 13 | background-color: rgba(255, 255, 255, 0.3); 14 | } 15 | &-item { 16 | border-radius: 50%; 17 | width: 100%; 18 | height: 0; 19 | padding-top: 100%; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/pages/Designer/components/Panel/components/ToolBar/components/Scale/connect.ts: -------------------------------------------------------------------------------- 1 | import { ConnectState } from '@/models/connect'; 2 | 3 | export const mapStateToProps = (state: ConnectState) => { 4 | return { 5 | value: state.global.scale, 6 | pageWidth: state.global.screenData.config.style.width, 7 | pageHeight: state.global.screenData.config.style.height, 8 | }; 9 | }; 10 | 11 | export const mapDispatchToProps = (dispatch: any) => ({ 12 | onChange: (value: any) => dispatch({ type: 'global/setScale', value }), 13 | }); 14 | -------------------------------------------------------------------------------- /assets/docs/1.0.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.0 版本 3 | 4 | ## 目录结构 5 | - `/list` 大屏列表 6 | - `/login` 登录 7 | - `/register` 注册 8 | - `/forget` 忘记密码 9 | - `/designer` 设计器 10 | - `/preview` 预览 11 | - `/share` 分享 12 | ## 功能 13 | 其中的一些细节功能可以自行操作了解 14 | ### 图层 15 | 左边列表中提供图层的功能设置组件的一些属性,包括置顶、置底、显示/隐藏、成组/取消成组、锁定/取消锁定、复制/粘贴、删除、重命名等。 16 | ### 数据 17 | 目前数据只提供了`静态数据`和`api数据` 18 | 并且提供了 19 | - 数据过滤器功能 20 | - 全局常量 21 | - 字符串变量(可以在api的headers和body中使用变量) 22 | 23 | ### 交互 24 | 大部分组件包含了对应的事件用于响应数据的变化,并且同步到绑定了该组件变量的对应组件中,达到数据联动的效果。 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Rate/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "RATE" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "RATE" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Tab/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "TAB" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "TAB" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Tab/type.ts: -------------------------------------------------------------------------------- 1 | export type TTabConfig = { 2 | defaultValue: string; 3 | base: { 4 | textStyle: ComponentData.TFontConfig; 5 | backgroundColor: ComponentData.TColorConfig; 6 | border: ComponentData.ComponentLineGroupConfig; 7 | }; 8 | active: { 9 | textStyle: ComponentData.TFontConfig; 10 | backgroundColor: ComponentData.TColorConfig; 11 | border: ComponentData.ComponentLineGroupConfig; 12 | }; 13 | loop: { 14 | show: boolean; 15 | speed: number; 16 | }; 17 | }; 18 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Audio/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "AUDIO" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "AUDIO" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Image/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "IMAGE" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "IMAGE" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Model/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "MODEL" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "MODEL" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Video/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "VIDEO" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "VIDEO" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Iframe/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "IFRAME" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "IFRAME" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Ticket/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "TICKET" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "TICKET" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Source/Typed/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "TYPED" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "TYPED" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/hooks/useFirstChange.ts: -------------------------------------------------------------------------------- 1 | import { useRef } from 'react'; 2 | import { useDeepCompareEffect } from 'ahooks'; 3 | 4 | export const useFirstChange = (value: T, onChange?: (value: T) => void) => { 5 | const isChange = useRef(false); 6 | const isFirst = useRef(true); 7 | 8 | useDeepCompareEffect(() => { 9 | if (isChange.current) return; 10 | if (isFirst.current && value === undefined) return; 11 | isFirst.current = true; 12 | isChange.current = true; 13 | onChange?.(value); 14 | }, [value]); 15 | }; 16 | -------------------------------------------------------------------------------- /assets/docs/1.16.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.16 3 | 4 | ### 首页 5 | 6 | refactor(): 首页样式重构 7 | 8 | ### 列表 9 | 10 | fix(): 页面重新显示时,查询未带上参数 11 | 12 | feat(): 分享操作完成,不自动关闭弹窗 13 | 14 | style(): 部分按钮颜色修改 15 | 16 | ### 设计器 17 | 18 | fix(): 数据配置页面badge组件颜色不正确 19 | fix(): 线上bug处理 20 | 21 | feat(): 增加主题色自定义输入颜色 22 | feat(): 代码编辑器增加简单语法提示 23 | feat(): 过滤器方法增加第三参数,对象,当前存在[mock](http://mockjs.com/)实例 24 | feat(): 增加一键清空无引用过滤器功能 25 | 26 | ### 组件 27 | 28 | 新增组件 29 | - 分页 30 | 31 | 优化组件 32 | - 基础柱形图、渐变柱形图、排名、横向柱形图,增加轮播配置 33 | - 部分组件增加默认圆角 -------------------------------------------------------------------------------- /assets/docs/1.9.md: -------------------------------------------------------------------------------- 1 | 2 | ## 1.9 3 | 4 | ### 首页 5 | 6 | style(): 增加背景特效 7 | 8 | ### 设计器 9 | fix(): 列表页没有调获取用户信息接口 10 | fix(): 关联参数下拉框值不变的情况触发保存 11 | fix(): 生产环境自动保存模式,关闭页面时出现保存提示 12 | fix(): 删除操作触发多次保存 13 | 14 | feat(): 画布组件的`hover`映射到图层中 15 | 16 | style(): 图层文本编辑的背景颜色修改 17 | style(): 条件配置新增按钮颜色不正确 18 | 19 | refactor(): 保存进度条优化 20 | refactor(): 非成组组件支持对齐 21 | refactor(): 选中过滤器后自动取消下拉的值 22 | refactor(): 取消组件`icon`保存后台 23 | 24 | ### 组件 25 | 26 | 优化组件 27 | - 图片、视频、轮播图增加`外框形状`配置 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Button/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "BUTTON" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "BUTTON" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Input/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "INPUT" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "INPUT" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Radio/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "RADIO" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "RADIO" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Select/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "SELECT" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "SELECT" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Steps/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "STEPS" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "STEPS" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Interactive/Switch/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "SWITCH" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "SWITCH" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Map/Ali3DMap/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "ALI3D_MAP" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "ALI3D_MAP" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Media/Carousel/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "CAROUSEL" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "CAROUSEL" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/QrCode/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "QR_CODE" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "QR_CODE" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/ChartComponents/Other/Weather/index.ts: -------------------------------------------------------------------------------- 1 | import LazyLoadWrapper from '@/components/LazyLoad'; 2 | import defaultConfig, { themeConfig } from './defaultConfig'; 3 | import { CHART_ID } from './id'; 4 | 5 | export default { 6 | defaultConfig, 7 | themeConfig, 8 | configComponent: LazyLoadWrapper(() => { 9 | return import(/* webpackChunkName: "WEATHER" */ './config'); 10 | }), 11 | render: LazyLoadWrapper(() => { 12 | return import(/* webpackChunkName: "WEATHER" */ './component'); 13 | }), 14 | type: CHART_ID, 15 | }; 16 | -------------------------------------------------------------------------------- /src/components/GhostButton/index.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from 'antd'; 2 | import { ButtonProps } from 'antd/es/button'; 3 | import classnames from 'classnames'; 4 | import styles from './index.less'; 5 | 6 | const GhostButton = (props: ButtonProps) => { 7 | const { className, ...nextProps } = props; 8 | 9 | return ( 10 |