Explorar o código

Update index.tsx

lex-xin hai 9 meses
pai
achega
4150a50234
Modificáronse 1 ficheiros con 103 adicións e 84 borrados
  1. 103 84
      src/tenant/music/train-tool/index.tsx

+ 103 - 84
src/tenant/music/train-tool/index.tsx

@@ -263,7 +263,7 @@ export default defineComponent({
 
     const getSelectCondition = async (type: string) => {
       // 判断是否已经查询过数据
-      if(Object.keys(searchObj.value[type]).length > 0) {
+      if (Object.keys(searchObj.value[type]).length > 0) {
         return
       }
       const { data } = await request.post(
@@ -309,9 +309,9 @@ export default defineComponent({
       state.isError = false
       const tempParams = {
         ...params,
-      //   level: '',
-      // type: '',
-      // subjectId: params.subjectId
+        //   level: '',
+        // type: '',
+        // subjectId: params.subjectId
         albumId: state.details.id || null,
         subjectType: state.activeTab
       } as any
@@ -659,11 +659,18 @@ export default defineComponent({
                         pagination={{ clickable: true }}
                         // onTransitionEnd={(swiper: any) => {}} onSlideChange
                         onSlideChange={(swiper: any) => {
-                          params.subjectId = null;
-                          params.keyword = null;
+                          params.subjectId = null
+                          params.keyword = null
                           params.level = ''
                           params.type = ''
                           params.courseTypeCode = ''
+                          searchObj.value = {
+                            COURSEWARE: {},
+                            SUBJECT: {},
+                            MUSIC: {},
+                            ENSEMBLE: {}
+                          }
+                          activeTypeParams()
                           state.details = state.albumList[swiper.activeIndex]
                           // 等tab渲染完了之后再切换 不然tab会自动重新赋值
                           nextTick(() => {
@@ -753,8 +760,8 @@ export default defineComponent({
                     shrink
                     v-model:active={state.activeTab}
                     onClick-tab={val => {
-                      params.subjectId = null;
-                      params.keyword = null;
+                      params.subjectId = null
+                      params.keyword = null
                       params.level = ''
                       params.type = ''
                       params.courseTypeCode = ''
@@ -780,7 +787,11 @@ export default defineComponent({
                     )}
                   </Tabs>
                   <Search
-                    placeholder={state.activeTab === 'COURSEWARE' ? '请输入教材关键词' : '请输入曲谱关键词'}
+                    placeholder={
+                      state.activeTab === 'COURSEWARE'
+                        ? '请输入教材关键词'
+                        : '请输入曲谱关键词'
+                    }
                     class={styles.search}
                     onSearch={onSearch}
                     type="tenant"
@@ -792,8 +803,11 @@ export default defineComponent({
                               <DropdownItem
                                 teleport="body"
                                 onOpen={() => {
-                                  const targetElement: any = document.querySelector('.musicList')
-                                  const targetPosition = targetElement.getBoundingClientRect().top + window.scrollY;
+                                  const targetElement: any =
+                                    document.querySelector('.musicList')
+                                  const targetPosition =
+                                    targetElement.getBoundingClientRect().top +
+                                    window.scrollY
                                   // 设置距离顶部的像素值
                                   window.scrollTo({
                                     top: targetPosition - state.heightV + 1,
@@ -809,9 +823,12 @@ export default defineComponent({
                             ) : (
                               <DropdownItem
                                 onOpen={() => {
-                                  const targetElement: any = document.querySelector('.musicList')
-                                  const targetPosition = targetElement.getBoundingClientRect().top + window.scrollY;
-  
+                                  const targetElement: any =
+                                    document.querySelector('.musicList')
+                                  const targetPosition =
+                                    targetElement.getBoundingClientRect().top +
+                                    window.scrollY
+
                                   window.scrollTo({
                                     top: targetPosition - state.heightV + 1,
                                     behavior: 'smooth'
@@ -836,7 +853,8 @@ export default defineComponent({
                                   }}
                                 >
                                   {searchObj.value[state.activeTab].subjects &&
-                                    searchObj.value[state.activeTab].subjects.length > 0 && (
+                                    searchObj.value[state.activeTab].subjects
+                                      .length > 0 && (
                                       <>
                                         <div class={styles.searchTitle}>
                                           声部
@@ -848,34 +866,34 @@ export default defineComponent({
                                             styles['organ-radio']
                                           ]}
                                         >
-                                          {searchObj.value[state.activeTab].subjects.map(
-                                            (subject: any) => {
-                                              const isActive =
-                                                subject.id === params.subjectId
-                                              const type = isActive
-                                                ? 'primary'
-                                                : 'default'
-                                              return (
-                                                <Tag
-                                                  size="large"
-                                                  plain={isActive}
-                                                  type={type}
-                                                  round
-                                                  onClick={() => {
-                                                    params.subjectId =
-                                                      subject.id
-                                                  }}
-                                                >
-                                                  {subject.name}
-                                                </Tag>
-                                              )
-                                            }
-                                          )}
+                                          {searchObj.value[
+                                            state.activeTab
+                                          ].subjects.map((subject: any) => {
+                                            const isActive =
+                                              subject.id === params.subjectId
+                                            const type = isActive
+                                              ? 'primary'
+                                              : 'default'
+                                            return (
+                                              <Tag
+                                                size="large"
+                                                plain={isActive}
+                                                type={type}
+                                                round
+                                                onClick={() => {
+                                                  params.subjectId = subject.id
+                                                }}
+                                              >
+                                                {subject.name}
+                                              </Tag>
+                                            )
+                                          })}
                                         </div>
                                       </>
                                     )}
                                   {searchObj.value[state.activeTab].levelList &&
-                                    searchObj.value[state.activeTab].levelList.length > 0 && (
+                                    searchObj.value[state.activeTab].levelList
+                                      .length > 0 && (
                                       <>
                                         <div class={styles.searchTitle}>
                                           级别
@@ -887,33 +905,34 @@ export default defineComponent({
                                             styles['organ-radio']
                                           ]}
                                         >
-                                          {searchObj.value[state.activeTab].levelList.map(
-                                            (subject: any) => {
-                                              const isActive =
-                                                subject.id === params.level
-                                              const type = isActive
-                                                ? 'primary'
-                                                : 'default'
-                                              return (
-                                                <Tag
-                                                  size="large"
-                                                  plain={isActive}
-                                                  type={type}
-                                                  round
-                                                  onClick={() => {
-                                                    params.level = subject.id
-                                                  }}
-                                                >
-                                                  {subject.value}
-                                                </Tag>
-                                              )
-                                            }
-                                          )}
+                                          {searchObj.value[
+                                            state.activeTab
+                                          ].levelList.map((subject: any) => {
+                                            const isActive =
+                                              subject.id === params.level
+                                            const type = isActive
+                                              ? 'primary'
+                                              : 'default'
+                                            return (
+                                              <Tag
+                                                size="large"
+                                                plain={isActive}
+                                                type={type}
+                                                round
+                                                onClick={() => {
+                                                  params.level = subject.id
+                                                }}
+                                              >
+                                                {subject.value}
+                                              </Tag>
+                                            )
+                                          })}
                                         </div>
                                       </>
                                     )}
                                   {searchObj.value[state.activeTab].typeList &&
-                                    searchObj.value[state.activeTab].typeList.length > 0 && (
+                                    searchObj.value[state.activeTab].typeList
+                                      .length > 0 && (
                                       <>
                                         <div class={styles.searchTitle}>
                                           类型
@@ -925,28 +944,28 @@ export default defineComponent({
                                             styles['organ-radio']
                                           ]}
                                         >
-                                          {searchObj.value[state.activeTab].typeList.map(
-                                            (subject: any) => {
-                                              const isActive =
-                                                subject.id === params.type
-                                              const type = isActive
-                                                ? 'primary'
-                                                : 'default'
-                                              return (
-                                                <Tag
-                                                  size="large"
-                                                  plain={isActive}
-                                                  type={type}
-                                                  round
-                                                  onClick={() => {
-                                                    params.type = subject.id
-                                                  }}
-                                                >
-                                                  {subject.value}
-                                                </Tag>
-                                              )
-                                            }
-                                          )}
+                                          {searchObj.value[
+                                            state.activeTab
+                                          ].typeList.map((subject: any) => {
+                                            const isActive =
+                                              subject.id === params.type
+                                            const type = isActive
+                                              ? 'primary'
+                                              : 'default'
+                                            return (
+                                              <Tag
+                                                size="large"
+                                                plain={isActive}
+                                                type={type}
+                                                round
+                                                onClick={() => {
+                                                  params.type = subject.id
+                                                }}
+                                              >
+                                                {subject.value}
+                                              </Tag>
+                                            )
+                                          })}
                                         </div>
                                       </>
                                     )}