From 1fdceb89b192b4f857b15872070d5d122b3a19c8 Mon Sep 17 00:00:00 2001
From: dev <710328466@qq.com>
Date: Wed, 17 Jan 2024 19:25:13 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=A7=E5=9B=BE=E5=88=9D=E7=A8=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../biz/src/BigImageModal/BigImageModal.tsx | 151 +++++++---
.../components/CombineImage/index.tsx | 28 ++
packages/biz/src/BigImageModal/demo/index.tsx | 66 +++++
packages/biz/src/BigImageModal/index.less | 269 +-----------------
packages/biz/src/BigImageModal/index.md | 65 +----
packages/biz/src/BigImageModal/mock.ts | 149 ++++++++++
.../adapter/BigImageModalAdapter/index.tsx | 75 ++---
packages/biz/src/adapter/index.ts | 2 +-
.../src/BigImagePreview/BigImagePreview.tsx | 10 +-
packages/meta/src/BigImagePreview/index.tsx | 2 +-
.../meta/src/CompareImage/CompareImage.tsx | 16 +-
packages/meta/src/CompareImage/index.less | 3 +-
.../src/descriptions/demo/component-token.tsx | 13 +-
packages/meta/src/descriptions/style/index.ts | 10 +-
packages/meta/src/divider/index.zh-CN.md | 8 +-
packages/meta/src/index.tsx | 9 +-
packages/meta/src/radio/index.ts | 2 +-
packages/meta/src/score/Score.tsx | 57 ++++
packages/meta/src/score/index.less | 48 ++++
packages/meta/src/score/index.md | 17 ++
packages/meta/src/score/index.ts | 3 +
packages/meta/tsconfig.json | 6 +-
packages/types/BigImageModal.d.ts | 3 +
23 files changed, 546 insertions(+), 466 deletions(-)
create mode 100644 packages/biz/src/BigImageModal/components/CombineImage/index.tsx
create mode 100644 packages/biz/src/BigImageModal/demo/index.tsx
create mode 100644 packages/meta/src/score/Score.tsx
create mode 100644 packages/meta/src/score/index.less
create mode 100644 packages/meta/src/score/index.md
create mode 100644 packages/meta/src/score/index.ts
diff --git a/packages/biz/src/BigImageModal/BigImageModal.tsx b/packages/biz/src/BigImageModal/BigImageModal.tsx
index 28ae31c..a29d050 100644
--- a/packages/biz/src/BigImageModal/BigImageModal.tsx
+++ b/packages/biz/src/BigImageModal/BigImageModal.tsx
@@ -1,11 +1,14 @@
// @ts-nocheck
import React, { useRef, useState } from 'react'
-import { Descriptions, Modal, Tabs } from 'antd';
+import { ConfigProvider, Descriptions, Modal, Tabs, Button, BigImagePreview } from '@zhst/meta';
import classNames from 'classnames'
-import type { ModalProps, DescriptionsProps, TabsProps } from 'antd'
+import type { ModalProps, DescriptionsProps, TabsProps } from '@zhst/meta'
import { get } from '@zhst/func';
+import { MODEL_TYPE, TAB_TYPE } from '@zhst/types';
import './index.less'
import Navigation from './components/navigation';
+import CombineImage from './components/CombineImage'
+import { BIG_IMAGE_DATA } from './mock'
const DescriptionsItem = Descriptions.Item
@@ -21,12 +24,14 @@ export interface BigImageModalProps extends ModalProps {
}
tabsConfig: { // 导航栏配置
data: Pick & {
- key: 'NORMAL' | 'COMPATER' | 'TRACK'
+ key: TAB_TYPE
} // 导航栏列表
}
dataSource: any
imageData: any
relatedData: any
+ mode?: MODEL_TYPE
+ changeMode?: (mode: MODEL_TYPE) => void
}
const initialStyle ={
@@ -42,35 +47,52 @@ const BigImageModal: React.FC = (props) => {
descriptionConfig = {
data: []
},
- tabsConfig = {
- data: [
+ dataSource = [],
+ imageData = [],
+ relatedData = [],
+ mode = 'IMAGE',
+ changeMode
+ } = props
+
+ const tabsConfig = {
+ data: [
{
label: '对比图模式',
key: '1',
- children: '对比图组件',
+ children: (
+
+ )
},
{
label: '场景图模式',
key: '2',
- children: '场景图组件',
+ children: (
+
+ )
}
- ],
- },
- dataSource = [],
- imageData = [],
- relatedData = [],
- } = props
+ ]
+ }
const showCropRef = useRef(false);
const scaleRef = useRef(0);
// ========================== 头切换 =========================
- const [activeKey, setActiveKey] = useState(get(tabsConfig, 'data[0].key'));
+ const [tab, setTab] = useState(get(tabsConfig, 'data[0].key'));
+ const [activeKey, setActiveKey] = useState('related');
// ========================= 预览切换下标 =========================
const [previewIndex, setPreviewIndex] = useState(0)
const [isRelated, setIsRelated] = useState(false)
+ // ========================= 模式切换 ============================
+ const [currentMode, setCurrentMode] = useState(mode)
+
return (
= (props) => {
title={title}
{...props}
>
- {descriptionConfig.data.map(descriptions => (
-
- {descriptions.title}
-
- }
- column={8}
- style={{ padding: '0 64px' }}
- >
- {descriptions?.children?.map(item => (
- {item.children}
- ))}
-
- ))}
-
+
+ {descriptionConfig.data.map(descriptions => (
+
+ {descriptions.title}
+
+ }
+ column={8}
+ style={{ padding: '0 64px' }}
+ >
+ {descriptions?.children?.map(item => (
+ {item.children}
+ ))}
+
+ ))}
+
= (props) => {
: {}
}
>
+
setTab(v)}
+ tabBarStyle={{ fontSize: '18px', fontWeight:'bold' }}
+ items={tabsConfig.data}
+ {...tabsConfig}
+ />
+ {/* 切换按钮组件 */}
{
- activeKey !== 'TRACK' && (
+ tab !== 'TRACK' && (
<>
{/* ----------------------------------- 上一张按钮 ---------------------------------- */}
= (props) => {
>
)
}
+ {/* --------------------------------- 模型碰撞组件 --------------------------------- */}
+ {isRelated && tab !== 'TRACK' && (
+
+ {
+ setActiveKey(key);
+ }}
+ items={tabList.map((item) => {
+ return {
+ label: item.label,
+ key: item.key,
+ children: item.children,
+ };
+ })}
+ />
+
+ )}
)
diff --git a/packages/biz/src/BigImageModal/components/CombineImage/index.tsx b/packages/biz/src/BigImageModal/components/CombineImage/index.tsx
new file mode 100644
index 0000000..54df452
--- /dev/null
+++ b/packages/biz/src/BigImageModal/components/CombineImage/index.tsx
@@ -0,0 +1,28 @@
+
+import React, { FC } from 'react';
+import { CompareImage, Flex, Score } from '@zhst/meta'
+
+interface ComBineImageProps {
+ targetData: {
+ url: string;
+ score: number;
+ }[]
+ compareData: {
+ url: string;
+ score: number
+ }[]
+}
+
+const ComBineImage: FC = (props) => {
+ const { targetData = [], compareData = [] } = props
+
+ return (
+
+
+
+
+
+ )
+}
+
+export default ComBineImage
diff --git a/packages/biz/src/BigImageModal/demo/index.tsx b/packages/biz/src/BigImageModal/demo/index.tsx
new file mode 100644
index 0000000..d43a767
--- /dev/null
+++ b/packages/biz/src/BigImageModal/demo/index.tsx
@@ -0,0 +1,66 @@
+
+import React from 'react';
+import { BigImageModal } from '@zhst/biz'
+import { DescriptionsProps } from '@zhst/meta'
+import { IMAGE_DATA, BIG_IMAGE_DATA } from '../mock'
+import { bigImageModalAdapter } from '@zhst/biz'
+
+const descriptionList: DescriptionsProps['items'] = [
+ {
+ title: '人员属性',
+ children: [
+ {
+ key: '1',
+ label: '性别',
+ children: '男',
+ },
+ {
+ key: '2',
+ label: '年龄',
+ children: '成年',
+ },
+ {
+ key: '3',
+ label: '帽子',
+ children: '无',
+ },
+ {
+ key: '4',
+ label: '上身颜色',
+ children: '灰',
+ },
+ {
+ key: '5',
+ label: '下身颜色',
+ children: '蓝色',
+ },
+ {
+ key: '6',
+ label: '附着物',
+ children: '无',
+ },
+ {
+ key: '7',
+ label: '骑行',
+ children: '否',
+ },
+ ]
+ }
+];
+
+export default () => {
+ const imageDataAdapter = bigImageModalAdapter(IMAGE_DATA)
+
+ console.log(imageDataAdapter)
+
+ return (
+
+ )
+}
diff --git a/packages/biz/src/BigImageModal/index.less b/packages/biz/src/BigImageModal/index.less
index 2253df2..f4439e8 100644
--- a/packages/biz/src/BigImageModal/index.less
+++ b/packages/biz/src/BigImageModal/index.less
@@ -1,5 +1,4 @@
.zhst-image {
-
.zhst-dialog-content {
box-shadow: 0 4px 12px rgb(0 0 0 / 20%);
}
@@ -8,7 +7,6 @@
&-view-container {
position: relative;
width: 100%;
- height: 532px;
margin-bottom: 16px;
&__nav {
@@ -227,232 +225,6 @@
}
}
-.zhst-image__header {
- width: 100%;
- // margin-top: 3px;
- margin-bottom: 10px;
-
- &__pad0 {
- padding: 0;
- }
-
- &__pad66 {
- padding: 0 66px;
- }
-
- &__bar {
- display: flex;
- width: 100%;
- background: #f6f6f6;
- // box-shadow: 0px 0px 8px 0px rgba(172, 172, 172, 0.5);
- justify-content: center;
- // border-color: #f0f0f0;
- // border-bottom-width: 1px;
- // border-bottom-style: solid;
- }
-
- &__barNoColor {
- display: flex;
- width: 100%;
- justify-content: center;
-
- border-color: #f0f0f0;
- border-bottom-width: 1px;
- border-bottom-style: solid;
- }
-
- &__item {
- position: relative;
- display: flex;
- height: 40px;
- align-items: center;
- justify-content: center;
- margin: 0 15px;
- color: #999;
- cursor: pointer;
- font-size: 14px;
- font-weight: bold;
- line-height: 19px;
- transition: font-size 0.3s ease;
-
- &:hover {
- // font-size: 18px;
- color: #333;
- }
-
- &::before {
- position: absolute;
- bottom: 0;
- left: 50%;
- width: 0;
- border-bottom: 2px solid #09f;
- content: '';
- transition: all 0.3s ease;
- }
-
- &--active {
- background-color: transparent;
- color: #333;
- font-size: 18px;
-
- // color: #0099ff;
- &::before {
- left: 0;
- width: 100%;
- }
- }
- }
-}
-
-
-.zhst-image__compater-view {
- display: flex;
- width: 100%;
- align-items: center;
- justify-content: center;
-
- &>div:first-child {
- margin-right: 25px;
- }
-
- &>div:last-child {
- margin-left: 25px;
- }
-
- &__container {
- position: relative;
- width: 345px;
- height: 460px;
- box-sizing: content-box;
- border: 1px solid #f0f0f0;
- }
-
- &__view {
- width: 345px;
- height: 460px;
- }
-
- &__label {
- position: absolute;
- z-index: 99;
- top: 0;
- left: 0;
- display: flex;
- height: 34px;
- align-items: center;
- justify-content: center;
-
- // width: 48px;
- padding: 0 6px;
- background: #09f;
- color: #fff;
- }
-
- &__tool {
- display: flex;
- width: 345px;
- height: 40px;
- align-items: center;
- justify-content: center;
- background: #f9f9f9;
-
- i,
- span {
- color: #333 !important;
- }
-
- i {
- margin-right: 4px;
- }
-
- &>*:not(:last-child) {
- margin-right: 20px;
- }
-
- &__scale {
- display: inline-block;
- width: 38px;
- height: 16px;
-
- // margin-left: 15px;
- box-sizing: content-box;
- border: 1px solid rgb(77 77 77 / 100%);
- background: rgb(255 255 255 / 100%);
- border-radius: 2px;
- color: #4d4d4d;
- cursor: default;
- font-size: 12px;
- line-height: 16px;
- text-align: center;
- }
-
- &__line {
- width: 1px;
- height: 14px;
- background: #e6e6e6;
- }
- }
-
- &__empty {
- position: absolute;
- z-index: 9;
- display: flex;
- width: 100%;
- height: 100%;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- background: #f9f9f9;
- transform: translateY(-100%);
-
- &>img {
- width: 140px;
- height: 80px;
- }
-
- &--text {
- color: #999;
- font-size: 14px;
- line-height: 22px;
- }
- }
-
- &__scoll-module {
- position: absolute;
- top: 0%;
- left: 0%;
- display: flex;
- width: 100%;
- height: 100%;
- align-items: flex-end;
- justify-content: space-between;
- pointer-events: none;
-
- &__btn {
- display: flex;
- width: 50px;
- height: 50px;
- align-items: center;
- justify-content: center;
- margin: 6px;
- border-radius: 50%;
- opacity: 0.5;
- pointer-events: all;
-
- &>span {
- display: flex;
- align-items: center;
- justify-content: center;
- }
- }
-
- &__btn:hover {
- background-color: #09f !important;
- color: #fff !important;
- }
- }
-}
-
.zhst-image__trackmodel {
&__panel {
position: relative;
@@ -645,23 +417,6 @@
}
}
-.zhst-image__null {
- display: flex;
- height: 100%;
- flex-direction: column;
- align-items: center;
- justify-content: center;
-
- &__text {
- // margin-left: 105px;
- margin-top: 8px;
- color: #999;
- font-size: 14px;
- width: 100%;
- text-align: center;
- }
-}
-
.zhst-image__attributePanel {
margin: 0 66px;
background: #f6f6f6;
@@ -710,45 +465,27 @@
.relatedContent {
width: 100%;
height: 100px;
-
display: flex;
.relatedPics {
width: 742px;
height: 100px;
- // display: flex;
- // box-sizing: border-box;
- // background: #fafafa;
- // border-radius: 2px;
- // border: 1px solid #f0f0f0;
- // .LeftBtn,
- // .RighttBtn {
- // width: 34px;
- // height: 100%;
- // display: flex;
- // justify-content: center;
- // align-items: center;
- // }
- // .ListContent {
- // flex: 1;
- // height: 100%;
- // }
}
.disabled {
- color: rgba(0, 0, 0, 0.25);
+ color: rgba(0, 0, 0, 25%);
}
.relatedBtn {
flex: 1;
font-size: 14px;
- color: #333333;
+ color: #333;
display: flex;
align-items: flex-end;
cursor: pointer;
&:hover {
- color: #0099ff;
+ color: #09f;
}
}
}
diff --git a/packages/biz/src/BigImageModal/index.md b/packages/biz/src/BigImageModal/index.md
index 621318d..f002565 100644
--- a/packages/biz/src/BigImageModal/index.md
+++ b/packages/biz/src/BigImageModal/index.md
@@ -9,68 +9,5 @@ group:
# 大图弹框
-```jsx
-import React from 'react';
-import { Button } from 'antd'
-import { BigImageModal } from '@zhst/biz'
-import { DescriptionsProps } from '@zhst/biz'
-import { IMAGE_DATA } from './mock.ts'
+基本
-const descriptionList: DescriptionsProps['items'] = [
- {
- title: '人员属性',
- children: [
- {
- key: '1',
- label: '性别',
- children: '男',
- },
- {
- key: '2',
- label: '年龄',
- children: '成年',
- },
- {
- key: '3',
- label: '帽子',
- children: '无',
- },
- {
- key: '4',
- label: '上身颜色',
- children: '灰',
- },
- {
- key: '5',
- label: '下身颜色',
- children: '蓝色',
- },
- {
- key: '6',
- label: '附着物',
- children: '无',
- },
- {
- key: '7',
- label: '骑行',
- children: '否',
- },
- ]
- }
-];
-
-export default () => {
- console.log(IMAGE_DATA)
-
- return (
-
- )
-}
-```
diff --git a/packages/biz/src/BigImageModal/mock.ts b/packages/biz/src/BigImageModal/mock.ts
index 28f7a67..d750fdb 100644
--- a/packages/biz/src/BigImageModal/mock.ts
+++ b/packages/biz/src/BigImageModal/mock.ts
@@ -900,3 +900,152 @@ export const IMAGE_DATA = {
},
"specialTitle": ""
}
+
+export const BIG_IMAGE_DATA = [
+ {
+ imageKey: 'http://10.0.0.120:30003/file/singer-20240110/1/5/1744894622934503424.jpg',
+ odRect:{
+ "x":0.5445312,
+ "y":0.19166666,
+ "w":0.08671875,
+ "h":0.40138888
+ },
+ attachImg: [
+ {
+ "url": "http://10.0.0.120:30003/file/singer-20240110/1/5/1744894622695428096.jpg","label": "形体"
+ },{
+ "url": "http://10.0.0.120:30003/file/singer-20240110/1/5/1744894588427964418.jpg",
+ "label": "人脸"
+ }
+ ],
+ score: '0.6', // 人脸质量分
+ showScore: true, // 人脸质量分
+ cameraPosition: 'string', // 摄像头位置
+ time: '2022-01-01', // 摄像头拍摄时间
+ objects: [
+ {
+ "objectIndex": {
+ "objectId": "1746832189053474816",
+ "solutionId": "0",
+ "deviceId": "0",
+ "fragmentId": "0"
+ },
+ "objectType": "OBJECT_TYPE_PEDESTRAIN",
+ "sourceObjectId": "0",
+ "level": 0,
+ "confidence": 0.881164,
+ "frameInfo": {
+ "frameId": "0",
+ "frameTimestamp": "1705312223057",
+ "width": 0,
+ "height": 0,
+ "originWidth": 0,
+ "originHeight": 0,
+ "offsetTime": "0",
+ "skipNumber": "0"
+ },
+ "infoOnSource": {
+ "bboxInFrame": {
+ "bboxRatio": {
+ "x": 0.61418945,
+ "y": 0.34309354,
+ "w": 0.067661405,
+ "h": 0.34659258
+ },
+ },
+ "countInSource": 0,
+ "indexInSource": 0
+ },
+ "qualityScore": 0,
+ }
+ ]
+ },
+ {
+ imageKey: 'http://10.0.0.120:30003/file/singer-20240115/1/9/1746795581994436608.jpg',
+ odRect:{
+ "x":0.553125,"y":0.29722223,"w":0.048958335,"h":0.2462963
+ },
+ attachImg: [
+ {
+ "url": "http://10.0.0.120:30003/file/singer-20240115/1/9/1746795581163964416.jpg","label": "形体"
+ },{
+ "url": "http://10.0.0.120:30003/file/singer-20240115/1/9/1746795546867140608.jpg",
+ "label": "人脸"
+ }
+ ],
+ score: 0.815207, // 人脸质量分
+ showScore: true, // 人脸质量分
+ cameraPosition: 'string', // 摄像头位置
+ time: '2022-01-01', // 摄像头拍摄时间
+ objects: [
+ {
+ "objectIndex": {
+ "objectId": "1746816737430472704",
+ "solutionId": "0",
+ "deviceId": "0",
+ "fragmentId": "0"
+ },
+ "objectType": "OBJECT_TYPE_PEDESTRAIN",
+ "sourceObjectId": "0",
+ "frameInfo": {
+ "frameId": "0",
+ "frameTimestamp": "1705308539109",
+ "width": 0,
+ "height": 0,
+ "originWidth": 0,
+ "originHeight": 0,
+ "offsetTime": "0",
+ "skipNumber": "0"
+ },
+ "infoOnSource": {
+ "bboxInFrame": {
+ "bboxRatio": {
+ "x": 0.5519352,
+ "y": 0.2965385,
+ "w": 0.05185461,
+ "h": 0.24698898
+ },
+ },
+ "countInSource": 0,
+ "indexInSource": 0
+ },
+ "qualityScore": 0,
+ },
+ {
+ "objectIndex": {
+ "objectId": "1746816737430472705",
+ "solutionId": "0",
+ "deviceId": "0",
+ "fragmentId": "0"
+ },
+ "objectType": "OBJECT_TYPE_PEDESTRAIN",
+ "sourceObjectId": "0",
+ "level": 0,
+ "confidence": 0.9310699,
+ "frameInfo": {
+ "frameId": "0",
+ "frameTimestamp": "1705308539109",
+ "width": 0,
+ "height": 0,
+ "originWidth": 0,
+ "originHeight": 0,
+ "offsetTime": "0",
+ "skipNumber": "0"
+ },
+ "infoOnSource": {
+ "bboxInFrame": {
+ "bboxRatio": {
+ "x": 0.58543766,
+ "y": 0.3203356,
+ "w": 0.052037954,
+ "h": 0.2664015
+ },
+ },
+ "countInSource": 0,
+ "indexInSource": 0
+ },
+ "qualityScore": 0,
+ }
+ ]
+ }
+ ]
diff --git a/packages/biz/src/adapter/BigImageModalAdapter/index.tsx b/packages/biz/src/adapter/BigImageModalAdapter/index.tsx
index 3aa70ec..c3b7a59 100644
--- a/packages/biz/src/adapter/BigImageModalAdapter/index.tsx
+++ b/packages/biz/src/adapter/BigImageModalAdapter/index.tsx
@@ -2,44 +2,12 @@
* 适配老的大屏组件数据格式传入
*/
import React from 'react';
-import { AlgorithmVersionStr, HumanProperty, ObjectType, Rect, ViewOption, AlignType, IScreenshotButtonProp, ODRECT } from '@zhst/types'
+import { AlgorithmVersionStr, HumanProperty, ObjectType, Rect, IScreenshotButtonProp } from '@zhst/types'
+import { VideoViewProps, ImgViewProps, VideoViewRef, ImgViewRef } from '@zhst/meta'
export type TAB_TYPE = 'COMPATER' | 'NORMAL' | 'TRACK';
export type MODEL_TYPE = 'VIDEO' | 'IMAGE';
-export interface ImgViewProps extends React.HTMLAttributes {
- imageKey: string; //不在监听url变化 更新走销毁
- odRect: ODRECT;
- attachImg?: Array<{ label: string; url: string }>;
- showAttachImgLabel: boolean;
- /* 截图渲染 */
- screenshotButtonAlign: AlignType;
- screenshotButtonRender: (screenshotButtonProp: IScreenshotButtonProp) => React.ReactElement;
- /* 可观测值 */
- scale$?: number;
- showCrop$?: boolean;
- hideLeftTopBtn?: boolean;
- score?: number;
- viewOption?: ViewOption;
-}
-
-export interface VideoViewProps {
- /* 播放地址 */
- flvUrl: string;
- /* 播放总时间 */
- maxDuration?: number;
- /* 截图渲染 */
- screenshotButtonAlign?: AlignType;
- screenshotButtonRender?: (screenshotButtonProp: IScreenshotButtonProp) => React.ReactElement;
- /* 默认截图框 */
- defautlNormalizationRect?: Rect;
- /* 截图回调 */
- onCropChange?: (showCrop: boolean, normalizationRect: null | Rect) => void;
-
- /* 可观测值 */
- showCrop$?: boolean;
-}
-
export interface CarouselProps {
hasPre?: boolean;
hasNext?: boolean;
@@ -60,21 +28,6 @@ export interface HeaderProps {
tabsFilter: TAB_TYPE[];
}
-export interface ImgViewRef {
- /* 图片实例 */
- imgInsRef: React.MutableRefObject;
- /* 切换图片模式 */
- setShowCrop: React.Dispatch>;
-}
-
-
-export interface VideoViewRef {
- /* 当前图片模式 */
- cropAble: boolean;
- setShowCrop: React.Dispatch>;
- downloadVideoframe: () => void;
-}
-
export interface ParamProps {
tab: string;
selectItem: ISelectItem;
@@ -134,9 +87,9 @@ interface IOldImageData {
hasNext?: boolean;
selectIndex?: number;
onSelectIndexChange?: (i: number) => void;
- dataSource: any[];
- dataSources: any[];
- relatedData?: any[];
+ dataSource: BigImageData[];
+ dataSources: BigImageData[];
+ relatedData?: BigImageData[];
transformPropFunc: (item: any) => ISelectItem;
transformVideoPropFunc: (
item: ISelectItem
@@ -170,8 +123,18 @@ export interface ToolProps {
disableVideo: boolean;
}
-export default (data: IOldImageData) => {
- const newData = data
-
- return newData
+export interface ImageModalDataProps {
+ targetData: []
+ compactData: []
}
+
+const adapter = (data: IOldImageData): ImageModalDataProps => {
+
+ return {
+ targetData: [],
+ compactData: [],
+ }
+}
+
+
+export default adapter
diff --git a/packages/biz/src/adapter/index.ts b/packages/biz/src/adapter/index.ts
index bd39690..c6cf646 100644
--- a/packages/biz/src/adapter/index.ts
+++ b/packages/biz/src/adapter/index.ts
@@ -1 +1 @@
-export { default as BigImageModalAdapter } from './BigImageModalAdapter'
+export { default as bigImageModalAdapter } from './bigImageModalAdapter'
diff --git a/packages/meta/src/BigImagePreview/BigImagePreview.tsx b/packages/meta/src/BigImagePreview/BigImagePreview.tsx
index f7fbf93..a196400 100644
--- a/packages/meta/src/BigImagePreview/BigImagePreview.tsx
+++ b/packages/meta/src/BigImagePreview/BigImagePreview.tsx
@@ -47,17 +47,17 @@ export interface ImgViewProps extends React.HTMLAttributes {
time?: string | number
objects: any[]
}>
- showAttachImgLabel: boolean; // 是否显示缩略图
- showOpt: boolean; // 是否显示操作面板
+ showAttachImgLabel?: boolean; // 是否显示缩略图
+ showOpt?: boolean; // 是否显示操作面板
width?: string | number; // 画布宽度
height?: string | number; // 画布高度
/* 截图渲染 */
- screenshotButtonAlign: AlignType;
- screenshotButtonRender: (screenshotButtonProp: IScreenshotButtonProp) => ReactElement;
+ screenshotButtonAlign?: AlignType;
+ screenshotButtonRender?: (screenshotButtonProp: IScreenshotButtonProp) => ReactElement;
hideLeftTopBtn?: boolean;
showScore?: boolean // 是否显示相似度
viewOption?: ViewOption;
- objects: IOdRectOrigin[] // 图片人物框选
+ objects?: IOdRectOrigin[] // 图片人物框选
}
export interface ImgViewRef {
/* 图片实例 */
diff --git a/packages/meta/src/BigImagePreview/index.tsx b/packages/meta/src/BigImagePreview/index.tsx
index b24e175..17118c8 100644
--- a/packages/meta/src/BigImagePreview/index.tsx
+++ b/packages/meta/src/BigImagePreview/index.tsx
@@ -1,5 +1,5 @@
import BigImagePreview from './BigImagePreview'
-export type { ImgViewProps } from './BigImagePreview'
+export type { ImgViewProps, ImgViewRef } from './BigImagePreview'
export default BigImagePreview
diff --git a/packages/meta/src/CompareImage/CompareImage.tsx b/packages/meta/src/CompareImage/CompareImage.tsx
index 8ad3926..e88e891 100644
--- a/packages/meta/src/CompareImage/CompareImage.tsx
+++ b/packages/meta/src/CompareImage/CompareImage.tsx
@@ -15,14 +15,14 @@ export interface CompareImageProps {
* @description 属性描述
* @default "默认值"
*/
- label: string;
- openRoll?: boolean; //开启滚动模式
+ label?: string;
+ openRoll?: boolean; //开启翻页
dataSource?: Array<{
url: string;
- score: number;
+ score: number | string;
}>;
showScore?: boolean; // 是否展示相似度
- current: number; // 当前图片下标
+ current?: number; // 当前图片下标
}
export interface CompareImageRefProps {
@@ -31,7 +31,7 @@ export interface CompareImageRefProps {
// 对比图组件
const CompareImage = forwardRef((props, ref) => {
- const { label, openRoll = false, dataSource = [], showScore = true, current = 0 } = props;
+ const { label = '标题', openRoll = true, dataSource = [], showScore = true, current = 0 } = props;
const imgContainerRef = useRef(null);
const imgInsRef = useRef(null);
const [scale, setScale] = useState(0);
@@ -40,6 +40,8 @@ const CompareImage = forwardRef((props,
// 初始化页面
useEffect(() => {
+ if (!dataSource?.length) return
+
const handleTransformChange = addEventListenerWrapper(
imgContainerRef.current,
'viewer-transform-change',
@@ -87,6 +89,8 @@ const CompareImage = forwardRef((props,
handleIndexChange
}));
+ if (!dataSource) return null
+
return (
{label}
@@ -125,7 +129,7 @@ const CompareImage = forwardRef
((props,
)}
- {showScore && }
+ {showScore && }