index.tsx 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { state } from '@/state'
  2. import { ElBadge, ElButton, ElMessage, ElTabPane, ElTabs } from 'element-plus'
  3. import { defineComponent } from 'vue'
  4. import styles from './index.module.less'
  5. import List from './list'
  6. export default defineComponent({
  7. name: 'music-class',
  8. data() {
  9. const musicActiveName = sessionStorage.getItem('musicActiveName')
  10. sessionStorage.removeItem('musicActiveName')
  11. return {
  12. activeName: musicActiveName || 'PASS',
  13. num: {
  14. doing: 0,
  15. pass: 0,
  16. unPass: 0
  17. }
  18. }
  19. },
  20. render() {
  21. return (
  22. <div class={[styles.liveClass, 'relative pb-5']}>
  23. <ElButton
  24. round
  25. type="primary"
  26. class="absolute right-11 top-4 z-10"
  27. onClick={() => {
  28. if (state.user.data?.musicianFlag) {
  29. this.$router.push({
  30. path: '/userInfo/musicOperation'
  31. })
  32. } else {
  33. ElMessage.error('您还未完成音乐人认证,认证后才可创建曲谱')
  34. return
  35. }
  36. }}
  37. >
  38. 新建乐谱
  39. </ElButton>
  40. <ElTabs v-model={this.activeName}>
  41. <ElTabPane label="已上架" name="PASS">
  42. {this.activeName === 'PASS' && (
  43. <List
  44. auditStatus="PASS"
  45. onNumber={(data: any) => {
  46. this.num = data
  47. }}
  48. />
  49. )}
  50. </ElTabPane>
  51. <ElTabPane label="审核中" name="DOING">
  52. {this.activeName === 'DOING' && (
  53. <List
  54. auditStatus="DOING"
  55. onNumber={(data: any) => {
  56. this.num = data
  57. }}
  58. />
  59. )}
  60. </ElTabPane>
  61. <ElTabPane
  62. // label="审核失败"
  63. name="UNPASS"
  64. v-slots={{
  65. label: () => (
  66. <ElBadge
  67. class={styles.badge}
  68. value={this.num.unPass}
  69. hidden={this.num.unPass === 0}
  70. >
  71. 审核失败
  72. </ElBadge>
  73. )
  74. }}
  75. >
  76. {this.activeName === 'UNPASS' && (
  77. <List
  78. auditStatus="UNPASS"
  79. onNumber={(data: any) => {
  80. this.num = data
  81. }}
  82. />
  83. )}
  84. </ElTabPane>
  85. </ElTabs>
  86. </div>
  87. )
  88. }
  89. })