fixed: push error message

This commit is contained in:
LittleBoy 2025-02-06 16:56:49 +08:00
parent 8c384d5723
commit 098791edf4

View File

@ -58,11 +58,22 @@ function rebuildGroups(groups: BlockContent[][]) {
_groups.push(it) _groups.push(it)
}) })
} }
console.log('rebuildGroups', _groups) // console.log('rebuildGroups', _groups)
return _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)
}
// 验证分组数据是否合法
function checkGroupsValid(groups: BlockContent[][]) {
if (groups.length == 1) return true;
for (const group of groups) {
if(!groupHasImageAndText(group)) return false;
}
return true;
}
export default function ArticleEditModal(props: Props) { export default function ArticleEditModal(props: Props) {
const {t} = useTranslation() const {t} = useTranslation()
@ -73,6 +84,7 @@ export default function ArticleEditModal(props: Props) {
...DEFAULT_STATE, ...DEFAULT_STATE,
generating:false generating:false
}) })
// 保存数据 // 保存数据
const handleSave = () => { const handleSave = () => {
setState({error: ''}) setState({error: ''})
@ -81,15 +93,25 @@ export default function ArticleEditModal(props: Props) {
return; return;
} }
if (groups.length == 0 || groups[0].length == 0 || !groups[0][0].content) { if (groups.length == 0 || groups[0].length == 0 || !groups[0][0].content) {
// setState({msgGroup: '请输入正文文本内容'}); setState({msgGroup: t('news.edit_empty_human_content')});
return; return;
} }
// 验证图文都存在时,文图是否匹配
if(!checkGroupsValid(groups)) {
// 获取图文设置不正确的数据
setState({msgGroup: t('news.edit_empty_group_content')});
return;
}
// if (groups.length == 0 || groups[0].length == 0 || !groups[0][0].content) {
// // setState({msgGroup: '请输入正文文本内容'});
// return;
// }
const save = props.type == 'news' ? article.save : regenerate const save = props.type == 'news' ? article.save : regenerate
setState({loading: true}) setState({loading: true})
save(title, groups[0][0].content, groups.slice(1), props.id && props.id > 0 ? props.id : undefined).then(() => { save(title, groups[0][0].content, groups.slice(1), props.id && props.id > 0 ? props.id : undefined).then(() => {
props.onClose?.(true) props.onClose?.(true)
}).catch(e => { }).catch(e => {
setState({error: e.data || t('news.edit_save_failed')}) setState({error: e.message || t('news.edit_save_failed')})
}).finally(() => { }).finally(() => {
setState({loading: false}) setState({loading: false})
}); });
@ -104,16 +126,10 @@ export default function ArticleEditModal(props: Props) {
return; return;
} }
// 验证图文都存在时,文图是否匹配 // 验证图文都存在时,文图是否匹配
if(groups.length > 1) { if(!checkGroupsValid(groups)) {
// 获取图文设置不正确的数据 // 获取图文设置不正确的数据
const group = groups.filter((it,idx)=>{ setState({msgGroup: t('news.edit_empty_group_content')});
return idx > 0 && (it.length < 2 || it.some(s=>s.content.trim().length == 0)) return;
})
console.log('xxx',group)
if(group.length > 0){
setState({msgGroup: t('news.edit_empty_group_content')});
return;
}
} }
if(!props.id || state.generating) return; if(!props.id || state.generating) return;
setState({generating:true}) setState({generating:true})
@ -173,7 +189,7 @@ export default function ArticleEditModal(props: Props) {
errorMessage={state.msgGroup} editable groups={groups} errorMessage={state.msgGroup} editable groups={groups}
onChange={list => { onChange={list => {
setGroups(() => list) setGroups(() => list)
setState({msgGroup: (list.length == 0 || list[0].length == 0 || !list[0][0].content) ? t('news.edit_notice_enter_article_content') : ''}); setState({msgGroup: (list.length == 0 || list[0].length == 0 || !list[0][0].content) ? t('news.edit_empty_human_content') : ''});
}} }}
/> />
<div className="text-red-500">{state.msgGroup}</div> <div className="text-red-500">{state.msgGroup}</div>