import ColUpload from '@/components/col-upload' import ColUploadVideo from '@/components/col-upload-video' import request from '@/helpers/request' import { scrollAnimation } from '@/util/scroll' import { ElButton, ElCol, ElDialog, ElForm, ElFormItem, ElIcon, ElInput, ElMessage, ElMessageBox, ElRow, ElTooltip } from 'element-plus' import { ArrowDown } from '@element-plus/icons-vue' import { defineComponent } from 'vue' import CoursePreview from '../course-preview' import { createState } from '../createState' import styles from './index.module.less' import iconDown from '../images/icon_down.png' import iconUp from '../images/icon_up.png' import iconDelete from '../images/icon_delete.png' import ColVideo from '@/components/col-video' import SelectMusicAlbum from '../select-music-album' export default defineComponent({ name: 'course-content', data() { return { show: false, form: { lessonList: [ { key: 1, videoTitle: '', videoContent: '', videoUrl: '', relationList: [] as any, coverUrl: '' } ] as any }, musicStatus: false, selectItem: {} as any // 选中的课程 } }, methods: { handleUpload(urls: any) { console.log(urls) // 上传视频连接s const urlList = urls || [] urlList.forEach((item: any) => { createState.lessonList.push({ videoTitle: '', videoContent: '', videoUrl: item, relationList: [] as any, coverUrl: '' }) }) }, handleSubmit() { ;(this as any).$refs.form.validate(async (valid: any) => { if (valid) { if (createState.lessonList.length <= 0) { ElMessage.error('请上传课程视频') return } // 提交数据 console.log('提交数据') this.show = true } else { this.$nextTick(() => { const isError = document.getElementsByClassName('is-error') isError[0].scrollIntoView({ block: 'center', behavior: 'smooth' }) }) return false } }) }, async createSubmit() { try { const videoDetail = createState.lessonGroup const params = { lessonList: createState.lessonList, lessonGroup: { ...videoDetail, lessonCoverUrl: videoDetail.lessonCoverTemplateUrl || videoDetail.lessonCoverUrl } } if (createState.groupId) { await request.post('/api-website/videoLessonGroup/update', { data: params }) ElMessage.success('修改成功') } else { await request.post('/api-website/videoLessonGroup/add', { data: params }) ElMessage.success('创建成功') } sessionStorage.setItem('videoActiveName', 'DOING') this.$router.back() } catch { // } }, swapItems(arr: any, index1: number, index2: number) { arr[index1] = arr.splice(index2, 1, arr[index1])[0] return arr }, getName(item: any) { const relation = item.relationList.length > 0 ? item.relationList[0] : null return relation ? (relation.relationMusicAlbum === 'ALBUM' ? '专辑:' : '曲目:') + relation.musicAlbumName : '' } }, render() { return (
{ this.handleUpload(urls) }} />
{/* */}
{createState.lessonList.map((item: any, index: number) => (
{index !== 0 && (
{ this.swapItems(createState.lessonList, index, index - 1) }} >
)} {createState.lessonList.length - 1 !== index && (
{ this.swapItems(createState.lessonList, index, index + 1) }} >
)} {createState.lessonList.length > 1 && (
{ ElMessageBox.confirm('确定删除该条数据吗?', '提示', { type: 'warning' }).then(() => { createState.lessonList.splice(index, 1) }) }} >
)}

{`第 ${index + 1} 课`}

{ this.selectItem = item this.musicStatus = true }} >
0 ? this.getName(item) : '' } readonly suffixIcon={ArrowDown} />
))}
{ createState.active = 0 const currentY = document.documentElement.scrollTop || document.body.scrollTop scrollAnimation(currentY, 0) }} > 上一步 下一步
{/* @ts-ignore */} ( { this.show = false }} > 返回编辑 {createState.groupId ? '确认修改' : '创建完成'} ) }} > { this.musicStatus = false this.selectItem.relationList = [ { musicAlbumId: item.id, musicAlbumName: item.selectType === 'ALBUM' ? item.albumName : item.musicSheetName, relationMusicAlbum: item.selectType, useRelationType: 'RECOMMEND' } ] }} />
) } })