|  |  |  | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormCol> | 
|---|
|  |  |  | <ProFormColItem :span="12"> | 
|---|
|  |  |  | <ProFormItemV2 label="鞋码:" prop="shoeSize"> | 
|---|
|  |  |  | <ProFormInputNumber v-model="detail.shoeSize"></ProFormInputNumber> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProFormColItem> | 
|---|
|  |  |  | </ProFormCol> | 
|---|
|  |  |  | <ProFormItemV2 label="个人照片:" prop="photos"> | 
|---|
|  |  |  | <ProFormImageUpload v-model:file-url="detail.photos"> </ProFormImageUpload> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | <ProFormItemV2 label="个人视频:" prop="videos"> | 
|---|
|  |  |  | <video-player | 
|---|
|  |  |  | v-for="video in detail.videos" | 
|---|
|  |  |  | :key="video.path" | 
|---|
|  |  |  | class="video-player-box" | 
|---|
|  |  |  | playsinline | 
|---|
|  |  |  | :options="{ | 
|---|
|  |  |  | aspectRatio: '16:9', | 
|---|
|  |  |  | autoplay: false, | 
|---|
|  |  |  | muted: false, | 
|---|
|  |  |  | language: 'en', | 
|---|
|  |  |  | fluid: false, | 
|---|
|  |  |  | poster: '', // 封面地址 | 
|---|
|  |  |  | controls: true, | 
|---|
|  |  |  | controlBar: { | 
|---|
|  |  |  | timeDivider: false, // 当前时间和持续时间的分隔符 | 
|---|
|  |  |  | durationDisplay: false, // 显示持续时间 | 
|---|
|  |  |  | remainingTimeDisplay: false, // 是否显示剩余时间功能 | 
|---|
|  |  |  | fullscreenToggle: true, // 是否显示全屏按钮 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | sources: [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | type: 'video/mp4', // 类型 | 
|---|
|  |  |  | src: video.url, // url地址 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | }" | 
|---|
|  |  |  | src="/src/assets/boleclound.png" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </ProFormItemV2> | 
|---|
|  |  |  | </ProForm> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | import { useQuery } from '@tanstack/vue-query'; | 
|---|
|  |  |  | import * as userResumeServices from '@/services/api/userResume'; | 
|---|
|  |  |  | import { convertApi2FormUrl } from '@/utils'; | 
|---|
|  |  |  | import { VideoPlayer } from '@videojs-player/vue'; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | defineOptions({ | 
|---|
|  |  |  | name: 'StaffResumeView', | 
|---|
|  |  |  | 
|---|
|  |  |  | workExperience: '', | 
|---|
|  |  |  | height: 0, | 
|---|
|  |  |  | weight: 0, | 
|---|
|  |  |  | shoeSize: 0, | 
|---|
|  |  |  | photos: [] as UploadUserFile[], | 
|---|
|  |  |  | videos: [] as UploadUserFile[], | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { isLoading } = useQuery({ | 
|---|
|  |  |  | 
|---|
|  |  |  | detail.workExperience = data.workExperience; | 
|---|
|  |  |  | detail.height = data.height ?? 0; | 
|---|
|  |  |  | detail.weight = data.weight ?? 0; | 
|---|
|  |  |  | detail.shoeSize = data.shoeSize ?? 0; | 
|---|
|  |  |  | detail.photos = data.photos | 
|---|
|  |  |  | ? data.photos.map((x) => convertApi2FormUrl(x)) | 
|---|
|  |  |  | : ([] as UploadUserFile[]); | 
|---|
|  |  |  | detail.videos = data.videos | 
|---|
|  |  |  | ? data.videos.map((x) => convertApi2FormUrl(x)) | 
|---|
|  |  |  | : ([] as UploadUserFile[]); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | enabled: computed(() => !!form.value.id), | 
|---|
|  |  |  | }); | 
|---|