|
@@ -19,7 +19,14 @@
|
|
|
<FlexRow>
|
|
<FlexRow>
|
|
|
<SimpleDropDownPicker v-model="selectedRegion" :columns="regionData.content.value" />
|
|
<SimpleDropDownPicker v-model="selectedRegion" :columns="regionData.content.value" />
|
|
|
<SimpleDropDownPicker v-model="selectedType" :columns="typeData.content.value" />
|
|
<SimpleDropDownPicker v-model="selectedType" :columns="typeData.content.value" />
|
|
|
- <SearchBar v-model="searchValue" placeholder="搜索路线" @search="doSearch" @cancel="doSearch" />
|
|
|
|
|
|
|
+ <SearchBar
|
|
|
|
|
+ v-model="searchValue"
|
|
|
|
|
+ placeholder="搜索路线"
|
|
|
|
|
+ leftIcon=""
|
|
|
|
|
+ searchState="show"
|
|
|
|
|
+ @search="doSearch"
|
|
|
|
|
+ @cancel="doSearch"
|
|
|
|
|
+ />
|
|
|
</FlexRow>
|
|
</FlexRow>
|
|
|
<FlexCol
|
|
<FlexCol
|
|
|
v-for="(item,index) in listLoader.content.value"
|
|
v-for="(item,index) in listLoader.content.value"
|
|
@@ -56,7 +63,6 @@
|
|
|
<Button size="small" type="primary" shape="round" :radius="40" text="Let's Go" @click="handleGo(item)" />
|
|
<Button size="small" type="primary" shape="round" :radius="40" text="Let's Go" @click="handleGo(item)" />
|
|
|
</FlexRow>
|
|
</FlexRow>
|
|
|
</FlexCol>
|
|
</FlexCol>
|
|
|
-
|
|
|
|
|
<Empty
|
|
<Empty
|
|
|
v-if="listLoader.content.value?.length == 0"
|
|
v-if="listLoader.content.value?.length == 0"
|
|
|
:description="listLoader.content.value?.length == 0 ? '暂无数据' : ''"
|
|
:description="listLoader.content.value?.length == 0 ? '暂无数据' : ''"
|
|
@@ -85,16 +91,19 @@ import Tag from '@/components/display/Tag.vue';
|
|
|
import SearchBar from '@/components/form/SearchBar.vue';
|
|
import SearchBar from '@/components/form/SearchBar.vue';
|
|
|
import SimpleDropDownPicker from '@/common/components/SimpleDropDownPicker.vue';
|
|
import SimpleDropDownPicker from '@/common/components/SimpleDropDownPicker.vue';
|
|
|
import { useSimpleDataLoader } from '@/common/composeabe/SimpleDataLoader';
|
|
import { useSimpleDataLoader } from '@/common/composeabe/SimpleDataLoader';
|
|
|
-import CommonContent from '@/api/CommonContent';
|
|
|
|
|
|
|
+import CommonContent, { GetContentListParams } from '@/api/CommonContent';
|
|
|
import Empty from '@/components/feedback/Empty.vue';
|
|
import Empty from '@/components/feedback/Empty.vue';
|
|
|
|
|
|
|
|
const listLoader = useSimplePageContentLoader(async () => {
|
|
const listLoader = useSimplePageContentLoader(async () => {
|
|
|
- const res = await TravalContent.getTravalRouteList();
|
|
|
|
|
- return res.filter(p => (
|
|
|
|
|
- !selectedRegion.value || p.region == selectedRegion.value)
|
|
|
|
|
- && (!selectedType.value || p.type == selectedType.value)
|
|
|
|
|
- && (!searchValue.value || p.title.includes(searchValue.value))
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ const res = (await TravalContent.getTravalRouteList(
|
|
|
|
|
+ new GetContentListParams()
|
|
|
|
|
+ .setKeywords(searchValue.value)
|
|
|
|
|
+ .setSelfValues({
|
|
|
|
|
+ region: selectedRegion.value == 0 ? undefined : selectedRegion.value,
|
|
|
|
|
+ type: selectedType.value == 0 ? undefined : selectedType.value,
|
|
|
|
|
+ })
|
|
|
|
|
+ )).list;
|
|
|
|
|
+ return res;
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const selectedRegion = ref(0);
|
|
const selectedRegion = ref(0);
|
|
@@ -103,17 +112,27 @@ const searchValue = ref('');
|
|
|
|
|
|
|
|
const regionData = useSimpleDataLoader(async () => {
|
|
const regionData = useSimpleDataLoader(async () => {
|
|
|
const res = await CommonContent.getCategoryList(1);
|
|
const res = await CommonContent.getCategoryList(1);
|
|
|
- return res.filter(p => p.pid == 5).map(p => ({
|
|
|
|
|
|
|
+ const data = res.filter(p => p.pid == 5).map(p => ({
|
|
|
id: p.id,
|
|
id: p.id,
|
|
|
name: p.title,
|
|
name: p.title,
|
|
|
}));
|
|
}));
|
|
|
|
|
+ data.unshift({
|
|
|
|
|
+ id: 0,
|
|
|
|
|
+ name: '全部地区',
|
|
|
|
|
+ });
|
|
|
|
|
+ return data;
|
|
|
});
|
|
});
|
|
|
const typeData = useSimpleDataLoader(async () => {
|
|
const typeData = useSimpleDataLoader(async () => {
|
|
|
const res = await CommonContent.getCategoryList(1);
|
|
const res = await CommonContent.getCategoryList(1);
|
|
|
- return res.map(p => ({
|
|
|
|
|
|
|
+ const data = res.map(p => ({
|
|
|
id: p.id,
|
|
id: p.id,
|
|
|
name: p.title,
|
|
name: p.title,
|
|
|
}));
|
|
}));
|
|
|
|
|
+ data.unshift({
|
|
|
|
|
+ id: 0,
|
|
|
|
|
+ name: '全部兴趣',
|
|
|
|
|
+ });
|
|
|
|
|
+ return data;
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
watch(selectedRegion, () => {
|
|
watch(selectedRegion, () => {
|