index.tsx 978 B

12345678910111213141516171819202122232425262728293031323334
  1. import { defineComponent, ref } from 'vue';
  2. import styles from './index.module.less';
  3. import popBox from './select_courseware_box.png';
  4. import popClose from './selce_courseware_close.png';
  5. export default defineComponent({
  6. name: 'SelectCoursewarePop',
  7. props: {
  8. list: {
  9. type: Array,
  10. default: () => []
  11. }
  12. },
  13. emits: ['close', 'select'],
  14. setup(props, { emit }) {
  15. return () => (
  16. <div class={styles.popBox} onClick={(e: Event) => e.stopPropagation()}>
  17. <div class={styles.popBody}>
  18. <img class={styles.popBg} src={popBox} />
  19. <img class={styles.popClose} src={popClose} onClick={(e: Event) => {
  20. emit('close');
  21. }} />
  22. <ul class={styles.list}>
  23. {props.list.map((item: any, index: number) => {
  24. return (
  25. <li onClick={() => emit('select', item)}>{item.name}</li>
  26. );
  27. })}
  28. </ul>
  29. </div>
  30. </div>
  31. );
  32. }
  33. });