From 2d12706c77d951203bdb4de64300fd9c6e6e8fe5 Mon Sep 17 00:00:00 2001 From: JY <1140938202@qq.com> Date: Tue, 3 Jun 2025 15:17:51 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=AE=98=E7=BD=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Common/GlobalComps/entityIcon.tsx | 7 + .../components/Banner/Common/BannerImg.tsx | 11 + .../setting/components/banner/index.tsx | 2 + .../TargetActivity/ActivityMessage/index.tsx | 14 +- src/executor/operate/pubActivity/index.tsx | 44 +++- src/pages/View/index.module.less | 112 +++++++++ src/pages/View/index.tsx | 224 +++++++++++++++--- src/ts/base/model.ts | 2 + src/ts/base/schema.ts | 12 + src/ts/controller/index.ts | 4 +- src/ts/core/chat/activity.ts | 27 +++ src/ts/core/provider/view.ts | 125 ++++++++++ 12 files changed, 547 insertions(+), 37 deletions(-) create mode 100644 src/pages/View/index.module.less create mode 100644 src/ts/core/provider/view.ts diff --git a/src/components/Common/GlobalComps/entityIcon.tsx b/src/components/Common/GlobalComps/entityIcon.tsx index 852ca0a93..c95fa24c9 100644 --- a/src/components/Common/GlobalComps/entityIcon.tsx +++ b/src/components/Common/GlobalComps/entityIcon.tsx @@ -9,6 +9,7 @@ import { ImInfo } from 'react-icons/im'; import { IBelong } from '@/ts/core'; import { isSnowflakeId } from '@/ts/base/common'; import { TemplateType } from '@/ts/core/public/enums'; +import { useHistory } from 'react-router-dom'; interface teamTypeInfo { size?: number; @@ -108,6 +109,7 @@ const ShareIconById = (info: shareIconInfo) => { export const ShareIconItem = (info: shareIconInfo) => { const size = info.size ?? 22; const fontSize = size > 14 ? 14 : size; + const history = useHistory(); const infoMore = () => { if (info.disableInfo !== true && info.entity && size > 18) { return ( @@ -126,6 +128,11 @@ export const ShareIconItem = (info: shareIconInfo) => { onClick={(e) => { e.stopPropagation(); let typeName = info.entity?.typeName as string; + if(typeName == '单位'){ + history.push('/view'); + orgCtrl.viewEntity = info; + return false + } if (info.entity?.typeName === '商城模板') { typeName = info.entity?.template === TemplateType.dataTemplate diff --git a/src/components/DataPreview/session/WorkBench/components/Banner/Common/BannerImg.tsx b/src/components/DataPreview/session/WorkBench/components/Banner/Common/BannerImg.tsx index 3b4631f2e..00712c62f 100644 --- a/src/components/DataPreview/session/WorkBench/components/Banner/Common/BannerImg.tsx +++ b/src/components/DataPreview/session/WorkBench/components/Banner/Common/BannerImg.tsx @@ -3,6 +3,7 @@ import { Carousel, Upload, message } from 'antd'; import cls from './index.module.less'; import { ICompany, IPerson, ITarget } from '@/ts/core'; import { model } from '@/ts/base'; +import ViewProvider from '@/ts/core/provider/view'; interface IProps { bannerImg: any[]; @@ -33,6 +34,16 @@ const Banner: React.FC = (props) => { } }); } + } else { + const view = ViewProvider.getInstance(); + view && view.loadBanner().then(async (res: any) => { + if (res && res[props.bannerkey]) { + const finBannerdata = res[props.bannerkey].filter( + (item: any) => !!item.shareLink, + ); + finBannerdata.length > 0 && setContent(finBannerdata); + } + }); } }, [props]); diff --git a/src/components/DataPreview/session/setting/components/banner/index.tsx b/src/components/DataPreview/session/setting/components/banner/index.tsx index 92f8fed55..eca3151e8 100644 --- a/src/components/DataPreview/session/setting/components/banner/index.tsx +++ b/src/components/DataPreview/session/setting/components/banner/index.tsx @@ -61,6 +61,8 @@ const BannerSetting: React.FC = ({ target.cacheObj.get('banner').then(async (res: any) => { const finData = data ? data : []; const finBannerdata = { ...(res || {}), [bannerkey]: finData }; + let bannerColl = target.resource.genColl('public-read-banner'); + bannerColl.insert(finBannerdata); const cacheRes = await target.cacheObj.set('banner', finBannerdata); if (!cacheRes) return message.error('存错错误!'); setPics(finData); diff --git a/src/components/TargetActivity/ActivityMessage/index.tsx b/src/components/TargetActivity/ActivityMessage/index.tsx index 3debdedfd..074625ce8 100644 --- a/src/components/TargetActivity/ActivityMessage/index.tsx +++ b/src/components/TargetActivity/ActivityMessage/index.tsx @@ -24,12 +24,14 @@ export const ActivityMessage: React.FC = ({ const [metadata, setMetadata] = useState(item.metadata); const [showShareForward, setShowShareForward] = useState(false); useEffect(() => { - const id = item.subscribe(() => { - setMetadata(item.metadata); - }); - return () => { - item.unsubscribe(id); - }; + if(item.subscribe){ + const id = item.subscribe(() => { + setMetadata(item.metadata); + }); + return () => { + item.unsubscribe(id); + }; + } }, [item]); const renderContent = () => { switch (metadata.typeName) { diff --git a/src/executor/operate/pubActivity/index.tsx b/src/executor/operate/pubActivity/index.tsx index d7393c09a..7bc599da5 100644 --- a/src/executor/operate/pubActivity/index.tsx +++ b/src/executor/operate/pubActivity/index.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; import FullScreenModal from '@/components/Common/fullScreen'; -import { Button, Form, Input } from 'antd'; +import { Button, Form, Input, Select, Radio } from 'antd'; import SelectMultFiles from '@/components/TargetActivity/SelectMultFiles'; import { IActivity, MessageType } from '@/ts/core'; import { model } from '@/ts/base'; @@ -14,9 +14,19 @@ const ActivityPublisher: React.FC<{ const [resource, setResource] = useState([]); const [message, setMessage] = useState(''); const [linkInfo, setLinkInfo] = useState(''); + const [contentType, setContentType] = useState('动态'); + const [toViewPage, setToViewPage] = useState(false); const publishActivity = () => { if (message) { - props.activity.send(message, MessageType.Text, resource, [], linkInfo); + props.activity.send( + message, + MessageType.Text, + resource, + [], + linkInfo, + contentType, + toViewPage, + ); props.finish(); } }; @@ -65,6 +75,36 @@ const ActivityPublisher: React.FC<{ }} /> + {props.activity.typeName === '单位' && ( + <> + +