Browse Source

老师端添加声部搜索

lex 2 năm trước cách đây
mục cha
commit
35acf796f5

+ 48 - 25
src/views/live-class/index.tsx

@@ -45,29 +45,48 @@ export default defineComponent({
     } catch {
       //
     }
-    // 判断是否在缓存
-    const subjects: any = useSubjectId(SubjectEnum.LIVE)
-    if (subjects.id) {
-      this.params.subjectId = Number(subjects.id)
-      this.params.subjectName = subjects.name
+
+    if (state.platformType === 'TEACHER') {
+      const users = state.user.data
+      this.params.subjectId = users.defaultSubject
+      this.params.subjectName = users.defaultSubjectName
     } else {
-      const list = this.subjectList
-      const subjectIds = state.user.data?.subjectId || ''
-      const subjectId = subjectIds ? Number(subjectIds.split(',')[0]) : null
-      list.forEach((subject: any) => {
-        const child = subject.subjects || []
-        child.forEach((sub: any) => {
-          if (sub.id === Number(subjectId)) {
-            this.params.subjectId = sub.id
-            this.params.subjectName = sub.name
-          }
+      // 判断是否在缓存
+      const subjects: any = useSubjectId(SubjectEnum.LIVE)
+      if (subjects.id) {
+        this.params.subjectId = Number(subjects.id)
+        this.params.subjectName = subjects.name
+      } else {
+        const list = this.subjectList
+        const subjectIds = state.user.data?.subjectId || ''
+        const subjectId = subjectIds ? Number(subjectIds.split(',')[0]) : null
+        list.forEach((subject: any) => {
+          const child = subject.subjects || []
+          child.forEach((sub: any) => {
+            if (sub.id === Number(subjectId)) {
+              this.params.subjectId = sub.id
+              this.params.subjectName = sub.name
+            }
+          })
         })
-      })
+      }
     }
     this.getList()
     useEventTracking('直播课')
   },
   methods: {
+    // 设置默认声部
+    async setDefaultSubject(subjectId: any) {
+      try {
+        await request.post('/api-teacher/teacher/defaultSubject', {
+          params: {
+            subjectId
+          }
+        })
+      } catch {
+        //
+      }
+    },
     onSort() {
       this.params.page = 1
       this.list = []
@@ -75,16 +94,20 @@ export default defineComponent({
       this.loading = false
       this.finished = false
       this.searchStatus = false
-      if (this.params.subjectId) {
-        useSubjectId(
-          SubjectEnum.LIVE,
-          JSON.stringify({
-            id: this.params.subjectId,
-            name: this.params.subjectName
-          }),
-          'set'
-        )
+      if (state.platformType === 'TEACHER') {
+        this.setDefaultSubject(this.params.subjectId)
+      } else {
+        this.params.subjectId &&
+          useSubjectId(
+            SubjectEnum.LIVE,
+            JSON.stringify({
+              id: this.params.subjectId,
+              name: this.params.subjectName
+            }),
+            'set'
+          )
       }
+
       this.getList()
     },
     onSearch(value: string) {

+ 78 - 33
src/views/music/album/index.tsx

@@ -35,27 +35,40 @@ export default defineComponent({
       null
     )
 
-    const subjects: any = useSubjectId(SubjectEnum.SEARCH)
-    // 判断是否已有数据
-    if (!subjects.id) {
+    const teacherDetaultSubject = ref({
+      id: '',
+      name: ''
+    })
+    if (baseState.platformType === 'TEACHER') {
       const users = baseState.user.data
-      const subjectId = users.subjectId
-        ? Number(users.subjectId.split(',')[0])
-        : ''
-      const subjectName = users.subjectName
-        ? users.subjectName.split(',')[0]
-        : ''
-      if (subjectId) {
-        useSubjectId(
-          SubjectEnum.SEARCH,
-          JSON.stringify({
-            id: subjectId,
-            name: subjectName
-          }),
-          'set'
-        )
+      teacherDetaultSubject.value = {
+        name: users.defaultSubjectName || '',
+        id: users.defaultSubject || ''
+      }
+    } else {
+      const subjects: any = useSubjectId(SubjectEnum.SEARCH)
+      // 判断是否已有数据
+      if (!subjects.id) {
+        const users = baseState.user.data
+        const subjectId = users.subjectId
+          ? Number(users.subjectId.split(',')[0])
+          : ''
+        const subjectName = users.subjectName
+          ? users.subjectName.split(',')[0]
+          : ''
+        if (subjectId) {
+          useSubjectId(
+            SubjectEnum.SEARCH,
+            JSON.stringify({
+              id: subjectId,
+              name: subjectName
+            }),
+            'set'
+          )
+        }
       }
     }
+
     const router = useRouter()
     const route = useRoute()
     const tempParams: any = {}
@@ -66,8 +79,12 @@ export default defineComponent({
     }
     tempParams.myself = false
     if (!hideSearch) {
-      const getSubject: any = useSubjectId(SubjectEnum.SEARCH)
-      tempParams.subjectIds = getSubject.id
+      if (baseState.platformType === 'TEACHER') {
+        tempParams.subjectIds = teacherDetaultSubject.value.id
+      } else {
+        const getSubject: any = useSubjectId(SubjectEnum.SEARCH)
+        tempParams.subjectIds = getSubject.id
+      }
     }
     const params = reactive({
       search: (route.query.search as string) || '',
@@ -107,7 +124,7 @@ export default defineComponent({
           }
         })
         if (data.value) {
-          let result = (data.value?.rows || []).concat(res.data.rows || [])
+          const result = (data.value?.rows || []).concat(res.data.rows || [])
           data.value.rows = result
         }
         data.value = data.value || res.data
@@ -119,6 +136,19 @@ export default defineComponent({
       loading.value = false
     }
 
+    // 设置默认声部
+    const setDefaultSubject = async (subjectId: any) => {
+      try {
+        await request.post('/api-teacher/teacher/defaultSubject', {
+          params: {
+            subjectId
+          }
+        })
+      } catch {
+        //
+      }
+    }
+
     const onComfirm = tags => {
       const d = Object.values(tags).flat().filter(Boolean).join(',')
       params.albumTagIds = d
@@ -131,17 +161,26 @@ export default defineComponent({
     const onComfirmSubject = item => {
       params.page = 1
       params.subjectIds = item.id
-      subject.id = item.id
-      subject.name = item.name
+
       data.value = null
-      useSubjectId(
-        SubjectEnum.SEARCH,
-        JSON.stringify({
-          id: item.id,
-          name: item.name
-        }),
-        'set'
-      )
+      if (baseState.platformType === 'TEACHER') {
+        teacherDetaultSubject.value = {
+          name: item.name,
+          id: item.id
+        }
+        setDefaultSubject(item.id)
+      } else {
+        subject.id = item.id
+        subject.name = item.name
+        useSubjectId(
+          SubjectEnum.SEARCH,
+          JSON.stringify({
+            id: item.id,
+            name: item.name
+          }),
+          'set'
+        )
+      }
       FetchList()
       subject.show = false
     }
@@ -184,7 +223,9 @@ export default defineComponent({
                         class={styles.label}
                         onClick={() => (subject.show = true)}
                       >
-                        {subject.name}
+                        {baseState.platformType === 'TEACHER'
+                          ? teacherDetaultSubject.value.name
+                          : subject.name}
                         <Icon
                           classPrefix="iconfont"
                           name="down"
@@ -265,7 +306,11 @@ export default defineComponent({
           >
             <SelectSubject
               type="ALBUM"
-              searchParams={subject}
+              searchParams={
+                baseState.platformType === 'TEACHER'
+                  ? teacherDetaultSubject.value
+                  : subject
+              }
               onComfirm={onComfirmSubject}
             />
           </Popup>

+ 77 - 32
src/views/music/list/index.tsx

@@ -59,25 +59,38 @@ export default defineComponent({
       null
     )
 
-    const subjects: any = useSubjectId(SubjectEnum.SEARCH)
-    // 判断是否已有数据
-    if (!subjects.id) {
+    const teacherDetaultSubject = ref({
+      id: '',
+      name: ''
+    })
+    if (baseState.platformType === 'TEACHER') {
+      // defaultSubject
       const users = baseState.user.data
-      const subjectId = users.subjectId
-        ? Number(users.subjectId.split(',')[0])
-        : ''
-      const subjectName = users.subjectName
-        ? users.subjectName.split(',')[0]
-        : ''
-      if (subjectId) {
-        useSubjectId(
-          SubjectEnum.SEARCH,
-          JSON.stringify({
-            id: subjectId,
-            name: subjectName
-          }),
-          'set'
-        )
+      teacherDetaultSubject.value = {
+        name: users.defaultSubjectName || '',
+        id: users.defaultSubject || ''
+      }
+    } else {
+      const subjects: any = useSubjectId(SubjectEnum.SEARCH)
+      // 判断是否已有数据
+      if (!subjects.id) {
+        const users = baseState.user.data
+        const subjectId = users.subjectId
+          ? Number(users.subjectId.split(',')[0])
+          : ''
+        const subjectName = users.subjectName
+          ? users.subjectName.split(',')[0]
+          : ''
+        if (subjectId) {
+          useSubjectId(
+            SubjectEnum.SEARCH,
+            JSON.stringify({
+              id: subjectId,
+              name: subjectName
+            }),
+            'set'
+          )
+        }
       }
     }
 
@@ -93,8 +106,12 @@ export default defineComponent({
     const exquisiteFlag = ref(false)
     // 判断是否在搜索页面用过
     if (!hideSearch) {
-      const getSubject: any = useSubjectId(SubjectEnum.SEARCH)
-      tempParams.subjectIds = getSubject.id
+      if (baseState.platformType === 'TEACHER') {
+        tempParams.subjectIds = teacherDetaultSubject.value.id
+      } else {
+        const getSubject: any = useSubjectId(SubjectEnum.SEARCH)
+        tempParams.subjectIds = getSubject.id
+      }
 
       const getMusic: any = useSubjectId(SubjectEnum.MUSIC_FREE)
       exquisiteFlag.value = getMusic.chargeType
@@ -163,6 +180,19 @@ export default defineComponent({
       loading.value = false
     }
 
+    // 设置默认声部
+    const setDefaultSubject = async (subjectId: any) => {
+      try {
+        await request.post('/api-teacher/teacher/defaultSubject', {
+          params: {
+            subjectId
+          }
+        })
+      } catch {
+        //
+      }
+    }
+
     const onComfirm = tags => {
       const tempTags: any = {}
       // 单独处理乐谱类型
@@ -184,17 +214,25 @@ export default defineComponent({
     const onComfirmSubject = item => {
       params.page = 1
       params.subjectIds = item.id
-      subject.id = item.id
-      subject.name = item.name
       data.value = null
-      useSubjectId(
-        SubjectEnum.SEARCH,
-        JSON.stringify({
-          id: item.id,
-          name: item.name
-        }),
-        'set'
-      )
+      if (baseState.platformType === 'TEACHER') {
+        teacherDetaultSubject.value = {
+          name: item.name,
+          id: item.id
+        }
+        setDefaultSubject(item.id)
+      } else {
+        subject.id = item.id
+        subject.name = item.name
+        useSubjectId(
+          SubjectEnum.SEARCH,
+          JSON.stringify({
+            id: item.id,
+            name: item.name
+          }),
+          'set'
+        )
+      }
 
       FetchList()
       subject.show = false
@@ -263,7 +301,10 @@ export default defineComponent({
                         class={styles.label}
                         onClick={() => (subject.show = true)}
                       >
-                        {subject.name}
+                        {baseState.platformType === 'TEACHER'
+                          ? teacherDetaultSubject.value.name
+                          : subject.name}
+
                         <Icon
                           classPrefix="iconfont"
                           name="down"
@@ -367,7 +408,11 @@ export default defineComponent({
           >
             <SelectSubject
               type="MUSIC"
-              searchParams={subject}
+              searchParams={
+                baseState.platformType === 'TEACHER'
+                  ? teacherDetaultSubject.value
+                  : subject
+              }
               onComfirm={onComfirmSubject}
             />
           </Popup>

+ 1 - 1
src/views/music/search/select-subject.tsx

@@ -41,7 +41,7 @@ export default defineComponent({
     }
   },
   mounted() {
-    console.log(this.subject)
+    console.log(this.subject, '12')
     this.subject = {
       name: this.searchParams.id ? this.searchParams.name : '全部声部',
       id: this.searchParams.id || ''

+ 46 - 25
src/views/video-class/index.tsx

@@ -47,24 +47,30 @@ export default defineComponent({
       //
     }
 
-    // 判断是否在缓存
-    const subjects: any = useSubjectId(SubjectEnum.VIDEO)
-    if (subjects.id) {
-      this.params.lessonSubject = Number(subjects.id)
-      this.params.subjectName = subjects.name
+    if (state.platformType === 'TEACHER') {
+      const users = state.user.data
+      this.params.lessonSubject = users.defaultSubject
+      this.params.subjectName = users.defaultSubjectName
     } else {
-      const list = this.subjectList
-      const subjectIds = state.user.data?.subjectId || ''
-      const subjectId = subjectIds ? Number(subjectIds.split(',')[0]) : null
-      list.forEach((subject: any) => {
-        const child = subject.subjects || []
-        child.forEach((sub: any) => {
-          if (sub.id === Number(subjectId)) {
-            this.params.lessonSubject = sub.id
-            this.params.subjectName = sub.name
-          }
+      // 判断是否在缓存
+      const subjects: any = useSubjectId(SubjectEnum.VIDEO)
+      if (subjects.id) {
+        this.params.lessonSubject = Number(subjects.id)
+        this.params.subjectName = subjects.name
+      } else {
+        const list = this.subjectList
+        const subjectIds = state.user.data?.subjectId || ''
+        const subjectId = subjectIds ? Number(subjectIds.split(',')[0]) : null
+        list.forEach((subject: any) => {
+          const child = subject.subjects || []
+          child.forEach((sub: any) => {
+            if (sub.id === Number(subjectId)) {
+              this.params.lessonSubject = sub.id
+              this.params.subjectName = sub.name
+            }
+          })
         })
-      })
+      }
     }
     this.listLoading = false
     this.getList()
@@ -116,6 +122,18 @@ export default defineComponent({
         this.listLoading = false
       }
     },
+    // 设置默认声部
+    async setDefaultSubject(subjectId: any) {
+      try {
+        await request.post('/api-teacher/teacher/defaultSubject', {
+          params: {
+            subjectId
+          }
+        })
+      } catch {
+        //
+      }
+    },
     onSort() {
       this.params.page = 1
       this.list = []
@@ -123,15 +141,18 @@ export default defineComponent({
       this.loading = false
       this.finished = false
       this.searchStatus = false
-      if (this.params.lessonSubject) {
-        useSubjectId(
-          SubjectEnum.VIDEO,
-          JSON.stringify({
-            id: this.params.lessonSubject,
-            name: this.params.subjectName
-          }),
-          'set'
-        )
+      if (state.platformType === 'TEACHER') {
+        this.setDefaultSubject(this.params.lessonSubject)
+      } else {
+        this.params.lessonSubject &&
+          useSubjectId(
+            SubjectEnum.VIDEO,
+            JSON.stringify({
+              id: this.params.lessonSubject,
+              name: this.params.subjectName
+            }),
+            'set'
+          )
       }
       this.getList()
     },