|
|
@@ -11,8 +11,8 @@
|
|
|
</view>
|
|
|
</template>
|
|
|
</wd-search>
|
|
|
- <wd-tabs slidable="always" v-model="state.tab">
|
|
|
- <wd-tab v-for="(item, index) in tabList" :key="index" :title="item.name" />
|
|
|
+ <wd-tabs slidable="always" v-model="state.tab" @click="onclickFacilityList()">
|
|
|
+ <wd-tab v-for="(item, index) in state.tabList" :key="index" :title="item.name" />
|
|
|
</wd-tabs>
|
|
|
<wd-drop-menu>
|
|
|
<wd-drop-menu-item v-model="state.dropMenu" :options="state.dropMenuList" />
|
|
|
@@ -49,9 +49,10 @@
|
|
|
import { reactive } from 'vue';
|
|
|
import { onShow, onReachBottom, onLoad } from '@dcloudio/uni-app';
|
|
|
import { apis } from '@/apis';
|
|
|
+import { s } from 'vite/dist/node/types.d-aGj9QkWt';
|
|
|
|
|
|
interface State {
|
|
|
- tab: number,
|
|
|
+ tab: string,
|
|
|
dropMenu: string,
|
|
|
dropMenuList: {
|
|
|
label: string,
|
|
|
@@ -70,10 +71,16 @@ interface State {
|
|
|
pageSize: number,
|
|
|
total: number,
|
|
|
},
|
|
|
+ tabList: [
|
|
|
+ {
|
|
|
+ name: '',
|
|
|
+ id: '',
|
|
|
+ }
|
|
|
+ ]
|
|
|
};
|
|
|
|
|
|
const state: State = reactive({
|
|
|
- tab: 0,
|
|
|
+ tab: '0',
|
|
|
dropMenu: '1',
|
|
|
dropMenuList: [
|
|
|
{
|
|
|
@@ -88,40 +95,17 @@ const state: State = reactive({
|
|
|
list: [],
|
|
|
page: {
|
|
|
pageNumber: 1,
|
|
|
- pageSize: 10,
|
|
|
+ pageSize: 20,
|
|
|
total: 0,
|
|
|
},
|
|
|
+ tabList: [{
|
|
|
+ name: '',
|
|
|
+ id: '',
|
|
|
+ }],
|
|
|
});
|
|
|
|
|
|
-const tabList = [
|
|
|
- {
|
|
|
- name: '户型',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '全屋',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '客厅',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '卧室',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '卫生间',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '厨房',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '餐厅',
|
|
|
- },
|
|
|
- {
|
|
|
- name: '阳台',
|
|
|
- }
|
|
|
-];
|
|
|
-
|
|
|
const api = {
|
|
|
- // 获取列表
|
|
|
+ // 获取设施列表
|
|
|
fetchList: async (concat?: boolean) => {
|
|
|
uni.showLoading({
|
|
|
title: '加载中',
|
|
|
@@ -130,32 +114,52 @@ const api = {
|
|
|
const data = {
|
|
|
pageNum: state.page.pageNumber,
|
|
|
pageSize: state.page.pageSize,
|
|
|
+ dictType: state.tab,
|
|
|
};
|
|
|
const res = await apis.facilitiesList(data);
|
|
|
- res.rows.forEach((item: any) => {
|
|
|
- state.list.push({
|
|
|
+ const list = res.rows.map((item: any) => {
|
|
|
+ return {
|
|
|
id: item.facilitiesId,
|
|
|
url: item.sysimg[0].url,
|
|
|
- sign: '9 | 深色大理石',
|
|
|
+ sign: '',
|
|
|
title: item.facilitiesTitle,
|
|
|
content: item.facilitiesDesc,
|
|
|
date: item.createTime,
|
|
|
- });
|
|
|
+ };
|
|
|
});
|
|
|
- // const list = res.rows;
|
|
|
- // state.list = concat ? state.list.concat(list) : list;
|
|
|
- console.log(state.list, 'item.sysimg[0].url');
|
|
|
+ state.list= concat ? state.list.concat(list) : list;
|
|
|
state.page = {
|
|
|
...state.page,
|
|
|
total: res.total,
|
|
|
};
|
|
|
- uni.hideLoading();
|
|
|
} catch (error: any) {
|
|
|
console.error(error);
|
|
|
} finally {
|
|
|
uni.hideLoading();
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
+ //获取区域列表
|
|
|
+ fetchRegionList: async () => {
|
|
|
+ try {
|
|
|
+ const data = {
|
|
|
+ pageNum: state.page.pageNumber,
|
|
|
+ pageSize: state.page.pageSize,
|
|
|
+ dictType: 'region_type',
|
|
|
+ };
|
|
|
+ const res = await apis.regionList(data);
|
|
|
+ if (res.code === 200) {
|
|
|
+ res.rows.forEach((item: any) => {
|
|
|
+ state.tabList.push({
|
|
|
+ name: item.dictLabel,
|
|
|
+ id: item.dictValue,
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ } catch (error: any) {
|
|
|
+ console.error(error);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
const init = async () => {
|
|
|
@@ -164,6 +168,7 @@ const init = async () => {
|
|
|
});
|
|
|
// 获取列表
|
|
|
await api.fetchList();
|
|
|
+ await api.fetchRegionList();
|
|
|
uni.hideLoading();
|
|
|
};
|
|
|
|
|
|
@@ -179,7 +184,7 @@ const onChangePagination = async () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-onLoad(() => {
|
|
|
+onShow(() => {
|
|
|
state.page = {
|
|
|
...state.page,
|
|
|
pageNumber: 1,
|
|
|
@@ -187,20 +192,23 @@ onLoad(() => {
|
|
|
init();
|
|
|
});
|
|
|
|
|
|
-onShow(() => {
|
|
|
-
|
|
|
-});
|
|
|
-
|
|
|
onReachBottom(() => {
|
|
|
+ console.log('触发分页');
|
|
|
+
|
|
|
onChangePagination();
|
|
|
});
|
|
|
|
|
|
// 点击跳转
|
|
|
-const onClickNavigate = (id: string, type: string) => {
|
|
|
+const onClickNavigate = (id: string) => {
|
|
|
uni.navigateTo({
|
|
|
- url: `/pages/facility/houseDetail/index?id=${id}&type=${2}`,
|
|
|
+ url: `/pages/facility/houseDetail/index?id=${id}&type=${state.tab}`,
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+const onclickFacilityList = async () => {
|
|
|
+ state.list = [];
|
|
|
+ api.fetchList();
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
@@ -253,7 +261,7 @@ const onClickNavigate = (id: string, type: string) => {
|
|
|
|
|
|
&-text {
|
|
|
width: 100%;
|
|
|
- height: 300rpx;
|
|
|
+ max-height: 300rpx;
|
|
|
color: $gray-color;
|
|
|
overflow: hidden;
|
|
|
margin-bottom: 10rpx;
|