From d270d615a2a917dfff4334ba9e5b6e863932609a Mon Sep 17 00:00:00 2001 From: callmeyan Date: Mon, 21 Apr 2025 17:13:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E9=97=BB=E7=BC=96=E8=BE=91UI?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=83=8C=E6=99=AF=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/core.scss | 19 +- src/components/article/assets/bg1.jpg | Bin 0 -> 30793 bytes src/components/article/assets/bg2.jpg | Bin 0 -> 22030 bytes src/components/article/edit-modal.tsx | 248 ++++++++++++++------------ src/components/article/group.tsx | 15 +- src/i18n/translations/en-US.json | 5 + src/i18n/translations/zh-CN.json | 5 + src/pages/live/index.tsx | 1 + 8 files changed, 173 insertions(+), 120 deletions(-) create mode 100644 src/components/article/assets/bg1.jpg create mode 100644 src/components/article/assets/bg2.jpg diff --git a/src/assets/core.scss b/src/assets/core.scss index 92a70d2..71d1854 100644 --- a/src/assets/core.scss +++ b/src/assets/core.scss @@ -443,21 +443,32 @@ } .article-title { - @apply px-6 pt-10 pb-6; + border-bottom: 1px solid rgba(0,0,0,0.09); } .article-body { - @apply p-6 + @apply p-6 pt-1; } .modal-control-footer { @apply p-6 } - + .hot-news-list{ + @apply focus-within:bg-[#e6ebf1] focus-within:border-gray-100; + } .input-box { // focus-within:shadow - @apply bg-[#f8f8f8] border border-transparent w-full px-4 py-2 focus-within:bg-[#f0f0f0] focus-within:border-gray-300; + @apply text-base bg-[#f8f8f8] border border-transparent w-full px-3 focus-within:bg-[#f3f3f3] focus-within:border-gray-100; border-radius: 8px; + color:#3d3d3d; + } + .main-human-text{ + @apply focus-within:bg-[#e6ebf1] focus-within:border-gray-100; + } + .main-human-text-input{ + // focus-within:shadow + @apply text-base bg-[#f8f8f8] border border-transparent w-full p-2; + min-height: 100%; } } .icon-language{ diff --git a/src/components/article/assets/bg1.jpg b/src/components/article/assets/bg1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec7674cb5c0e8a37e52e1e041c7374930f022a29 GIT binary patch literal 30793 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⋙K5JVB|-1pXY`#wTz_ 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 IFZIX&+2wf%UjP6A literal 0 HcmV?d00001 diff --git a/src/components/article/assets/bg2.jpg b/src/components/article/assets/bg2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7750103d7256c18f6c206a17013ca1b10f2d5520 GIT binary patch literal 22030 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 literal 0 HcmV?d00001 diff --git a/src/components/article/edit-modal.tsx b/src/components/article/edit-modal.tsx index 984c159..1567dca 100644 --- a/src/components/article/edit-modal.tsx +++ b/src/components/article/edit-modal.tsx @@ -1,21 +1,25 @@ -import {Modal,App} from "antd"; -import React, {useEffect, useState} from "react"; -import {useSetState} from "ahooks"; -import {useTranslation} from "react-i18next"; -import * as article from "@/service/api/article.ts"; -import {regenerate} from "@/service/api/video.ts"; -import {push2video} from "@/service/api/article.ts"; -import {showErrorToast, showToast} from "@/components/message.ts"; -import ArticleGroup, {HotNewsData} from "@/components/article/group.tsx"; -import type {HookAPI as ModalHookAPI} from "antd/es/modal/useModal"; -import {TFunction} from "i18next"; -import {IconWarningCircle} from "@/components/icons"; +import { Modal, App, Radio, Popover } from 'antd'; +import React, { useEffect, useState } from 'react'; +import { useSetState } from 'ahooks'; +import { useTranslation } from 'react-i18next'; +import { TFunction } from 'i18next'; + +import * as article from '@/service/api/article.ts'; +import { regenerate } from '@/service/api/video.ts'; +import { push2video } from '@/service/api/article.ts'; +import { showErrorToast, showToast } from '@/components/message.ts'; +import ArticleGroup, { HotNewsData } from '@/components/article/group.tsx'; +import type { HookAPI as ModalHookAPI } from 'antd/es/modal/useModal'; +import { IconWarningCircle } from '@/components/icons'; + +import Bg1 from './assets/bg1.jpg' +import Bg2 from './assets/bg2.jpg' type Props = { id?: number; type: 'news' | 'video'; onClose?: (saved?: boolean) => void; - onRefresh?: ()=>void + onRefresh?: () => void } const DEFAULT_STATE = { @@ -24,15 +28,15 @@ const DEFAULT_STATE = { msgTitle: '', msgGroup: '', error: '' -} +}; function pushBlocksToGroup(blocks: BlockContent[], groups: BlockContent[][]) { - const lastGroup = groups[groups.length - 1] + const lastGroup = groups[groups.length - 1]; if (lastGroup && lastGroup.filter(s => s.type == 'text').length == 0) { // 如果上一个group中没有文本则直接合并 - lastGroup.push(...blocks) + lastGroup.push(...blocks); } else { - groups.push(blocks) + groups.push(blocks); } } @@ -43,109 +47,114 @@ function rebuildGroups(groups: BlockContent[][]) { if (!blocks) return; blocks = blocks.filter(s => !!s).sort((a, b) => { if (a.type == 'text' && b.type == 'text') return 1; - return a.type == 'text' ? -1 : 1 - }) + return a.type == 'text' ? -1 : 1; + }); if (blocks.length == 1) { - if (index == 0) _groups.push(blocks) - else pushBlocksToGroup(blocks, _groups) + if (index == 0) _groups.push(blocks); + else pushBlocksToGroup(blocks, _groups); } else { if (index == 0) { - _groups.push([blocks[0]]) - _groups.push(blocks.slice(1)) + _groups.push([blocks[0]]); + _groups.push(blocks.slice(1)); } else { - pushBlocksToGroup(blocks, _groups) + pushBlocksToGroup(blocks, _groups); } } }); if (_groups.length < 2) { - Array(2 - _groups.length).fill([{type: 'text', content: ''}]).forEach((it) => { - _groups.push(it) - }) + Array(2 - _groups.length).fill([{ type: 'text', content: '' }]).forEach((it) => { + _groups.push(it); + }); } // console.log('rebuildGroups', _groups) return _groups; } + function groupHasImageAndText(blocks: BlockContent[]) { - return blocks.some(s=>s.type == 'image' && s.content.trim().length > 0) && blocks.some(s=>s.type == 'text' && s.content.trim().length > 0) + return blocks.some(s => s.type == 'image' && s.content.trim().length > 0) && blocks.some(s => s.type == 'text' && s.content.trim().length > 0); } + // 验证分组数据是否合法 function checkGroupsValid(_groups: BlockContent[][]) { - const groups = _groups.filter((_,index)=>{ + const groups = _groups.filter((_, index) => { if (index == 0) return true; - return _.length > 1 || (_.length == 1 && _[0].content.trim().length > 0) ; - }) + return _.length > 1 || (_.length == 1 && _[0].content.trim().length > 0); + }); if (groups.length == 1) return true; - for (let index = 1;index< groups.length; index ++) { - if(!groupHasImageAndText(groups[index])) return false; + for (let index = 1; index < groups.length; index++) { + if (!groupHasImageAndText(groups[index])) return false; } return true; } -function checkHotNewsValid(hotNews: HotNewsData,modal:ModalHookAPI,t:TFunction<"translation", undefined>) { - return new Promise((resolve)=>{ + +function checkHotNewsValid(hotNews: HotNewsData, modal: ModalHookAPI, t: TFunction<'translation', undefined>) { + return new Promise((resolve) => { // 验证热点新闻数据是否正确 - if(hotNews.mode == 'manual' && hotNews.list.filter(s=>s.trim().length > 0).length < 3){ + if (hotNews.mode == 'manual' && hotNews.list.filter(s => s.trim().length > 0).length < 3) { modal.warning({ wrapClassName: 'root-modal-confirm', - icon: , + icon: , title: t('modal.hot_news.empty_notice_title'), - content: , - centered:true, + content: , + centered: true, onOk: () => { - resolve(false) + resolve(false); }, onCancel: () => { - resolve(false) + resolve(false); } - }) + }); return; } - resolve(true) - }) + resolve(true); + }); } export default function ArticleEditModal(props: Props) { - const {t,i18n} = useTranslation() - const {modal} = App.useApp() + const { t, i18n } = useTranslation(); + const { modal } = App.useApp(); const [groups, setGroups] = useState([]); - const [title, setTitle] = useState('') - const [hotNews,setHotNews] = useState({ - list: ['','',''], + const [title, setTitle] = useState(''); + const [tag, setTag] = useState(''); + const [backgroundImage, setBackgroundImage] = useState('1'); + const [hotNews, setHotNews] = useState({ + list: ['', '', ''], mode: 'auto' - }) + }); const [state, setState] = useSetState({ ...DEFAULT_STATE, - generating:false, - pushed: false, - }) + generating: false, + pushed: false + }); // 保存数据 const handleSave = async () => { - setState({error: ''}) + setState({ error: '' }); if (!title) { // setState({msgTitle: '请输入标题内容'}); return; } if (groups.length == 0 || groups[0].length == 0 || !groups[0][0].content) { - setState({msgGroup: t('news.edit_empty_human_content')}); + setState({ msgGroup: t('news.edit_empty_human_content') }); return; } // 验证图文都存在时,文图是否匹配 - if(!checkGroupsValid(groups)) { + if (!checkGroupsValid(groups)) { // 获取图文设置不正确的数据 - setState({msgGroup: t('news.edit_empty_group_content')}); + setState({ msgGroup: t('news.edit_empty_group_content') }); return; } - const hotNewsValid = await checkHotNewsValid(hotNews,modal,t) - if(!hotNewsValid) return; + const hotNewsValid = await checkHotNewsValid(hotNews, modal, t); + if (!hotNewsValid) return; // if (groups.length == 0 || groups[0].length == 0 || !groups[0][0].content) { // // setState({msgGroup: '请输入正文文本内容'}); // return; // } - const save = props.type == 'news' ? article.save : regenerate - setState({loading: true}) + const save = props.type == 'news' ? article.save : regenerate; + setState({ loading: true }); save({ title, metahuman_text: groups[0][0].content, @@ -153,83 +162,83 @@ export default function ArticleEditModal(props: Props) { hot_news: hotNews.mode == 'auto' ? [''] : hotNews.list, id: props.id && props.id > 0 ? props.id : undefined }).then(() => { - props.onClose?.(true) + props.onClose?.(true); }).catch(e => { - setState({error: e.message || t('news.edit_save_failed')}) + setState({ error: e.message || t('news.edit_save_failed') }); }).finally(() => { - setState({loading: false}) + setState({ loading: false }); }); - } - const handlePush2Video = async () =>{ - if(state.pushed) return; + }; + const handlePush2Video = async () => { + if (state.pushed) return; if (!title) { // setState({msgTitle: '请输入标题内容'}); return; } if (groups.length == 0 || groups[0].length == 0 || !groups[0][0].content) { - setState({msgGroup: t('news.edit_empty_human_content')}); + setState({ msgGroup: t('news.edit_empty_human_content') }); return; } // 验证图文都存在时,文图是否匹配 - if(!checkGroupsValid(groups)) { + if (!checkGroupsValid(groups)) { // 获取图文设置不正确的数据 - setState({msgGroup: t('news.edit_empty_group_content')}); + setState({ msgGroup: t('news.edit_empty_group_content') }); return; } - if(!props.id || state.generating) return; - const hotNewsValid = await checkHotNewsValid(hotNews,modal,t) - if(!hotNewsValid) return; - setState({generating:true}) + if (!props.id || state.generating) return; + const hotNewsValid = await checkHotNewsValid(hotNews, modal, t); + if (!hotNewsValid) return; + setState({ generating: true }); await article.save({ title, metahuman_text: groups[0][0].content, content_group: groups.slice(1), hot_news: hotNews.mode == 'auto' ? [''] : hotNews.list, - id: props.id, - }) + id: props.id + }); push2video([props.id]).then(() => { - showToast(t('news.push_stream_success'), 'success') - setState({pushed:true}) - props.onClose?.(true) + showToast(t('news.push_stream_success'), 'success'); + setState({ pushed: true }); + props.onClose?.(true); // props.onRefresh?.(); // navigate('/create?state=push-success',{ // state: 'push-success' // }) // props.onSuccess?.() - }).catch(showErrorToast).finally(()=>{ - setState({generating:false}) - }) - } + }).catch(showErrorToast).finally(() => { + setState({ generating: false }); + }); + }; useEffect(() => { - setState({...DEFAULT_STATE}) + setState({ ...DEFAULT_STATE }); if (typeof (props.id) != 'undefined') { // 如果传入了id则获取数据 if (props.id > 0) { article.getById(props.id).then(res => { - if(res.hot_news){ - const len = res.hot_news.length - const list = len >= 3 ? res.hot_news :res.hot_news.concat(Array(3 - len).fill('')) - const mode = res.hot_news && res.hot_news.filter(s=>s.length > 0).length == 3 ?'manual':'auto'; + if (res.hot_news) { + const len = res.hot_news.length; + const list = len >= 3 ? res.hot_news : res.hot_news.concat(Array(3 - len).fill('')); + const mode = res.hot_news && res.hot_news.filter(s => s.length > 0).length == 3 ? 'manual' : 'auto'; setHotNews({ list, mode - }) + }); } - setGroups(rebuildGroups([[{content: res.metahuman_text, type: "text"}], ...res.content_group])) - setTitle(res.title) - }) + setGroups(rebuildGroups([[{ content: res.metahuman_text, type: 'text' }], ...res.content_group])); + setTitle(res.title); + }); } else { // 新增 - setGroups([]) - setTitle('') + setGroups([]); + setTitle(''); } } - }, [props.id]) + }, [props.id]); return (= 0} maskClosable={false} keyboard={false} @@ -237,32 +246,49 @@ export default function ArticleEditModal(props: Props) { footer={null} closeIcon={null} onCancel={() => props.onClose?.()} - okButtonProps={{loading: state.loading}} + okButtonProps={{ loading: state.loading }} onOk={handleSave} okText={props.type == 'news' ? t('confirm_text') : t('news.edit_generate_video_again')} > -

-
+
+
{t('news.title')} - { - setTitle(e.target.value) - setState({msgTitle: e.target.value ? '' : t('news.edit_notice_enter_article_title1')}) - }} placeholder={t('news.edit_notice_enter_article_title')}/> + { + setTitle(e.target.value); + setState({ msgTitle: e.target.value ? '' : t('news.edit_notice_enter_article_title1') }); + }} placeholder={t('news.edit_notice_enter_article_title')} />
{state.msgTitle}
-
+
{ - setHotNews(hotNews) - setGroups(() => list) - setState({msgGroup: (list.length == 0 || list[0].length == 0 || !list[0][0].content) ? t('news.edit_empty_human_content') : ''}); + onChange={(list, hotNews) => { + setHotNews(hotNews); + setGroups(() => list); + setState({ msgGroup: (list.length == 0 || list[0].length == 0 || !list[0][0].content) ? t('news.edit_empty_human_content') : '' }); }} + leftPanelHeader={
+
+ {t('news.edit.tag')} + { + setTag(e.target.value); + }} placeholder={t('news.edit.tag_placeholder')} /> +
+
+ {t('news.edit.bg')} +
+ + }>背景1 + }>背景2 + +
+
+
} />
{state.msgGroup}
@@ -270,9 +296,11 @@ export default function ArticleEditModal(props: Props) {
- {props.type == 'news' && props.id ? : null} + {props.type == 'news' && props.id ? : null} - +
); diff --git a/src/components/article/group.tsx b/src/components/article/group.tsx index 0488260..5d41f96 100644 --- a/src/components/article/group.tsx +++ b/src/components/article/group.tsx @@ -18,10 +18,11 @@ type Props = { onChange?: (groups: BlockContent[][], hotNews: HotNewsData) => void; errorMessage?: string; hotNews: HotNewsData; + leftPanelHeader?: React.ReactNode; } -export default function ArticleGroup({groups, editable, onChange, errorMessage, hotNews}: Props) { +export default function ArticleGroup({groups, editable, onChange, errorMessage, hotNews, leftPanelHeader}: Props) { const {t, i18n} = useTranslation() // const groups = rebuildGroups(_groups) /** @@ -57,19 +58,21 @@ export default function ArticleGroup({groups, editable, onChange, errorMessage, return
+ {leftPanelHeader}
{t('news.edit_digital_text')} {i18n.language == 'zh-CN' && (出现数字人形象)}
-
+
{/* value={groups || groups[0][0].content}*/} -
-
- {editable ?
+
+
+ {editable ?
0 ? groups[0][0].content : ''} - autoSize={{maxRows: hotNews.mode == 'auto'?20:13}} + autoSize={{maxRows: hotNews.mode == 'auto'?15:8}} variant={"borderless"} onChange={e => { handleDigitalPersonContentChange(e.target.value) diff --git a/src/i18n/translations/en-US.json b/src/i18n/translations/en-US.json index 7490cc3..7c8be31 100644 --- a/src/i18n/translations/en-US.json +++ b/src/i18n/translations/en-US.json @@ -93,6 +93,11 @@ "delete_the_picture": "Are you sure delete the picture?", "download_empty": "Please select the news to download", "download_failed": "Download failed!", + "edit": { + "bg": "Background", + "tag": "Tag", + "tag_placeholder": "Example: Enterprise dynamics" + }, "edit_add_group": "Add Group", "edit_delete_group": "Delete Group", "edit_delete_group_confirm": "Are you sure you want to delete the group?", diff --git a/src/i18n/translations/zh-CN.json b/src/i18n/translations/zh-CN.json index c41726e..fc60d7e 100644 --- a/src/i18n/translations/zh-CN.json +++ b/src/i18n/translations/zh-CN.json @@ -93,6 +93,11 @@ "delete_the_picture": "请确认删除此图片", "download_empty": "请选择要下载的新闻", "download_failed": "下载新闻失败,请重试!", + "edit": { + "bg": "背景", + "tag": "标签", + "tag_placeholder": "例:企业动态" + }, "edit_add_group": "新增分组", "edit_delete_group": "删除此分组", "edit_delete_group_confirm": "请确认删除此分组?", diff --git a/src/pages/live/index.tsx b/src/pages/live/index.tsx index 4d59381..cbbcd53 100644 --- a/src/pages/live/index.tsx +++ b/src/pages/live/index.tsx @@ -87,6 +87,7 @@ export default function LiveIndex() { const playedTime = (Date.now() / 1000 >> 0) - liveState.live_start_time if (playedTime < 0 || playedTime > duration) { // 已播放时间大于总时长了 //initPlayingState() // 重新获取播放状态 + console.log('已播放时间大于总时长') return; } player.current?.play(video.video_oss_url, playedTime)