import { wxRequestPost } from "@utils/promise-wx-api"; export default Behavior({ data: { listIsMock: false, listUrl: "", listParams: {}, list: { loading: false, page: 1, pageSize: 20, isNone: false, data: [], }, moreListHint: "", }, lifetimes: {}, observers: { "list.**": function (field) { this.updateMoreListHint(); }, }, methods: { updateMoreListHint() { const { list } = this.data; let moreListHint = ""; if (list.loading) { moreListHint = "正在加载……"; } else if (list.data.length == 0) { moreListHint = "暂无内容"; } else if (!list.isNone) { moreListHint = "上拉查看更多"; } else if (list.isNone) { moreListHint = "没有更多了"; } return this.setData({ moreListHint }); }, // 重置评论列表 resetList(clear = true) { let { list } = this.data; if (clear) { list.data = []; } list.page = 1; list.isNone = false; this.setData({ list }); }, // 处理列表数据 cookListData(item, list) { return item; }, // 获取列表 async getList() { const { listUrl, listParams, list, listIsMock } = this.data; // 如果正在加载或没有更多,返回 if (list.loading || list.isNone) return; list.loading = true; this.setData({ list }); const { data: { data: { code, data }, }, msg, } = await wxRequestPost( listUrl, { ...listParams, pageNo: list.page, pageSize: list.pageSize, }, { isMock: listIsMock, // isQuiet: true } ); list.loading = false; if (msg === "success" && code === 0) { // console.log(Array.isArray(data)) let tempData = data if (!Array.isArray(data)) { // 非数组 tempData = Array.from(data) } let newList = tempData.map((item) => { return this.cookListData(item, list.data); }); if (list.page == 1) { list.data = newList; } else { list.data = [...list.data, ...newList]; } list.page += 1; if (data.length < list.pageSize) { list.isNone = true; } } this.setData({ list, }); }, }, });