create.tsx 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { Grid, GridItem, Icon } from "vant";
  2. import { defineComponent } from "vue";
  3. import styles from './create.module.less';
  4. import ClassInfo from "./class-info";
  5. import ClassContent from "./class-content";
  6. import { createState } from "./createState";
  7. import request from "@/helpers/request";
  8. import nameActive from './images/icon_name_active.png'
  9. import education from './images/icon_education.png'
  10. import educationActive from './images/icon_education_active.png'
  11. import CreateSubmit from "./create-submit";
  12. export default defineComponent({
  13. name: 'Create',
  14. created() {
  15. // 初始化状态
  16. createState.lessonGroup.lessonName = '测试视屏信息';
  17. createState.lessonGroup.lessonSubject = 5;
  18. createState.lessonGroup.lessonDesc = '测试视屏信息内容';
  19. createState.lessonGroup.lessonPrice = 50;
  20. // createState.lessonGroup.lessonCoverUrl = 'https://daya.ks3-cn-beijing.ksyun.com/202204/T1kK2ao.png';
  21. },
  22. async mounted() {
  23. console.log('create mounted')
  24. try {
  25. const sysConfig = await request.get('/api-teacher/sysConfig/queryByParamName', {
  26. params: {
  27. paramName: 'video_lesson_service_fee'
  28. }
  29. })
  30. createState.rate = sysConfig.data.paramValue
  31. } catch { }
  32. },
  33. render() {
  34. return (
  35. <div class={styles['video-create']}>
  36. {createState.active <= 2 ? <Grid border={false} style={{ paddingTop: '15px' }} direction="horizontal" columnNum="2">
  37. <GridItem v-slots={{
  38. default: () => (
  39. <>
  40. <Icon name={nameActive} size={38} />
  41. <span class={[styles.gridName, createState.active >= 1 ? styles.active : null]}>课程信息</span>
  42. </>
  43. )
  44. }} />
  45. <GridItem v-slots={{
  46. default: () => (
  47. <>
  48. <Icon name={createState.active === 2 ? educationActive : education} size={38} />
  49. <span class={[styles.gridName, createState.active === 2 ? styles.active : null]}>课程内容</span>
  50. </>
  51. )
  52. }} />
  53. </Grid> : null}
  54. {/* 课程信息 */}
  55. {createState.active === 1 ? <>
  56. <ClassInfo />
  57. </> : null}
  58. {/* 课程内容 */}
  59. {createState.active === 2 ? <>
  60. <ClassContent />
  61. </> : null}
  62. {/* 预览 */}
  63. {createState.active === 3 ? <>
  64. <CreateSubmit />
  65. </> : null}
  66. </div>
  67. )
  68. }
  69. })