|
@@ -2,12 +2,9 @@ import UploadFile from '@/components/upload-file'
|
|
|
import { lessonType } from '@/views/knowledge-manage/knowledgeTypeData'
|
|
|
import {
|
|
|
NButton,
|
|
|
- NButtonGroup,
|
|
|
NForm,
|
|
|
NFormItem,
|
|
|
NInput,
|
|
|
- NRadio,
|
|
|
- NRadioGroup,
|
|
|
NSelect,
|
|
|
NSpace,
|
|
|
NSpin,
|
|
@@ -16,7 +13,15 @@ import {
|
|
|
import { defineComponent, onMounted, reactive, ref, watch } from 'vue'
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
import styles from '../index.module.less'
|
|
|
-import { lessonCoursewareDetail, lessonCoursewareSave, lessonCoursewareUpdate } from '../../api'
|
|
|
+import {
|
|
|
+ // lessonCoursewareDetail,
|
|
|
+ lessonCoursewareSave,
|
|
|
+ lessonCoursewareUpdate,
|
|
|
+ api_getUsedLevel
|
|
|
+} from '../../api'
|
|
|
+import { courseLevelTypeList } from '../../teachingData'
|
|
|
+import { orchestraType } from './../../../../utils/constant';
|
|
|
+import deepClone from '@/utils/deep.clone'
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'createCourseware',
|
|
@@ -33,13 +38,15 @@ export default defineComponent({
|
|
|
const router = useRouter()
|
|
|
const query = route.query
|
|
|
const loading = ref(false)
|
|
|
- const formRef = ref()
|
|
|
+ const formRef = ref()
|
|
|
+ const courseLevelTypes = ref<any[]>(deepClone(courseLevelTypeList))
|
|
|
const searchForm = reactive<any>({
|
|
|
coverImg: '', //封面
|
|
|
orchestraType: 'SINGLE_DELIVERY', // 乐团类型
|
|
|
lessonTargetDesc: '', // 课件目标
|
|
|
name: '', // 课件名称
|
|
|
- courseTypeCode: ''
|
|
|
+ courseTypeCode: null as any,
|
|
|
+ level: null as any
|
|
|
})
|
|
|
const rules = {
|
|
|
coverImg: [{ required: true, message: '请上传课件封面', trigger: ['blur', 'change'] }],
|
|
@@ -47,22 +54,47 @@ export default defineComponent({
|
|
|
{ required: true, message: '请填写课件目标', trigger: ['blur', 'change'] }
|
|
|
],
|
|
|
name: [{ required: true, message: '请填写课件名称', trigger: ['blur', 'change'] }],
|
|
|
- courseTypeCode: [{ required: true, message: '请选择课程类型', trigger: ['blur', 'change'] }]
|
|
|
+ courseTypeCode: [{ required: true, message: '请选择课程类型', trigger: ['blur', 'change'] }],
|
|
|
+ level: [{ required: true, type: 'number', message: '请选择课程级别', trigger: ['blur', 'change'] }]
|
|
|
}
|
|
|
- const getDetail = async () => {
|
|
|
- if (!query.id) return
|
|
|
- loading.value = true
|
|
|
+ // const getDetail = async () => {
|
|
|
+ // if (!query.id) return
|
|
|
+ // loading.value = true
|
|
|
+ // try {
|
|
|
+ // const { data } = await lessonCoursewareDetail(query.id)
|
|
|
+ // searchForm.coverImg = data.coverImg
|
|
|
+ // searchForm.orchestraType = data.orchestraType
|
|
|
+ // searchForm.lessonTargetDesc = data.lessonTargetDesc
|
|
|
+ // searchForm.name = data.name
|
|
|
+ // searchForm.courseTypeCode = data.courseTypeCode
|
|
|
+ // searchForm.enableFlag = data.enableFlag
|
|
|
+ // } catch (error) {}
|
|
|
+ // loading.value = false
|
|
|
+ // }
|
|
|
+
|
|
|
+ const getLevel = async () => {
|
|
|
+ if (!(searchForm.orchestraType && searchForm.courseTypeCode)) return
|
|
|
try {
|
|
|
- const { data } = await lessonCoursewareDetail(query.id)
|
|
|
- searchForm.coverImg = data.coverImg
|
|
|
- searchForm.orchestraType = data.orchestraType
|
|
|
- searchForm.lessonTargetDesc = data.lessonTargetDesc
|
|
|
- searchForm.name = data.name
|
|
|
- searchForm.courseTypeCode = data.courseTypeCode
|
|
|
- searchForm.enableFlag = data.enableFlag
|
|
|
- } catch (error) {}
|
|
|
- loading.value = false
|
|
|
+ const { data } = await api_getUsedLevel({
|
|
|
+ courseTypeCode: searchForm.orchestraType,
|
|
|
+ orchestraType: searchForm.courseTypeCode
|
|
|
+ })
|
|
|
+ if(Array.isArray(data) && data.length > 0) {
|
|
|
+ courseLevelTypes.value.forEach((item: any) => {
|
|
|
+ item.disabled = data.includes(item.value) ? true : false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } catch {}
|
|
|
+ }
|
|
|
+
|
|
|
+ const onChangeOrchestraType = (type: 'SINGLE_DELIVERY' | 'MULTIPLE_DELIVERY' | 'MULTIPLE_DELIVERY_SCHOOL') => {
|
|
|
+ // 如果是一样则不更新
|
|
|
+ if(searchForm.orchestraType === type) return
|
|
|
+ searchForm.level = null
|
|
|
+ searchForm.orchestraType = type
|
|
|
+ getLevel()
|
|
|
}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
// getDetail()
|
|
|
if (props.course) {
|
|
@@ -72,12 +104,15 @@ export default defineComponent({
|
|
|
searchForm.name = props.course.name
|
|
|
searchForm.courseTypeCode = props.course.courseTypeCode
|
|
|
searchForm.enableFlag = props.course.enableFlag
|
|
|
+ searchForm.level = props.course.level
|
|
|
+
|
|
|
+ getLevel()
|
|
|
}
|
|
|
console.log('🚀 ~ props', props.course)
|
|
|
})
|
|
|
watch(
|
|
|
() => searchForm.coverImg,
|
|
|
- (newVal, oldVal) => {
|
|
|
+ () => {
|
|
|
formRef.value.validate()
|
|
|
}
|
|
|
)
|
|
@@ -138,14 +173,18 @@ export default defineComponent({
|
|
|
<NButton
|
|
|
disabled={query.isLook ? true : false}
|
|
|
type={searchForm.orchestraType == 'SINGLE_DELIVERY' ? 'primary' : 'default'}
|
|
|
- onClick={() => (searchForm.orchestraType = 'SINGLE_DELIVERY')}
|
|
|
+ onClick={() => {
|
|
|
+ onChangeOrchestraType("SINGLE_DELIVERY")
|
|
|
+ }}
|
|
|
>
|
|
|
单交付团
|
|
|
</NButton>
|
|
|
<NButton
|
|
|
disabled={query.isLook ? true : false}
|
|
|
type={searchForm.orchestraType == 'MULTIPLE_DELIVERY' ? 'primary' : 'default'}
|
|
|
- onClick={() => (searchForm.orchestraType = 'MULTIPLE_DELIVERY')}
|
|
|
+ onClick={() => {
|
|
|
+ onChangeOrchestraType("MULTIPLE_DELIVERY")
|
|
|
+ }}
|
|
|
>
|
|
|
多交付常规团
|
|
|
</NButton>
|
|
@@ -154,7 +193,9 @@ export default defineComponent({
|
|
|
type={
|
|
|
searchForm.orchestraType == 'MULTIPLE_DELIVERY_SCHOOL' ? 'primary' : 'default'
|
|
|
}
|
|
|
- onClick={() => (searchForm.orchestraType = 'MULTIPLE_DELIVERY_SCHOOL')}
|
|
|
+ onClick={() => {
|
|
|
+ onChangeOrchestraType("MULTIPLE_DELIVERY_SCHOOL")
|
|
|
+ }}
|
|
|
>
|
|
|
多交付校团
|
|
|
</NButton>
|
|
@@ -163,10 +204,27 @@ export default defineComponent({
|
|
|
<NFormItem label="课程类型" path="courseTypeCode" required>
|
|
|
<NSelect
|
|
|
disabled={route.query.id ? true : false}
|
|
|
- placeholder="课程类型"
|
|
|
+ placeholder="请选择课程类型"
|
|
|
clearable
|
|
|
v-model:value={searchForm.courseTypeCode}
|
|
|
options={lessonType}
|
|
|
+ onUpdate:value={() => {
|
|
|
+ searchForm.level = null
|
|
|
+ getLevel()
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </NFormItem>
|
|
|
+ <NFormItem label="课程级别" path="level" required>
|
|
|
+ <NSelect
|
|
|
+ disabled={
|
|
|
+ !(searchForm.orchestraType && searchForm.courseTypeCode)
|
|
|
+ ? true
|
|
|
+ : false
|
|
|
+ }
|
|
|
+ placeholder="请选择课程级别"
|
|
|
+ clearable
|
|
|
+ v-model:value={searchForm.level}
|
|
|
+ options={courseLevelTypes.value}
|
|
|
/>
|
|
|
</NFormItem>
|
|
|
<NFormItem label="教学目标" path="lessonTargetDesc" required>
|
|
@@ -174,6 +232,7 @@ export default defineComponent({
|
|
|
type="textarea"
|
|
|
rows={4}
|
|
|
maxlength={500}
|
|
|
+ placeholder={'请输入教学目标'}
|
|
|
v-model:value={searchForm.lessonTargetDesc}
|
|
|
showCount
|
|
|
/>
|