shinnosuke
2026-08-06 b05a88da3456d5bef0364527e458c1a279bab254
fix(admin): 校验资讯发布必填项 (bug #24044)
3个文件已修改
17 ■■■■■ 已修改文件
talent-card-admin/src/views/TalentNewsEditView.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/views/TalentNewsPublishView.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/admin/NewsArticleRequest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/views/TalentNewsEditView.vue
@@ -46,6 +46,10 @@
  form.content = (event.target as HTMLElement).innerHTML
}
function hasContent() {
  return form.content.replace(/<[^>]*>/g, '').replace(/&nbsp;/g, '').trim().length > 0
}
async function uploadCover(file: UploadFile) {
  if (!file.raw) return
  const result = await uploadAdminImage(file.raw)
@@ -79,6 +83,9 @@
    ElMessage.warning('请填写资讯标题')
    return
  }
  if (!form.summary.trim()) { ElMessage.warning('请填写资讯标签'); return }
  if (!hasContent()) { ElMessage.warning('请填写资讯内容'); return }
  if (!form.coverUrl.trim()) { ElMessage.warning('请上传封面图'); return }
  await updateAdminNews(String(route.params.id), {
    title: form.title.trim(),
    summary: form.summary.trim(),
talent-card-admin/src/views/TalentNewsPublishView.vue
@@ -41,6 +41,10 @@
  form.content = (event.target as HTMLElement).innerHTML
}
function hasContent() {
  return form.content.replace(/<[^>]*>/g, '').replace(/&nbsp;/g, '').trim().length > 0
}
async function uploadCover(file: UploadFile) {
  if (!file.raw) return
  const result = await uploadAdminImage(file.raw)
@@ -53,6 +57,9 @@
    ElMessage.warning('请填写资讯标题')
    return
  }
  if (!form.summary.trim()) { ElMessage.warning('请填写资讯标签'); return }
  if (!hasContent()) { ElMessage.warning('请填写资讯内容'); return }
  if (!form.coverUrl.trim()) { ElMessage.warning('请上传封面图'); return }
  await createAdminNews({
    title: form.title.trim(),
    summary: form.summary.trim(),
talent-card-server/src/main/java/com/talentcard/server/business/admin/NewsArticleRequest.java
@@ -9,14 +9,17 @@
        @NotBlank
        @Size(max = 255)
        String title,
        @NotBlank
        @Size(max = 500)
        String summary,
        @NotBlank
        @Size(max = 500)
        String coverUrl,
        @Size(max = 128)
        String source,
        @Size(max = 64)
        String author,
        @NotBlank
        String content,
        Boolean isTop,
        Integer sortNo,