| | |
| | | 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, |
| | |
| | | supplementTicketPackageClaim, |
| | | updateTicketPackage, |
| | | updateTicketPackageStatus, |
| | | uploadAdminImage, |
| | | voidTicketPackageCode, |
| | | } from '../api/admin' |
| | | import { TALENT_CARD_LEVELS } from '../utils/cardLevels' |
| | |
| | | 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() { |
| | |
| | | <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> |