shinnosuke
2026-08-06 08fff72a7cfdd238fd51b0976fc3371c8fc05b5c
fix(admin): 支持上传资讯封面图 (bug #24043)
3个文件已修改
43 ■■■■■ 已修改文件
talent-card-admin/src/style.css 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/views/TalentNewsEditView.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/views/TalentNewsPublishView.vue 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
talent-card-admin/src/style.css
@@ -3502,6 +3502,15 @@
  padding: 16px 0 10px;
}
.news-cover-preview {
  width: 120px;
  height: 72px;
  margin-left: 12px;
  vertical-align: middle;
  border: 1px solid #d9dee8;
  border-radius: 4px;
}
.article-management-table {
  color: #111827;
  font-size: 12px;
talent-card-admin/src/views/TalentNewsEditView.vue
@@ -2,13 +2,14 @@
import { nextTick, onMounted, reactive, ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import type { UploadFile } from 'element-plus'
import {
  ArrowLeftBold,
  ArrowRightBold,
  Link,
  Picture,
} from '@element-plus/icons-vue'
import { getAdminNewsDetail, updateAdminNews } from '../api/admin'
import { getAdminNewsDetail, updateAdminNews, uploadAdminImage } from '../api/admin'
interface NewsForm {
  title: string
@@ -43,6 +44,13 @@
function updateContent(event: Event) {
  form.content = (event.target as HTMLElement).innerHTML
}
async function uploadCover(file: UploadFile) {
  if (!file.raw) return
  const result = await uploadAdminImage(file.raw)
  form.coverUrl = result.url
  ElMessage.success('封面图上传成功')
}
function formatTime(value?: string) {
@@ -153,6 +161,13 @@
          <el-switch v-model="form.pinned" />
        </el-form-item>
        <el-form-item label="封面图">
          <el-upload accept="image/*" :auto-upload="false" :show-file-list="false" :on-change="uploadCover">
            <el-button>上传图片</el-button>
          </el-upload>
          <el-image v-if="form.coverUrl" class="news-cover-preview" :src="form.coverUrl" fit="cover" />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="saveNews">保存</el-button>
        </el-form-item>
talent-card-admin/src/views/TalentNewsPublishView.vue
@@ -2,13 +2,14 @@
import { reactive } from 'vue'
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import type { UploadFile } from 'element-plus'
import {
  ArrowLeftBold,
  ArrowRightBold,
  Link,
  Picture,
} from '@element-plus/icons-vue'
import { createAdminNews } from '../api/admin'
import { createAdminNews, uploadAdminImage } from '../api/admin'
interface NewsForm {
  title: string
@@ -38,6 +39,13 @@
function updateContent(event: Event) {
  form.content = (event.target as HTMLElement).innerHTML
}
async function uploadCover(file: UploadFile) {
  if (!file.raw) return
  const result = await uploadAdminImage(file.raw)
  form.coverUrl = result.url
  ElMessage.success('封面图上传成功')
}
async function saveNews() {
@@ -103,6 +111,13 @@
          <el-switch v-model="form.pinned" />
        </el-form-item>
        <el-form-item label="封面图">
          <el-upload accept="image/*" :auto-upload="false" :show-file-list="false" :on-change="uploadCover">
            <el-button>上传图片</el-button>
          </el-upload>
          <el-image v-if="form.coverUrl" class="news-cover-preview" :src="form.coverUrl" fit="cover" />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="saveNews">保存</el-button>
        </el-form-item>