提交 036980b3 authored 作者: matian's avatar matian

updates

上级 13c9b728
<script lang="ts" setup>
import { ElMessage } from 'element-plus'
import { setOpenRules } from '../../api'
const emit = defineEmits<Emits>()
const form = reactive({
type: '0',
progress: '',
score: '',
open: '1',
start_time: '',
end_time: ''
})
const props = defineProps({
isShowOpenRules: {
type: Boolean
},
chapterName: {
type: String
},
sectionName: {
type: String
},
chapterID: {
type: String
},
course_id: {
type: String
}
})
interface Emits {
(e: 'update:isShowOpenRules', isShowOpenRules: boolean): void
(e: 'create'): void
}
const handleCancel = () => {
emit('update:isShowOpenRules', false)
}
const handleConfirm = () => {
const params: any = Object.assign({ course_id: props.course_id, chapter_id: props.chapterID }, form)
setOpenRules(params).then(() => {
emit('update:isShowOpenRules', false)
emit('create')
ElMessage.success('章节开放规则设置成功')
})
}
</script>
<template>
<el-dialog :model-value="isShowOpenRules" :before-close="handleCancel" title="章节开放规则">
<el-form :model="form" laebl-suffix=":" label-width="100px">
<el-form-item label="章名称:" prop="chapter">{{ props.chapterName }}</el-form-item>
<el-form-item label="小节名称:" prop="section">{{ props.sectionName || '无' }}</el-form-item>
<el-form-item label="开放规则:" prop="rules">
<el-radio-group
v-model="form.type"
style="display: flex; flex-direction: column; justify-content: flex-start; align-items: flex-start"
>
<el-radio label="0">无条件</el-radio>
<el-radio label="1">
前一章/前一节完成度达到之后开放 <el-input v-model="form.progress" style="width: 50px"></el-input>%
</el-radio>
<el-radio label="2">
完成前一章/前一节考试,且考试成绩达到<el-input v-model="form.score" style="width: 50px"></el-input
>分以上</el-radio
>
<el-radio label="3">
时间范围:
<el-date-picker v-model="form.start_time" type="date"> </el-date-picker>
~
<el-date-picker v-model="form.end_time" type="date"> </el-date-picker>
</el-radio>
<el-radio label="4">
手工开放:<el-switch
v-model="form.open"
size="large"
active-value="1"
inactive-value="0"
inline-prompt
style="--el-switch-on-color: #aa1941"
></el-switch
></el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button @click="handleCancel">取消</el-button>
<el-button type="primary" @click="handleConfirm">确认</el-button>
</span>
</template>
</el-dialog>
</template>
<script lang="ts" setup>
import { ElMessage } from 'element-plus'
import { useGetCategoryList } from '@/composables/useGetCategoryList'
import { createVideo } from '../api'
import UploadVideo from './UploadVideo.vue'
const emit = defineEmits<Emits>()
let { list: selectTree }: any = useGetCategoryList()
const defaultProps = { children: 'children', label: 'category_name', value: 'id' }
const form = reactive({
source_id: '',
name: '0',
classification: ''
})
defineProps({
isShowBatchImport: {
type: Boolean
}
})
interface Emits {
(e: 'update:isShowBatchImport', isShowBatchImport: boolean): void
(e: 'update'): void
}
const handleConfirm = () => {
emit('update:isShowBatchImport', false)
emit('update')
}
const handleCancel = () => {
emit('update:isShowBatchImport', false)
}
// 上传视频成功
const uploadVideo = (data: any) => {
console.log(data)
const params = {
name: data.name.slice(0, data.name.lastIndexOf('.')),
source: '2',
classification: form.classification,
knowledge_points: '',
source_id: data.videoId,
cover: ''
}
createVideo(params).then(() => {
ElMessage.success('视频上传成功')
})
}
</script>
<template>
<el-dialog :model-value="isShowBatchImport" title="批量导入视频" :before-close="handleCancel">
<el-form :model="form" label-suffix=":">
<el-form-item label="视频分类" prop="classification">
<el-tree-select
node-key="id"
:render-after-expand="false"
:props="defaultProps"
v-model="form.classification"
:data="selectTree"
clearable
placeholder="视频分类"
:default-expanded-keys="selectTree.length ? [selectTree[0]?.id] : []"
/>
</el-form-item>
<el-form-item label="视频文件" prop="source_id">
<UploadVideo @upload="uploadVideo" />
</el-form-item>
<el-form-item label="视频名称" prop="name">
<el-radio-group v-model="form.name">
<el-radio label="0">源自文件名称</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<span>
<el-button type="primary" @click="handleConfirm">保存</el-button>
<el-button @click="handleCancel">取消</el-button>
</span>
</template>
</el-dialog>
</template>
<style></style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论