fixed: push error message
This commit is contained in:
parent
8c384d5723
commit
098791edf4
@ -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>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user