Commit c3093201 authored by 王炽's avatar 王炽

接口刷新

parent 70ba1d63
......@@ -190,7 +190,7 @@
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ref, onMounted, onUnmounted } from 'vue'
import { fetchRecordList, fetchRecordMyrecords, fetchFavoriteList } from '../../api/xingmaLab'
import { onPageScroll } from "@dcloudio/uni-app";
import { showLoading, hideLoading, jump, JumpType } from '../../utils/index.js'
......@@ -319,7 +319,6 @@ onMounted(async () => {
const data1 = await fetchRecordList(cangguanListIdx.value, 4);
cangguanList.value = cangguanList.value.concat(data1.data.list);
cangguanTotalPage.value = data1.data.totalPage;
// console.log('data1=',data1);
//获取我的藏品列表
const data2 = await fetchRecordMyrecords(cangpinListIdx.value, 8);
......@@ -340,6 +339,57 @@ onMounted(async () => {
})
// 刷新数据:封装三个列表的刷新方法,供全局事件调用
const reloadCangguanList = async () => {
showLoading()
cangguanListIdx.value = 1;
cangguanList.value = [];
const data = await fetchRecordList(cangguanListIdx.value, 4);
cangguanList.value = data.data.list;
cangguanTotalPage.value = data.data.totalPage;
hideLoading()
}
const reloadCangpinList = async () => {
showLoading()
cangpinListIdx.value = 1;
cangpinList.value = [];
const data = await fetchRecordMyrecords(cangpinListIdx.value, 8);
cangpinList.value = data.data.list;
cangpinTotalPage.value = data.data.totalPage;
hideLoading()
}
const reloadShoucangList = async () => {
showLoading()
shoucangListIdx.value = 1;
shoucangList.value = [];
const data = await fetchFavoriteList(shoucangListIdx.value, 4);
shoucangList.value = data.data.list;
shoucangTotalPage.value = data.data.totalPage;
hideLoading()
}
// 监听其他页面派发的全局事件
const handleGlobalRefresh = async (payload) => {
console.log('收到全局刷新事件 xingmaLab:refresh,payload=', payload)
// 可根据 payload.type 刷新指定列表,这里默认全部刷新
await Promise.all([
reloadCangguanList(),
reloadCangpinList(),
reloadShoucangList()
])
}
// uni.$emit('xingmaLab:refresh', { type: 'all' }) // or type: 'cangpin' | 'shoucang' | 'cangguan'
onMounted(() => {
uni.$on('xingmaLab:refresh', handleGlobalRefresh)
})
onUnmounted(() => {
uni.$off('xingmaLab:refresh', handleGlobalRefresh)
})
const convertDobuleList = (list) => {
let newList = [];
newList.push([]);
......@@ -551,15 +601,39 @@ const handleBottomNavFabu = () => {
}
}
let currentButtomNavType = 'cangguan';
let currentFrontNavType = '';
// 底部导航点击处理
const handleBottomNavClick = (navType) => {
if (navType === 'cangguan') {
const handleBottomNavClick = async (navType) => {
if (navType == 'cangguan') {
// 点击"星妈会藏馆"时,切换到藏馆tab,展示单列列表
activeTab.value = 'cangguan'
} else if (navType === 'wodecangguan') {
if(currentButtomNavType != 'cangguan'){
currentButtomNavType = 'cangguan'
await reloadCangguanList();
}
} else if (navType == 'wodecangguan') {
// 点击"我的藏品"时,切换到我的藏馆tab,默认展示我的藏品
activeTab.value = 'wodecangguan'
if(currentButtomNavType != 'wodecangguan'){
currentButtomNavType = 'wodecangguan';
if(currentFrontNavType == ''){
activeSubTab.value = 'collections'
currentFrontNavType = 'collections'
await reloadCangpinList();
}else{
currentFrontNavType = activeSubTab.value;
if(activeSubTab.value == 'collections'){
await reloadCangguanList();
}else{
await reloadShoucangList();
}
}
}
}
}
......
import { defineStore } from "pinia";
import { fetchRecordIndex } from "../api/xingmaLab.js";
import { fetchRecordIndex, fetchRecordList, fetchFavoriteList, fetchRecordMyrecords } from "../api/xingmaLab.js";
export const useXingmaLabStore = defineStore("xingmaLab", {
state: () => {
return {
// 星妈Lab接口返回的完整数据
xingmaInfo: null,
// 加载状态
isLoading: false,
// 藏馆接口返回的完整数据
cangguanInfo: null,
// 收藏接口返回的完整数据
shoucangInfo: null,
// 藏品接口返回的完整数据
cangpinInfo: null,
// 加载状态(各接口独立)
isLoadingIndex: false,
isLoadingCangguan: false,
isLoadingShoucang: false,
isLoadingCangpin: false,
};
},
actions: {
......@@ -16,7 +25,7 @@ export const useXingmaLabStore = defineStore("xingmaLab", {
*/
async loadXingmaInfo() {
try {
this.isLoading = true;
this.isLoadingIndex = true;
const { data } = await fetchRecordIndex();
console.log("xingmaInfo data", data);
......@@ -24,27 +33,135 @@ export const useXingmaLabStore = defineStore("xingmaLab", {
this.xingmaInfo = data;
console.log('保存的星妈Lab数据:', this.xingmaInfo);
} else {
console.warn('星妈Lab数据格式不正确:', data);
console.log('星妈Lab数据格式不正确:', data);
}
} catch (error) {
console.error('获取星妈Lab数据失败:', error);
console.log('获取星妈Lab数据失败:', error);
} finally {
this.isLoading = false;
this.isLoadingIndex = false;
}
},
/**
* 重置数据
* 获取藏馆数据
*/
async loadCangguanInfo(pageIndex = 1, pageSize = 4) {
try {
this.isLoadingCangguan = true;
const { data } = await fetchRecordList(pageIndex, pageSize);
console.log("cangguanInfo data", data);
if (data) {
this.cangguanInfo = data;
console.log('保存的藏馆数据:', this.cangguanInfo);
} else {
console.log('藏馆数据格式不正确:', data);
}
} catch (error) {
console.log('获取藏馆数据失败:', error);
} finally {
this.isLoadingCangguan = false;
}
},
/**
* 获取收藏数据
*/
async loadShoucangInfo(pageIndex = 1, pageSize = 4) {
try {
this.isLoadingShoucang = true;
const { data } = await fetchFavoriteList(pageIndex, pageSize);
console.log("shoucangInfo data", data);
if (data) {
this.shoucangInfo = data;
console.log('保存的收藏数据:', this.shoucangInfo);
} else {
console.log('收藏数据格式不正确:', data);
}
} catch (error) {
console.log('获取收藏数据失败:', error);
} finally {
this.isLoadingShoucang = false;
}
},
/**
* 获取藏品数据
*/
async loadCangpinInfo(pageIndex = 1, pageSize = 8) {
try {
this.isLoadingCangpin = true;
const { data } = await fetchRecordMyrecords(pageIndex, pageSize);
console.log("cangpinInfo data", data);
if (data) {
this.cangpinInfo = data;
console.log('保存的藏品数据:', this.cangpinInfo);
} else {
console.log('藏品数据格式不正确:', data);
}
} catch (error) {
console.log('获取藏品数据失败:', error);
} finally {
this.isLoadingCangpin = false;
}
},
/**
* 重置星妈Lab数据
*/
resetXingmaInfo() {
this.xingmaInfo = null;
},
/**
* 获取当前数据
* 重置藏馆数据
*/
resetCangguanInfo() {
this.cangguanInfo = null;
},
/**
* 重置收藏数据
*/
resetShoucangInfo() {
this.shoucangInfo = null;
},
/**
* 重置藏品数据
*/
resetCangpinInfo() {
this.cangpinInfo = null;
},
/**
* 获取星妈Lab数据
*/
getXingmaInfo() {
return this.xingmaInfo;
},
/**
* 获取藏馆数据
*/
getCangguanInfo() {
return this.cangguanInfo;
},
/**
* 获取收藏数据
*/
getShoucangInfo() {
return this.shoucangInfo;
},
/**
* 获取藏品数据
*/
getCangpinInfo() {
return this.cangpinInfo;
},
},
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment