index.tsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { defineComponent, onMounted, ref } from 'vue';
  2. import styles from './index.module.less';
  3. import { NTabPane, NTabs } from 'naive-ui';
  4. import ShareResources from './components/share-resources';
  5. import MyResources from './components/my-resources';
  6. import MyCollect from './components/my-collect';
  7. import { eventGlobal } from '/src/utils';
  8. export default defineComponent({
  9. name: 'student-studentList',
  10. setup() {
  11. const tab = ref('myResources');
  12. onMounted(() => {
  13. eventGlobal.on('teacher-guideInfo', (name: string) => {
  14. if (name === 'natural-resources') {
  15. eventGlobal.emit('natural-resources-guide', tab.value);
  16. }
  17. });
  18. });
  19. return () => (
  20. <div class={styles.listWrap}>
  21. <NTabs
  22. defaultValue="myResources"
  23. paneClass={styles.paneTitle}
  24. justifyContent="center"
  25. // animated
  26. paneWrapperClass={styles.paneWrapperContainer}
  27. onUpdate:value={(val: any) => {
  28. tab.value = val;
  29. }}
  30. v-model:value={tab.value}>
  31. <NTabPane
  32. name="myResources"
  33. tab="我的资源"
  34. // displayDirective="show:lazy"
  35. >
  36. <MyResources />
  37. </NTabPane>
  38. <NTabPane
  39. name="shareResources"
  40. tab="共享资源"
  41. v-slots={{
  42. tab: () => <span id="shareResources-0">共享资源</span>
  43. }}>
  44. <ShareResources />
  45. </NTabPane>
  46. <NTabPane
  47. name="myCollect"
  48. tab="我的收藏"
  49. // displayDirective="show:lazy"
  50. >
  51. <MyCollect />
  52. </NTabPane>
  53. </NTabs>
  54. </div>
  55. );
  56. }
  57. });