shinnosuke
2026-09-10 65b57875700bf42ebd17eafa01a265e5690ce271
talent-card-admin/src/views/MovieTicketView.vue
@@ -2,6 +2,7 @@
import { computed, onMounted, reactive, ref } from 'vue'
import { ArrowLeft, Download, Plus, Refresh, Search } from '@element-plus/icons-vue'
import { ElMessage } from 'element-plus'
import type { UploadFile } from 'element-plus'
import {
  createTicketPackage,
  generateTicketPackageCodes,
@@ -13,6 +14,7 @@
  supplementTicketPackageClaim,
  updateTicketPackage,
  updateTicketPackageStatus,
  uploadAdminImage,
  voidTicketPackageCode,
} from '../api/admin'
import { TALENT_CARD_LEVELS } from '../utils/cardLevels'
@@ -268,6 +270,13 @@
function openEdit(row: Record<string, any>) {
  selectedPackage.value = row
  setMode('form', row)
}
async function uploadCover(file: UploadFile) {
  if (!file.raw) return
  const result = await uploadAdminImage(file.raw)
  form.coverUrl = result.url
  ElMessage.success('封面图上传成功')
}
async function save() {
@@ -591,6 +600,13 @@
              <span>至</span>
              <el-date-picker v-model="form.validEnd" value-format="YYYY-MM-DD" placeholder="结束日期" />
            </div>
            <div class="movie-ticket-cover-row">
              <span>封面图</span>
              <el-upload class="movie-ticket-cover-upload" accept="image/*" :auto-upload="false" :show-file-list="false" :on-change="uploadCover">
                <el-image v-if="form.coverUrl" class="movie-ticket-cover-preview" :src="form.coverUrl" fit="cover" />
                <div v-else class="movie-ticket-cover-placeholder"><span>+</span><small>上传图片</small></div>
              </el-upload>
            </div>
          </el-form>
          <h3>人才权益</h3>