index.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { defineComponent, reactive } from 'vue';
  2. import styles from './index.module.less';
  3. import {
  4. NButton,
  5. NDatePicker,
  6. NEmpty,
  7. NModal,
  8. NScrollbar,
  9. NSpace
  10. } from 'naive-ui';
  11. import TrainType from '@/views/attend-class/model/train-type';
  12. import TrainUpdate from '../train-update';
  13. import SelectMusic from '@/views/prepare-lessons/model/select-music';
  14. export default defineComponent({
  15. name: 'train-settings',
  16. emits: ['close'],
  17. setup(props, { emit }) {
  18. const trainForms = reactive({
  19. editStatus: false,
  20. selectMusicStatus: false
  21. });
  22. const list = [
  23. {
  24. id: 22078,
  25. src: 'https://cloud-coach.ks3-cn-beijing.ksyuncs.com/music-sheet-fixed/1675770786664-1.png',
  26. type: 'practice',
  27. name: '彩虹岛',
  28. typeList: ['1-12小节', '速度90', '20分钟']
  29. },
  30. {
  31. id: 22048,
  32. src: 'https://cloud-coach.ks3-cn-beijing.ksyuncs.com/music-sheet-fixed/1675839970286-1.png',
  33. type: 'evaluation',
  34. name: '彩云追月',
  35. typeList: ['入门级', '全部小节', '速度90', '20分钟']
  36. }
  37. ];
  38. return () => (
  39. <div class={styles.trainSettings}>
  40. <div class={styles.searchGroup}>
  41. <NButton onClick={() => (trainForms.selectMusicStatus = true)}>
  42. 添加训练
  43. </NButton>
  44. <div class={styles.datetime}>
  45. <label>截止时间:</label>
  46. <NDatePicker
  47. style={{ width: '200px' }}
  48. value-format="yyyy-MM-dd"
  49. type="date"
  50. clearable
  51. placeholder="请选择截止日期"
  52. />
  53. </div>
  54. </div>
  55. <NScrollbar class={styles.trainList}>
  56. {/* <NEmpty description="暂无训练" /> */}
  57. {list.map((item: any) => (
  58. <TrainType
  59. item={item}
  60. onEdit={() => {
  61. console.log('edit');
  62. trainForms.editStatus = true;
  63. }}
  64. />
  65. ))}
  66. </NScrollbar>
  67. <NSpace class={styles.trainBtnGroup}>
  68. <NButton strong type="default" round onClick={() => emit('close')}>
  69. 取消布置
  70. </NButton>
  71. <NButton strong type="primary" round>
  72. 立即布置
  73. </NButton>
  74. </NSpace>
  75. <NModal
  76. v-model:show={trainForms.editStatus}
  77. class={['modalTitle background', styles.trainEditModal]}
  78. preset="card"
  79. title="训练设置">
  80. <TrainUpdate onClose={() => (trainForms.editStatus = false)} />
  81. </NModal>
  82. <NModal
  83. v-model:show={trainForms.selectMusicStatus}
  84. class={['modalTitle', styles.selectMusicModal]}
  85. preset="card"
  86. title={'选择曲目'}>
  87. <SelectMusic
  88. onSelect={() => {
  89. trainForms.selectMusicStatus = false;
  90. trainForms.editStatus = true;
  91. }}
  92. />
  93. </NModal>
  94. </div>
  95. );
  96. }
  97. });