|
@@ -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>
|
|
|
</>
|
|
|
)}
|