|
@@ -14,11 +14,11 @@ import MSticky from '@/components/m-sticky';
|
|
|
import MHeader from '@/components/m-header';
|
|
|
import { useRoute, useRouter } from 'vue-router';
|
|
|
import MSearch from '@/components/m-search';
|
|
|
-import { Cell, DropdownItem, DropdownMenu, Icon, Image, List, Popup, Tab, Tabs } from 'vant';
|
|
|
+import { Cell, Icon, Image, List, Popup, Tab, Tabs } from 'vant';
|
|
|
import iconPlayer from './images/icon-player.png';
|
|
|
import iconFire from './images/icon-fire.png';
|
|
|
import iconTitleArrow from './images/icon-title-arrow.png';
|
|
|
-import { api_musicSheetCategoriesPage, api_musicSheetPage } from '../co-ai/api';
|
|
|
+import { api_musicSheetPage } from '../co-ai/api';
|
|
|
import { state as baseState } from '@/state';
|
|
|
import request from '@/helpers/request';
|
|
|
import MEmpty from '@/components/m-empty';
|
|
@@ -113,7 +113,7 @@ export default defineComponent({
|
|
|
name: 'hot-music-more',
|
|
|
setup() {
|
|
|
const router = useRouter();
|
|
|
- const route = useRoute()
|
|
|
+ const route = useRoute();
|
|
|
const state = reactive({
|
|
|
background: 'transparent',
|
|
|
loading: false,
|
|
@@ -140,13 +140,13 @@ export default defineComponent({
|
|
|
musicalInstrumentId: ''
|
|
|
},
|
|
|
hotSearch: {
|
|
|
- name: '',
|
|
|
+ name: ''
|
|
|
},
|
|
|
newSearch: {
|
|
|
- name: '',
|
|
|
+ name: ''
|
|
|
},
|
|
|
recommendSearch: {
|
|
|
- name: '',
|
|
|
+ name: ''
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -155,7 +155,7 @@ export default defineComponent({
|
|
|
rows: 20,
|
|
|
status: 1,
|
|
|
sortType: 2, // 默认热度排序
|
|
|
- keyword: '', // 关键词
|
|
|
+ keyword: '' // 关键词
|
|
|
});
|
|
|
|
|
|
const data = reactive({
|
|
@@ -167,16 +167,16 @@ export default defineComponent({
|
|
|
});
|
|
|
|
|
|
const searchValue = computed(() => {
|
|
|
- if(state.tabActive === 'RECOMMEND') {
|
|
|
- return state.recommendSearch.name
|
|
|
- } else if(state.tabActive === 'HOT') {
|
|
|
- return state.hotSearch.name
|
|
|
- } else if(state.tabActive === 'NEW') {
|
|
|
- return state.newSearch.name
|
|
|
+ if (state.tabActive === 'RECOMMEND') {
|
|
|
+ return state.recommendSearch.name;
|
|
|
+ } else if (state.tabActive === 'HOT') {
|
|
|
+ return state.hotSearch.name;
|
|
|
+ } else if (state.tabActive === 'NEW') {
|
|
|
+ return state.newSearch.name;
|
|
|
} else {
|
|
|
- return state.allSearch.name
|
|
|
+ return state.allSearch.name;
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
|
|
|
let isClick = false;
|
|
|
const getMusicList = async () => {
|
|
@@ -188,15 +188,15 @@ export default defineComponent({
|
|
|
let params = {
|
|
|
...result,
|
|
|
searchType: state.tabActive
|
|
|
- } as any
|
|
|
- if(state.tabActive === 'RECOMMEND') {
|
|
|
+ } as any;
|
|
|
+ if (state.tabActive === 'RECOMMEND') {
|
|
|
params = Object.assign(params, state.recommendSearch);
|
|
|
- } else if(state.tabActive === 'HOT') {
|
|
|
+ } else if (state.tabActive === 'HOT') {
|
|
|
params = Object.assign(params, state.hotSearch);
|
|
|
- } else if(state.tabActive === 'NEW') {
|
|
|
+ } else if (state.tabActive === 'NEW') {
|
|
|
params = Object.assign(params, state.newSearch);
|
|
|
} else {
|
|
|
- params.name = state.allSearch.name
|
|
|
+ params.name = state.allSearch.name;
|
|
|
params = Object.assign(params, state.allSearch);
|
|
|
}
|
|
|
const res = await api_musicSheetPage(params);
|
|
@@ -248,24 +248,9 @@ export default defineComponent({
|
|
|
state.musics = [];
|
|
|
state.finished = false;
|
|
|
getMusicList();
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
const onDetail = (item: any) => {
|
|
|
- // const src = `${vaildMusicScoreUrl()}/instrument/?id=${
|
|
|
- // item?.id
|
|
|
- // }&showGuide=true&modelType=practise`;
|
|
|
-
|
|
|
- // postMessage({
|
|
|
- // api: 'openAccompanyWebView',
|
|
|
- // content: {
|
|
|
- // url: src,
|
|
|
- // orientation: 0,
|
|
|
- // isHideTitle: true,
|
|
|
- // statusBarTextColor: false,
|
|
|
- // isOpenLight: true,
|
|
|
- // c_orientation: 0 // 0 横屏 1 竖屏
|
|
|
- // }
|
|
|
- // });
|
|
|
state.item = item;
|
|
|
state.musicDetailPopup = true;
|
|
|
};
|
|
@@ -292,7 +277,6 @@ export default defineComponent({
|
|
|
data.childSelectId = null;
|
|
|
let children: any;
|
|
|
let columnName = '';
|
|
|
- console.log(item, 'item');
|
|
|
if (item.children) {
|
|
|
children = [
|
|
|
{
|
|
@@ -312,8 +296,6 @@ export default defineComponent({
|
|
|
} else {
|
|
|
data.selectParents = {};
|
|
|
}
|
|
|
-
|
|
|
- // onSearch();
|
|
|
};
|
|
|
|
|
|
const formatUsedNum = (num: number) => {
|
|
@@ -326,9 +308,9 @@ export default defineComponent({
|
|
|
};
|
|
|
|
|
|
// 判断是否有数据
|
|
|
- const isSearch = computed(() => {
|
|
|
- return data.tags.length > 0 ? true : false;
|
|
|
- });
|
|
|
+ // const isSearch = computed(() => {
|
|
|
+ // return data.tags.length > 0 ? true : false;
|
|
|
+ // });
|
|
|
|
|
|
const handleGoto = (
|
|
|
item: any,
|
|
@@ -366,9 +348,9 @@ export default defineComponent({
|
|
|
};
|
|
|
|
|
|
onMounted(async () => {
|
|
|
- if(route.query.type) {
|
|
|
- state.tabActive = route.query.type
|
|
|
- state.isAllStatus = false
|
|
|
+ if (route.query.type) {
|
|
|
+ state.tabActive = route.query.type;
|
|
|
+ state.isAllStatus = false;
|
|
|
}
|
|
|
// 场景
|
|
|
const tempAudio = Object.keys(audioPlayType).map(key => {
|
|
@@ -382,15 +364,11 @@ export default defineComponent({
|
|
|
state.loading = true;
|
|
|
|
|
|
await getTags();
|
|
|
- // await getSubjecList();
|
|
|
- // await getMusicSheetCategories();
|
|
|
await getMusicTagTree();
|
|
|
getMusicList();
|
|
|
});
|
|
|
return () => (
|
|
|
- // sortType: 2
|
|
|
<div
|
|
|
- id="hotMusicMore"
|
|
|
class={[
|
|
|
styles.hotMusicMore,
|
|
|
browser().isTablet ? styles.hotMusicMoreTablet : ''
|
|
@@ -420,18 +398,19 @@ export default defineComponent({
|
|
|
shrink
|
|
|
onClickTab={() => {
|
|
|
if (state.tabActive === '') {
|
|
|
- if(state.isAllStatus) {
|
|
|
- state.searchPopup = !state.searchPopup
|
|
|
+ if (state.isAllStatus) {
|
|
|
+ state.searchPopup = !state.searchPopup;
|
|
|
+
|
|
|
+ if (state.searchPopup) {
|
|
|
+ }
|
|
|
} else {
|
|
|
state.isAllStatus = true;
|
|
|
- onSearch()
|
|
|
+ onSearch();
|
|
|
}
|
|
|
} else {
|
|
|
state.isAllStatus = false;
|
|
|
- onSearch()
|
|
|
+ onSearch();
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}}>
|
|
|
<Tab name="">
|
|
|
{{
|
|
@@ -459,21 +438,19 @@ export default defineComponent({
|
|
|
</MHeader>
|
|
|
|
|
|
<MSearch
|
|
|
- // background={state.background}
|
|
|
v-model:modelValue={searchValue.value}
|
|
|
background={'transparent'}
|
|
|
onSearch={(val: any) => {
|
|
|
- // musicForms.keyword = val;
|
|
|
- if(state.tabActive === 'RECOMMEND') {
|
|
|
- state.recommendSearch.name = val
|
|
|
- } else if(state.tabActive === 'HOT') {
|
|
|
- state.hotSearch.name = val
|
|
|
- } else if(state.tabActive === 'NEW') {
|
|
|
- state.newSearch.name = val
|
|
|
+ if (state.tabActive === 'RECOMMEND') {
|
|
|
+ state.recommendSearch.name = val;
|
|
|
+ } else if (state.tabActive === 'HOT') {
|
|
|
+ state.hotSearch.name = val;
|
|
|
+ } else if (state.tabActive === 'NEW') {
|
|
|
+ state.newSearch.name = val;
|
|
|
} else {
|
|
|
- state.allSearch.name = val
|
|
|
+ state.allSearch.name = val;
|
|
|
}
|
|
|
- onSearch()
|
|
|
+ onSearch();
|
|
|
}}></MSearch>
|
|
|
</MSticky>
|
|
|
<List
|
|
@@ -545,132 +522,134 @@ export default defineComponent({
|
|
|
)}
|
|
|
|
|
|
<Teleport to={'body'}>
|
|
|
- <div class={styles.searchBodySection}>
|
|
|
- <Popup position="top" round v-model:show={state.searchPopup}>
|
|
|
- <div class={styles.searchContainer}>
|
|
|
- <div class={styles.searchHead}>
|
|
|
- <span
|
|
|
- class={styles.cancel}
|
|
|
- onClick={() => (state.searchPopup = false)}>
|
|
|
- 取消
|
|
|
- </span>
|
|
|
- <span>筛选</span>
|
|
|
- <span
|
|
|
- class={styles.confirm}
|
|
|
- onClick={() => {
|
|
|
- state.allSearch.bookVersionId =
|
|
|
- data.childSelectId || data.tagActiveId;
|
|
|
- state.allSearch.audioPlayTypes = state.sAPT
|
|
|
- ? state.sAPT === 'PLAY_SING'
|
|
|
- ? ['SING', 'PLAY']
|
|
|
- : [state.sAPT]
|
|
|
- : [];
|
|
|
- state.allSearch.musicTagIds = state.sNt;
|
|
|
- state.searchPopup = false;
|
|
|
- onSearch()
|
|
|
- }}>
|
|
|
- 确定
|
|
|
- </span>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class={styles.changeSubjectContainer}>
|
|
|
- {state.newTags.length > 0 && (
|
|
|
- <>
|
|
|
- <div class={styles.title}>标签</div>
|
|
|
- <div class={styles.subjectContainer}>
|
|
|
- {state.newTags.map((subject: any) => (
|
|
|
- <div
|
|
|
- class={[
|
|
|
- styles.subjectItem,
|
|
|
- styles.subjectItem4,
|
|
|
- subject.id === state.sNt && styles.active
|
|
|
- ]}
|
|
|
- onClick={() => {
|
|
|
- state.sNt = subject.id;
|
|
|
- }}>
|
|
|
- {subject.name}
|
|
|
- </div>
|
|
|
- ))}
|
|
|
- </div>
|
|
|
- </>
|
|
|
- )}
|
|
|
-
|
|
|
- {state.audioPlayTypeList.length > 0 && (
|
|
|
- <>
|
|
|
- <div class={styles.title}>场景</div>
|
|
|
- <div class={styles.subjectContainer}>
|
|
|
- {state.audioPlayTypeList.map((subject: any) => (
|
|
|
- <div
|
|
|
- class={[
|
|
|
- styles.subjectItem,
|
|
|
- styles.subjectItem4,
|
|
|
- subject.id === state.sAPT && styles.active
|
|
|
- ]}
|
|
|
- onClick={() => {
|
|
|
- state.sAPT = subject.id;
|
|
|
- }}>
|
|
|
- {subject.name}
|
|
|
+ <div class={[styles.searchBodySection]}>
|
|
|
+ <Popup position="top" round v-model:show={state.searchPopup}>
|
|
|
+ <div class={styles.searchContainer}>
|
|
|
+ <div class={styles.changeSubjectContainer}>
|
|
|
+ {state.newTags.length > 0 && (
|
|
|
+ <>
|
|
|
+ <div class={styles.title}>标签</div>
|
|
|
+ <div class={styles.subjectContainer}>
|
|
|
+ {state.newTags.map((subject: any) => (
|
|
|
+ <div
|
|
|
+ class={[
|
|
|
+ styles.subjectItem,
|
|
|
+ styles.subjectItem4,
|
|
|
+ subject.id === state.sNt && styles.active
|
|
|
+ ]}
|
|
|
+ onClick={() => {
|
|
|
+ state.sNt = subject.id;
|
|
|
+ }}>
|
|
|
+ {subject.name}
|
|
|
+ </div>
|
|
|
+ ))}
|
|
|
</div>
|
|
|
- ))}
|
|
|
- </div>
|
|
|
- </>
|
|
|
- )}
|
|
|
-
|
|
|
- {data.tags.length > 0 && (
|
|
|
- <>
|
|
|
- <div class={styles.title}>
|
|
|
- {data.tags[0]?.columnName}
|
|
|
-
|
|
|
- {state.isTagExpand && (
|
|
|
- <span onClick={() => (state.isTagExpand = false)}>
|
|
|
- 收起
|
|
|
- <Icon name="arrow-up" />
|
|
|
- </span>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- <div class={styles.subjectContainer}>
|
|
|
- {data.tags.map(
|
|
|
- (subject: any, index: number) =>
|
|
|
- ((!state.isTagExpand && index <= 4) ||
|
|
|
- state.isTagExpand) && (
|
|
|
+ </>
|
|
|
+ )}
|
|
|
+
|
|
|
+ {state.audioPlayTypeList.length > 0 && (
|
|
|
+ <>
|
|
|
+ <div class={styles.title}>场景</div>
|
|
|
+ <div class={styles.subjectContainer}>
|
|
|
+ {state.audioPlayTypeList.map((subject: any) => (
|
|
|
<div
|
|
|
class={[
|
|
|
styles.subjectItem,
|
|
|
- // !state.isTagExpand && index > 4 && styles.subjectItemHide,
|
|
|
- (subject.id || '') === (data.tagActiveId || '') &&
|
|
|
- styles.active
|
|
|
+ styles.subjectItem4,
|
|
|
+ subject.id === state.sAPT && styles.active
|
|
|
]}
|
|
|
onClick={() => {
|
|
|
- changeTag(subject);
|
|
|
+ state.sAPT = subject.id;
|
|
|
}}>
|
|
|
{subject.name}
|
|
|
</div>
|
|
|
- )
|
|
|
- )}
|
|
|
-
|
|
|
- {!state.isTagExpand && (
|
|
|
+ ))}
|
|
|
+ </div>
|
|
|
+ </>
|
|
|
+ )}
|
|
|
+
|
|
|
+ {data.tags.length > 0 && (
|
|
|
+ <>
|
|
|
+ <div class={styles.title}>
|
|
|
+ {data.tags[0]?.columnName}
|
|
|
+
|
|
|
+ {state.isTagExpand && (
|
|
|
+ <span onClick={() => (state.isTagExpand = false)}>
|
|
|
+ 收起
|
|
|
+ <Icon name="arrow-up" />
|
|
|
+ </span>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
<div
|
|
|
- class={[styles.subjectItem]}
|
|
|
- onClick={() => {
|
|
|
- // changeTag(subject);
|
|
|
- state.isTagExpand = true;
|
|
|
- }}>
|
|
|
- 更多 <Icon name="arrow-down" />
|
|
|
+ class={[
|
|
|
+ styles.subjectContainer,
|
|
|
+ styles.subjectContainerTwo
|
|
|
+ ]}>
|
|
|
+ {data.tags.map(
|
|
|
+ (subject: any, index: number) =>
|
|
|
+ ((!state.isTagExpand && index <= 4) ||
|
|
|
+ state.isTagExpand) && (
|
|
|
+ <div
|
|
|
+ class={[
|
|
|
+ styles.subjectItem,
|
|
|
+ (subject.id || '') ===
|
|
|
+ (data.tagActiveId || '') && styles.active
|
|
|
+ ]}
|
|
|
+ onClick={() => {
|
|
|
+ changeTag(subject);
|
|
|
+ }}>
|
|
|
+ {subject.name}
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ )}
|
|
|
+
|
|
|
+ {!state.isTagExpand && (
|
|
|
+ <div
|
|
|
+ class={[styles.subjectItem]}
|
|
|
+ onClick={() => {
|
|
|
+ state.isTagExpand = true;
|
|
|
+ }}>
|
|
|
+ 更多 <Icon name="arrow-down" />
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</div>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- <ChildNodeSearch
|
|
|
- activeRow={data.selectParents}
|
|
|
- onSelectChildTag={(val: any) => {
|
|
|
- data.childSelectId = val;
|
|
|
- // onSearch();
|
|
|
- }}
|
|
|
- />
|
|
|
- </>
|
|
|
- )}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </Popup>
|
|
|
+ <ChildNodeSearch
|
|
|
+ activeRow={data.selectParents}
|
|
|
+ onSelectChildTag={(val: any) => {
|
|
|
+ data.childSelectId = val;
|
|
|
+ // onSearch();
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </>
|
|
|
+ )}
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class={styles.searchHead}>
|
|
|
+ <span
|
|
|
+ class={styles.cancel}
|
|
|
+ onClick={() => (state.searchPopup = false)}>
|
|
|
+ 取消
|
|
|
+ </span>
|
|
|
+ {/* <span>筛选</span> */}
|
|
|
+ <span
|
|
|
+ class={styles.confirm}
|
|
|
+ onClick={() => {
|
|
|
+ state.allSearch.bookVersionId =
|
|
|
+ data.childSelectId || data.tagActiveId;
|
|
|
+ state.allSearch.audioPlayTypes = state.sAPT
|
|
|
+ ? state.sAPT === 'PLAY_SING'
|
|
|
+ ? ['SING', 'PLAY']
|
|
|
+ : [state.sAPT]
|
|
|
+ : [];
|
|
|
+ state.allSearch.musicTagIds = state.sNt;
|
|
|
+ state.searchPopup = false;
|
|
|
+ onSearch();
|
|
|
+ }}>
|
|
|
+ 确定
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </Popup>
|
|
|
</div>
|
|
|
</Teleport>
|
|
|
|
|
@@ -691,13 +670,14 @@ export default defineComponent({
|
|
|
<TheVip
|
|
|
onClose={val => {
|
|
|
if (val) {
|
|
|
- postMessage({
|
|
|
- api: 'openWebView',
|
|
|
- content: {
|
|
|
- url: `${location.origin}${location.pathname}#/member-center`,
|
|
|
- orientation: 1
|
|
|
- }
|
|
|
- });
|
|
|
+ // postMessage({
|
|
|
+ // api: 'openWebView',
|
|
|
+ // content: {
|
|
|
+ // url: `${location.origin}${location.pathname}#/member-center`,
|
|
|
+ // orientation: 1
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ router.push('/member-center');
|
|
|
}
|
|
|
state.showVip = false;
|
|
|
}}
|